SoftSolzSoftSolz
HomeAPI GuideAPI ReferenceWidget Tester
Outreach

Create a campaign

Creates a draft. Nothing is sent until you call the send endpoint. Fields for other channels are ignored.

POSThttps://app.softsolz.uk/api/v1/services/outreach/campaigns

Recent Requests

Kept only in this browser
TimeStatusTook
Send a request with Try it to see it here.

Headers

Authorizationstringrequired

Bearer token: Bearer sk_live_... (or sk_test_... for sandbox). A login token will not work here.

Idempotency-Keystring

Optional idempotency key for safe retries.

Body Params

namestringrequired

Campaign name.

channelstring

How the campaign reaches people (default whatsapp). voice is a call list worked by members or an AI agent.

body_previewstring

The text message, for text campaigns. Merge fields such as {{name}} are filled per person.

template_namestring

Approved template name. Required for WhatsApp campaigns; for text campaigns it can replace body_preview. Ignored for email.

template_languagestring

Template language code (default en).

template_variablesobject

Values for the template placeholders, keyed by position or name.

subjectstring

Email subject line. Required to send an email campaign.

subject_bstring

A second subject line to A/B test, for email campaigns.

ab_split_percentinteger

Share of people, from 10 to 90, who get the main subject; everyone else gets subject_b (default 50). Email campaigns only.

body_htmlstring

Email body as HTML. Required to send an email campaign.

from_sender_idinteger

Connected email address to send from, for email campaigns.

template_keystring

Saved email template the body was built from, for email campaigns.

audienceobject

Who the campaign goes to. People from every source are merged, duplicates removed, and anyone who opted out is left out. Careful: include_contacts defaults to true, so an audience with only book_ids still sends to all your contacts unless you also set include_contacts to false.

scheduled_atstring | null

When to send. A time in the future makes the send call schedule the campaign instead of starting it. Null sends straight away.

track_linksboolean

Shorten and track links in a text message (default true). Text campaigns only.

local_timeboolean

Send a scheduled text or WhatsApp campaign at that clock time in each person's own time zone (default false).

fallback_sms_bodystring

Text message to send instead when WhatsApp cannot deliver. WhatsApp only.

visibilitystring

Who can see the campaign (default tenant). A plain API key only sees tenant campaigns, so a private or shared campaign is hidden from it after creation.

sharedUserIdsarray of integers

Members to share with when visibility is shared.

sharedRoleIdsarray of integers

Roles to share with when visibility is shared.

Response

Response Body

campaignobjectThe campaign.

Request

curl --request POST \
--url https://app.softsolz.uk/api/v1/services/outreach/campaigns \
--header 'Authorization: Bearer sk_live_your_key' \
--header 'Content-Type: application/json' \
--data '{
"name": "Autumn offer",
"channel": "sms",
"body_preview": "Hi {{name}}, 20% off everything this week. Reply STOP to opt out.",
"audience": {
"include_contacts": true,
"require_consent": true
}
}'

Credentials

Sent as a Bearer token and used in the samples above and in Try it. Kept only in this browser tab until you close it. Use an sk_test_ key to stay in your sandbox.

Response · 201

{
"data": {
"campaign": {
"id": "128",
"tenant_id": "4c1a7e52-9b3d-4f86-a2e1-7d5c0b9f3e61",
"name": "Autumn offer",
"channel": "sms",
"provider": "twilio",
"template_name": "autumn_offer",
"template_language": "en",
"template_variables": {
"1": "Jane"
},
"body_preview": "Hi {{name}}, 20% off this week.",
"media_filename": "offer.jpg",
"media_mime": "image/jpeg",
"has_media": false,
"audience": {
"book_ids": [
"42"
],
"include_contacts": false
},
"status": "draft",
"scheduled_at": "2026-10-05T09:00:00.000Z",
"total_count": 120,
"sent_count": 80,
"delivered_count": 76,
"read_count": 41,
"failed_count": 2,
"skipped_count": 3,
"consecutive_failures": 0,
"pause_reason": null,
"pause_detail": null,
"resume_after": null,
"created_by": 4115,
"created_at": "2026-09-01T09:00:00.000Z",
"updated_at": "2026-09-01T09:00:00.000Z",
"started_at": null,
"completed_at": null,
"subject": "Your autumn offer",
"subject_b": null,
"ab_split_percent": null,
"ab_winner": null,
"body_html": "<p>Hello {{name}}</p>",
"from_sender_id": "7",
"template_key": null,
"source_campaign_id": null,
"source_engagement": null,
"track_links": true,
"local_time": false,
"fallback_sms_body": null,
"ai_agent_id": null,
"ai_settings": {},
"visibility": "tenant",
"shared_users": [
{
"user_id": 4115,
"name": "Jane Doe",
"email": "jane@example.com"
}
],
"shared_roles": [
{
"role_id": 12,
"role_name": "manager"
}
]
}
}
}