Welcome to the Smaio Documentation

Smaio is a powerful, self-hosted Email & SMS marketing platform that is, above all, easy to install. This documentation is designed to guide you every step of the way.

Need help?

If you run into any difficulties during installation or use, feel free to contact us.

smaio@kovio.pro

Installation

Follow these steps to install Smaio on your own server. The installation is designed to be simple, whether you have a technical background or not.

Prerequisites

Before you begin, make sure your server has the following. The exact required PHP version is specified in the `composer.json` file at the root of the project.

  • Web server (Apache, Nginx)
  • PHP >= 8.1
  • Database (MySQL, MariaDB, PostgreSQL)
  • Composer (for PHP dependency management)
  • Node.js and npm (only if you are installing via Git clone)

PHP Extensions

Make sure the following PHP extensions are enabled on your server:

Extension Description
BCMathFor arbitrary precision mathematics.
CtypeFor character type checking.
cURLTo perform HTTP requests.
DOMTo manipulate XML documents.
FileinfoTo detect the MIME type of files.
JSONJSON format support.
MbstringFor multi-byte string manipulation.
OpenSSLFor encryption functions.
PCREFor regular expressions.
PDOFor database access.
TokenizerRequired by the Laravel framework.
XMLXML format support.

Important: The `pcntl` PHP extension must be **disabled** on your hosting. It is often incompatible with shared hosting environments and can cause instability.

Installation Steps

The installation of Smaio is designed to be simple thanks to a visual installer that guides you through each step. You don't have any complex command lines to execute.

  1. Step 1: Put the files on the server

    You have two options:

    • Folder Upload (simple): Upload the complete Smaio folder to your server via an FTP client (like FileZilla) or your host's file manager.
    • Git Clone (advanced): If you are a developer, you can clone the repository, then run `composer install --no-dev` and `npm install && npm run build` to prepare the files.
  2. Step 2: Configure the web server

    Point the root of your domain name (or subdomain) to the `/public` directory of the Smaio application. This is a crucial step for the application to work correctly.

  3. Step 3: Launch the visual installer

    Open your browser and go to the URL you just configured. You will be automatically redirected to the installation wizard.

    The wizard will ask you to:

    • Check the server prerequisites.
    • Enter your database information.
    • Create your administrator account.

    The installer will take care of everything else in the background (creating the `.env` file, generating the key, migrating the database, etc.).

  4. Step 4: Configure the Cron Job (Crucial)

    For Smaio to be able to send your campaigns and import your contacts in the background, you must configure a Cron job on your server. This task must run **every minute**.

    Add the following line to your Cron configuration (via cPanel, Plesk, or the `crontab -e` command):

    * * * * * cd /home/guru228/web/smaio.kovio.pro/public_html && php artisan schedule:run >> /dev/null 2>&1

    The path above is dynamically generated to match your installation. Just copy the whole line.

Initial Configuration

Once the application is installed, log in with the administrator account created during "seeding" and proceed with the basic configurations.

General Settings

Go to `General Settings` from your profile menu. Here, you can customize the application name and upload your own favicon to adapt Smaio to your brand.

Server Configuration (Gateways)

This is a crucial step. In your profile menu, under `Servers`, you can configure:

  • SMTP: Add one or more SMTP servers for sending your email campaigns. You will need to provide the host, port, username, password, and encryption type.
  • SMS: Configure your SMS gateways (like Twilio, etc.) to be able to send SMS campaigns.

User Management

In the `User Management` section, you can add new users, edit their information, and manage their permissions within the application.

Main Features

Dashboard

The dashboard gives you an overview of your activities: statistics from the latest campaigns, number of contacts, etc. It's the first page you see after logging in.

Workspace Management

Workspaces (or groups) allow you to segment your work. Each workspace can have its own contacts, campaigns, and templates. This is ideal for managing multiple projects or clients within a single instance of Smaio. You can switch between workspaces from the menu at the top left.

Contact Management

The `Contacts` section is the heart of your marketing database. It allows you to centralize and organize all your audiences.

  • Manual Add: Add contacts one by one by simply filling out a form.
  • Bulk Import: Import thousands of contacts in a few clicks. Smaio supports multiple file formats for maximum flexibility: CSV, TXT, XLS, and XLSX.
  • List Segmentation: Create contact lists to segment your audience and send ultra-targeted campaigns.

Template Management

Save time and ensure visual consistency by creating reusable email templates. Smaio offers you several ways to create your templates:

  • Visual Editor (Drag & Drop): Build professional emails without writing a single line of code. Simply drag and drop content blocks (images, texts, buttons) to compose your design.
  • HTML File Import: Already have an email template coded in HTML? Import your file directly to integrate it into Smaio.
  • Code Editor: For advanced users, the integrated code editor offers full control over the HTML of your templates.

Campagnes SMS

Create and send SMS marketing campaigns. You can select your contact lists, write your message, and schedule it for immediate or delayed sending. Campaign reports allow you to track delivery rates.

Campagnes Email

Similar to SMS campaigns, this section allows you to manage your email campaigns. Choose a template, select your recipients, set a subject, and send. You will have access to detailed statistics: open rates, click rates, etc.