AI Agent Campaigns and Instant Trigger

Prev Next

An AI agent campaign places outbound calls with a virtual agent instead of a person. There is no queue and no agent sitting at a desk: SESTEK AgenticCX dials the contact, connects the call to the AI agent project you name, and records the result. You can run an AI agent campaign in two ways. A Planned campaign works through a list of contacts on a schedule, and an Instant campaign is always on and waits for another system, such as a web form or your CRM, to ask for each call.

This article explains what is different about AI agent campaigns, how Planned and Instant campaigns compare, and how an external system sends call requests to an Instant campaign. To build a campaign form step by step, see the article on creating and editing a campaign.

Open it from Campaigns in the left menu.

Watch the walkthrough

How an AI agent campaign differs from a human agent campaign

Human agent campaignAI agent campaign
Who takes the callAn agent in Agent DesktopThe AI agent project named on the campaign
QueueRequiredNone. An AI agent campaign cannot be assigned to a queue
Wrap-up codesChosen on the campaign and by the agent after the callNone
Before-Call Work and After-Call WorkYesNone
Where the AI agent is setNot applicableAI Agent Project Name, required, up to 200 characters
How a contact is completedThe agent selects a wrap-up codeAn answered call completes the contact automatically

The campaigns list with AI agent and Instant campaigns

In the list, a sparkle icon in front of the name marks an AI agent campaign, and the Queue / AI Agent column shows the AI agent project instead of queues. To see only AI agent campaigns, select Filters, choose Agent Type and tick AI Agent.

Filtering the list by agent type

Planned or Instant

PlannedInstant
Who decides which contacts are calledYou, by choosing contact segmentsAn external system, one call request at a time
Start and end datesRequiredNot used
Contact segments and target contactsSegments required, target optionalNot used
Completes by itselfYes: target reached, all contacts exhausted or end date reachedNever. Only you can complete it
Progress columnA progress bar with the completed and target countsThe number of calls, for example 0 calls

You choose the trigger mode in the Trigger Mode field when you create the campaign. It cannot be changed afterwards.

Choosing the trigger mode

Create an AI agent campaign

Select New Campaign, choose AI Agent and select Next.

Choosing the agent type

The agent type cannot be changed after the campaign is created. The Planned form asks for a name, start and end dates, the AI agent project name, contact segments, an optional target and an outbound number, with Call Window and Call Rules sections you can expand.

The Planned form

When you switch Trigger Mode to Instant, the dates, the segments and the target disappear, and the form shows: Instant campaigns are always-on and targetless: an external form or API injects each call request on demand.

The Instant form with Call Window and Call Rules open

FieldRequiredNotes
Campaign NameYesUp to 100 characters
AI Agent Project NameYesUp to 200 characters. Spaces alone are not accepted. It cannot contain {, } or '
Trigger ModePlanned (default) or Instant
Outbound NumberThe default number is preselected. You can clear it
Call WindowAt least one open day for InstantEach day has a start and end time and a switch. By default Monday to Friday are open from 09:00 to 18:00
Maximum Attempt CountYes for InstantDefault 5. Maximum number of call attempts per contact
Wait Between Calls (minutes)Yes for InstantDefault 30. Minimum wait between consecutive attempts

If you switch every day off on an Instant campaign, the form shows An instant campaign needs at least one open call window. and Create stays disabled. If you clear Maximum Attempt Count or Wait Between Calls (minutes), the form shows This field is required.

Every day switched off on an Instant campaign

Manage an Instant campaign

Select the menu icon at the end of a row.

Row actions for an Instant campaign

ActionWhat it does
PauseStops the campaign from placing calls. Requests you send while it is paused are not accepted
CompleteEnds the campaign for good
EditChanges the campaign. Trigger Mode is locked
CopyStarts a new campaign from this one

Completing an instant campaign cannot be undone. It can never be started again, and any external system using its Campaign ID will stop working. Use Pause if you only need a break.

An AI agent campaign also pauses by itself when many consecutive call attempts fail for a system reason, for example when no active outbound number is configured. It does not resume on its own: fix the cause, then start the campaign again.

The campaign detail page

Select a campaign name to open it.

The detail page of an Instant campaign

The header shows the status, the AI Agent and Instant badges, the Campaign ID, the AI agent project, the maximum attempt count and the wait between calls, and the total number of calls. Below it are three tabs.

  • Contacts lists the contacts in the campaign with their status, attempts and next eligible time. On an Instant campaign it fills as call requests arrive.
  • Activity Log records what the campaign did, with time, action, result, rule and detail. Entries are kept for 90 days.
  • Dial pipeline shows the four stages every call passes through: Pacing planner, Queueing, Origination and Call outcome, with a sentence that explains the current state, for example No call request is waiting; the campaign is ready for the next trigger.

The Dial pipeline tab

The Activity Log tab

Send call requests from another system

The Campaign ID in the header is the number your integration uses. It does not change when you rename the campaign. Select the </> icon next to it to open Copy as cURL (ext-api). The window lists the five campaign endpoints of the external API. Selecting one copies its cURL command to your clipboard. Replace the placeholders in angle brackets before you run it.

The Copy as cURL window

Authentication

Request an access token with the OAuth client credentials flow, with the scope AgenticCXExternal, using the client ID and secret SESTEK gave you. Send the token on every request as Authorization: Bearer <YOUR_ACCESS_TOKEN>. You do not send a tenant: it is taken from the token.

The five endpoints

MethodPathWhat it does
GET/ext-api/v1/campaign/{campaignId}Returns the campaign
POST/ext-api/v1/campaign/{campaignId}/call-requestsSubmits one or more call requests
GET/ext-api/v1/campaign/{campaignId}/call-requestsReturns a page of the submitted requests, newest first
GET/ext-api/v1/campaign/{campaignId}/call-requests-summaryCounts the requests by admission outcome and call state
GET/ext-api/v1/campaign/{campaignId}/call-requests/{clientReferenceId}Returns what was submitted under one reference and what became of it

A request body holds up to 100 items. Each item is one person to call, and the clientReferenceId is your own key (for example an order number). Sending the same key again never creates a second call: you get the first result back.

FieldRequiredLimit
itemsYes1 to 100 items
clientReferenceIdYesUp to 128 characters. It cannot contain /, \, %, ? or #
contact.phoneNumberYesUp to 30 characters
contact.nameYesUp to 200 characters
contact.emailNoA valid address, up to 256 characters
localeNoUp to 16 characters
parametersNoUp to 20 key and value pairs. Key up to 64 characters, value up to 512 characters, 4,000 bytes in total

What happens to each request

The response is always successful, and each item carries its own result in status.

StatusMeaning
QueuedThe contact joined the campaign. The call follows shortly
DeferredAccepted, but the call window is closed. nextEligibleAtUtc tells you when the call can happen
MergedThat person already had a call coming, so the request joined it. No second call is placed
RejectedNot accepted. rejectionReason is ContactPhoneInvalid, AdmissionContended or AdmissionFailed. The last two can be sent again

Accepting a request does not mean the call has started. The call follows the campaign's call window, maximum attempt count and wait between calls, and it usually begins within about 15 seconds.

If the campaign cannot take requests at all, the whole body is refused with these error codes.

error.codeMeaning
AgenticCX:ExternalApi:CampaignNotFoundNo campaign with this ID in your tenant
AgenticCX:ExternalApi:CampaignNotInstantTriggerThe campaign is not an Instant campaign
AgenticCX:ExternalApi:CampaignNotActiveThe campaign is paused or completed
AgenticCX:ExternalApi:CampaignOutsideDateWindowThe campaign is outside its own start and end dates

The state of a call is reported in call.state: NotStarted, Scheduled, Dialing, Completed, Cancelled or Failed. NotStarted is the normal state between acceptance and the first attempt.

For a step by step guide with examples, paging, date filters and retry guidance, see Triggering Instant Campaigns with the API. The full contract is in the External API article under Technical Documents.

Good to know

  • The external API reports every time in UTC (fields ending in Utc).
  • A request for a person who already has a call coming is merged, so the parameters of the merged request are not used in that call.
  • The platform does not publish a request rate limit for the external API at this time.
  • Calls are placed only inside the call window. Requests sent outside it are accepted as Deferred and called when the window opens.