SocialHook
Documentation/Démarrage rapide
Pour commencer

Guide de démarrage rapide

Mettez SocialHook en ligne en 5 minutes. Connectez votre premier compte de plateforme Meta et commencez à recevoir des webhooks avec quelques lignes de code.

Temps estimé : 5 minutes
1

Créez votre compte SocialHook

Inscrivez-vous sur socialhook.io — aucune carte de crédit requise

Après l'inscription, vous arriverez dans votre tableau de bord. De là, vous pouvez connecter vos comptes Meta, configurer votre URL webhook et voir les journaux de livraison. Votre compte inclut une clé secrète pour signer tous les payloads webhook.

2

Connectez un compte de plateforme Meta

OAuth dans Facebook, Instagram ou WhatsApp

Cliquez sur Connecter à côté de la plateforme que vous souhaitez utiliser. Vous serez redirigé vers le flux OAuth de Meta. SocialHook ne stocke jamais votre mot de passe Meta.

Facebook : connectez une page que vous gérez
Instagram : nécessite un compte Instagram Business
WhatsApp : nécessite un numéro WhatsApp Business
3

Configurez votre URL webhook

Collez votre point de terminaison et générez une clé secrète

Dans votre tableau de bord, allez dans Paramètres webhook et collez l'URL du point de terminaison POST de votre serveur. Générez une clé secrète — vous l'utiliserez pour vérifier les signatures des payloads.

Pour le développement local, utilisez ngrok pour exposer votre localhost :

shell
npx ngrok http 3000
4

Configurez la vérification de signature

Vérifiez chaque payload avant de traiter

Chaque livraison inclut un en-tête X-SocialHook-Signature. Vérifiez-le avant de traiter tout payload :

node.js
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)
})
5

Gérez les événements entrants

Analysez et agissez sur les payloads webhook

Une fois vérifié, analysez le payload JSON et routez sur le champ event :

node.js
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
Important : Retournez toujours un statut 200 immédiatement. Si votre serveur met plus de 10 secondes à répondre, SocialHook traitera la livraison comme échouée et réessaiera.

Vous êtes en ligne 🎉

Envoyez un message de test à votre numéro WhatsApp connecté, votre page Facebook ou votre compte Instagram. Vous devriez voir une livraison apparaître dans vos journaux du tableau de bord SocialHook et un POST atteindre votre serveur en moins de 50ms.