You need the Builder role or higher to create campaigns. Your team must also have the Campaigns capability enabled and a delivery channel configured — a Slack DM, a Microsoft Teams DM, or email.
Creating a New Campaign
1
Open the wizard
Navigate to Campaigns in the sidebar and click New Campaign. The wizard opens on the Basics step.
2
Set the basics
Enter a Name and optional Description for your campaign.
3
Choose your recipients and delivery channel
Select how you want to target recipients:This step is also where you pick the delivery channel — how Serval sends your campaign:
- Users & Groups — Pick individual users and/or existing Serval user groups. All members of the selected groups receive the campaign message.
- CSV — Upload a CSV file containing recipient email addresses. The CSV must include an
emailcolumn. You can also includetimezoneand any custom columns that become template variables in your message.
For CSV uploads, the wizard checks for formatting issues and displays any row-level errors so you can fix them before proceeding. See Recipients for detailed CSV formatting requirements.
- Slack DM — Direct message via your connected Slack integration.
- Teams DM — Direct message via your connected Microsoft Teams integration.
- Email — Sent via your team’s intake address.
4
Set the schedule
First choose how the campaign sends:
- One-time — Send once. Pick immediate, a specific scheduled time, or local time per recipient.
- Recurring — Send on a repeating schedule. Configure the frequency (e.g., every Monday, the 1st of each month) and delivery mode.
- Triggered — Send on demand when a workflow fires it (e.g., on a webhook or a Serval event), rather than on a schedule.
5
Write your message and attach a workflow
Compose your campaign message using the rich text editor. You can format text with bold, italic, lists, and links.Use template variables to personalize the message for each recipient. Standard variables include:
If you uploaded a CSV with additional columns, those column headers are also available as template variables with a
CSV. prefix. For example, a CSV column named department becomes {{CSV.department}} in the message editor.Response workflow (optional): To collect structured feedback, select a deployed workflow that uses form confirmation. When recipients receive your campaign message, they see a Respond button. Tapping it opens the workflow’s form directly in the conversation.Allow recipients to dismiss: When a response workflow is attached, recipients also see a Dismiss button by default, letting them decline the form. Turn off Allow recipients to dismiss to remove that button — recipients then only see Respond. This prevents accidental dismissals (which can’t be undone) and keeps your response analytics focused on real responses. The setting applies across every channel (Slack, Teams, and email).The form can include any workflow input types: multiple choice, scales, short text, dates, checkboxes, and file uploads. The review step lets you preview the form as recipients will see it.Because each response is a real workflow run, you can wire branching and actions into the workflow itself. If you don’t need to collect responses, leave this unset.6
Review and save
The review step summarizes your campaign configuration: name, recipient count and resolution mode, schedule, message preview, and response workflow (if any).Review the details and click Save to create the campaign as a draft. It won’t send until you explicitly run or activate it.
Editing a Draft Campaign
You can edit any campaign that hasn’t been run or activated yet. Open the campaign from the list and click Edit. The wizard reopens with your saved values so you can update any step.Once a campaign has been run or activated, you can no longer edit its configuration. If you need to make changes, stop the campaign and duplicate it with the corrected settings.

