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.
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.

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.
  • 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.
TEAM_MEMBER_NOT_FOUNDNo team member with the given email exists.
ENTERPRISE_NOT_FOUNDThe enterprise ID does not exist.
NOT_FOUNDCustom field or custom action not found.
BUY_LICENSELicense seat limit reached when creating a team member.
NOT_AUTHORIZEDSee above.

Partial-success semantics

The two endpoints that accept multiple sub-entities — POST /lead (lead + initial actions) and POST /lead/{leadId}/action (batch of actions) — return a top-level success even when individual fields or actions failed validation.

The response body always contains 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.

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.