Skip to content
TriedDocs
Integrations

Get CRM config

List the supported CRMs and the workspace's CRM sync connections with their field mappings.

GEThttps://api.tried.com.au/get-crm-config

Returns every CRM Tried can sync to, whether the workspace has connected it, and each connection's settings. CRM sync pushes contacts and a note per analysed call to the CRM. It does not pull CRM records back into contacts.

Request#

This endpoint takes no path, query or body parameters.

Example request#

curl https://api.tried.com.au/get-crm-config \
  -H "Authorization: Bearer $TRIED_API_KEY"
const res = await fetch("https://api.tried.com.au/get-crm-config", {
  headers: { Authorization: `Bearer ${process.env.TRIED_API_KEY}` },
});
const crm = await res.json();
import os, requests

res = requests.get(
    "https://api.tried.com.au/get-crm-config",
    headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
)
crm = res.json()

Response#

200 OK

{
  "providers": [
    { "provider": "hubspot", "required_credentials": ["access_token"], "connected": true },
    { "provider": "salesforce", "required_credentials": ["instance_url", "access_token"], "connected": false },
    { "provider": "dynamics365", "required_credentials": ["instance_url", "access_token"], "connected": false },
    { "provider": "gohighlevel", "required_credentials": ["access_token", "location_id"], "connected": false },
    { "provider": "zoho", "required_credentials": ["access_token"], "connected": false }
  ],
  "connections": [
    {
      "provider": "hubspot",
      "enabled": true,
      "mock": false,
      "credentials": { "access_token": "******e4a1" },
      "required_credentials": ["access_token"],
      "config": {
        "field_mapping": { "hs_lead_status": "lead_status" },
        "sync_calls": true,
        "sync_contacts": true
      },
      "last_sync_timestamp": 1792392000000,
      "last_modification_timestamp": 1792390000000
    }
  ]
}
Field Type Description
providers[].connected boolean Whether the workspace has a connection for this CRM.
connections[].enabled boolean Disabled connections skip post-call sync and reject sync jobs.
connections[].mock boolean true without credentials, with tokens from the mock OAuth provider, or when the server runs with TRIED_MOCK_PROVIDERS=1. Mock operations are recorded instead of sent.
connections[].credentials object or null Key names with masked values (six asterisks plus the last 4 characters). Keys ending in url and non-secret keys such as location_id and expires_at are shown in full.
connections[].config.field_mapping object CRM field name to contact field (first_name, last_name, email, phone_number, memory or a custom field).
connections[].config.sync_calls boolean Push the contact and a call note after every analysed call.
connections[].config.sync_contacts boolean Include all contacts in full sync jobs.
connections[].last_sync_timestamp integer or null When the last sync job finished.

Errors#

Status When
401 Missing or invalid API key.
403 The key's IP allowlist or scopes reject the request. This route needs the admin scope.
429 Rate limit exceeded. See Rate limits.

See Errors for the body format.

Retell compatibility#

Same path and method as Retell, but a different shape. Retell's CRM config holds one linked app_id, custom field schemas, analysis mappings, contact tags and a memory prompt. Tried returns per-provider connections with their own credentials and field mapping.