Decision

Matriz rapida de seleccion

Destino Cuando conviene Ventaja Consideracion
n8n Se necesita branching, transformacion visual y control fino. Muy flexible para enrutar por `event` o `type`. Conviene validar firma apenas entra el webhook.
Make El equipo ya opera escenarios en Make y quiere bajo setup. Rapido de conectar con modulos del destino final. Hay menos visibilidad de payload si no se loguea bien.
Endpoint propio Se necesita control completo, dedupe y logica de negocio interna. Maxima trazabilidad y contrato estable hacia sistemas internos. El receptor debe responder en menos de 5 segundos.
Sheets o bases tabulares Se quiere una salida operativa o de conciliacion. Rapido para backoffice y operaciones visibles. Mejor pasar por capa intermedia para firma y dedupe.
ERP o CRM Ya existe API o endpoint corporativo. Se integra directo con el sistema de destino. Normalmente conviene `expedient.completed` para handoff final.

Evento

Elegir entre `record.created` y `expedient.completed`

Usar `record.created`

  • Cuando el destino espera filas, items o registros atomicos.
  • Cuando la automatizacion necesita reaccionar por documento individual.
  • Cuando hay conciliaciones o reglas por item.

Usar `expedient.completed`

  • Cuando el sistema de destino trabaja por expediente o lote terminado.
  • Cuando se busca reducir escrituras repetidas.
  • Cuando el handoff debe ocurrir solo al final del procesamiento.

Receta

Patron recomendado con n8n

  1. 1
    Crea un Webhook Trigger. Ese URL se registra como `webhookUrl` en la organizacion.
  2. 2
    Verifica `X-Kapture-Signature` con el mismo secret. Hazlo antes de transformar o persistir el payload.
  3. 3
    Separa rutas por `event`. `record.created` para pipelines por item, `expedient.completed` para handoff por expediente.
  4. 4
    Normaliza hacia el formato del destino. Mapea `data`, `type`, `vendor` y `currency` segun el sistema receptor.
  5. 5
    Persistencia o salida final. Escribe en ERP, CRM, hojas de calculo, HTTP Request o base interna.

Receta

Patron recomendado con Make

  1. 1
    Crea un Custom Webhook. Registra ese endpoint como `webhookUrl`.
  2. 2
    Valida la firma en el primer modulo posible. No confies en el payload antes de comprobar el digest.
  3. 3
    Filtra por `event` y `type`. Asi se pueden derivar escenarios por vertical o template.
  4. 4
    Entrega al modulo nativo de destino. API interna, CRM, Sheets o cualquier modulo del escenario.

Receta

Patron para endpoint propio

Contrato recomendado

  • Recibir el POST en una ruta dedicada, por ejemplo `/integrations/kapture`.
  • Validar HMAC con raw body.
  • Persistir `event`, `id`, status y body para auditoria.
  • Responder `202` y delegar trabajo a una cola o worker interno.

Cuando es la mejor opcion

  • Hay reglas de negocio que no pertenecen a Kapture ni a una capa low-code.
  • Se necesita dedupe duro o trazabilidad estricta.
  • El sistema de destino ya vive dentro del mismo stack corporativo.

Ejemplo de mapeo

function mapRecordCreated(payload) {
  return {
    source: 'kapture',
    event: payload.event,
    externalId: payload.id,
    captureId: payload.parent_id,
    documentType: payload.type,
    vendor: payload.vendor ?? null,
    currency: payload.currency ?? null,
    fields: payload.data
  };
}

Go-live

Checklist productivo

  • La firma se verifica antes de tocar el payload.
  • El destino tiene dedupe por `event + id`.
  • Existe logging de status, timestamp y tiempo de respuesta.
  • El flujo acepta `record.created`, `expedient.completed` o ambos, sin ambiguedad.
  • La respuesta HTTP sale rapido y el procesamiento profundo es asincrono.
  • El equipo sabe si esta usando la ruta org-level o la legacy.