Creating a Campaign
Campaigns are created through a multi-step wizard that guides you through setting up your campaign name, delivery channel, schedule, contacts, and message template. This page walks through each step in detail.
Saving a campaign creates its definition only. No messages are created and nothing is sent until a campaign run is created — either manually or automatically from a Repeat schedule.
Who Can Create Campaigns
Users with the Campaigner, Admin, or Org Admin role can create campaigns. At least one delivery channel must be configured before campaigns can be created.
Opening the Wizard
- Navigate to Outreach → Campaigns in the sidebar.
- Click Create Campaign.
- The campaign wizard opens.
Step 1: Overview
The overview step displays a checklist summarising what you should have prepared before continuing. This includes items such as:
- A contact file (CSV, JSON, or XML) with your recipient data
- Your message content
- Required compliance text (opt-out for SMS, unsubscribe link for Email)
- Sender details (for Email campaigns)
Review the checklist, then click Next to continue.
Step 2: Basics
On the basics step, provide the foundational campaign information:
- Campaign Name: a descriptive name for the campaign (e.g. "April Payment Reminders").
- Description (optional): additional context about the campaign's purpose.
- Delivery Channel: select SMS or Email.
Delivery Channel Availability
The channel options shown depend on what has been configured in Outreach Settings:
| Channel | Available when |
|---|---|
| SMS | A valid Twilio Auth Token is saved |
| A valid SendGrid API Key is saved |
If a channel is unavailable, it appears disabled with an explanation. Contact your Org Admin to configure the missing channel.
The delivery channel cannot be changed after the campaign is created. If you need to change the channel, you must create a new campaign.
Schedule
The basics step also sets the campaign's schedule, which controls how its runs are triggered:
- Manual: runs are created and started by you. Nothing sends automatically.
- Repeat: runs are created and started automatically on a cadence you define (daily, weekly, monthly, or yearly), with a timezone, an optional end date, and a calendar preview. You can still create and start runs manually on top of the cadence.
The calendar preview opens in the campaign's timezone and resets to it each time you close and reopen it, so the cadence you verify is the one that will be used. See Scheduling for the full set of repeat rules, the calendar, and how to skip individual occurrences.
Step 3: Add Contacts
On the contacts step, upload and configure your recipient data.
Uploading a Contact File
- Click the upload area or drag and drop a contact file.
- CSV, JSON, and XML files are accepted. The upload card shows a file-type icon for the format you uploaded.
- Maximum file size: 50 MB. Maximum rows: 300,000.
Before the upload begins, you are asked to confirm that you have obtained explicit consent from all contacts for communication. You must accept this confirmation to proceed.
For the full rules — accepted structures, field roles, encoding, and how a rejected file reports back — see Files and Formats. If you want something to copy, Example Files has a working sample in each format.
Mapping Columns
After upload, Outreach displays the columns (or fields, for JSON and XML) found in your file and asks you to map them:
- Destination: select exactly one column as the recipient field:
- For SMS: the column containing phone numbers (must be in E.164 format)
- For Email: the column containing email addresses
- Custom Variables: optionally select columns to use as personalisation variables in your template
- Priority: optionally map the column that carries each contact's priority —
HighorNormal. Priority is set per contact, in the file; there is no campaign-level or run-level priority setting. A row whose priority value is missing or unrecognised is not skipped, and its message is read as normal priority. - Do not import: columns you do not want to include
You cannot map multiple columns to the Destination field. Mapping works the same way for CSV, JSON, and XML files.
There are no reserved column names. Any column beyond the Destination and Priority can be mapped as a custom variable, so a file with amountOwed and dateOwed columns gives you {{amountOwed}} and {{dateOwed}} merge fields to use in the template. See Example Files for a file that does exactly that.
Validation and Contact Summary
After mapping, Outreach validates your data and the summary panel shows how many contacts will be imported and how many will be skipped. Invalid rows are skipped automatically rather than blocking the campaign, and changing the Destination mapping re-runs validation. See How failures surface for exactly what makes a row invalid.
Step 4: Message Template
The template step differs depending on your delivery channel.
SMS
- If your organisation uses the Sender Selection strategy, choose a Sender from the dropdown of Org Admin approved senders. Every message in the campaign's runs sends from it. (Under the Sender Pool strategy there is no sender field — Twilio picks a sender from the pool.)
- Write your message in the text editor.
- A character count is displayed. You cannot exceed the character limit.
- Insert variables using the toolbar. These correspond to the custom variable columns you mapped from your contact file.
- Use Quick Insert (Insert Quick Text) to add pre-written compliant text, such as opt-out instructions.
- The phone preview panel shows a live preview of your message. Enter example values for variables to see how they render (these are optional and have no impact on sent messages).
- Use Send a Test Message to send a test SMS to up to 10 recipients of your choice before running the campaign.
Email
- Choose your editor experience:
- Design Editor. Block-based editor for building emails visually
- Code Editor. HTML editor with syntax highlighting
- Build your email content.
- Configure Sender Settings (From, Reply-to, Subject).
- Add an unsubscribe link (required).
- Optionally add Attachments (up to 20 MB total).
- Use Test Data to preview variable values.
- Optionally send a test email to up to 10 recipients.
See the Email Templates section for detailed guidance on all email template features.
Finishing the Campaign
When you click Finish, the campaign definition is saved — no messages are created yet. The campaign starts in a Ready to Run status with no runs, and records you as its creator. For a Repeat schedule, runs are created and started automatically at each occurrence; otherwise you create runs yourself.
SMS
The campaign saves immediately and moves to a Ready to Run status.
Email
A checklist is evaluated before saving:
| Check | Required? | What happens if incomplete |
|---|---|---|
| From Email set | Yes | Wizard is blocked; you must set a From Email |
| Reply-to Email set | Yes | Wizard is blocked; you must set a Reply-to Email |
| Unsubscribe link present | Yes | Wizard is blocked; you must add an unsubscribe link |
| Subject set | No | Warning shown, but you can continue |
| Test email sent | No | Warning shown, but you can continue |
If all required checks pass (or only optional checks are incomplete), the campaign is saved with a Ready to Run status.
Next Steps
- Message Priorities — the priority column in your contact file and how it controls dispatch order
- Example Files — sample contact files in CSV, JSON, and XML
- Files and Formats — the contact file rules in full
- Scheduling — configure a Manual or Repeat schedule
- Campaign Runs — create a run from your saved campaign
- Starting a Run — start a run now or schedule it for later