Docs

Guides

Create and run a campaign

Select people, sending accounts, and a sequence, then send a test before starting.

View Markdown

Create a campaign by combining an audience, sending accounts, and a sequence. Before starting, check the content and send a test to someone who has agreed to receive test messages.

Who can do this

Owner and Manager.

Before you start

Prepare people from appropriate sources, active accounts, and content written by your team. Read Do not contact and Limits and warm-up before deciding on the scale.

Where to start

Open Campaigns, then select Create campaign.

Campaign list in the Demo workspace
Start in Campaigns

Steps

  1. Name the campaign and choose a goal: reach people you have never spoken to, or follow up with people who have messaged before.

  2. Choose a starting point. Under Start from, select a preset or Empty sequence, then click Create and compose sequence. Presets are only starting frameworks; review every step.

  3. Select the audience. Use people from People, a list, selected people, or group scan results. A group source is a list of people found — the campaign does not send messages to the group.

  4. Add filters by stage or tag, then review the audience preview. The actual recipient count may be lower than the number of profiles in the source because excluded or ineligible people are skipped.

  5. Select sending accounts. Check each account's login status and ability to send.

  6. Build the sequence using Add step:

    Step type Purpose
    send Send a text message
    send_file Send a file; this step is skipped for strangers
    wait Wait for a period of time
    branch Branch on a condition, such as whether the person has replied
    react React to the person's latest message
    handoff Assign the conversation to a person, change the stage, or add a tag

    Waiting for a reply differs from waiting for a fixed duration — read each step's description.

  7. Write content and variants. Use {ten}, {nhom}, {chu_de}, and {tai_khoan} to fill in context; use {Hi|Hello} to randomly select wording. {{name|you}} supplies fallback text when the name is missing. Unmatched braces make the content invalid; unknown variables trigger warnings.

    Variants are separate versions of content within the same step; spintax provides choices within one version. Choices stay consistent for each recipient and do not change on retries.

  1. Test the current version. Select an account and a private chat to receive the test, then click Send test. Editing the content afterward invalidates the previous test — send another test.

  2. Start the campaign once the test passes. Every message still goes through the safety gate: running hours, do-not-contact rules, limits, account status, and connectivity can hold or reject jobs.

Result

The campaign runs using its published version. Pause temporarily stops progress; messages already sent cannot be recalled.

Check

See Campaign results. Editing a running campaign creates a draft; when you publish it, people already partway through the sequence continue on their own version.

If something goes wrong

Check why recipients are held or skipped in the recipients tab. Do not raise limits before understanding the cause.

Do it with the API or MCP

Use campaigns.create, campaigns.save_graph, and campaigns.test — MCP campaigns_create, campaigns_save_graph, campaigns_test. Agents should see the prepare a campaign playbook.