Saltar al contenido
Telemetry
Fiabilidad de la integración

webhook_delivery_completed esquema de evento

Un evento de registro de entrega de terminal con attempt_count, status_code final, response_body_bytes y tipo de contenido delimitado, pero sin URL de cliente, encabezados de solicitud, autorización, cuerpo de respuesta sin formato ni carga útil.

Revisado por el equipo de producto Telemetry en . Revisamos qué representa cada evento, qué servicio lo envía, los tipos de campo, los datos sensibles, el ejemplo y los pasos de validación. Quién revisa esta página

Pregunta que responde este evento

¿Qué destinos fallan permanentemente, qué códigos de estado se repiten y qué entregas se recuperan después de reintentos?

Campos
11
Requerido
8
Qué registrar y comprobar

Campos de registro de entrega de webhook para una depuración de respuestas segura

Un esquema de entrega útil normaliza los campos de intento, mantiene el código de estado final y los metadatos de respuesta limitados, y excluye URL, encabezados de solicitud, autorización, cargas útiles y contenido de respuesta sin procesar.

  1. 1

    Finaliza la entrega

    Emitir una vez después del éxito o del agotamiento permanente del reintento, no una vez por línea de registro.

  2. 2

    Los campos están normalizados.

    Asigne campos de origen como attempt_number a attempt_count y luego mantenga status_code, response_body_bytes y un tipo de contenido incluido en la lista de permitidos en lugar de response_body sin formato.

  3. 3

    Los secretos permanecen fuera

    Nunca almacene request_headers, valores de autorización, URL de clientes ni cargas útiles de webhooks.

  4. 4

    La recuperación se mide

    Compare fallas permanentes, códigos de estado recurrentes y recuperación después de reintentos por tipo de destino.

grano

Un resultado de terminal por entrega de webhook lógico.

propietario

Trabajador de entrega de webhook

Emitir cuando

Después del éxito o del agotamiento permanente del reintento.

Contrato de campo

Tipos de campos y datos que debes excluir

Mantenga estables los nombres y tipos de campos existentes después de que las consultas de producción dependan de ellos. El contexto opcional debe permanecer limitado, documentado y justificado por una decisión específica.

CampoTipoRequeridoPrivacidadSignificado
timestamp_utctimestampyesnon-sensitiveHora UTC en el límite del resultado.
event_idstringyesnon-sensitiveIdentificador único estable utilizado para la deduplicación.
releasestringyesnon-sensitiveVersión de la aplicación o servicio que emitió el evento.
account_idstringyespseudonymousIdentificador de cuenta interno estable, nunca un correo electrónico o nombre.
delivery_idstringyespseudonymousIdentificador de entrega lógica estable.
destination_typestringyesnon-sensitiveCategoría de integración limitada, no una URL de destino.
attempt_countnumberyesnon-sensitiveIntentos a través del resultado terminal.
status_codenumbernonon-sensitiveEstado HTTP final cuando existe una respuesta.
response_body_bytesnumbernonon-sensitiveTamaño del cuerpo de respuesta final en bytes. Almacene el tamaño en lugar del cuerpo de la respuesta.
response_content_typestringnoreviewTipo de medio de respuesta permitido, como aplicación/json; nunca copie encabezados de respuesta sin restricciones.
statusstringyesnon-sensitiveEntregado o fallado permanentemente.

Evento JSON sintético

{
  "timestamp_utc": "2026-07-28T14:29:08Z",
  "event_id": "evt_webhook_01",
  "account_id": "acct_8f31",
  "release": "2026.07.2",
  "delivery_id": "delivery_09cc",
  "destination_type": "slack",
  "attempt_count": 1,
  "status_code": 200,
  "response_body_bytes": 27,
  "response_content_type": "application/json",
  "status": "delivered"
}

Revisión de privacidad

Revisar los identificadores antes de la ingestión

Este ejemplo utiliza identificadores sintéticos. Los valores seudónimos aún pueden ser datos personales y los campos de revisión pueden exponer el contexto empresarial o del proveedor. Aplique sus propios requisitos de consentimiento, retención, acceso, residencia y eliminación.

  • account_id: pseudonymous
  • delivery_id: pseudonymous
  • response_content_type: review

Lista de verificación de validación

Pruebe el contrato antes de crear un panel

  • Send one known webhook_delivery_completed fixture after the documented outcome boundary.
  • Verify all 8 required fields arrive with the documented types.
  • Vuelva a intentar el mismo identificador de evento y confirme el comportamiento de deduplicación elegido.
  • Envíe un error controlado o un resultado alternativo cuando el flujo de trabajo lo admita.
  • Ejecute el SQL relacionado en una ventana fija y concilie el resultado con el dispositivo.

Errores comunes

Mantenga una fila igual a un resultado duradero

  • Emitting webhook_delivery_completed before webhook delivery worker knows the final outcome.
  • Mezclar varios granos en una tabla, lo que hace que los recuentos y tasas sean ambiguos.
  • Reemplazar categorías controladas con URL sin formato, cargas útiles, mensajes o texto de error.
  • De ello depende el cambio de un tipo de campo después de las consultas y los paneles guardados.
  • Agregar identificadores sin una necesidad documentada de investigación, acceso y retención.

Usa el contrato

Consultar y operacionalizar el evento.

Contratos relacionados

Envía un evento de prueba antes del tráfico de producción

Cree una clave API gratuita, envíe el evento sintético e inspeccione la tabla inferida antes de conectar un flujo de trabajo en vivo.

Pruebe este esquema