ZynzapAPI
CRM

Atualizar dados de CRM de um contato

Alcance: com product:contacts, a empresa inteira; com product:inbox, apenas contatos das conversas dos números liberados, e a chave precisa também de messages:send.

Permissão: product:contacts ou product:inbox.

POST
/rpc/UpdateContactCrm
AuthorizationBearer <token>

Chave de API criada no painel (API e integrações). Prefixos: zz_live_, zz_test_ (e os antigos wl_live_/wl_test_).

In: header

requestUpdateContactCrmRequest

Campos ausentes não mudam. temperature/owner_user_id vazios limpam; em fields, valor vazio limpa o campo (se não for obrigatório). Valores validados pelo tipo do campo.

billing?object

Não usado nesta operação.

deadlineMs?integer

Prazo máximo da operação em milissegundos.

Default30000
Range1 <= value <= 30000

Response Body

curl -X POST "https://api.zynzap.com.br/v1/rpc/UpdateContactCrm" \  -H "Authorization: Bearer $ZYNZAP_API_KEY" \  -H "Content-Type: application/json" \  -d '{  "request": {}}'
{
  "contact": {
    "id": "string",
    "name": "string",
    "phone": "string",
    "email": "string",
    "temperature": "string",
    "qualification": "string",
    "owner_user_id": "string",
    "tags": [
      {
        "id": "string",
        "name": "string",
        "color": "string",
        "archived": true,
        "contact_count": "string"
      }
    ],
    "fields": {
      "property1": "string",
      "property2": "string"
    },
    "source": "string",
    "open_opportunities": "string",
    "created_at_unix_ms": "string",
    "updated_at_unix_ms": "string",
    "comm_status": "string"
  },
  "conversation_tags": [
    {
      "id": "string",
      "name": "string",
      "color": "string",
      "archived": true,
      "contact_count": "string"
    }
  ],
  "opportunities": [
    {
      "id": "string",
      "contact_id": "string",
      "contact_name": "string",
      "contact_phone": "string",
      "contact_temperature": "string",
      "contact_qualification": "string",
      "conversation_id": "string",
      "pipeline_id": "string",
      "stage_id": "string",
      "title": "string",
      "value_cents": "string",
      "currency": "string",
      "owner_user_id": "string",
      "status": "string",
      "loss_reason_id": "string",
      "loss_note": "string",
      "expected_close_at": "string",
      "closed_at_unix_ms": "string",
      "stage_entered_at_unix_ms": "string",
      "source": "string",
      "created_by": "string",
      "created_at_unix_ms": "string",
      "updated_at_unix_ms": "string"
    }
  ],
  "tasks": [
    {
      "id": "string",
      "title": "string",
      "notes": "string",
      "contact_id": "string",
      "contact_name": "string",
      "opportunity_id": "string",
      "opportunity_title": "string",
      "conversation_id": "string",
      "assignee_user_id": "string",
      "due_at_unix_ms": "string",
      "done_at_unix_ms": "string",
      "done_by": "string",
      "source": "string",
      "created_by": "string",
      "created_at_unix_ms": "string"
    }
  ],
  "history": [
    {
      "id": "string",
      "attribute": "string",
      "old_value": "string",
      "new_value": "string",
      "actor_user_id": "string",
      "source": "string",
      "source_ref": "string",
      "created_at_unix_ms": "string"
    }
  ]
}
{
  "error": {
    "code": "VALIDATION_FAILED",
    "message": "Requisição inválida para esta operação.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6",
    "reason": "RPC_REQUEST_INVALID"
  }
}
{
  "error": {
    "code": "UNAUTHENTICATED",
    "message": "Credencial de API ausente, inválida ou revogada.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6",
    "reason": "API_AUTH_REQUIRED"
  }
}
{
  "error": {
    "code": "FORBIDDEN",
    "message": "Este endereço IP não está autorizado a usar esta chave de API.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6",
    "reason": "API_KEY_IP_FORBIDDEN"
  }
}
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Não encontramos o recurso solicitado.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6"
  }
}
{
  "error": {
    "code": "CONFLICT",
    "message": "A cotação expirou. Revise os custos novamente.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6",
    "reason": "BILLING_QUOTE_EXPIRED"
  }
}
{
  "error": {
    "code": "VALIDATION_FAILED",
    "message": "Requisição inválida para esta operação.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6",
    "reason": "RPC_REQUEST_INVALID"
  }
}
{
  "error": {
    "code": "RATE_LIMITED",
    "message": "Limite de requisições desta chave atingido. Aguarde um instante.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6",
    "reason": "API_KEY_RATE_LIMITED"
  }
}
{
  "error": {
    "code": "UNAVAILABLE",
    "message": "Resultado incerto. Confira o estado antes de repetir a operação.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6",
    "reason": "OUTCOME_UNCERTAIN"
  }
}