CRMCRM Campaigns

CRM Campaigns

Create, manage, and run outbound calling campaigns through the Talkturo CRM API — add contacts, monitor real-time dashboard stats, start and stop campaigns, and retrieve call logs and AI insights.

curl -X POST "https://app.talkturo.com/api/crm/campaigns" \
  -H "Content-Type: application/json" \
  -H "Cookie: sb-session=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example_session_token" \
  -d '{
    "name": "Q3 renewal outreach",
    "assistant_id": "ast_9c41f8e2-7e93-4f8e-8d6c-2c9bdf8b9a33",
    "schedule": {
      "timezone": "America/Los_Angeles",
      "start_at": "2026-08-13T16:00:00Z"
    }
  }'
{
  "success": true,
  "campaign": {
    "id": "cmp_6df44cc0-5e10-4b0d-a3f5-ec6116f8c7d1",
    "name": "Q3 renewal outreach",
    "status": "draft",
    "assistant_id": "ast_9c41f8e2-7e93-4f8e-8d6c-2c9bdf8b9a33",
    "schedule": {
      "timezone": "America/Los_Angeles",
      "start_at": "2026-08-13T16:00:00Z"
    }
  }
}
curl -X GET "https://app.talkturo.com/api/crm/campaigns/cmp_6df44cc0-5e10-4b0d-a3f5-ec6116f8c7d1/dashboard" \
  -H "Cookie: sb-session=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example_session_token"
{
  "success": true,
  "stats": {
    "total_calls": 240,
    "answered": 118,
    "failed": 21,
    "in_progress": 7
  }
}
curl -X POST "https://app.talkturo.com/api/crm/campaigns/cmp_6df44cc0-5e10-4b0d-a3f5-ec6116f8c7d1/run" \
  -H "Content-Type: application/json" \
  -H "Cookie: sb-session=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example_session_token" \
  -d '{
    "action": "start"
  }'
{
  "success": true,
  "status": "running"
}

Manage outbound CRM campaigns

Use the CRM Campaigns endpoints to create outbound calling campaigns, attach contacts, monitor live progress, and start or stop execution. All CRM campaign endpoints require an authenticated session cookie and are intended for browser-based or same-origin application requests.

Authenticate these endpoints with a valid Talkturo session cookie. These routes do not accept API key authentication.

Endpoint summary

MethodPathPurpose
GET/api/crm/campaignsList campaigns
POST/api/crm/campaignsCreate a campaign
GET/api/crm/campaigns/[id]Retrieve one campaign
PATCH/api/crm/campaigns/[id]Update a campaign
DELETE/api/crm/campaigns/[id]Delete a campaign
GET/api/crm/campaigns/[id]/contactsList campaign contacts
POST/api/crm/campaigns/[id]/contactsAdd contacts to a campaign
GET/api/crm/campaigns/[id]/dashboardRetrieve real-time campaign stats
POST/api/crm/campaigns/[id]/runStart or stop a campaign
GET/api/crm/outbound-assistantsList assistants available for outbound calls
GET/api/crm/callsList CRM call logs
GET/api/crm/intelligenceRetrieve AI insights

Campaign object

Campaign responses return a campaign object or a campaigns array. The exact shape can include additional campaign fields beyond the core fields listed here.

idstring
Required

Unique campaign identifier.

namestring
Required

Campaign name.

statusstring
Required

Current campaign status.

assistant_idstring

Identifier of the outbound assistant assigned to the campaign.

List campaigns

Retrieve a paginated list of CRM campaigns.

Request

query
pageinteger

Page number returned by the list endpoint. The response includes the current page value.

Response fields

successboolean
Required

Returns true when the request succeeds.

campaignsarray
Required

List of campaign objects.

totalinteger
Required

Total number of campaigns available for the current query.

pageinteger
Required

Current page number.

Create a campaign

Create a new outbound campaign by name, and optionally assign an outbound assistant or schedule metadata.

Body parameters

body
assistant_idstring

Assistant to use for outbound calls.

body
scheduleobject

Campaign scheduling configuration. The endpoint accepts a schedule object when you want to attach scheduling metadata during creation.

Response fields

successboolean
Required

Returns true when the campaign is created.

campaignobject
Required

Created campaign object.

Get a campaign

Retrieve one campaign by ID.

Path parameters

Response fields

successboolean
Required

Returns true when the campaign is found.

campaignobject
Required

Requested campaign object.

Update a campaign

Update one or more campaign fields.

Path parameters

Body parameters

body
namestring

Updated campaign name.

body
assistant_idstring

Updated outbound assistant ID.

body
scheduleobject

Updated scheduling configuration.

Response fields

successboolean
Required

Returns true when the update succeeds.

campaignobject
Required

Updated campaign object.

Delete a campaign

Delete a campaign by ID.

Path parameters

Response fields

successboolean
Required

Returns true when the campaign is deleted.

messagestring
Required

Deletion result message.

Manage campaign contacts

Attach contacts to a campaign and retrieve the current campaign contact list.

List campaign contacts

Retrieve contacts already associated with a campaign.

Path parameters

Response fields

successboolean
Required

Returns true when the request succeeds.

contactsarray
Required

Contacts attached to the campaign.

Add campaign contacts

Add contacts to an existing campaign.

Path parameters

Body parameters

body
contactsarray

List of contacts to add. The endpoint accepts contact payloads for campaign association.

Response fields

successboolean
Required

Returns true when contacts are added.

contactsarray
Required

Updated contact list or added contact records.

The repository confirms that GET and POST are available on /api/crm/campaigns/[id]/contacts, but it does not expose the exact contact request schema on this page. Use the response from your CRM contacts endpoints as the source for contact IDs and payload shape.

Retrieve real-time dashboard stats

Read live execution metrics for a campaign dashboard.

Path parameters

Response fields

successboolean
Required

Returns true when dashboard stats are available.

statsobject
Required

Campaign dashboard metrics object.

total_callsinteger

Total calls recorded for the campaign.

answeredinteger

Calls answered by recipients.

failedinteger

Calls that failed.

in_progressinteger

Calls currently in progress.

Start or stop a campaign

Control campaign execution by sending a run action.

Path parameters

Body parameters

body
actionstring
Required

Execution command for the campaign.

Allowed values:startstop

Response fields

successboolean
Required

Returns true when the action is accepted.

statusstring
Required

Resulting campaign status, such as running or stopped.

These endpoints are commonly used alongside campaign operations.

List outbound assistants

Retrieve assistants that can be assigned to outbound campaigns.

successboolean
Required

Returns true when the request succeeds.

assistantsarray
Required

Assistants available for outbound calling.

GET /api/crm/outbound-assistants

List CRM call logs

Retrieve CRM call history for campaign analysis and operational debugging.

successboolean
Required

Returns true when the request succeeds.

callsarray
Required

CRM call log entries.

GET /api/crm/calls

Retrieve AI insights

Retrieve AI-generated CRM intelligence and insights.

successboolean
Required

Returns true when the request succeeds.

insightsarray
Required

Insight records generated from CRM activity.

GET /api/crm/intelligence

Common workflow

Most campaign integrations follow the same path:

List outbound assistants

Call GET /api/crm/outbound-assistants and select the assistant you want to use for outbound calls.

Create the campaign

Create a campaign with POST /api/crm/campaigns. A successful response returns success: true and a new campaign.id.

Add contacts

Attach contacts with POST /api/crm/campaigns/[id]/contacts. After the request succeeds, the response includes a contacts array.

Start the run

Send POST /api/crm/campaigns/[id]/run with action set to start. The response returns status: running when execution begins.

Monitor progress

Poll GET /api/crm/campaigns/[id]/dashboard to track total_calls, answered, failed, and in_progress while the campaign runs.