Primeros pasos

Módulo

Contactos

Registra, consulta y mueve contactos dentro del embudo del CRM.

GET/contactsAlcance: readOficial + Básico

Lista contactos de la cuenta autenticada.

Úsalo para alimentar CRMs externos, sincronizar bases y buscar contactos por etapa.

Parámetros de ruta

Sin parámetros adicionales.

Parámetros de query
CampoTipoDescripción
stage_idopcionaluuidFiltra contactos por una etapa del embudo.
connection_idopcionaluuidFiltra por la conexión WhatsApp dueña de la identidad.
phoneopcionalstringFiltra por teléfono con código de país (solo dígitos).
usernameopcionalstringFiltra por el identificador externo persistido.
business_scoped_user_idopcionalstringFiltra por la identidad BSUID de Meta.
parent_business_scoped_user_idopcionalstringFiltra por el parent BSUID de Meta.
limitopcionalnumberCantidad de registros por página. Predeterminado 50; máximo 200 en la mayoría de listas.
offsetopcionalnumberÍndice inicial de la página. Usa pagination.next_offset para la siguiente página.

Campos del cuerpo

Este endpoint no recibe cuerpo JSON.

Ejemplos listos

curl -X GET "https://connect.zyronstack.com/api/v1/contacts?limit=20&offset=0" \
  -H "Authorization: Bearer SUA_CHAVE_API"

Respuestas

200Lista devuelta con paginación.
401Clave ausente o inválida.
403La clave no tiene alcance read.

Ejemplo de respuesta

{
  "data": [
    {
      "id": "<CONTACT_ID>",
      "name": "Maria Silva",
      "phone": "5511999998888",
      "username": "maria",
      "stage_id": "<STAGE_ID>",
      "created_at": "2026-06-15T12:30:00.000Z"
    }
  ],
  "pagination": {
    "limit": 20,
    "offset": 0,
    "total": 134,
    "next_offset": 20
  }
}
GET/contacts/:idAlcance: readOficial + Básico

Consulta un contacto con recorrido y ventas.

Devuelve datos del contacto, sesiones de origen Signal y ventas relacionadas a sus conversaciones.

Parámetros de ruta
CampoTipoDescripción
idobligatoriouuidID del contacto.

Parámetros de query

Sin parámetros adicionales.

Campos del cuerpo

Este endpoint no recibe cuerpo JSON.

Ejemplos listos

curl -X GET "https://connect.zyronstack.com/api/v1/contacts/<CONTACT_ID>" \
  -H "Authorization: Bearer SUA_CHAVE_API"

Respuestas

200Contacto encontrado.
404Contacto no encontrado en esta cuenta.

Ejemplo de respuesta

{
  "data": {
    "id": "<CONTACT_ID>",
    "name": "Maria Silva",
    "phone": "5511999998888",
    "username": "maria",
    "stage_id": "<STAGE_ID>",
    "sessions": [
      {
        "channel": "ctwa",
        "utm_source": null,
        "utm_campaign": null,
        "ad_id": "23800000000000000",
        "ad_source_type": "ad",
        "ad_headline": "Fale com a gente",
        "ad_name": "Criativo vídeo depoimento",
        "adset_id": "23700000000000000",
        "adset_name": "Lookalike 1% — 25-45",
        "campaign_id": "23600000000000000",
        "campaign_name": "Leads — Julho",
        "landing_url": "https://sua-pagina.com/oferta"
      }
    ],
    "sales": [
      {
        "id": "91c9fd84-b47f-44ee-9b5e-4e93fc35b912",
        "status": "paid",
        "gross_cents": 19700,
        "currency": "BRL",
        "product_name": "Produto principal"
      }
    ]
  }
}
POST/contactsAlcance: writeOficial + Básico

Crea o actualiza un contacto por identidad.

Informa al menos una identidad: phone, username, business_scoped_user_id o parent_business_scoped_user_id. El teléfono se normaliza solo con dígitos. Las identidades Meta exigen connection_id. Si la identidad ya existe, la API actualiza los campos enviados.

Parámetros de ruta

Sin parámetros adicionales.

Parámetros de query

Sin parámetros adicionales.

Campos del cuerpo
CampoTipoDescripción
phoneopcionalstringTeléfono con DDI, solo números. Obligatorio si no envías otra identidad.
connection_idopcionaluuidConexión dueña de la identidad. Obligatorio con username, BSUID o parent BSUID.
nameopcionalstringNombre mostrado en el CRM, hasta 120 caracteres.
usernameopcionalstringIdentificador externo o usuario social.
business_scoped_user_idopcionalstringBSUID recibido de Meta.
parent_business_scoped_user_idopcionalstringParent BSUID recibido de Meta.
stage_idopcionaluuidEtapa inicial del embudo. Debe pertenecer a la cuenta.

Ejemplos listos

curl -X POST "https://connect.zyronstack.com/api/v1/contacts" \
  -H "Authorization: Bearer SUA_CHAVE_API" \
  -H "content-type: application/json" \
  -d '{
  "phone": "5511999998888",
  "name": "Joao Silva",
  "username": "joao",
  "stage_id": "<STAGE_ID>"
}'

Respuestas

201Contacto creado.
200Contacto existente actualizado.
422phone ausente o stage_id inválido.

Ejemplo de respuesta

{
  "data": {
    "id": "<CONTACT_ID>",
    "name": "Joao Silva",
    "phone": "5511999998888",
    "username": "joao",
    "stage_id": "<STAGE_ID>",
    "created_at": "2026-06-15T12:30:00.000Z"
  },
  "created": true
}
PATCH/contacts/:idAlcance: writeOficial + Básico

Actualiza datos o mueve el contacto de etapa.

Envía solo los campos que deseas cambiar. stage_id se valida contra las etapas de la cuenta. Las identidades WhatsApp también pueden completarse aquí.

Parámetros de ruta
CampoTipoDescripción
idobligatoriouuidID del contacto.

Parámetros de query

Sin parámetros adicionales.

Campos del cuerpo
CampoTipoDescripción
nameopcionalstringNuevo nombre del contacto.
phoneopcionalstringNuevo teléfono con DDI (solo dígitos).
usernameopcionalstringNuevo identificador externo.
business_scoped_user_idopcionalstringBSUID de Meta.
parent_business_scoped_user_idopcionalstringParent BSUID de Meta.
stage_idopcionaluuidNueva etapa del embudo.

Ejemplos listos

curl -X PATCH "https://connect.zyronstack.com/api/v1/contacts/<CONTACT_ID>" \
  -H "Authorization: Bearer SUA_CHAVE_API" \
  -H "content-type: application/json" \
  -d '{
  "stage_id": "<STAGE_ID>",
  "name": "Joao Silva"
}'

Respuestas

200Contacto actualizado.
404Contacto no encontrado.
422stage_id no pertenece a la cuenta.

Ejemplo de respuesta

{
  "data": {
    "id": "<CONTACT_ID>",
    "name": "Joao Silva",
    "phone": "5511999998888",
    "username": "joao",
    "stage_id": "<STAGE_ID>",
    "created_at": "2026-06-15T12:30:00.000Z"
  }
}