Campaigns 🟡 PREVIEW - Marketing

Multi-channel campaign management

Campaigns Interface Screen

Overview

Campaigns is the marketing campaign manager in General Bots Suite. Create, schedule, and track campaigns across Email, WhatsApp, and Social channels. Design templates, manage contact lists, and analyze performance with open rates, click rates, and conversion metrics.


Features

Campaigns

ActionDescription
CreateStart a new campaign
ScheduleSet future delivery date/time
PauseTemporarily halt delivery
ResumeContinue paused campaign
CancelStop and archive campaign
DuplicateClone an existing campaign

Channels

ChannelCapabilities
EmailHTML templates, attachments, tracking
WhatsAppRich messages, media, buttons
SocialPosts to LinkedIn, Twitter, Facebook
SMSText message campaigns
PushBrowser push notifications

Templates

ActionDescription
DesignVisual drag-and-drop editor
PreviewDesktop and mobile preview
VariablesDynamic content placeholders
ImportUpload HTML template
GalleryBrowse template library
SaveSave as reusable template

Lists

FeatureDescription
SegmentsFilter contacts by criteria
TagsCategorize contacts
ImportCSV/JSON contact import
ExportDownload contact lists
MergeCombine multiple lists
DeduplicateRemove duplicate contacts

Analytics

MetricDescription
Open RatePercentage of emails opened
Click RatePercentage of links clicked
ConversionGoal completion rate
Bounce RateFailed delivery percentage
UnsubscribeOpt-out rate
RevenueAttributed sales

Keyboard Shortcuts

ShortcutAction
NNew campaign
Ctrl+SSave draft
Ctrl+PPreview campaign
Ctrl+EnterSend/Schedule
EscapeCancel editing
TabNext field
Ctrl+Shift+TOpen template selector

Campaigns via Chat

Creating an Email Campaign

Viewing Campaign Performance

Scheduling a Campaign


API Endpoints

EndpointMethodDescription
/api/crm/campaignsGETList all campaigns
/api/crm/campaignsPOSTCreate new campaign
/api/crm/campaigns/:idGETGet campaign details
/api/crm/campaigns/:idPATCHUpdate campaign
/api/crm/campaigns/:idDELETEDelete campaign
/api/crm/campaigns/:id/sendPOSTSend/Schedule campaign
/api/crm/campaigns/:id/pausePOSTPause campaign
/api/crm/campaigns/:id/resumePOSTResume campaign
/api/crm/campaigns/:id/statsGETGet campaign analytics
/api/crm/campaigns/:id/contactsGETGet campaign contacts
/api/crm/campaigns/templatesGETList templates
/api/crm/campaigns/templatesPOSTCreate template
/api/crm/listsGETList contact lists
/api/crm/listsPOSTCreate contact list

Create Campaign Request

{
    "name": "Summer Sale 2025",
    "channel": "email",
    "subject": "Summer Sale - Up to 50% Off!",
    "list_id": "list-abc",
    "template_id": "tpl-123",
    "schedule": null,
    "content": {
        "html": "<h1>Summer Sale</h1><p>Up to 50% off all items!</p>",
        "text": "Summer Sale - Up to 50% off all items!"
    },
    "settings": {
        "from_name": "Marketing Team",
        "from_email": "sales@company.com",
        "reply_to": "support@company.com"
    }
}

Campaign Response

{
    "id": "campaign-789",
    "name": "Summer Sale 2025",
    "channel": "email",
    "status": "sent",
    "subject": "Summer Sale - Up to 50% Off!",
    "recipients": 2450,
    "stats": {
        "delivered": 2412,
        "opened": 1205,
        "clicked": 387,
        "converted": 94,
        "bounced": 38,
        "unsubscribed": 12
    },
    "revenue": 12450.00,
    "scheduled_at": "2025-06-16T09:00:00Z",
    "sent_at": "2025-06-16T09:00:05Z",
    "created_at": "2025-06-15T09:00:00Z"
}

Configuration

Campaigns settings can be configured in config.csv:

key,value
default-sender-name,Marketing Team
default-sender-email,marketing@company.com
max-recipients,50000
send-rate-limit,1000/hour
tracking-enabled,true

Troubleshooting

Campaign Not Sending

  1. Verify sender email is verified
  2. Check contact list isn’t empty
  3. Ensure scheduled time hasn’t passed
  4. Review bounce rate for delivery issues

Low Open Rates

  1. Check subject line quality
  2. Verify sender reputation
  3. Review send time optimization
  4. Test different subject lines

Analytics Not Updating

  1. Allow 24 hours for full tracking
  2. Verify tracking pixels are enabled
  3. Check that recipients haven’t blocked images
  4. Review analytics processing queue

Sending & Execution

Campaign execution is a real backend flow (not a stub). When you trigger a send the server:

  1. Resolves recipients — either the explicitly requested contact ids, the members of a list, or the recipients already linked to the campaign.
  2. Loads the template subject/body (or falls back to the campaign settings).
  3. Dispatches each recipient through the configured channel transport (SMTP mail for email campaigns, the WhatsApp Graph API for WhatsApp).
  4. Marks each marketing_recipients row as sent (or failed with the transport error), records it in email_tracking, and rolls the counts into the campaign metrics.

A send with no resolvable recipients returns an explicit client error rather than a not-implemented response.

Campaign via Chat

The drive.archive command keeps the drive inbox tidy by moving invoice-like files into an archive folder, and payroll.diagnosis aggregates a branch’s monthly invoice totals as the ledger basis for payroll:

{ "__api_call__": { "name": "drive.archive", "params": { "source": "inbox", "destination": "faturas/2026" } } }
{ "__api_call__": { "name": "payroll.diagnosis", "params": { "period": "2026-08" } } }

See Also