Campaigns let you run batch outbound calling to a list of contacts using a configured AI assistant. You create a campaign with scheduling and dialing settings, add contacts to it, then start it to begin placing calls. The API gives you full control over every step of this process, from initial creation through execution.Documentation Index
Fetch the complete documentation index at: https://docs.talkturo.ai/llms.txt
Use this file to discover all available pages before exploring further.
List campaigns
GET /api/crm/campaigns
Returns a paginated list of campaigns for a team. You can filter by status, assistant, and whether to include soft-deleted campaigns.
Query parameters
The team ID to list campaigns for.
Filter campaigns by status. One of:
draft, scheduled, running, paused, completed, cancelled.Filter campaigns assigned to a specific assistant ID.
Controls whether to include soft-deleted campaigns. One of:
exclude (default), include, only.Maximum number of records to return. Defaults to
50.Number of records to skip for pagination. Defaults to
0.Example request
Response
Array of campaign objects.
Unique campaign identifier.
The team this campaign belongs to.
The assistant assigned to place calls in this campaign.
The company associated with this campaign.
Campaign name.
Current campaign status:
draft, scheduled, running, paused, completed, or cancelled.The phone number used as the caller ID for outbound calls.
Start of the daily call window in
HH:MM format.End of the daily call window in
HH:MM format.IANA timezone for the call window (for example,
America/New_York).Maximum number of calls placed simultaneously.
Total number of contacts in the campaign.
Number of contacts where a call attempt was made.
Number of contacts where the call reached a terminal state.
Number of contacts who answered the call.
Total number of campaigns matching the filters (before pagination).
The
limit value applied to this response.The
offset value applied to this response.Create a campaign
POST /api/crm/campaigns
Creates a new outbound calling campaign. The campaign starts in draft status. Add contacts and then call the run endpoint to begin dialing.
Request body
The team ID that owns this campaign.
The ID of the assistant that will place calls.
The company ID to associate with this campaign.
An array of phone number IDs to use as caller IDs. Talkturo rotates across these numbers when placing calls.
A human-readable name for the campaign.
Optional description of the campaign’s purpose.
ISO 8601 datetime for when the campaign should start automatically. If omitted, you start the campaign manually via the run endpoint.
Start of the daily calling window in
HH:MM format (for example, "09:00"). Calls only go out during this window.End of the daily calling window in
HH:MM format (for example, "17:00").IANA timezone for the call window (for example,
"America/New_York").Maximum number of simultaneous outbound calls. Defaults to
3.How many times to retry a contact who does not answer. Defaults to
3.Minutes to wait before retrying a contact. Defaults to
60.Additional campaign settings as a freeform object.
Example request
Response
Add contacts to a campaign
POST /api/crm/campaigns/{id}/contacts
Adds one or more existing contacts to a campaign. Contacts must already exist in your CRM. Use the contacts endpoints to create them first if needed.
Path parameters
The campaign ID to add contacts to.
Request body
An array of contact ID strings to add to the campaign.
Example request
Response
Start a campaign
POST /api/crm/campaigns/{id}/run
Initiates outbound calls for a campaign. Talkturo dials all contacts in pending or queued status, up to the campaign’s maxConcurrentCalls limit. Use dryRun: true to preview which calls would be placed without actually dialing.
Path parameters
The campaign ID to start.
Request body
Your account slug.
Cap the number of calls started in this execution. Useful for gradual rollouts.
When
true, the API returns which calls would be started without actually placing them. Use this to verify campaign configuration before going live.Example request
Response
Number of calls successfully initiated.
Number of contacts that could not be called in this run.
Array of call objects for the calls that were started.
Array of error message strings describing why individual contacts were skipped.
Human-readable summary of the run.
Reflects the
dryRun value from your request.Campaign status lifecycle
| Status | Description |
|---|---|
draft | Campaign created but not yet started |
scheduled | Campaign set to start at a future scheduledStartAt time |
running | Calls are actively being placed |
paused | Campaign temporarily stopped; can be resumed |
completed | All contacts have been reached or exhausted |
cancelled | Campaign stopped permanently |