Skip to content

Campaigns

Campaigns let you reach many CRM contacts at once - by WhatsApp, SMS, or voice - from a single, trackable job instead of messaging people one by one. Use them for appointment reminders, promotions, service notifications, payment reminders, or automated outbound calling. Each campaign targets a contact list, sends through a messaging channel, can be scheduled for a specific date and time, and records per-contact delivery status so you can measure results and follow up on failures.

Campaign Grid

The campaign grid lists all campaigns for the current tenant.

Filtering

FilterDescription
TypeWhatsApp, SMS, or Voice
StatusDraft, Scheduled, Running, Paused, Completed, or Cancelled
NameSearch by campaign name

Grid Columns

ColumnDescription
NameCampaign name
TypeColor-coded badge: WhatsApp (green), SMS (blue), or Voice (purple)
StatusColor-coded status: Running (green), Scheduled (blue), Paused (amber), Completed (gray), Cancelled (gray strikethrough)
Target ListThe contact list this campaign targets
ChannelThe messaging channel used for delivery
ProgressSent count vs. target count with percentage
Scheduled AtWhen the campaign is scheduled to run
CreatedWhen the campaign was created

Creating and Editing Campaigns

Click Add to create a new campaign or the edit icon on any row to modify an existing one.

Common Fields

FieldDescription
NameRequired. A descriptive name for the campaign
TypeWhatsApp, SMS, or Voice. Controls which additional fields appear
StatusDraft, Scheduled, Running, Paused, Completed, or Cancelled. Defaults to Draft
Target ListThe contact list to send to

WhatsApp Fields

Visible when Type is set to WhatsApp:

FieldDescription
ChannelThe messaging channel configured for WhatsApp delivery
TemplateAn approved WhatsApp message template

SMS Fields

Visible when Type is set to SMS:

FieldDescription
ChannelThe messaging channel configured for SMS delivery
Message BodyThe text content of the SMS message

Voice Fields

Visible when Type is set to Voice:

FieldDescription
Caller IDThe outbound caller ID number
QueueThe queue to route connected calls through
Max ConcurrentMaximum simultaneous outbound calls. Defaults to 1
Max RetriesNumber of retry attempts for failed calls. Defaults to 0
Retry DelaySeconds to wait between retries. Defaults to 60
AMD EnabledEnable answering machine detection
AMD ActionWhat to do when a machine is detected: hang up or leave voicemail

Scheduling

All campaigns include scheduling fields. The calling hours window is a compliance and courtesy control: even if a campaign is scheduled or running, messages and calls are only sent within the allowed hours (in the specified timezone), so you avoid contacting people late at night or outside the hours permitted in their region.

FieldDescription
TimezoneDisplayed above the date/time selectors. Uses the tenant timezone
Year / Month / Day / Hour / MinuteThe scheduled send date and time, shown in the tenant timezone
Calling Hours StartEarliest time of day to send (HH:MM format)
Calling Hours EndLatest time of day to send (HH:MM format)
Calling Hours TimezoneTimezone for the calling hours window

Notes

An optional free-text field for internal notes about the campaign.

Campaign Members

Each campaign tracks delivery status per contact. The campaign members grid (accessible from the campaign detail view) shows:

ColumnDescription
ContactThe contact name
PhoneContact phone number
EmailContact email
StatusDelivery status (pending, sent, delivered, failed, etc.)
AttemptsNumber of delivery attempts
Sent AtWhen the message was sent
Delivered AtWhen delivery was confirmed
DispositionOutcome code
ErrorError message if delivery failed

Worked example: a WhatsApp appointment-reminder campaign

A dental office wants to WhatsApp every patient with an appointment next week. They already have an approved appointment_reminder template and a WhatsApp messaging channel.

  1. Build the audience. Create a List Reminders Week 30 - either a static list you add patients to, or a dynamic list whose criteria select next week’s appointments.
  2. Test on yourself first. Make a one-row list containing only a staff WhatsApp number and run steps 3-6 against it before touching real patients.
  3. Create the campaign. Under Campaigns, click Add. Set Name Week 30 reminders, Type WhatsApp, Target List Reminders Week 30.
  4. Pick channel and template. In the WhatsApp fields, choose your WhatsApp Channel and the approved Template appointment_reminder. (WhatsApp requires an approved template to start a business-initiated conversation - a plain body will not do.) Template variables like {{1}} (name) and {{2}} (date) fill from each contact’s CRM fields if you mapped them on the WhatsApp account.
  5. Schedule inside calling hours. Set the send date/time, and set Calling Hours to 09:00-18:00 in the patients’ timezone so nothing goes out at 6am even if the job starts early. Set Status to Scheduled.
  6. Send and review. At the scheduled time the status moves to Running and per-contact rows fill in. Afterward, open the Campaign Members grid and filter for failed to catch bad numbers or opt-outs, fix the data, and re-target if needed.

Campaigns require the campaigns_enabled flag on the tenant (see below); if you do not see the Campaigns screen, ask your system administrator to enable it.

Best practices

  • Test on a small list first. Create a short list of internal or trusted numbers and run the campaign against it before sending to your full audience.
  • Respect opt-in and opt-out. Only message contacts who have consented for the channel, and prefer templates that include opt-out instructions. See the Message Templates compliance options.
  • Set realistic calling hours. For voice and SMS, keep the window within business hours in the recipient’s timezone to reduce complaints and improve answer rates.
  • Use WhatsApp templates for the first touch. WhatsApp only allows business-initiated conversations through approved templates, so a campaign that starts a new conversation must use one.
  • Review the members grid after sending. Filter for failed to find bad numbers or opt-outs, correct the data, and re-target if appropriate.

Feature Flag

Campaigns require the campaigns_enabled flag to be enabled on the tenant. This is configured by the system administrator in the tenant settings.