Enviar eventos

Enviar eventos reenvía todos los eventos de comunicación del agente (entrantes y salientes, en todos los canales) a una URL de webhook que especifiques. Úsalo para sincronizar conversaciones con tu CRM, activar flujos de trabajo o construir integraciones personalizadas.

Configuración de URL de webhook

Configuración

Navega a la pestaña Agente → Avanzado e ingresa tu URL de webhook.

Cómo funciona

Cada vez que tu agente envía o recibe un mensaje (o llamada), SignalCore envía un payload JSON mediante POST a tu URL de webhook que contiene los detalles del evento, información del prospecto y metadatos específicos del canal.

Formato de solicitud

POST https://your-webhook-url.com/endpoint
Content-Type: application/json
User-Agent: Backend-System-Webhook/1.0

Los webhooks expiran después de 10 segundos. SignalCore reintenta webhooks fallidos hasta 2 veces con retroceso exponencial.

Estructura base del payload

Cada webhook sigue esta estructura base:

1{
2 "event": {
3 "id": "evt_abc123",
4 "channel": "sms",
5 "timestamp": 1706640000.0,
6 "data": { }
7 },
8 "lead_id": "lead_xyz789",
9 "lead_contact": {
10 "number": "+15551234567",
11 "email": "john@example.com",
12 "name": "John Doe"
13 },
14 "business_id": "biz_123",
15 "lead_created": false
16}

Campos base

CampoTipoDescripción
eventobjectEl evento de comunicación
event.idstringIdentificador único del evento
event.channelstringvoice, sms, whatsapp, instagram, gmail, outlook, linkedin
event.timestampfloatMarca de tiempo Unix epoch
event.dataobjectDatos específicos del canal (ver páginas de canales)
lead_idstring | nullID del prospecto (null para nuevos prospectos)
lead_contactobjectInformación de contacto del prospecto
lead_contact.numberstringNúmero de teléfono
lead_contact.emailstringDirección de correo
lead_contact.namestringNombre completo
business_idstringTu ID de negocio
lead_createdbooleanSi este evento creó un nuevo prospecto

Valores de dirección

ValorDescripción
inboundProspecto → Negocio (entrante)
outboundNegocio → Prospecto (respuesta del agente)

Payloads de canales

Cada canal tiene campos específicos en event.data. Ver documentación detallada:

Recibir webhooks

1const express = require('express');
2const app = express();
3
4app.use(express.json());
5
6app.post('/signalcore-webhook', (req, res) => {
7 const { event, lead_id, lead_contact } = req.body;
8
9 console.log(`${event.channel} - ${event.data.direction}`);
10
11 // Siempre responde rápidamente
12 res.status(200).json({ received: true });
13
14 // Procesa de forma asíncrona
15 processEvent(event);
16});

Siempre responde con un código de estado 2xx dentro de 10 segundos. Procesa operaciones pesadas de forma asíncrona.