# Zapier, Make y webhooks

> Conecta Zapier o Make con una clave, envía eventos de Komplian a cualquier dirección con un webhook firmado y comprueba cada envío.

Source: https://docs.komplian.es/api/webhooks

Dónde: Menú de cuenta → Komplian Store → Integraciones → Zapier o Make
Quién: Propietarios y administradores conectan Zapier y Make. Los miembros añaden webhooks a formularios y flujos.
Plan: Growth+

Hay tres formas de enviar lo que pasa en Komplian a tus otras herramientas: Zapier, Make y un webhook desde un formulario o un flujo. Zapier y Make pueden además crear leads en Komplian.

| Forma | Qué hace | Plan |
| --- | --- | --- |
| **Zapier** | Tus Zaps reaccionan a eventos de Komplian y crean leads. | Pro y Enterprise |
| **Make** | Tus escenarios reaccionan a eventos de Komplian, crean y buscan leads, y crean o siguen envíos. | Pro y Enterprise |
| **Webhook** | Un formulario o un flujo envía una petición JSON a la dirección que elijas, firmada si añades un secreto. | Desde Growth |

Komplian no tiene una API REST pública general.

## Conectar Zapier

### 1. Abre Zapier en el Store
Abre el menú que hay bajo tu nombre, elige **Komplian Store** y ve a **Integraciones → Zapier**.

### 2. Genera la clave
Pulsa **Generar clave**. La clave permite que un Zap lea eventos de Komplian y cree leads. Con ella no se puede llegar a nada más de tu espacio de trabajo.

### 3. Cópiala ahora
Pulsa **Copiar clave**. Es la única vez que se muestra.

### 4. Úsala en Zapier
En Zapier, añade un disparador de Komplian y pega la clave cuando Zapier te la pida.

La página muestra entonces los **Eventos a los que puede suscribirse un Zap** y los **Zaps escuchando**, cada uno con su última entrega.

## Conectar Make

### 1. Abre Make en el Store
Abre el menú que hay bajo tu nombre, elige **Komplian Store** y ve a **Integraciones → Make**.

### 2. Genera la clave
Pulsa **Generar clave de API**.

### 3. Cópiala ahora
Copia la **Clave de API** y la **URL base**. Es la única vez que se muestra la clave.

### 4. Úsala en Make
En Make, añade un módulo HTTP. Pon como URL la **URL base** más el endpoint que necesites. Envía la clave en la cabecera `Authorization` como `Bearer` seguido de la clave.

La página muestra entonces los **Eventos a los que puede suscribirse un escenario** y los **Escenarios escuchando**. Un escenario que falla una y otra vez muestra **Fallando desde** con la fecha y el error. Un escenario que Make da por borrado se quita de la lista.

## Zapier y Make: eventos y acciones

| | Zapier | Make |
| --- | --- | --- |
| Eventos | Nuevo lead, cambio de estado del lead, conversación iniciada, mensaje recibido, formulario enviado, pedido completado, carrito abandonado | Los mismos, con cambio de estado del envío en lugar de carrito abandonado |
| Acciones en Komplian | Crear un lead | Crear un lead, buscar un lead, crear o seguir un envío |

## Cambiar o revocar una clave

| Acción | Qué pasa |
| --- | --- |
| **Generar una clave nueva** | La clave actual deja de funcionar al instante. Cada Zap o escenario que la use necesita la nueva. |
| **Desconectar Make** | Se revoca la clave y se eliminan todas las suscripciones. Los escenarios que la usen dejan de funcionar. |

## Enviar un webhook

Puedes enviar datos a cualquier dirección desde dos sitios:

| Desde | Dónde se configura | Cuándo envía |
| --- | --- | --- |
| Un [formulario](https://docs.komplian.es/crm/forms) | **Ajustes → Enviar a → Webhook** del formulario | Cada vez que alguien envía el formulario. |
| Un [flujo](https://docs.komplian.es/flows/actions) | Un paso de **Acción de integración** con el destino Webhook | Cada vez que una ejecución llega a ese paso. |

Rellena **Secreto de firma (opcional)** en el destino para firmar cada petición. Sin secreto, las peticiones van sin firmar.

## Qué envía Komplian

Cada envío es un `POST` con un cuerpo JSON:

```json
{
  "event": "FORM_SUBMISSION",
  "workspaceId": "...",
  "source": { "type": "FORM_SUBMISSION", "id": "..." },
  "idempotencyKey": "...",
  "sentAt": "2026-11-04T10:00:00.000Z",
  "data": { }
}
```

| Campo | Qué contiene |
| --- | --- |
| `event` | Qué lo envía: `FORM_SUBMISSION` para un formulario, `FLOW_EXECUTION` para un flujo. |
| `workspaceId` | Tu espacio de trabajo. |
| `source` | El mismo `type`, y el `id` de la respuesta del formulario o de la ejecución del flujo. |
| `idempotencyKey` | Una clave única del envío. Úsala para ignorar un envío que ya procesaste. |
| `sentAt` | Cuándo se envió. |
| `data` | Los campos que hayas asignado. Un formulario sin asignación envía sus respuestas. |

## Comprobar la firma

Con secreto, cada petición lleva la cabecera `X-Komplian-Signature`. Su valor es `sha256=` seguido del HMAC-SHA256 en hexadecimal del cuerpo tal cual, calculado con tu secreto.

### 1. Lee el cuerpo tal cual
Toma el cuerpo exactamente como llega, antes de interpretar el JSON.

### 2. Calcula la firma
Calcula el HMAC-SHA256 de ese cuerpo con tu secreto, en hexadecimal, y pon `sha256=` delante.

### 3. Compara
Compárala con la cabecera usando una comparación de tiempo constante. Rechaza la petición si no coinciden.

```js
import crypto from 'node:crypto';

function isFromKomplian(rawBody, header, secret) {
  const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  return header?.length === expected.length &&
    crypto.timingSafeEqual(Buffer.from(header), Buffer.from(expected));
}
```

> [!NOTE]
> La acción **Petición HTTP** de los flujos nunca va firmada. Usa el destino Webhook cuando quien recibe tenga que comprobar que la petición viene de Komplian.

## Relacionado

- [Todas las integraciones](https://docs.komplian.es/integrations/overview): Todas las herramientas que puedes conectar.
- [Acciones](https://docs.komplian.es/flows/actions): La Acción de integración y la acción Petición HTTP.
- [Formularios](https://docs.komplian.es/crm/forms): Envía cada respuesta a un webhook.
