Skip to content

Sync API Overview ​

The Sync API is the request-response interface to a telecrm workspace. Every call returns the operation's outcome immediately — created and updated entities, validation remarks, or a structured error.

Use the Sync API for interactive workflows that need confirmation of each operation, for any read or search, and for any operation outside lead ingestion. For high-volume, fire-and-forget lead ingestion, use the Async API instead.

Resources ​

TagEndpoints
LeadsCreate, get, update, search.
ActionsCreate custom and payment actions, read individual actions, update them, search a lead's timeline.
FilesUpload files to a lead or a custom action, get a download URL, delete a file.
Team MembersList, create, get by email, update availability state.
Enterprise MetadataRead enterprise info, custom field definitions, custom action definitions, lead stage pipeline.

Endpoint ​

FieldValue
Base URLhttps://next.telecrm.in/autoupdate/v2

Authentication ​

Every request must include a Sync-typed bearer token in the Authorization header. Async tokens are rejected with 401 NOT_AUTHORIZED.

The one exception is update availability, which predates these conventions and returns 403 with a plain-text body instead.

Generate a token in the dashboard:

  1. Settings → Website and API → API token
  2. Click Create new token, choose type Sync, copy and save the token.

A workspace is limited to 3 Sync tokens at a time. See Authentication for full instructions.

Request conventions ​

  • All request and response bodies are JSON. Set Content-Type: application/json.
  • Search endpoints are POST with a JSON body — not GET with query strings.
  • Searches are case-insensitive and require exact matches unless an endpoint says otherwise.
  • Pagination uses skip (offset, default 0) and limit (page size, default 10). Each endpoint documents its own maximum — 100 everywhere except team members, which caps at 10.
  • Endpoints that return lead or action data also accept hidePII=true, which redacts personal data in the response.
  • Sort orders are documented per endpoint. Lead and action search results sort newest-first by creation timestamp; team-member listings sort ascending by name.

Field types and identifiers ​

The Sync API operates on the same workspace data as the Async API and shares the same field-type rules. Cross-references throughout this section point to the canonical Concepts pages:

  • Lead Identifier — the field that uniquely identifies a lead.
  • Field Types — text, phone, email, dropdown, tags, date, money, and the rest.
  • Field API Names — how to reference custom fields in payloads.
  • Actions — predefined PAYMENT and workspace-defined custom actions.
  • Action Types — full enum returned by action search.

TIP

Sync custom action type is the bare numeric code (e.g. "1001"). The ACTION_ prefix used by the Async API does not apply here.

Errors ​

Every non-2xx response uses the same envelope:

json
{
  "error": {
    "code": "ERROR_CODE",
    "message": "Human-readable explanation"
  }
}

Universal: 401 NOT_AUTHORIZED ​

Returned when the token is missing, invalid, or of the wrong type (an Async token used on a Sync endpoint, or a token that doesn't belong to the targeted enterprise).

json
{
  "error": {
    "code": "NOT_AUTHORIZED",
    "message": "Enterprise with ID 51ab23c9870 not found or invalid access token. Please generate a new one from the Website/API integrations section of the telecrm app."
  }
}

Common codes ​

Each endpoint documents its own status codes. The codes you'll see across the Sync API:

CodeWhen
BAD_REQUESTGeneric validation failure — bad query parameter, unsupported action type, immutable field changed.
VALIDATION_ERRORField-level validation failure (e.g. rating outside 1-5).
INVALID_LEADLead-level validation failure or attempt to modify the lead identifier.
LEAD_NOT_FOUNDNo lead with the given ID exists.
LEAD_ALREADY_EXISTSA lead with the same identifier value already exists (POST /lead).
ACTION_NOT_FOUNDNo action with the given ID exists on the lead, or no custom action with the given code.
TEAM_MEMEBER_NOT_FOUNDNo team member with the given email exists. The transposed spelling is what the API emits — match it literally.
FIELD_NOT_FOUNDNo custom field with the given API name.
NOT_FOUNDNo route matches the method and path.
METHOD_NOT_ALLOWEDThe path exists but not for that HTTP method — e.g. a GET on a search endpoint.
BUY_LICENSELicense seat limit reached when creating a team member.
NOT_AUTHORIZEDSee above.

Partial-success semantics ​

Three endpoints return a top-level success even when individual fields or actions failed validation:

Each returns a remarks array describing per-field outcomes:

json
{
  "lead_id": "603d2b2f9b1e8a001c8e4f5c",
  "actions": [
    { "action_id": "603d2b2f9b1e8a001c8e4f5d", "status": "CREATED" },
    { "action_id": null, "status": "IGNORED" }
  ],
  "remarks": [
    { "field": "fields.rating", "status": "IGNORED", "remark": "Rating must be between 1 and 5" },
    { "field": "actions[0].fields.email", "status": "IGNORED", "remark": "Email is invalid" }
  ]
}

A 200/201 response is not a guarantee that every field or action was accepted. Always check remarks and per-action status values.

WARNING

The lead's ID is spelled lead_id on POST /lead, leadid on POST /lead/{leadId}/action and POST /lead/{leadId}/action/{actionId}, and id on the endpoints that return a lead object. The three spellings are not interchangeable.

OpenAPI specification ​

The full Sync API spec is published as a self-contained YAML at /openapi/sync.yaml. Use it for SDK generation, Postman imports, or any machine-readable consumption.