CRMCRM Contacts

CRM Contacts

Create, list, update, delete, and bulk import contacts in the Talkturo CRM — manage customer data with filtering, pagination, and custom field support.

curl -X GET "https://app.talkturo.com/api/crm/contacts?page=1&limit=25&search=chen&companyId=cmp_9f3e21&campaignId=camp_7d2a44" \
  -H "Cookie: sb-access-token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example"
{
  "success": true,
  "contacts": [
    {
      "id": "8e1f5b9d-1e4b-4db1-92b2-4d93471f1af2",
      "first_name": "Maya",
      "last_name": "Chen",
      "email": "maya.chen@northstarhealth.co",
      "phone": "+14155550187",
      "company_id": "cmp_9f3e21"
    },
    {
      "id": "bd3cfaf2-d375-47b4-9495-3e66512a6e75",
      "first_name": "Daniel",
      "last_name": "Chen",
      "email": "daniel.chen@northstarhealth.co",
      "phone": "+14155550199",
      "company_id": "cmp_9f3e21"
    }
  ],
  "total": 2,
  "page": 1
}
curl -X POST "https://app.talkturo.com/api/crm/contacts" \
  -H "Content-Type: application/json" \
  -H "Cookie: sb-access-token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example" \
  -d '{
    "first_name": "Priya",
    "last_name": "Natarajan",
    "email": "priya.natarajan@lakesidepartners.com",
    "phone": "+14155550231",
    "company_id": "cmp_4c8d12",
    "job_title": "Operations Director",
    "lead_source": "webinar"
  }'
{
  "success": true,
  "contact": {
    "id": "2c7f1c6c-4d67-45f0-bf0e-5c9d3d2f2e41",
    "first_name": "Priya",
    "last_name": "Natarajan",
    "email": "priya.natarajan@lakesidepartners.com",
    "phone": "+14155550231",
    "company_id": "cmp_4c8d12",
    "job_title": "Operations Director",
    "lead_source": "webinar"
  }
}
curl -X POST "https://app.talkturo.com/api/crm/contacts/import" \
  -H "Content-Type: application/json" \
  -H "Cookie: sb-access-token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example" \
  -d '{
    "contacts": [
      {
        "first_name": "Alicia",
        "last_name": "Moreno",
        "email": "alicia.moreno@brightpath.io",
        "phone": "+14155550311",
        "company_id": "cmp_12ab45",
        "region": "West"
      },
      {
        "first_name": "Marcus",
        "last_name": "Reed",
        "email": "marcus.reed@brightpath.io",
        "phone": "+14155550329",
        "company_id": "cmp_12ab45",
        "region": "Central"
      }
    ]
  }'
{
  "success": true,
  "imported": 2,
  "failed": 0,
  "errors": []
}

CRM contacts endpoints

Use CRM contact endpoints to manage contact records, filter contact lists, and import contacts in bulk.

All CRM contact endpoints require session cookie authentication. Send requests from an authenticated browser session or a client that includes the Talkturo session cookie.

Endpoint summary

MethodPathDescription
GET/api/crm/contactsList contacts with pagination and filters
POST/api/crm/contactsCreate a contact
GET/api/crm/contacts/{id}Get a single contact by ID
PATCH/api/crm/contacts/{id}Update a contact
DELETE/api/crm/contacts/{id}Delete a contact
POST/api/crm/contacts/importBulk import contacts from JSON or CSV

List contacts

Retrieve a paginated list of contacts. Use query parameters to search by text or narrow results to a company or campaign.

Query parameters

query
pageinteger

Page number to return.

query
limitinteger

Maximum number of contacts to return for the current page.

query
companyIdstring

Filter contacts to a specific company.

query
campaignIdstring

Filter contacts to a specific campaign.

Response fields

successboolean
Required

Returns true when the request succeeds.

contactsarray
Required

Array of contact objects for the current page.

contacts[].idstring
Required

Unique contact identifier.

contacts[].first_namestring
Required

Contact first name.

contacts[].last_namestring
Required

Contact last name.

contacts[].emailstring

Contact email address when available.

contacts[].phonestring

Contact phone number when available.

contacts[].company_idstring

Associated company ID when the contact belongs to a company.

totalinteger
Required

Total number of contacts that match the current filters.

pageinteger
Required

Current page number in the paginated result.

Create contact

Create a single CRM contact by sending the contact fields in the request body. Include custom fields alongside the standard fields when your workspace uses them.

Request body

body
first_namestring
Required

Contact first name.

body
last_namestring
Required

Contact last name.

body
emailstring

Contact email address.

body
phonestring

Contact phone number.

body
company_idstring

Company ID to associate with the contact.

body
custom fieldsobject

Any additional custom fields supported by your CRM configuration. Send each custom field as a top-level property in the request body.

Response fields

successboolean
Required

Returns true when the contact is created.

contactobject
Required

Created contact record.

contact.idstring
Required

Unique contact identifier.

contact.first_namestring
Required

Contact first name.

contact.last_namestring
Required

Contact last name.

contact.emailstring

Contact email address when provided.

contact.phonestring

Contact phone number when provided.

contact.company_idstring

Associated company ID when provided.

Get a contact

Fetch a single contact by its ID.

Path parameters

path
idstring
Required

Contact ID as a UUID.

Response fields

successboolean
Required

Returns true when the contact is found.

contactobject
Required

Contact record for the requested ID.

contact.idstring
Required

Unique contact identifier.

contact.first_namestring
Required

Contact first name.

contact.last_namestring
Required

Contact last name.

contact.emailstring

Contact email address when available.

contact.phonestring

Contact phone number when available.

contact.company_idstring

Associated company ID when the contact belongs to a company.

Update a contact

Update one or more contact fields by sending a partial request body. Omit fields you do not want to change.

Path parameters

path
idstring
Required

Contact ID as a UUID.

Request body

body
first_namestring

Updated first name.

body
last_namestring

Updated last name.

body
emailstring

Updated email address.

body
phonestring

Updated phone number.

body
company_idstring

Updated associated company ID.

body
custom fieldsobject

Any custom contact fields to update. Send each field as a top-level property in the request body.

Response fields

successboolean
Required

Returns true when the contact is updated.

contactobject
Required

Updated contact record.

Delete a contact

Delete a contact by ID.

Path parameters

path
idstring
Required

Contact ID as a UUID.

Response fields

successboolean
Required

Returns true when the contact is deleted.

messagestring
Required

Deletion result message. The response returns a success message such as Contact deleted.

Bulk import contacts

Import many contacts in a single request. Send either structured JSON with a contacts array or CSV data, depending on your import flow.

JSON request body

body
contactsarray

Array of contacts to import when using JSON input.

body
contacts[].first_namestring
Required

Contact first name for each imported record.

body
contacts[].last_namestring
Required

Contact last name for each imported record.

body
contacts[].emailstring

Contact email address.

body
contacts[].phonestring

Contact phone number.

body
contacts[].company_idstring

Company ID to associate with each imported contact.

body
contacts[].custom fieldsobject

Additional custom fields for each imported contact. Send each field as a top-level property on the contact object.

Response fields

successboolean
Required

Returns true when the import request is processed.

importedinteger
Required

Number of contacts imported successfully.

failedinteger
Required

Number of contacts that failed to import.

errorsarray
Required

List of import errors for records that could not be processed.

Notes on custom fields

Contact create, update, and import endpoints accept custom fields in addition to the standard contact properties.

Send custom fields as top-level properties in the JSON body. Keep field names consistent with your CRM configuration so imported and updated data maps to the expected contact fields.