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
string
required
The team ID to list campaigns for.
string
Filter campaigns by status. One of:
draft, scheduled, running, paused, completed, cancelled.string
Filter campaigns assigned to a specific assistant ID.
string
Controls whether to include soft-deleted campaigns. One of:
exclude (default), include, only.integer
Maximum number of records to return. Defaults to
50.integer
Number of records to skip for pagination. Defaults to
0.Example request
Response
array
Array of campaign objects.
string
Unique campaign identifier.
string
The team this campaign belongs to.
string
The assistant assigned to place calls in this campaign.
string
The company associated with this campaign.
string
Campaign name.
string
Current campaign status:
draft, scheduled, running, paused, completed, or cancelled.string
The phone number used as the caller ID for outbound calls.
string
Start of the daily call window in
HH:MM format.string
End of the daily call window in
HH:MM format.string
IANA timezone for the call window (for example,
America/New_York).integer
Maximum number of calls placed simultaneously.
integer
Total number of contacts in the campaign.
integer
Number of contacts where a call attempt was made.
integer
Number of contacts where the call reached a terminal state.
integer
Number of contacts who answered the call.
integer
Total number of campaigns matching the filters (before pagination).
integer
The
limit value applied to this response.integer
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
string
required
The team ID that owns this campaign.
string
required
The ID of the assistant that will place calls.
string
required
The company ID to associate with this campaign.
array
required
An array of phone number IDs to use as caller IDs. Talkturo rotates across these numbers when placing calls.
string
required
A human-readable name for the campaign.
string
Optional description of the campaign’s purpose.
string
ISO 8601 datetime for when the campaign should start automatically. If omitted, you start the campaign manually via the run endpoint.
string
Start of the daily calling window in
HH:MM format (for example, "09:00"). Calls only go out during this window.string
End of the daily calling window in
HH:MM format (for example, "17:00").string
IANA timezone for the call window (for example,
"America/New_York").integer
Maximum number of simultaneous outbound calls. Defaults to
3.integer
How many times to retry a contact who does not answer. Defaults to
3.integer
Minutes to wait before retrying a contact. Defaults to
60.object
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
string
required
The campaign ID to add contacts to.
Request body
array
required
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
string
required
The campaign ID to start.
Request body
string
Your account slug.
integer
Cap the number of calls started in this execution. Useful for gradual rollouts.
boolean
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
integer
Number of calls successfully initiated.
integer
Number of contacts that could not be called in this run.
array
Array of call objects for the calls that were started.
array
Array of error message strings describing why individual contacts were skipped.
string
Human-readable summary of the run.
boolean
Reflects the
dryRun value from your request.