Guía de inicio rápido
Pon SocialHook en marcha en 5 minutos. Conecta tu primera cuenta de plataforma Meta y empieza a recibir webhooks con unas pocas líneas de código.
Crea tu cuenta de SocialHook
Regístrate en socialhook.io — no se requiere tarjeta de crédito
Tras registrarte, llegarás a tu panel. Desde aquí puedes conectar tus cuentas de Meta, configurar la URL de tu webhook y ver los registros de entrega. Tu cuenta incluye una clave secreta para firmar todas las cargas útiles de webhook.
Conecta una cuenta de plataforma Meta
Inicia sesión con OAuth en Facebook, Instagram o WhatsApp
Haz clic en Conectar junto a la plataforma que quieras usar. Serás redirigido al flujo OAuth de Meta. SocialHook nunca almacena tu contraseña de Meta.
Configura la URL de tu webhook
Pega tu endpoint y genera una clave secreta
En tu panel, ve a Ajustes del webhook y pega la URL del endpoint POST de tu servidor. Genera una clave secreta: la usarás para verificar las firmas de las cargas útiles.
Para desarrollo local, usa ngrok para exponer tu localhost:
npx ngrok http 3000
Configura la verificación de firma
Verifica cada carga útil antes de procesarla
Cada entrega incluye una cabecera X-SocialHook-Signature. Verifícala antes de procesar cualquier carga útil:
const crypto = require('crypto')
function verifySignature(rawBody, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(rawBody)
.digest('hex')
return signature === expected
}
app.post('/webhook', express.raw({ type: '*/*' }), (req, res) => {
const sig = req.headers['x-socialhook-signature']
if (!verifySignature(req.body, sig, process.env.SOCIALHOOK_SECRET)) {
return res.status(401).send('Unauthorized')
}
const payload = JSON.parse(req.body)
// ... handle payload
res.sendStatus(200)
})Gestiona los eventos entrantes
Analiza y actúa sobre las cargas útiles del webhook
Una vez verificado, analiza el JSON y enruta según el campo event:
const { platform, event, message, from } = payload
switch (event) {
case 'message.received':
console.log(`[${platform}] Message from ${from}: ${message.body}`)
// Route to AI, CRM, n8n, etc.
await handleInboundMessage(payload)
break
case 'conversation.started':
// New conversation — create a CRM lead, send welcome message
await createLead({ platform, from, timestamp: payload.timestamp })
break
default:
console.log('Unhandled event:', event)
}
res.sendStatus(200) // Always respond 200¡Ya estás en vivo! 🎉
Envía un mensaje de prueba a tu número de WhatsApp conectado, a tu página de Facebook o a tu cuenta de Instagram. Deberías ver la entrega en los registros de tu panel de SocialHook y un POST en tu servidor en menos de 50 ms.