Send one message to many people - by email or WhatsApp - personalised per recipient, with follow-ups that branch on what each person did. Outreach → Email or WhatsApp.
A campaign is a four-step wizard: Audience, Content, Sequence, Review & Send. It stays a draft until you send or schedule it, so you can leave and come back at any point. Every campaign belongs to one agent, which determines who it sends as.
Build the list from your leads, a CSV, or both:
| Control | What it does |
|---|---|
| CSV import | Adds contacts and their extra columns, which become merge tags. |
| Status filter | Only leads at a given status. |
| Tag filter | Only leads carrying a tag. |
| Exclude inbound leads | Drops leads captured automatically from the inbox - useful when you only want to reach a list you built deliberately. |
| Individual exclusions | Tick anyone out by hand. Included and excluded contacts live in one table, so you can always see who you removed. |
Custom columns are first-class
{{col:ColumnName}}. They show up in the audience table too, so you can check the data before it's merged into a message.Write the subject and body in the editor, or start from a saved template - Campaigns and Templates are two views of the same page. Content is sanitised before it's stored and again before it's rendered, so pasted HTML can't carry anything unsafe into an inbox.
Turning on personalisation generates a per-recipient opening line from what Splice knows about that contact, available as {{personalizedLine}}.
| Token | Resolves to |
|---|---|
{{name}} | The contact's full name. Prefer this one. |
{{firstName}} | First word of the name, falling back to there. |
{{email}} | Their email address. |
{{col:ColumnName}} | Any custom CSV column, by exact header name. |
{{personalizedLine}} | The AI-written opener, when personalisation is on. |
{{unsubscribeUrl}} | That contact's one-click unsubscribe link. |
Test send validates your tags
{{col:Company}} never reaches a real inbox. Merged values are HTML-escaped, so a name like "Smith & Sons" survives intact.The sequence step is a flow: each follow-up has a delay in days and a condition deciding who receives it.
| Condition | Sent to recipients who |
|---|---|
| No open | Never opened the previous message. |
| Opened, no click | Opened it but clicked nothing. |
| Clicked | Clicked a link. |
| Replied | Wrote back. |
| Any | Everyone, regardless. |
Steps are laid out on a canvas you can rearrange. The original subject and body are step zero.
Never hardcode an unsubscribe link
{{unsubscribeUrl}} - it's the only form that resolves to the contact's own token.The WhatsApp tab runs the same wizard with one difference: content is a Meta-approved template, not free text. You pick the template and its language, then map its numbered placeholders to merge tags. Meta's rules apply - outside a customer's 24-hour window, a template is the only thing that can be sent at all.
A campaign can be published to a public URL so it can be shared or linked without forwarding the email. Access is either open to anyone with the link, or restricted to a list of invited addresses. The archive render deliberately mints no unsubscribe link and no tracking links - it's a copy to read, not another send.
| Status | Meaning |
|---|---|
| Draft | Still being built. Nothing has gone out. |
| Scheduled | Waiting for its send time. |
| Sending | In progress. |
| Sent | Everything went out. |
| Partial | Some recipients failed - open it to see which. |
| Failed | The send couldn't proceed. |
Sends are metered per message. Failed sends aren't charged. Campaigns are blocked when the workspace has no credits, and old campaigns can be archived to keep the list clean without deleting their history.