Usamos cookies de Meta, Google, Reddit, OpenAI y Whop para medir cómo las personas encuentran Chat33 y mostrar anuncios relevantes. No se carga nada hasta que elijas. Política de privacidad
Cuando alguien comenta una palabra clave o te escribe por DM, Chat33 le pide su correo en el chat. Cada correo que recoge se envía como JSON a una URL de webhook en segundos, y tu herramienta de automatización lo pone donde quieras: una fila de Google Sheets, Airtable, Notion, Slack o tu CRM.
Disponible en todos los planes, incluido Free. Pueden conectarlo los propietarios y administradores del espacio de trabajo.
Qué ocurre
Tres cosas. No hace falta ninguna app de Chat33 en tu herramienta de automatización: es un webhook común.
Una cuenta de Instagram o Facebook conectada
Una cuenta profesional de Instagram (empresa o creador) o una página de Facebook, conectada en Chat33 en Canales.
Una automatización con un paso Pedir correo
El paso pide el correo en un DM y espera hasta 24 horas la respuesta. Funciona con disparadores por palabra clave en DM en Instagram y Facebook, y con disparadores por comentario en Instagram. Pedirlo después de un comentario de Facebook aún no está disponible.
Una herramienta que pueda recibir un webhook
Zapier (Webhooks by Zapier requiere un plan de pago de Zapier), Make, n8n o tu propio servidor. La dirección debe ser pública y empezar con https://. En Chat33, los propietarios y administradores del espacio de trabajo pueden configurar el webhook.
Mantén tu herramienta de automatización y Chat33 abiertos en dos pestañas. Copias una URL de una a la otra.
Crea una automatización nueva que empiece con un webhook y copia la URL que te da.
En Chat33, ve a Configuración, Claves de API y busca la tarjeta Webhook de mensajes. Pega la URL en el campo de dirección.
En Enviar, marca Nuevos contactos. Desmarca Nuevos DM si solo quieres contactos; si no, todos los DMs que te envía la gente van a la misma URL. Deja seleccionado Todas las cuentas de este espacio de trabajo o elige las cuentas cuyos contactos quieres. Haz clic en Guardar.
Haz clic en Enviar contacto de prueba. Chat33 envía un contacto inventado (Ana Lopez, ana@example.com) con "test": true, y la tarjeta muestra el estado HTTP con el que respondió tu herramienta. En Zapier prueba el disparador con Test trigger, en Make espera a que el módulo indique que determinó la estructura de los datos y en n8n pon el nodo a escuchar un evento de prueba antes de enviar.
Agrega el siguiente paso y asigna a él los campos del contacto. Para Google Sheets: en Zapier usa Create Spreadsheet Row, en Make Add a Row, en n8n el nodo Google Sheets con Append Row. Pon data.email, data.name, data.username, data.flow.name y data.capturedAt en columnas propias, o lo que necesites. Omite o filtra las solicitudes donde test sea true.
Publica el Zap, activa el escenario o activa el flujo de trabajo de n8n, y activa tu automatización de Chat33. Prueba la automatización desde una segunda cuenta de Instagram. La tarjeta Zapier, Make, n8n, Google Sheets en Configuración, Integraciones muestra cuántos contactos se enviaron, están en espera o fallaron, y el Registro de entregas lista los últimos 50.
Un POST por contacto, con un cuerpo JSON. Esta es una solicitud real de Enviar contacto de prueba, palabra por palabra.
content-type: application/json
user-agent: Chat33-Webhooks/1.0
x-chat33-event: lead.captured
x-chat33-signature: t=1793009626,v1=0decb33a96de935324152cb242ec33c3c45849853d59e1ff330b20cb89ded992{
"event": "lead.captured",
"id": "evt_lead_test_1793009626943",
"createdAt": "2026-10-26T10:13:46.944Z",
"data": {
"version": 1,
"captureKey": "test_1793009626943",
"email": "ana@example.com",
"name": "Ana Lopez",
"firstName": "Ana",
"lastName": "Lopez",
"username": "ana.lopez",
"platform": "instagram",
"platformId": "test_platform_id",
"contactId": "test_contact",
"channel": {
"id": "test_channel",
"name": "Test account"
},
"flow": {
"id": "test_flow",
"name": "Test flow"
},
"keyword": "guide",
"postId": null,
"postUrl": null,
"tags": [],
"question": "What is your email?",
"capturedAt": "2026-10-26T10:13:46.943Z",
"firstSeenAt": "2026-10-26T10:13:46.943Z"
},
"test": true
}Anidados bajo data, excepto los cuatro primeros. Los campos solo se agregan, nunca se renombran ni se eliminan, y data.version indica la estructura.
Chat33 nunca escribe a tus contactos por correo. Lo que pase después depende de la automatización que construyas.
Cada solicitud se firma con el secreto de firma de tu webhook, que aparece en la tarjeta Webhook de mensajes en Configuración, Claves de API. Las herramientas sin código pueden omitir este paso y mantener privada la URL del webhook. En tu propio servidor, verifica la firma antes de confiar en el cuerpo.
X-Chat33-Event
lead.captured para un contacto, message.received para un DM.
X-Chat33-Signature
Tiene esta forma: t=1793009626,v1=0decb33a..., donde t es la hora Unix en segundos y v1 es el HMAC-SHA256 de la marca de tiempo, un punto y el cuerpo sin procesar de la solicitud, con el secreto de firma completo (whsec_...) como clave. Cada intento se firma de nuevo con una marca de tiempo nueva.
User-Agent
Chat33-Webhooks/1.0, con Content-Type application/json.
Un secreto nuevo
Quitar el webhook y guardarlo de nuevo genera un secreto nuevo. Actualiza tu servidor cuando eso pase.
const crypto = require("crypto");
const express = require("express");
// Settings, API Keys, Message webhook, Signing secret (whsec_...)
const SECRET = process.env.CHAT33_WEBHOOK_SECRET;
function verifyChat33(rawBody, header, toleranceSeconds = 300) {
const parts = {};
for (const piece of String(header || "").split(",")) {
const i = piece.indexOf("=");
if (i > 0) parts[piece.slice(0, i)] = piece.slice(i + 1);
}
if (!parts.t || !parts.v1) return false;
if (Math.abs(Date.now() / 1000 - Number(parts.t)) > toleranceSeconds) return false;
const expected = crypto
.createHmac("sha256", SECRET)
.update(`${parts.t}.${rawBody}`)
.digest("hex");
const a = Buffer.from(expected, "hex");
const b = Buffer.from(parts.v1, "hex");
return a.length === b.length && crypto.timingSafeEqual(a, b);
}
const app = express();
// The raw body: the signature covers the exact bytes Chat33 sent.
app.post("/chat33-webhook", express.raw({ type: "application/json" }), (req, res) => {
const rawBody = req.body.toString("utf8");
if (!verifyChat33(rawBody, req.get("X-Chat33-Signature"))) return res.sendStatus(401);
const event = JSON.parse(rawBody);
if (event.event === "lead.captured" && !event.test) {
// Save event.data.email, skip event.id values you already have.
}
res.sendStatus(200);
});
app.listen(3000);Qué hace Chat33 con cada contacto y qué debe responder tu endpoint.
Responde con un 2xx en menos de 10 segundos
Cualquier estado 2xx cuenta como entregado. Cualquier otra cosa, un tiempo de espera agotado a los 10 segundos o un error de red cuenta como fallo. Las redirecciones no se siguen, así que guarda la dirección final.
Los contactos fallidos se reintentan
Un contacto fallido se intenta de nuevo después de aproximadamente 1 minuto, 5 minutos, 30 minutos, 2 horas y 12 horas. Después aparece como Fallido, y Reintentar los fallidos en la tarjeta lo envía de nuevo. Una respuesta 429 significa esperar: Chat33 lo intenta de nuevo un minuto después sin gastar un reintento.
Los contactos de prueba se envían una vez
Enviar contacto de prueba hace un solo intento, no se reintenta y no aparece en el registro de entregas. Se envía incluso cuando Nuevos contactos no está marcado, así que márcalo antes de confiar en contactos reales.
El mismo webhook puede enviar DM
Con Nuevos DM marcado, la misma URL también recibe message.received por cada DM que la gente envía a tus cuentas conectadas, para que tu propio bot pueda responderlos. La referencia de la API describe ese evento y los endpoints de webhook.
Contactos que ya tienes
Enviar los contactos que ya tienes
Los contactos que recogiste antes de activar Nuevos contactos no se envían solos. Haz clic en Enviar contactos existentes en la tarjeta Zapier, Make, n8n, Google Sheets en Configuración, Integraciones y salen en los próximos minutos, con los mismos ids de antes, para que tu herramienta pueda omitir los que ya tiene.
Chat33 guarda cada contacto, así que basta con arreglar el webhook. No hay que recoger nada de nuevo.
Revisa la tarjeta Webhook de mensajes
La URL debe estar guardada y Nuevos contactos marcado. La tarjeta muestra la última entrega con su estado HTTP o el error. Usa Enviar contacto de prueba para ver la respuesta al instante.
Zapier dice que la app necesita una mejora de plan
Webhooks by Zapier no está en el plan gratis de Zapier. Mejora tu plan o usa Make o n8n, que pueden recibir webhooks en sus planes gratis.
Tu herramienta responde con un error
Una respuesta 4xx o 5xx es un fallo y el contacto se reintenta. En n8n la Test URL solo funciona mientras escuchas un evento de prueba: usa la Production URL con el flujo de trabajo activo. En Make, el escenario debe estar activado.
No se aceptó la dirección
Chat33 solo envía a direcciones https:// públicas. Un n8n autoalojado en localhost o en una red privada no puede recibir contactos. Quita todo lo que haya después de un # en la URL.
Los contactos están en Chat33 pero no en tu herramienta
Abre el Registro de entregas en la tarjeta Zapier, Make, n8n, Google Sheets. Cada contacto muestra su estado y el motivo. Los contactos de cuentas que el webhook no cubre se omiten, y los recogidos antes de activar Nuevos contactos necesitan Enviar contactos existentes.
No se le pidió el correo a nadie
Revisa la automatización. Debe estar activa y, cuando empieza con un comentario de Instagram, el paso Pedir correo debe ir antes del primer DM. Pedirlo después de un comentario de Facebook aún no está disponible.

Crea una cuenta gratis, conecta Instagram, agrega un paso Pedir correo y pega la URL de tu webhook.