Saltar al contenido
Beta

Referencia Todos los objetos

Todos los objetos

Todos los objetos que devuelve la API, campo a campo, con un ejemplo de cada uno.

En esta página están todos los objetos que devuelve la API, con sus campos y un ejemplo. La página de referencia de cada recurso muestra los mismos objetos junto a los endpoints que los devuelven.

Cómo son las respuestas

Las respuestas tienen una de estas cinco formas:

  • Un objeto. Una petición de un solo registro devuelve el propio objeto. GET /v1/leads/{id} devuelve el lead con sus dos facetas, attribution y response, dentro.
  • Una lista. Las listas devuelven object: "list", los objetos en data, has_more y next_cursor, que es null en la última página. Lo explica Listas y paginación.
  • Una página del feed de cambios. El mismo sobre, pero data contiene elementos del feed (el objeto FeedItem de más abajo) y next_cursor siempre es una cadena, también en una página vacía. Lo explica Sincroniza una copia.
  • Un error. Un cuerpo application/problem+json, descrito en Errores.
  • La comprobación de estado. GET /v1/health responde {"object": "health", "status": "ok"}.

Los registros, como un lead, una llamada o un equipo, llevan object, que indica su tipo, y livemode, que es true en todo lo que devuelve la API. Los registros que entrega el feed de cambios llevan además version y updated_at, como explica Convenciones.

Cómo leer una lista de campos

  • Todos los campos están siempre. En una respuesta, cada campo de la lista aparece en todos los objetos, con dos excepciones: un elemento del feed lleva exactamente uno de object y removed, y un error lleva param solo cuando indica uno. Un campo sin valor es null: nunca falta y nunca es una cadena vacía.
  • Puede ser null marca un campo que puede ser null. Cobertura de los datos explica qué puede significar un null en cada tipo de dato.
  • Valores posibles enumera los valores que un campo puede tomar hoy. En cualquier versión pueden aparecer valores nuevos, así que conserva el registro cuando encuentres uno que no conoces, como explica Convenciones.
  • Los identificadores muestran el prefijo del registro al que apuntan, como brd_ para un tablero, y un tipo que es otro objeto enlaza con él.
  • Los objetos anidados aparecen plegados: abre uno para ver sus campos.

La misma información está en el documento OpenAPI, y todos los ejemplos salen de los datos de ejemplo del kit, fixtures.json: contactos ficticios con livemode: false.

El objeto Me

La integración propietaria de la clave, con los equipos que lee.

Atributos

  • object string

    Siempre integration.

  • id string Prefijo del id prn_…

    Identificador público de la integración.

  • livemode boolean

    true con una clave real; false en los datos de ejemplo.

  • name string

    El nombre que un administrador dio a la integración.

  • key object

    La clave usada en esta petición.

  • teams Array<string> Prefijo del id team_…

    Los equipos que lee esta clave hoy. Sus datos están en GET /v1/teams.

  • scopes Array<string>

    Los permisos de la clave: el conjunto fijo de lectura en v1.0a.

    Valores posibles
    • teams:read
    • crm:read
    • calls:read
    • messages:read
    • calendar:read
Me · ejemploJSON
{
  "object": "integration",
  "id": "prn_m1NFIcoIU8smXfqR4ymgt6j07TfRF",
  "livemode": false,
  "name": "Example CRM sync",
  "key": {
    "last4": "Q7xZ"
  },
  "teams": [
    "team_r9uYrIW4gSFJJ6hZQ9ip1UIpPaAD1CF7NR"
  ],
  "scopes": [
    "teams:read",
    "crm:read",
    "calls:read",
    "messages:read",
    "calendar:read"
  ]
}

El objeto Team

Un equipo que lee esta clave, con su zona horaria y su país predeterminado.

Atributos

  • id string Prefijo del id team_…

    Identificador público del registro.

  • object string

    Siempre team.

  • livemode boolean

    true en datos reales; false en los datos de ejemplo.

  • name string Puede ser null ≥ 1 caracteres

    El nombre del equipo tal como aparece en Totem, o null si no hay ninguno guardado.

  • timezone string ≥ 1 caracteres

    La zona horaria IANA del equipo: la de su horario comercial si es válida; si no, la de su país por defecto (Europe/Madrid si no hay ninguna). Úsala para interpretar las horas locales del equipo.

  • default_country string Puede ser null Patrón ^[A-Z]{2}$

    El país por defecto del equipo (ISO 3166-1 alfa-2), que Totem usa cuando alguien escribe un teléfono sin prefijo; null si no hay ninguno. La API no lo aplica: Lead.phone se valida sin país por defecto, así que un número guardado sin prefijo de país tiene phone_status: invalid.

Team · ejemploJSON
{
  "id": "team_r9uYrIW4gSFJJ6hZQ9ip1UIpPaAD1CF7NR",
  "object": "team",
  "livemode": false,
  "name": "Example Dental",
  "timezone": "America/New_York",
  "default_country": "US"
}

El objeto Member

Un miembro del equipo, solo por su nombre visible: Totem no exporta su correo electrónico, su teléfono ni su rol.

Atributos

  • id string Prefijo del id mem_…

    Identificador público del registro.

  • object string

    Siempre member.

  • livemode boolean

    true en datos reales; false en los datos de ejemplo.

  • team string Prefijo del id team_…

    El equipo al que pertenece este registro.

  • display_name string Puede ser null ≥ 1 caracteres

    El nombre visible del miembro, o su nombre y apellido, o null si no hay ninguno guardado. Totem no exporta su correo electrónico, su teléfono ni su rol.

Member · ejemploJSON
{
  "id": "mem_h548E7UiYhutHhucVrQCzkM0eaea0",
  "object": "member",
  "livemode": false,
  "team": "team_r9uYrIW4gSFJJ6hZQ9ip1UIpPaAD1CF7NR",
  "display_name": "Sam Lee"
}

El objeto Lead

Un lead o cliente: solo los campos del lead.

Atributos

  • id string Prefijo del id lead_…

    Identificador público del registro.

  • object string

    Siempre lead.

  • livemode boolean

    true en datos reales; false en los datos de ejemplo.

  • team string Prefijo del id team_…

    El equipo al que pertenece el registro.

  • record_kind string

    lead si el registro tiene un estado del embudo; si no, client. Un lead cuyo estado no conoce esta versión trae status: null.

    Valores posibles
    • lead
    • client
  • name string Puede ser null

    Nombre o nombre visible, o null.

  • surname string Puede ser null

    Apellidos, o null.

  • email string Puede ser null

    Email tal como está guardado, o null.

  • company string Puede ser null

    Empresa, o null.

  • phone string Puede ser null

    Teléfono en E.164, solo si el número guardado es válido; si no, null.

  • phone_status string

    valid (ver phone), invalid (hay un número guardado que no es válido, por ejemplo uno guardado sin prefijo de país) o missing.

    Valores posibles
    • valid
    • invalid
    • missing
  • status string Puede ser null

    Estado en el embudo; null en un cliente o si es un estado que esta versión no conoce. converted no significa "ganado".

    Valores posibles
    • new
    • contacted
    • qualified
    • negotiating
    • converted
    • lost
    • archived
    • unreachable
  • status_set_by string Puede ser null

    Quién fijó el estado actual: una persona, la IA, la automatización de Totem, una llamada a la API o desconocido (ninguna transición registrada llega a él). Null cuando status es null.

    Valores posibles
    • human
    • ai
    • system
    • api
    • unknown
  • archive_reason string Puede ser null

    Por qué se archivó el registro, como código cerrado; el texto libre guardado es other. Null si no hay ninguno.

    Valores posibles
    • opt_out
    • no_consent
    • not_interested
    • not_qualified
    • no_contact
    • merged
    • family_transfer
    • other
  • archived_from_status string Puede ser null

    El estado que tenía el lead antes de su archivo actual; null si no está archivado o si se desconoce.

    Valores posibles
    • new
    • contacted
    • qualified
    • negotiating
    • converted
    • lost
    • archived
    • unreachable
  • contact_permissions object

    Permisos de contacto. Aplícalos antes de cualquier contacto desde tus propios sistemas.

  • merged_into string Puede ser null Prefijo del id lead_…

    El lead en el que se fusionó este registro, o null (también si ese lead ya no existe).

  • transferred_to object Puede ser null

    Adónde se traspasó este lead dentro de tu organización, o null. El equipo puede ser uno que tu clave no lee.

  • revived_at string Puede ser null Formato date-time

    Cuándo volvió el contacto por su cuenta y reactivó un lead archivado por última vez, o null.

  • pipeline_cleared boolean

    Verdadero si el lead se convirtió con "borrar datos del embudo": tablero, etapa, prioridad, responsables, valor estimado y los campos de origen salvo source_channel son null porque se borraron.

  • converted_at string Puede ser null Formato date-time

    Cuándo se convirtió el lead, mientras su estado es converted; si no, null.

  • value_at_conversion number Puede ser null

    El valor estimado al convertirlo, en unidades principales. Se conserva al borrar los datos del embudo.

  • priority string Puede ser null

    Prioridad, o null.

    Valores posibles
    • low
    • medium
    • high
    • urgent
  • tags Array<string>

    Etiquetas tal como están guardadas. lead y booking son etiquetas del sistema.

  • board string Puede ser null Prefijo del id brd_…

    El tablero, resuelto a través de la etapa si la hay; o null.

  • stage string Puede ser null Prefijo del id stg_…

    La etapa, o null.

  • assignees Array<string> Puede ser null Prefijo del id mem_…

    Miembros asignados, ordenados. Null cuando el registro no tiene datos del embudo.

  • estimated_value number Puede ser null

    Valor estimado en unidades principales tal como está guardado (con decimales), o null.

  • estimated_value_currency null Puede ser null

    Siempre null: Totem no guarda moneda con el valor.

  • source string Puede ser null

    El origen guardado del lead; api cubre también los leads que crea el propio Totem (por ejemplo, desde una conversación o una llamada), ver source_detail. Null si no hay ninguno.

    Valores posibles
    • meta_lead_ads
    • manual
    • website_form
    • booking_page
    • csv_import
    • api
  • source_channel string Puede ser null

    El canal por el que empezó el registro (por ejemplo whatsapp, phone, widget), o null. El equipo puede editarlo.

  • source_detail string Puede ser null

    conversation, call, external:<proveedor>, gated_ad:<origen>, family_handoff, api_intake o unknown; null cuando source no necesita detalle.

  • source_provenance string Puede ser null

    server_written si Totem fijó el origen a partir de lo que informó la plataforma de anuncios; si no, member_editable (el equipo puede cambiarlo). Null junto con source.

    Valores posibles
    • server_written
    • member_editable
  • created_at string Formato date-time

    Cuándo se creó el registro.

  • version integer Rango ≥ 1

    Aumenta cada vez que cambia alguno de los campos exportados del registro. Aplica un cambio solo si su versión es mayor que la que guardas.

  • updated_at string Formato date-time

    Cuándo registró Totem esta versión (UTC). No es la hora en que ocurrió el hecho.

Lead · ejemploJSON
{
  "id": "lead_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXKSF0QbLS8CiUKJpEP34LFQG",
  "object": "lead",
  "livemode": false,
  "team": "team_r9uYrIW4gSFJJ6hZQ9ip1UIpPaAD1CF7NR",
  "record_kind": "lead",
  "name": "Alex",
  "surname": "Rivera",
  "email": "alex.rivera@example.com",
  "company": "Example Dental",
  "phone": "+12025550123",
  "phone_status": "valid",
  "status": "contacted",
  "status_set_by": "ai",
  "archive_reason": null,
  "archived_from_status": null,
  "contact_permissions": {
    "do_not_contact": false,
    "email_opt_out": false,
    "email_opt_out_at": null,
    "whatsapp_consent": null,
    "provenance": {
      "do_not_contact": null,
      "email_opt_out": null,
      "whatsapp_consent": null
    }
  },
  "merged_into": null,
  "transferred_to": null,
  "revived_at": null,
  "pipeline_cleared": false,
  "converted_at": null,
  "value_at_conversion": null,
  "priority": "high",
  "tags": [
    "spring-check-up"
  ],
  "board": "brd_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMX3trzsVUZQuHcMSuDh1aRIst",
  "stage": "stg_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXWBYWcKwVTY3CRZlVS3oYvs0",
  "assignees": [
    "mem_h548E7UiYhutHhucVrQCzkM0eaea0"
  ],
  "estimated_value": 1200,
  "estimated_value_currency": null,
  "source": "meta_lead_ads",
  "source_channel": null,
  "source_detail": null,
  "source_provenance": "member_editable",
  "created_at": "2026-09-28T10:15:00.000Z",
  "version": 3,
  "updated_at": "2026-09-28T10:20:01.250Z"
}

El objeto LeadDetail

Un lead con sus facetas attribution y response, cada una con su propia version. Una faceta es null solo mientras Totem aún la prepara.

Atributos

  • id string Prefijo del id lead_…

    Identificador público del registro.

  • object string

    Siempre lead.

  • livemode boolean

    true en datos reales; false en los datos de ejemplo.

  • team string Prefijo del id team_…

    El equipo al que pertenece el registro.

  • record_kind string

    lead si el registro tiene un estado del embudo; si no, client. Un lead cuyo estado no conoce esta versión trae status: null.

    Valores posibles
    • lead
    • client
  • name string Puede ser null

    Nombre o nombre visible, o null.

  • surname string Puede ser null

    Apellidos, o null.

  • email string Puede ser null

    Email tal como está guardado, o null.

  • company string Puede ser null

    Empresa, o null.

  • phone string Puede ser null

    Teléfono en E.164, solo si el número guardado es válido; si no, null.

  • phone_status string

    valid (ver phone), invalid (hay un número guardado que no es válido, por ejemplo uno guardado sin prefijo de país) o missing.

    Valores posibles
    • valid
    • invalid
    • missing
  • status string Puede ser null

    Estado en el embudo; null en un cliente o si es un estado que esta versión no conoce. converted no significa "ganado".

    Valores posibles
    • new
    • contacted
    • qualified
    • negotiating
    • converted
    • lost
    • archived
    • unreachable
  • status_set_by string Puede ser null

    Quién fijó el estado actual: una persona, la IA, la automatización de Totem, una llamada a la API o desconocido (ninguna transición registrada llega a él). Null cuando status es null.

    Valores posibles
    • human
    • ai
    • system
    • api
    • unknown
  • archive_reason string Puede ser null

    Por qué se archivó el registro, como código cerrado; el texto libre guardado es other. Null si no hay ninguno.

    Valores posibles
    • opt_out
    • no_consent
    • not_interested
    • not_qualified
    • no_contact
    • merged
    • family_transfer
    • other
  • archived_from_status string Puede ser null

    El estado que tenía el lead antes de su archivo actual; null si no está archivado o si se desconoce.

    Valores posibles
    • new
    • contacted
    • qualified
    • negotiating
    • converted
    • lost
    • archived
    • unreachable
  • contact_permissions object

    Permisos de contacto. Aplícalos antes de cualquier contacto desde tus propios sistemas.

  • merged_into string Puede ser null Prefijo del id lead_…

    El lead en el que se fusionó este registro, o null (también si ese lead ya no existe).

  • transferred_to object Puede ser null

    Adónde se traspasó este lead dentro de tu organización, o null. El equipo puede ser uno que tu clave no lee.

  • revived_at string Puede ser null Formato date-time

    Cuándo volvió el contacto por su cuenta y reactivó un lead archivado por última vez, o null.

  • pipeline_cleared boolean

    Verdadero si el lead se convirtió con "borrar datos del embudo": tablero, etapa, prioridad, responsables, valor estimado y los campos de origen salvo source_channel son null porque se borraron.

  • converted_at string Puede ser null Formato date-time

    Cuándo se convirtió el lead, mientras su estado es converted; si no, null.

  • value_at_conversion number Puede ser null

    El valor estimado al convertirlo, en unidades principales. Se conserva al borrar los datos del embudo.

  • priority string Puede ser null

    Prioridad, o null.

    Valores posibles
    • low
    • medium
    • high
    • urgent
  • tags Array<string>

    Etiquetas tal como están guardadas. lead y booking son etiquetas del sistema.

  • board string Puede ser null Prefijo del id brd_…

    El tablero, resuelto a través de la etapa si la hay; o null.

  • stage string Puede ser null Prefijo del id stg_…

    La etapa, o null.

  • assignees Array<string> Puede ser null Prefijo del id mem_…

    Miembros asignados, ordenados. Null cuando el registro no tiene datos del embudo.

  • estimated_value number Puede ser null

    Valor estimado en unidades principales tal como está guardado (con decimales), o null.

  • estimated_value_currency null Puede ser null

    Siempre null: Totem no guarda moneda con el valor.

  • source string Puede ser null

    El origen guardado del lead; api cubre también los leads que crea el propio Totem (por ejemplo, desde una conversación o una llamada), ver source_detail. Null si no hay ninguno.

    Valores posibles
    • meta_lead_ads
    • manual
    • website_form
    • booking_page
    • csv_import
    • api
  • source_channel string Puede ser null

    El canal por el que empezó el registro (por ejemplo whatsapp, phone, widget), o null. El equipo puede editarlo.

  • source_detail string Puede ser null

    conversation, call, external:<proveedor>, gated_ad:<origen>, family_handoff, api_intake o unknown; null cuando source no necesita detalle.

  • source_provenance string Puede ser null

    server_written si Totem fijó el origen a partir de lo que informó la plataforma de anuncios; si no, member_editable (el equipo puede cambiarlo). Null junto con source.

    Valores posibles
    • server_written
    • member_editable
  • created_at string Formato date-time

    Cuándo se creó el registro.

  • version integer Rango ≥ 1

    Aumenta cada vez que cambia alguno de los campos exportados del registro. Aplica un cambio solo si su versión es mayor que la que guardas.

  • updated_at string Formato date-time

    Cuándo registró Totem esta versión (UTC). No es la hora en que ocurrió el hecho.

  • attribution LeadAttribution Puede ser null

    La faceta de atribución del lead, o null mientras Totem aún la prepara.

  • response LeadResponse Puede ser null

    La faceta de respuesta del lead, o null mientras Totem aún la prepara.

LeadDetail · ejemploJSON
{
  "id": "lead_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXKSF0QbLS8CiUKJpEP34LFQG",
  "object": "lead",
  "livemode": false,
  "team": "team_r9uYrIW4gSFJJ6hZQ9ip1UIpPaAD1CF7NR",
  "record_kind": "lead",
  "name": "Alex",
  "surname": "Rivera",
  "email": "alex.rivera@example.com",
  "company": "Example Dental",
  "phone": "+12025550123",
  "phone_status": "valid",
  "status": "contacted",
  "status_set_by": "ai",
  "archive_reason": null,
  "archived_from_status": null,
  "contact_permissions": {
    "do_not_contact": false,
    "email_opt_out": false,
    "email_opt_out_at": null,
    "whatsapp_consent": null,
    "provenance": {
      "do_not_contact": null,
      "email_opt_out": null,
      "whatsapp_consent": null
    }
  },
  "merged_into": null,
  "transferred_to": null,
  "revived_at": null,
  "pipeline_cleared": false,
  "converted_at": null,
  "value_at_conversion": null,
  "priority": "high",
  "tags": [
    "spring-check-up"
  ],
  "board": "brd_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMX3trzsVUZQuHcMSuDh1aRIst",
  "stage": "stg_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXWBYWcKwVTY3CRZlVS3oYvs0",
  "assignees": [
    "mem_h548E7UiYhutHhucVrQCzkM0eaea0"
  ],
  "estimated_value": 1200,
  "estimated_value_currency": null,
  "source": "meta_lead_ads",
  "source_channel": null,
  "source_detail": null,
  "source_provenance": "member_editable",
  "created_at": "2026-09-28T10:15:00.000Z",
  "version": 3,
  "updated_at": "2026-09-28T10:20:01.250Z",
  "attribution": {
    "id": "lead_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXKSF0QbLS8CiUKJpEP34LFQG",
    "object": "lead_attribution",
    "livemode": false,
    "team": "team_r9uYrIW4gSFJJ6hZQ9ip1UIpPaAD1CF7NR",
    "original_capture": {
      "capture": "at_creation",
      "captured_at": "2026-09-28T10:15:00.000Z",
      "source": "meta_lead_ads",
      "source_hint": null,
      "source_channel": null,
      "external_provider": null,
      "received_at": "2026-09-28T10:15:00.000Z",
      "submitted_at": "2026-09-28T10:14:30.000Z",
      "origin": null,
      "campaign": {
        "id": {
          "value": "120210000000000101",
          "provenance": "provider"
        },
        "name": {
          "value": "Spring check-up",
          "provenance": "provider"
        }
      },
      "ad": {
        "id": {
          "value": "120210000000000303",
          "provenance": "provider"
        },
        "name": {
          "value": "Free first visit",
          "provenance": "provider"
        }
      },
      "ad_set": {
        "id": {
          "value": "120210000000000202",
          "provenance": "provider"
        },
        "name": {
          "value": "Families nearby",
          "provenance": "provider"
        }
      },
      "ad_group": {
        "id": {
          "value": null,
          "provenance": "not_captured"
        }
      },
      "form": {
        "id": {
          "value": "900000000000000404",
          "provenance": "provider"
        },
        "name": {
          "value": "Book a check-up",
          "provenance": "provider"
        }
      },
      "creative": {
        "id": {
          "value": null,
          "provenance": "not_captured"
        }
      },
      "asset_group": {
        "id": {
          "value": null,
          "provenance": "not_captured"
        }
      },
      "page": {
        "id": {
          "value": "100000000000000505",
          "provenance": "provider"
        },
        "name": {
          "value": "Example Dental",
          "provenance": "provider"
        }
      },
      "utm": null,
      "click_network": {
        "value": null,
        "provenance": "not_captured"
      },
      "ad_referral": null,
      "family_origin": null,
      "audience": {
        "value": null,
        "missing_reason": "unsupported"
      }
    },
    "original_capture_missing_reason": null,
    "latest_submission": null,
    "latest_submission_missing_reason": "not_captured",
    "version": 1,
    "updated_at": "2026-09-28T10:15:02.100Z"
  },
  "response": {
    "id": "lead_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXKSF0QbLS8CiUKJpEP34LFQG",
    "object": "lead_response",
    "livemode": false,
    "team": "team_r9uYrIW4gSFJJ6hZQ9ip1UIpPaAD1CF7NR",
    "last_inbound_at": "2026-10-01T08:58:00.000Z",
    "last_outbound_at": "2026-10-01T08:59:30.000Z",
    "awaiting_reply": false,
    "last_answered_call_at": "2026-09-28T10:17:00.000Z",
    "last_whatsapp_delivery_status": "read",
    "coverage": {
      "conversations": 2,
      "calls": 1,
      "channels_without_delivery_data": [
        "email"
      ],
      "truncated": false
    },
    "version": 7,
    "updated_at": "2026-10-01T08:59:31.040Z"
  }
}

El objeto LeadAttribution

De dónde viene un lead: su captura original y su último envío.

Atributos

  • id string Prefijo del id lead_…

    Identificador público del registro.

  • object string

    Siempre lead_attribution.

  • livemode boolean

    true en datos reales; false en los datos de ejemplo.

  • team string Prefijo del id team_…

    El equipo al que pertenece el lead.

  • original_capture object Puede ser null

    Cómo entró el lead en el CRM por primera vez, fijado una sola vez; null si no se capturó. "Original" es la primera vez que el contacto entró en el CRM, no el primer anuncio al que respondió.

  • original_capture_missing_reason string Puede ser null

    not_captured cuando original_capture es null; si no, null.

    Valores posibles
    • not_captured
  • latest_submission object Puede ser null

    El envío de anuncio más reciente registrado para este lead, incluida una repetición sobre un contacto existente; null si no hay ninguno. Un envío que la plataforma de anuncios informa como borrado (un miembro de LinkedIn que borra su respuesta al formulario) deja de mostrarse, y cuando el más reciente caduca o se retira puede mostrarse uno anterior.

  • latest_submission_missing_reason string Puede ser null

    not_captured cuando latest_submission es null; si no, null.

    Valores posibles
    • not_captured
  • version integer Rango ≥ 1

    Aumenta cada vez que cambia alguno de los campos exportados del registro. Aplica un cambio solo si su versión es mayor que la que guardas.

  • updated_at string Formato date-time

    Cuándo registró Totem esta versión (UTC). No es la hora en que ocurrió el hecho.

LeadAttribution · ejemploJSON
{
  "id": "lead_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXKSF0QbLS8CiUKJpEP34LFQG",
  "object": "lead_attribution",
  "livemode": false,
  "team": "team_r9uYrIW4gSFJJ6hZQ9ip1UIpPaAD1CF7NR",
  "original_capture": {
    "capture": "at_creation",
    "captured_at": "2026-09-28T10:15:00.000Z",
    "source": "meta_lead_ads",
    "source_hint": null,
    "source_channel": null,
    "external_provider": null,
    "received_at": "2026-09-28T10:15:00.000Z",
    "submitted_at": "2026-09-28T10:14:30.000Z",
    "origin": null,
    "campaign": {
      "id": {
        "value": "120210000000000101",
        "provenance": "provider"
      },
      "name": {
        "value": "Spring check-up",
        "provenance": "provider"
      }
    },
    "ad": {
      "id": {
        "value": "120210000000000303",
        "provenance": "provider"
      },
      "name": {
        "value": "Free first visit",
        "provenance": "provider"
      }
    },
    "ad_set": {
      "id": {
        "value": "120210000000000202",
        "provenance": "provider"
      },
      "name": {
        "value": "Families nearby",
        "provenance": "provider"
      }
    },
    "ad_group": {
      "id": {
        "value": null,
        "provenance": "not_captured"
      }
    },
    "form": {
      "id": {
        "value": "900000000000000404",
        "provenance": "provider"
      },
      "name": {
        "value": "Book a check-up",
        "provenance": "provider"
      }
    },
    "creative": {
      "id": {
        "value": null,
        "provenance": "not_captured"
      }
    },
    "asset_group": {
      "id": {
        "value": null,
        "provenance": "not_captured"
      }
    },
    "page": {
      "id": {
        "value": "100000000000000505",
        "provenance": "provider"
      },
      "name": {
        "value": "Example Dental",
        "provenance": "provider"
      }
    },
    "utm": null,
    "click_network": {
      "value": null,
      "provenance": "not_captured"
    },
    "ad_referral": null,
    "family_origin": null,
    "audience": {
      "value": null,
      "missing_reason": "unsupported"
    }
  },
  "original_capture_missing_reason": null,
  "latest_submission": null,
  "latest_submission_missing_reason": "not_captured",
  "version": 1,
  "updated_at": "2026-09-28T10:15:02.100Z"
}

El objeto LeadResponse

Cómo ha respondido el equipo a un lead en sus conversaciones y llamadas: los últimos mensajes en cada sentido y si tiene una respuesta pendiente. Usa el identificador de su lead.

Atributos

  • id string Prefijo del id lead_…

    Identificador público del registro.

  • object string

    Siempre lead_response.

  • livemode boolean

    true en datos reales; false en los datos de ejemplo.

  • team string Prefijo del id team_…

    El equipo al que pertenece este registro.

  • last_inbound_at string Puede ser null Formato date-time

    El último mensaje del cliente en cualquiera de las conversaciones del lead (UTC), o null. No cuentan: mensajes borrados, historial de WhatsApp importado ni los turnos del visitante del chat web. Los contenidos compartidos de Instagram no se distinguen y sí cuentan.

  • last_outbound_at string Puede ser null Formato date-time

    El último mensaje enviado al cliente que no falló, en cualquiera de las conversaciones del lead y lo enviara quien lo enviara (UTC), o null. El historial de WhatsApp importado sí cuenta.

  • awaiting_reply boolean

    Verdadero cuando last_inbound_at es posterior a la última respuesta en cualquiera de las conversaciones del lead. Una respuesta es un mensaje enviado que no falló y que se registró como respuesta de conversación o sin propósito; no cuentan la prospección, los mensajes transaccionales (como los recordatorios) ni el historial importado. La mayoría de los mensajes guardados no tienen propósito, así que un envío automático registrado sin él también cuenta como respuesta. Falso si el cliente nunca ha escrito.

  • last_answered_call_at string Puede ser null Formato date-time

    Cuándo empezó la última llamada del lead cuyo outcome es answered_human o answered_ai (UTC), o null. Una saliente conectada en las líneas de teléfono de Totem es unknown, así que no cuenta.

  • last_whatsapp_delivery_status string Puede ser null

    delivered, read o failed del último mensaje enviado al lead por WhatsApp. Null si ese mensaje aún no tiene confirmación (sent nunca se guarda) o si al lead no se le ha enviado ningún mensaje por WhatsApp.

    Valores posibles
    • delivered
    • read
    • failed
  • coverage object

    De qué se calcularon estos datos.

  • version integer Rango ≥ 1

    Aumenta cada vez que cambia alguno de los campos exportados del registro. Aplica un cambio solo si su versión es mayor que la que guardas.

  • updated_at string Formato date-time

    Cuándo registró Totem esta versión (UTC). No es la hora en que ocurrió el hecho.

LeadResponse · ejemploJSON
{
  "id": "lead_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXKSF0QbLS8CiUKJpEP34LFQG",
  "object": "lead_response",
  "livemode": false,
  "team": "team_r9uYrIW4gSFJJ6hZQ9ip1UIpPaAD1CF7NR",
  "last_inbound_at": "2026-10-01T08:58:00.000Z",
  "last_outbound_at": "2026-10-01T08:59:30.000Z",
  "awaiting_reply": false,
  "last_answered_call_at": "2026-09-28T10:17:00.000Z",
  "last_whatsapp_delivery_status": "read",
  "coverage": {
    "conversations": 2,
    "calls": 1,
    "channels_without_delivery_data": [
      "email"
    ],
    "truncated": false
  },
  "version": 7,
  "updated_at": "2026-10-01T08:59:31.040Z"
}

El objeto Activity

Una transición de etapa, estado o responsables de un lead. Una actividad no cambia una vez escrita.

Atributos comunes a todas las variantes

  • id string Prefijo del id act_…

    Identificador público del registro.

  • object string

    Siempre activity.

  • livemode boolean

    true en datos reales; false en los datos de ejemplo.

  • team string Prefijo del id team_…

    El equipo al que pertenece el lead.

  • lead string Puede ser null Prefijo del id lead_…

    El lead que cambió. Null solo mientras Totem aún no ha asignado su id al lead.

  • occurred_at string Formato date-time

    Cuándo se guardó el cambio.

  • actor_kind string

    Quién hizo el cambio: una persona, la IA, la automatización de Totem, una llamada a la API o desconocido. Totem sabe quién hizo un cambio solo cuando el mismo guardado escribió el estado del lead, así que un cambio de etapa o de responsables hecho por sí solo es desconocido.

    Valores posibles
    • human
    • ai
    • system
    • api
    • unknown
  • stage_snapshot object Puede ser null

    La etapa en la que quedó el lead tras el cambio (al borrar los datos del embudo, la que dejó), o null.

  • value_snapshot number Puede ser null

    El valor estimado en ese momento, en unidades principales, o null.

  • version integer Rango ≥ 1

    Aumenta cada vez que cambia alguno de los campos exportados del registro. Aplica un cambio solo si su versión es mayor que la que guardas.

  • updated_at string Formato date-time

    Cuándo registró Totem esta versión (UTC). No es la hora en que ocurrió el hecho.

Variantes

Cada Activity es exactamente una de estas 3 variantes.

Una transición de estado

Cuando type es uno de status_changed archived unarchived revived

  • type string

    status_changed, archived, unarchived o revived (el contacto volvió por su cuenta y reabrió un lead archivado).

    Valores posibles
    • status_changed
    • archived
    • unarchived
    • revived
  • from string Puede ser null

    El estado anterior, o null si no había.

    Valores posibles
    • new
    • contacted
    • qualified
    • negotiating
    • converted
    • lost
    • archived
    • unreachable
  • to string

    El estado posterior.

    Valores posibles
    • new
    • contacted
    • qualified
    • negotiating
    • converted
    • lost
    • archived
    • unreachable

Un cambio de etapa

Cuando type es stage_changed

  • type string

    Siempre stage_changed.

  • from object Puede ser null

    La etapa y el tablero anteriores, o null si el lead no tenía ninguno.

  • to object

    La etapa y el tablero posteriores.

Un cambio de miembros asignados

Cuando type es assignees_changed

  • type string

    Siempre assignees_changed.

  • from Array<string> Prefijo del id mem_…

    Los miembros asignados antes, ordenados.

  • to Array<string> Prefijo del id mem_…

    Los miembros asignados después, ordenados.

Activity · ejemploJSON
{
  "id": "act_aBgzeetVKDEjpAAkXfEFF53ZGd2ZMmGhUDKgagqLbh6c7R1GqOl0xsFw7pyRhD3SqqYWGMdb371xxj",
  "object": "activity",
  "livemode": false,
  "type": "stage_changed",
  "team": "team_r9uYrIW4gSFJJ6hZQ9ip1UIpPaAD1CF7NR",
  "lead": "lead_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXKSF0QbLS8CiUKJpEP34LFQG",
  "occurred_at": "2026-09-28T10:20:00.000Z",
  "actor_kind": "ai",
  "stage_snapshot": {
    "stage": "stg_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXWBYWcKwVTY3CRZlVS3oYvs0",
    "board": "brd_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMX3trzsVUZQuHcMSuDh1aRIst",
    "name": "Contacted"
  },
  "value_snapshot": 1200,
  "from": {
    "stage": "stg_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXWBYWcKwVTY3CRZlVR3422Yg",
    "board": "brd_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMX3trzsVUZQuHcMSuDh1aRIst"
  },
  "to": {
    "stage": "stg_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXWBYWcKwVTY3CRZlVS3oYvs0",
    "board": "brd_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMX3trzsVUZQuHcMSuDh1aRIst"
  },
  "version": 1,
  "updated_at": "2026-09-28T10:20:01.500Z"
}

El objeto Board

Un tablero con sus etapas en el orden del embudo.

Atributos

  • id string Prefijo del id brd_…

    Identificador público del registro.

  • object string

    Siempre board.

  • livemode boolean

    true en datos reales; false en los datos de ejemplo.

  • team string Prefijo del id team_…

    El equipo al que pertenece este registro.

  • name string Puede ser null ≥ 1 caracteres

    El nombre del tablero, o null si no hay ninguno guardado.

  • is_default boolean

    Verdadero en el tablero por defecto del equipo, donde llegan los leads nuevos salvo que se enruten a otro.

  • is_archived boolean

    Verdadero si el tablero está archivado (oculto en el selector de tableros). Sus leads se siguen exportando.

  • appointment_booked_stage string Puede ser null Prefijo del id stg_…

    La etapa de este tablero a la que pasa un lead cuando se confirma su primera cita, o null si no hay ninguna o no es una etapa de este tablero.

  • stages Array<object>

    Las etapas del tablero, ordenadas por posición y después por id. Una etapa sin ninguna posición guardada no aparece, aunque un lead puede seguir indicándola.

  • version integer Rango ≥ 1

    Aumenta cada vez que cambia alguno de los campos exportados del registro. Aplica un cambio solo si su versión es mayor que la que guardas.

  • updated_at string Formato date-time

    Cuándo registró Totem esta versión (UTC). No es la hora en que ocurrió el hecho.

Board · ejemploJSON
{
  "id": "brd_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMX3trzsVUZQuHcMSuDh1aRIst",
  "object": "board",
  "livemode": false,
  "team": "team_r9uYrIW4gSFJJ6hZQ9ip1UIpPaAD1CF7NR",
  "name": "New patients",
  "is_default": true,
  "is_archived": false,
  "appointment_booked_stage": "stg_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXWBYWcKwVTY3CRZlVT1QpfZ5",
  "stages": [
    {
      "object": "stage",
      "id": "stg_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXWBYWcKwVTY3CRZlVR3422Yg",
      "name": "New",
      "position": 0,
      "is_default": true,
      "is_final": false,
      "is_archive": false,
      "mode": "automated"
    },
    {
      "object": "stage",
      "id": "stg_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXWBYWcKwVTY3CRZlVS3oYvs0",
      "name": "Contacted",
      "position": 1,
      "is_default": false,
      "is_final": false,
      "is_archive": false,
      "mode": "supervised"
    },
    {
      "object": "stage",
      "id": "stg_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXWBYWcKwVTY3CRZlVT1QpfZ5",
      "name": "Visit booked",
      "position": 2,
      "is_default": false,
      "is_final": true,
      "is_archive": false,
      "mode": "standard"
    }
  ],
  "version": 4,
  "updated_at": "2026-09-02T16:40:00.000Z"
}

El objeto Call

Una llamada: su dirección, su horario y un resultado normalizado. Sin grabación ni transcripción.

Atributos

  • id string Prefijo del id call_…

    Identificador público del registro.

  • object string

    Siempre call.

  • livemode boolean

    true en datos reales; false en los datos de ejemplo.

  • team string Prefijo del id team_…

    El equipo al que pertenece este registro.

  • lead string Puede ser null Prefijo del id lead_…

    El lead al que está vinculada la llamada, o null si no está vinculada o el lead ya no existe. El nombre y el teléfono solo aparecen en el lead.

  • direction string Puede ser null

    inbound o outbound; null si no está guardada.

    Valores posibles
    • inbound
    • outbound
  • started_at string Puede ser null Formato date-time

    Cuándo empezó la llamada (UTC), o cuándo se registró si el proveedor no dio hora de inicio.

  • duration_seconds integer Puede ser null Rango ≥ 0

    Segundos enteros de la llamada (redondeados hacia abajo); null mientras la llamada sigue en curso, o si no están guardados.

  • outcome string

    Cómo terminó la llamada: answered_human, answered_ai, voicemail, no_answer, busy, failed o unknown (aún en curso, o sin pruebas de quién contestó). Léelo junto con outcome_basis.

    Valores posibles
    • answered_human
    • answered_ai
    • voicemail
    • no_answer
    • busy
    • failed
    • unknown
  • outcome_basis string

    La prueba detrás de outcome: inbound_verdict (la clasificación de Totem de una llamada entrante en sus líneas de teléfono), ai_analysis (la clasificación que hace Totem del estado, el motivo de fin y la duración que informa Retell), duration_floor (una llamada en una centralita Zadarma conectada, donde al menos 10 segundos cuentan como contestada), carrier_answer_only (solo la señal de respuesta del operador, que nunca cuenta como contestada, así que una llamada conectada es unknown: todas las salientes en las líneas de Totem, las haga la IA o una persona, y una entrante que Totem no ha clasificado), browser_session (una sesión de voz web con el asistente) o none (ninguna prueba, como en una llamada que sigue en curso).

    Valores posibles
    • inbound_verdict
    • ai_analysis
    • duration_floor
    • carrier_answer_only
    • browser_session
    • none
  • version integer Rango ≥ 1

    Aumenta cada vez que cambia alguno de los campos exportados del registro. Aplica un cambio solo si su versión es mayor que la que guardas.

  • updated_at string Formato date-time

    Cuándo registró Totem esta versión (UTC). No es la hora en que ocurrió el hecho.

Call · ejemploJSON
{
  "id": "call_m2kUbFcayHlZ5Lgs9xZNmDS3c3Jvk",
  "object": "call",
  "livemode": false,
  "team": "team_r9uYrIW4gSFJJ6hZQ9ip1UIpPaAD1CF7NR",
  "lead": "lead_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXKSF0QbLS8CiUKJpEP34LFQG",
  "direction": "inbound",
  "started_at": "2026-09-28T10:17:00.000Z",
  "duration_seconds": 184,
  "outcome": "answered_ai",
  "outcome_basis": "inbound_verdict",
  "version": 2,
  "updated_at": "2026-09-28T10:21:04.010Z"
}

El objeto Conversation

Una conversación en un canal: su estado, su responsable y la hora de los últimos mensajes, nunca su contenido.

Atributos

  • id string Prefijo del id conv_…

    Identificador público del registro.

  • object string

    Siempre conversation.

  • livemode boolean

    true en datos reales; false en los datos de ejemplo.

  • team string Prefijo del id team_…

    El equipo al que pertenece este registro.

  • lead string Puede ser null Prefijo del id lead_…

    El lead al que está vinculada la conversación, o null si no está vinculada o el lead ya no existe. El nombre, el teléfono y el usuario solo aparecen en el lead.

  • channel_type string Puede ser null

    El canal: whatsapp, email, chatbot (el chat web), facebook, instagram, sms o tiktok; null si es un valor que esta versión no conoce. Un lead puede tener varias conversaciones en el mismo canal y cuenta de empresa, una por cada dirección de contacto (teléfono, correo electrónico o usuario) que haya usado, así que usa el id como clave de tu copia.

    Valores posibles
    • sms
    • whatsapp
    • facebook
    • instagram
    • tiktok
    • chatbot
    • email
  • status string Puede ser null

    active o archived en la bandeja del equipo; null si es un valor que esta versión no conoce.

    Valores posibles
    • active
    • archived
  • assignee string Puede ser null Prefijo del id mem_…

    El miembro del equipo asignado a la conversación (ver /members), o null.

  • reply_mode string

    human mientras una persona ha tomado la conversación, incluido un chat de WhatsApp que se atiende desde la app WhatsApp Business; ai en otro caso. ai significa que no hay una toma activa, no que haya un asistente configurado o respondiendo en este canal. Una toma temporal vuelve a ai cuando caduca, y la versión del registro cambia entonces.

    Valores posibles
    • ai
    • human
  • created_at string Puede ser null Formato date-time

    Cuándo se creó la conversación (UTC).

  • last_inbound_at string Puede ser null Formato date-time

    El último mensaje del cliente (UTC). No cuentan: mensajes borrados, historial de WhatsApp importado ni los turnos del visitante del chat web, así que una conversación chatbot da null. Los contenidos compartidos de Instagram no se distinguen y sí cuentan.

  • last_outbound_at string Puede ser null Formato date-time

    El último mensaje enviado al cliente que no falló (UTC), lo enviara quien lo enviara. El historial de WhatsApp importado sí cuenta.

  • version integer Rango ≥ 1

    Aumenta cada vez que cambia alguno de los campos exportados del registro. Aplica un cambio solo si su versión es mayor que la que guardas.

  • updated_at string Formato date-time

    Cuándo registró Totem esta versión (UTC). No es la hora en que ocurrió el hecho.

Conversation · ejemploJSON
{
  "id": "conv_m3GhGjRHmFbww1g10oqOp7j3gWqPJ",
  "object": "conversation",
  "livemode": false,
  "team": "team_r9uYrIW4gSFJJ6hZQ9ip1UIpPaAD1CF7NR",
  "lead": "lead_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXKSF0QbLS8CiUKJpEP34LFQG",
  "channel_type": "whatsapp",
  "status": "active",
  "assignee": "mem_h548E7UiYhutHhucVrQCzkM0eaea0",
  "reply_mode": "ai",
  "created_at": "2026-09-28T10:16:00.000Z",
  "last_inbound_at": "2026-10-01T08:58:00.000Z",
  "last_outbound_at": "2026-10-01T08:59:30.000Z",
  "version": 12,
  "updated_at": "2026-10-01T08:59:31.040Z"
}

El objeto Booking

Una cita y su tipo (kind): para un servicio reservable, un evento del calendario conectado o una cita importada de otro sistema.

Atributos

  • id string Prefijo del id bkg_…

    Identificador público del registro.

  • object string

    Siempre booking.

  • livemode boolean

    true en datos reales; false en los datos de ejemplo.

  • team string Prefijo del id team_…

    El equipo al que pertenece este registro.

  • lead string Puede ser null Prefijo del id lead_…

    El lead al que pertenece la cita, o null si la cita no tiene lead o el lead ya no existe. El nombre y los datos de contacto solo aparecen en el lead.

  • kind string

    service_booking (una cita de un servicio reservable, creada por la IA, un cliente o una persona), calendar_event (un evento del calendario conectado) o external_import (sincronizada desde un sistema de citas externo o leída de un correo electrónico de un portal). Una cita de un origen que esta versión no conoce aparece como calendar_event.

    Valores posibles
    • service_booking
    • calendar_event
    • external_import
  • service string Puede ser null Prefijo del id svc_…

    El servicio de la cita (ver /booking_services) en una service_booking; null en otro caso.

  • status string Puede ser null

    scheduled, rescheduled, cancelled, postponed, attended, no_show o team_no_show (la asistencia solo la registran personas); null si es un valor que esta versión no conoce. rescheduled significa que la cita se movió sin cambiar de registro y sus horas son las nuevas; una cita que la IA sustituyó por otra queda en cancelled, con rescheduled_to.

    Valores posibles
    • scheduled
    • rescheduled
    • cancelled
    • postponed
    • attended
    • no_show
    • team_no_show
  • starts_at string Puede ser null Formato date-time

    Cuándo empieza la cita (UTC).

  • ends_at string Puede ser null Formato date-time

    Cuándo termina la cita (UTC).

  • meeting_type string Puede ser null

    online, in_person o phone; null si no está guardado.

    Valores posibles
    • online
    • in_person
    • phone
  • source string Puede ser null

    Quién creó la cita: ai, customer u operator; null si no está registrado.

    Valores posibles
    • ai
    • customer
    • operator
  • rescheduled_from string Puede ser null Prefijo del id bkg_…

    La cita a la que esta sustituyó al reprogramar, o null. Durante unos segundos la cita sustituida puede seguir en scheduled; las citas reprogramadas antes de que Totem empezara a registrar este enlace pueden no tenerlo.

  • rescheduled_to string Puede ser null Prefijo del id bkg_…

    La cita que sustituyó a esta al reprogramar, o null. Cuando está indicada, esta cita queda en cancelled.

  • created_at string Puede ser null Formato date-time

    Cuándo se registró la cita en Totem (UTC).

  • version integer Rango ≥ 1

    Aumenta cada vez que cambia alguno de los campos exportados del registro. Aplica un cambio solo si su versión es mayor que la que guardas.

  • updated_at string Formato date-time

    Cuándo registró Totem esta versión (UTC). No es la hora en que ocurrió el hecho.

Booking · ejemploJSON
{
  "id": "bkg_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMX3ttMKHRR9ADk3N7Cr3NSuY0",
  "object": "booking",
  "livemode": false,
  "team": "team_r9uYrIW4gSFJJ6hZQ9ip1UIpPaAD1CF7NR",
  "lead": "lead_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXKSF0QbLS8CiUKJpEP34LFQG",
  "kind": "service_booking",
  "service": "svc_h42kgwwJGPzsm2Zoy1A1RBv1KIrX5",
  "status": "scheduled",
  "starts_at": "2026-10-06T15:00:00.000Z",
  "ends_at": "2026-10-06T15:30:00.000Z",
  "meeting_type": "in_person",
  "source": "ai",
  "rescheduled_from": null,
  "rescheduled_to": null,
  "created_at": "2026-10-01T09:01:00.000Z",
  "version": 1,
  "updated_at": "2026-10-01T09:01:02.000Z"
}

El objeto BookingService

Un servicio que los clientes pueden reservar, con su tipo de reunión.

Atributos

  • id string Prefijo del id svc_…

    Identificador público del registro.

  • object string

    Siempre booking_service.

  • livemode boolean

    true en datos reales; false en los datos de ejemplo.

  • team string Prefijo del id team_…

    El equipo al que pertenece este registro.

  • name string Puede ser null ≥ 1 caracteres

    El nombre del servicio, o null si no hay ninguno guardado.

  • meeting_type string

    Cómo se presta el servicio: online (el valor por defecto si no hay ninguno guardado), in_person o phone.

    Valores posibles
    • online
    • in_person
    • phone
BookingService · ejemploJSON
{
  "id": "svc_h42kgwwJGPzsm2Zoy1A1RBv1KIrX5",
  "object": "booking_service",
  "livemode": false,
  "team": "team_r9uYrIW4gSFJJ6hZQ9ip1UIpPaAD1CF7NR",
  "name": "First visit",
  "meeting_type": "in_person"
}

El objeto FeedItem

Un cambio: el estado actual del registro, o su eliminación.

Atributos comunes a todas las variantes

  • kind string

    El tipo del registro, como lead o call.

    Valores posibles
    • lead
    • lead_attribution
    • lead_response
    • activity
    • call
    • conversation
    • booking
    • board
  • version integer Rango ≥ 1

    La versión del registro. Aplica el elemento solo si es mayor que la versión que guardas.

Variantes

Cada FeedItem es exactamente una de estas 2 variantes.

Con object

  • id string Prefijo del id lead_… act_… call_… conv_… bkg_… brd_…

    Identificador público del registro; las facetas lead_attribution y lead_response usan el de su lead.

  • object uno de 8 objetos

    El registro tal como está ahora.

    Según kind:

Con removed

  • id string Prefijo del id lead_… act_… call_… conv_… bkg_… brd_…

    Identificador público del registro eliminado.

  • removed object

    Presente solo en una eliminación.

FeedItem · ejemploJSON
{
  "kind": "lead",
  "id": "lead_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXKSF0QbLS8CiUKJpEP34LFQG",
  "version": 3,
  "object": {
    "id": "lead_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXKSF0QbLS8CiUKJpEP34LFQG",
    "object": "lead",
    "livemode": false,
    "team": "team_r9uYrIW4gSFJJ6hZQ9ip1UIpPaAD1CF7NR",
    "record_kind": "lead",
    "name": "Alex",
    "surname": "Rivera",
    "email": "alex.rivera@example.com",
    "company": "Example Dental",
    "phone": "+12025550123",
    "phone_status": "valid",
    "status": "contacted",
    "status_set_by": "ai",
    "archive_reason": null,
    "archived_from_status": null,
    "contact_permissions": {
      "do_not_contact": false,
      "email_opt_out": false,
      "email_opt_out_at": null,
      "whatsapp_consent": null,
      "provenance": {
        "do_not_contact": null,
        "email_opt_out": null,
        "whatsapp_consent": null
      }
    },
    "merged_into": null,
    "transferred_to": null,
    "revived_at": null,
    "pipeline_cleared": false,
    "converted_at": null,
    "value_at_conversion": null,
    "priority": "high",
    "tags": [
      "spring-check-up"
    ],
    "board": "brd_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMX3trzsVUZQuHcMSuDh1aRIst",
    "stage": "stg_r72EfbRNUzuqORFJR0O8HxAwEXd93jGUTYMaMMXWBYWcKwVTY3CRZlVS3oYvs0",
    "assignees": [
      "mem_h548E7UiYhutHhucVrQCzkM0eaea0"
    ],
    "estimated_value": 1200,
    "estimated_value_currency": null,
    "source": "meta_lead_ads",
    "source_channel": null,
    "source_detail": null,
    "source_provenance": "member_editable",
    "created_at": "2026-09-28T10:15:00.000Z",
    "version": 3,
    "updated_at": "2026-09-28T10:20:01.250Z"
  }
}

Versión de la API 1.0a