IgualaIguala Ayuda

Enviar tus leads a otro sistema

Manda cada lead nuevo, al momento, a tu CRM o a otro sistema por medio de una dirección https (webhook), con firma para verificar que viene de Iguala.

Actualizado el 2 de noviembre de 2026

Si tú o un cliente de agencia usan otro CRM o sistema, Iguala puede enviarle cada lead nuevo en cuanto entra, por cualquier canal. Solo necesitas la dirección (URL) de ese sistema que recibe los leads; normalmente te la da quien lo administra o su desarrollador.

Dónde se configura#

Cada lugar envía solo sus leads: los de tu organización no le llegan al sistema de un cliente, ni al revés.

Agregar un destino#

  1. Pulsa Agregar destino.
  2. Escribe la dirección de tu sistema. Debe empezar con https:// y ser pública (no se aceptan direcciones locales ni IP privadas).
  3. Deja marcado Lead nuevo y pulsa Crear.
  4. Copia el secreto que aparece y guárdalo: con él tu sistema comprueba que cada envío viene de Iguala. Solo se muestra esta vez.
Sección Enviar leads a su sistema con un destino y sus entregas
Sección Enviar leads a su sistema con un destino y sus entregas

Probar y revisar las entregas#

Si tu sistema no responde, Iguala lo vuelve a intentar a los 1 minuto, 5 minutos, 30 minutos, 2 horas y 12 horas. Si falla 10 veces seguidas, el destino se pausa y los administradores reciben un aviso. Cuando lo corrijas, usa Reactivar en el menú del destino.

En el menú del destino también están Editar, Pausar, Cambiar secreto (el anterior deja de servir de inmediato) y Eliminar.

Para tu desarrollador#

Cada envío es un POST con cuerpo JSON y estas cabeceras:

El cuerpo tiene siempre la misma forma (versión v1):

{
  "id": "evt_01J…",
  "type": "lead.created",
  "version": "v1",
  "createdAt": "2026-11-02T15:00:00.000Z",
  "test": false,
  "tenant": { "id": "…", "name": "Tu organización" },
  "client": { "id": "…", "name": "Cliente de agencia" },
  "data": {
    "id": "…",
    "name": "Ana López",
    "email": "ana@ejemplo.mx",
    "phone": "+525512345678",
    "source": "FACEBOOK",
    "stage": { "id": "…", "name": "Nuevo" },
    "notes": "¿Qué tratamiento te interesa?: blanqueamiento",
    "utm": { "source": "facebook", "campaign": "otono-2026" },
    "form": { "id": "…", "name": "Agenda tu valoración" },
    "createdAt": "2026-11-02T15:00:00.000Z"
  }
}

client es null en los leads de tu organización; utm y form solo vienen cuando el lead los trae.

Verificar la firma: calcula HMAC-SHA256, en hexadecimal, del texto <t>.<cuerpo tal cual llegó> usando el secreto, y compáralo con v1. Si no coincide, o si la marca de tiempo tiene más de 5 minutos, descarta el envío.

const crypto = require('crypto');
const [t, v1] = req.headers['x-iguala-signature'].split(',').map((p) => p.split('=')[1]);
const esperado = crypto.createHmac('sha256', SECRETO).update(`${t}.${cuerpoCrudo}`).digest('hex');
const valido = crypto.timingSafeEqual(Buffer.from(esperado), Buffer.from(v1));

Responder: contesta con un código 2xx para confirmar que lo recibiste. Un mismo evento puede llegar más de una vez (por ejemplo, tras un reintento): usa id para descartar duplicados.

Nota

La versión v1 del cuerpo no cambia. Si en el futuro se agregan datos que cambien su forma, saldrán como una versión nueva.

Si algo no sale#

¿Necesitas más ayuda?
Escríbenos y te respondemos por correo.

Contactar a soporte