Create campaign

Creates a campaign of one of four types: outbound phone, inbound phone, voice bubble (web), or Messages/SMS. The channel is set via the combination of `campaignType`, `CallType`, `MessagesCampaign`, and `Position`: > **Next step — create an agent.** A campaign on its own is just the > shell (channel, language, phone numbers, schedule). The voice, > scripts, model, and conversational behavior all live on an **agent** > attached to the campaign. After this request returns the campaign > ID, call `POST /agent/new/{campaignId}` (template-driven) or > `POST /agent/{campaignId}` (inline configuration) to attach an > agent. Without an agent, the campaign cannot place or receive > calls/messages. | Campaign type | `campaignType` | `CallType` | `MessagesCampaign` | `Position` | | ------------------ | -------------- | ---------- | ------------------ | ---------- | | Outbound phone | `"1"` | `"2"` | omit | omit | | Inbound phone | `"1"` | `"1"` | omit | omit | | Voice bubble (web) | `"0"` | omit | omit | `"bottom-right"` \| `"bottom-left"` \| `"bottom-center"` \| `"not-positioned"` | | Messages / SMS | `"0"` | omit | `true` | omit | ### Picking a `TemplateId` `TemplateId` is **required**. Pick one from the catalog below — match on the user's selected language and on the campaign channel (`type` column maps to the channel: `outbound`, `inbound`, `web` for voice bubble, `messages` for SMS). Pass the chosen `Template ID` as `TemplateId` in the request body. Supported languages: `en-US` (English), `es-US` (Spanish), `de` (German), `ro-RO` (Romanian), `fr-FR` (French), `hi-IN` (Hindi), `he-IL` (Hebrew), `tr-TR` (Turkish), `multilanguage` (Multilingual). #### English (`en-US`) | Type | Title | Template ID | | -------- | ---------------------------------- | -------------------------------------- | | web | Voice Bubble - Create from scratch | `572cea7c-851b-430d-ad34-2df87cf78745` | | web | Voice Bubble - Auto Dealership | `860556f3-773a-4b3a-ad6d-9cf644d06490` | | web | Voice Bubble – Real Estate | `8c2245d0-db09-4549-94ec-7f3becb8f8ff` | | web | Voice Bubble – Renovations | `233a6ba7-564c-428e-9273-2d736f2a1710` | | web | Voice Bubble – MedSpa | `8560cf24-eaf5-4de1-ad5f-f5d591bd6573` | | outbound | Outbound - Create from scratch | `6be44833-9133-4639-b6c9-425aee057c1c` | | outbound | Outbound - Sales Qualifications | `ca2cedc2-c196-40d2-be22-dfd70bb4594c` | | outbound | Outbound - Appointment Confirmation | `303ae519-237a-4377-bc4b-c112da869210` | | outbound | Outbound - Customer Service | `391d2252-056b-48e6-8147-fb81c11c9a4f` | | inbound | Inbound - Create from scratch | `b169095e-4b52-4002-9c0f-6d860d8f69f2` | | inbound | Inbound - Receptionist | `ef425178-b820-460f-b4a2-1f8704487343` | | inbound | Inbound - Sales | `994c1320-b5c8-4ba6-af47-65f29caefaac` | | inbound | Inbound - Customer Service | `28eb844e-5d43-4469-b422-d8cbb08ddba4` | | messages | Messages - Create from scratch | `4371c8a9-f3c4-4b11-aa15-871870869fec` | | messages | Messages - Sales Qualifications | `5b993906-231b-406b-bfb9-6188449e7a29` | | messages | Messages - Appointment Confirmation | `93bd6c73-17f7-4e91-aee3-daaaa1fee598` | | messages | Messages - Customer Service | `54f23536-c34c-446e-8bfc-b089e68ec3e1` | #### Spanish (`es-US`) | Type | Title | Template ID | | -------- | ------------------------------------ | -------------------------------------- | | outbound | Outbound - Multilingual En & Spanish | `3d9f7b06-5ff9-47ad-bc9b-89d0d504fd80` | | outbound | Outbound - ESPAÑOL | `bf608583-a352-4cbc-8a4f-24e3b516c95e` | | inbound | Inbound - Multilingual En & Spanish | `937764af-80bf-4d3a-ba9d-5d0ffc62b5eb` | | inbound | Inbound - ESPAÑOL | `8f77d0cb-a198-4ec1-b202-442f1d7668ec` | | messages | Messages - Multilingual En & Spanish | `3d9f7b06-5ff9-47ad-bc9b-89d0d504fd80` | | messages | Messages - ESPAÑOL | `bf608583-a352-4cbc-8a4f-24e3b516c95e` | #### German (`de`) | Type | Title | Template ID | | -------- | ---------------------- | -------------------------------------- | | web | Von Grund auf erstellen | `422566c4-7408-4332-ae4c-5cf0c4640220` | | outbound | Von Grund auf erstellen | `422566c4-7408-4332-ae4c-5cf0c4640220` | | inbound | Von Grund auf erstellen | `422566c4-7408-4332-ae4c-5cf0c4640220` | | messages | Von Grund auf erstellen | `422566c4-7408-4332-ae4c-5cf0c4640220` | #### Romanian (`ro-RO`) | Type | Title | Template ID | | -------- | ---------------------- | -------------------------------------- | | inbound | Șablon pentru Inbound | `761a6468-53e1-48ae-b21b-0f1e5c5c4585` | | outbound | Șablon pentru Outbound | `23e344d1-39cb-4f64-9c9b-122f0903afbf` | | web | Șablon pentru web | `761a6468-53e1-48ae-b21b-0f1e5c5c4585` | | messages | Șablon pentru Messages | `23e344d1-39cb-4f64-9c9b-122f0903afbf` | #### French (`fr-FR`) | Type | Title | Template ID | | -------- | -------------------- | -------------------------------------- | | inbound | Modèle pour Inbound | `fd09500c-b572-41f7-b703-774e718c40fd` | | outbound | Modèle pour Outbound | `bf23d52a-c57e-4744-969b-a6c5b5c25b9e` | | web | Modèle pour web | `fd09500c-b572-41f7-b703-774e718c40fd` | | messages | Modèle pour Messages | `bf23d52a-c57e-4744-969b-a6c5b5c25b9e` | #### Hindi (`hi-IN`) | Type | Title | Template ID | | -------- | ------------------- | -------------------------------------- | | outbound | Create From Scratch | `f2086e1d-8c61-4dba-9551-602526b4db2b` | | inbound | Create From Scratch | `f2086e1d-8c61-4dba-9551-602526b4db2b` | | messages | Create From Scratch | `f2086e1d-8c61-4dba-9551-602526b4db2b` | #### Hebrew (`he-IL`) | Type | Title | Template ID | | -------- | -------------- | -------------------------------------- | | inbound | להתחיל מאפס | `ca905bb8-35a5-4f47-8511-285d3804df1b` | | outbound | להתחיל מאפס | `ca905bb8-35a5-4f47-8511-285d3804df1b` | | web | להתחיל מאפס | `ca905bb8-35a5-4f47-8511-285d3804df1b` | | messages | להתחיל מאפס | `ca905bb8-35a5-4f47-8511-285d3804df1b` | #### Turkish (`tr-TR`) | Type | Title | Template ID | | -------- | ------------------------------ | -------------------------------------- | | outbound | Sıfırdan oluşturmak - Giden | `951c250e-b776-4550-8c87-a6282878a8bc` | | inbound | Sıfırdan oluşturmak - Gelen | `951c250e-b776-4550-8c87-a6282878a8bc` | | web | Sıfırdan oluşturmak - Web | `951c250e-b776-4550-8c87-a6282878a8bc` | | messages | Sıfırdan oluşturmak | `951c250e-b776-4550-8c87-a6282878a8bc` | #### Multilingual (`multilanguage`) | Type | Title | Template ID | | -------- | ------------ | -------------------------------------- | | web | Multilingual | `937764af-80bf-4d3a-ba9d-5d0ffc62b5eb` | | inbound | Multilingual | `937764af-80bf-4d3a-ba9d-5d0ffc62b5eb` | | outbound | Multilingual | `3d9f7b06-5ff9-47ad-bc9b-89d0d504fd80` | | messages | Multilingual | `3d9f7b06-5ff9-47ad-bc9b-89d0d504fd80` | ### Outbound phone ```json { "name": "My Outbound Campaign", "campaignType": "1", "CallType": "2", "CompanyName": "Acme Inc", "BusinessName": "Acme", "TemplateId": "6be44833-9133-4639-b6c9-425aee057c1c", "FirstMessage": "Hi, this is...", "ScriptBase": "...", "ScriptNotes": "...", "Timezone": "America/New_York", "TimezoneFriendlyName": "Eastern Time", "StartDate": "2026-05-14", "TimeWindows": "[{\"startHour\":8,\"startMinute\":0,\"endHour\":20,\"endMinute\":0}]", "FeatureRescheduleCallEnabled": false, "FeatureEnrichmentInfoEnabled": false, "FeatureAppendPreviousSummaryEnabled": false } ``` ### Inbound phone Inbound is always-on — drop `StartDate`, `TimeWindows`, and `FeatureRescheduleCallEnabled`. `FeatureAppendPreviousSummaryEnabled` is inbound-only. ```json { "name": "My Inbound Campaign", "campaignType": "1", "CallType": "1", "CompanyName": "Acme Inc", "BusinessName": "Acme", "TemplateId": "6be44833-9133-4639-b6c9-425aee057c1c", "FirstMessage": "Thanks for calling Acme...", "ScriptBase": "...", "ScriptNotes": "...", "Timezone": "America/New_York", "TimezoneFriendlyName": "Eastern Time", "FeatureEnrichmentInfoEnabled": false, "FeatureAppendPreviousSummaryEnabled": true } ``` ### Voice bubble (web) `campaignType: "0"`, no `CallType`, add `Position`. Drop phone-only schedule fields and summary append. ```json { "name": "My Voice Bubble", "campaignType": "0", "CompanyName": "Acme Inc", "BusinessName": "Acme", "Position": "bottom-right", "TemplateId": "6be44833-9133-4639-b6c9-425aee057c1c", "FirstMessage": "Hi! How can I help?", "ScriptBase": "...", "ScriptNotes": "...", "Timezone": "America/New_York", "TimezoneFriendlyName": "Eastern Time", "FeatureEnrichmentInfoEnabled": false } ``` ### Messages / SMS `campaignType: "0"` + `MessagesCampaign: true`. No `CallType`, no schedule windows (text is async). ```json { "name": "My Messages Campaign", "campaignType": "0", "MessagesCampaign": true, "CompanyName": "Acme Inc", "BusinessName": "Acme", "TemplateId": "6be44833-9133-4639-b6c9-425aee057c1c", "FirstMessage": "Hey, this is Acme...", "ScriptBase": "...", "ScriptNotes": "...", "Timezone": "America/New_York", "TimezoneFriendlyName": "Eastern Time", "FeatureEnrichmentInfoEnabled": false } ```

Authentication

api-keystring

Your Atlas API key. Get it from the Atlas Portal under Settings > API Keys.

Request

This endpoint expects an object.
namestringRequired

Required. Human-readable campaign name.

campaignTypeenumRequired

Required. Channel family. "1" = phone (inbound or outbound — set direction with CallType). "0" = non-phone (voice bubble or Messages/SMS — distinguished by MessagesCampaign).

TemplateIdstringRequired

Required. ID of a starter template. See the catalog tables in the Create campaign endpoint description — pick the row matching the user’s language and the campaign channel (outbound, inbound, web for voice bubble, messages for SMS) and pass its Template ID here.

CallTypeenumOptional

Required when campaignType is "1", omit otherwise. Phone direction: "1" = inbound, "2" = outbound.

MessagesCampaignbooleanOptional

Optional. Set true (with campaignType: "0") to create a Messages/SMS campaign. Omit for voice bubble.

PositionenumOptional

Required for voice bubble (campaignType: "0" with MessagesCampaign omitted). Voice bubble position on the host page. Omit for phone and Messages campaigns.

CompanyNamestringOptional

Optional. Injected as {{companyName}} in the script.

BusinessNamestringOptional

Optional. Display name shown to callers/visitors.

IsActivebooleanOptional
Optional. Whether the campaign is enabled at creation.
ModebooleanOptional
Optional.
StartDatedatetimeOptional

Optional. Outbound-only — first date the agent may begin dialing. Ignored for inbound, voice bubble, and Messages campaigns.

TimeWindowsstringOptional

Optional. Outbound-only. JSON-encoded array of time-window objects. Each object must contain startHour (0–23), startMinute (0–59), endHour (0–23), and endMinute (0–59). Example: [{“startHour”:9,“startMinute”:0,“endHour”:17,“endMinute”:0}]. Ignored for inbound, voice bubble, and Messages campaigns.

FirstMessagestringOptional
Optional. Greeting the agent speaks at the start of every call.
PreScriptstringOptional
Optional. Prepended to the agent prompt.
PostScriptstringOptional
Optional. Appended to the agent prompt.
ScriptBasestringOptional
Optional. The agent's conversation script.
ScriptNotesstringOptional
Optional. Additional script guidance.
FeatureRescheduleCallEnabledbooleanOptional

Optional. Outbound-only — allow agent to reschedule calls.

FeatureEnrichmentInfoEnabledbooleanOptional

Optional. Toggle caller-info enrichment.

FeatureAppendPreviousSummaryEnabledbooleanOptional

Optional. Inbound-only — append previous call summary to context.

EnrichmentInfoProviderenumOptional
Optional. Provider used for caller enrichment.
EnrichmentInfoSettingsstringOptional
Optional. JSON string of enrichment settings.
TimezonestringOptional

Optional. IANA timezone, e.g. America/New_York.

TimezoneFriendlyNamestringOptional

Optional. Human-readable timezone label.

StatusenumOptional
Optional. Lifecycle state.
CollectionstringOptional

Optional. Collection/group identifier.

ToolIdsstringOptional

Optional. Comma-separated tool IDs.

SMSTriggerstringOptional
Optional. Trigger phrase that fires an SMS during a call.
SMSBodystringOptional
Optional. SMS body associated with the trigger.
FirstMessageModeenumOptional
Optional. Who speaks first at call start.
EndCallMessagestringOptional
Optional. Message the agent says before hanging up.
VoicemailMessagestringOptional
Optional. Message left on voicemail.
AnalysisPlanSummaryPromptstringOptional
Optional. Prompt used to summarize calls for analysis.
FeatureEndCallWhenVoicemailbooleanOptional
Optional. End the call when voicemail is detected.
FeatureRedialOnNoResponsebooleanOptional
Optional. Retry call when there's no answer.
RedialSettingsstringOptional
Optional. JSON string of redial settings.
FeatureDoubleCallbooleanOptional
Optional. Place two concurrent attempts.
DailyCallLimitintegerOptional
Optional. Maximum calls per day.
IdleMessagesstringOptional
Optional. JSON string of idle messages.
IsOutboundChatActivebooleanOptional
Optional. Whether outbound chat is enabled.
ChatReplyPacingEnabledbooleanOptional
Optional. Messages campaigns only. When true, AI chat reply bubbles are paced with a typing indicator and a short delay before each send, making conversations feel more natural.
ChatReplyPacingSecondsintegerOptional1-60

Optional. Messages campaigns only. Fixed per-bubble typing duration in seconds (1–60). When absent or 0 the duration is auto-calculated based on message length.

Response

Campaign created
PartitionKeystringOptional
RowKeystringOptional
TimestampdatetimeOptional
odata.etagstringOptional
namestringOptional
campaignTypestringOptional
ModebooleanOptional
BusinessNamestringOptional
CallTypestringOptional
CompanyNamestringOptional
FirstMessagestringOptional
IsActivebooleanOptional
PhoneNumberIdstringOptional
PositionstringOptional
ScriptBasestringOptional
ScriptNotesstringOptional
StartDatedatetimeOptional
TimeWindowsstringOptional

JSON-encoded array of time-window objects. Each object contains startHour (0–23), startMinute (0–59), endHour (0–23), and endMinute (0–59).

SuccessRequestintegerOptional
TemplateIdstringOptional
TotalRequestintegerOptional
TotalTransfersintegerOptional
DailyCallLimitintegerOptional
KnowledgeBaseIdstringOptional
KnowledgeBaseDataSetIdstringOptional
Knowledge base dataset identifier
FeatureAppendPreviousSummaryEnabledbooleanOptional
PhoneNumberProviderstringOptional
FeatureRescheduleCallEnabledbooleanOptional
EnrichmentInfoSettingsstringOptional
EnrichmentInfoProviderstringOptional
FeatureEnrichmentInfoEnabledbooleanOptional
EndCallMessagestringOptional
VoicemailMessagestringOptional
AnalysisPlanSummaryPromptstringOptional
FeatureEndCallWhenVoicemailbooleanOptional
FeatureRedialOnNoResponsebooleanOptional
RedialSettingsstringOptional
JSON string of redial attempt configuration
FeatureDoubleCallbooleanOptional
TimezonestringOptional
TimezoneFriendlyNamestringOptional
StatusenumOptional
CollectionstringOptional
IdleMessagesstringOptional
ToolIdsstringOptional
SMSTriggerstringOptional
SMSBodystringOptional
ForwardingPhoneNumberstringOptional
PreScriptstringOptional
PostScriptstringOptional
FirstMessageModeenumOptional
ChatPhoneNumberIdstringOptional
IsOutboundChatActivebooleanOptional
ChatReplyPacingEnabledbooleanOptional
Whether AI chat reply pacing is enabled. When true, reply bubbles are sent with a typing indicator and a short delay, making conversations feel more natural. Messages campaigns only.
ChatReplyPacingSecondsintegerOptional

Fixed per-bubble typing duration in seconds (1–60). When absent or 0 the duration is auto-calculated based on message length. Messages campaigns only.

AIAssistantProviderenum or nullOptional
AI assistant runtime powering this campaign. Returns "atlas" when the campaign uses the Atlas runtime, or null otherwise.
TotalBookeddoubleOptional
AtlasKnowledgeBaseIdstringOptional
MarketplaceAgentIdstringOptional
AgentTypestringOptional
languagestringOptional
voiceIdstringOptional

Errors

400
Bad Request Error
500
Internal Server Error