Aller au contenu principal
5 min de lecture

Déclencheur webhook n8n

Redirigez les événements Zenovay vers n8n — l'outil de workflow open-source — et routez-les vers n'importe où n8n s'intègre : Postgres, Redis, GitHub, Notion, votre propre API HTTP, JavaScript personnalisé.

Le nœud Webhook de n8n est ce qui capture les événements Zenovay. Fonctionne de la même façon sur n8n hébergé soi-même et n8n Cloud.

Les webhooks sortants sont une fonctionnalité Pro+ de Zenovay. Mettez à niveau votre plan pour les activer.


1. Créer le workflow n8n

  1. Dans n8n, créez un nouveau workflow.
  2. Ajoutez le nœud Webhook comme déclencheur :
    • HTTP Method : POST
    • Path : choisissez quelque chose de descriptif, ex. zenovay-events
    • Authentication : laissez None pour l'instant (nous ajouterons la vérification HMAC à l'étape 4)
    • Respond : Immediately (le corps de la réponse importe peu pour Zenovay ; nous avons juste besoin d'un 2xx)
  3. Cliquez sur Listen for test event en haut du panneau.
  4. Copiez le Test URL que n8n affiche (ex. https://your-n8n-host.com/webhook-test/zenovay-events). Gardez cette fenêtre ouverte — vous en aurez besoin à l'étape 2.

2. Ajouter le webhook dans Zenovay

  1. Dans app.zenovay.com, allez dans Paramètres → Webhooks.
  2. Sélectionnez le site web qui doit déclencher des événements.
  3. Cliquez sur Ajouter un webhook.
  4. Remplissez :
    • Nom : n8n — <ce que le flow fait> (ex. n8n — Save to Postgres)
    • URL : collez l'URL de test n8n de l'étape 1
    • Événements : sélectionnez ce à quoi le flow doit réagir
  5. Cliquez sur Créer le webhook.
  6. Cliquez sur Envoyer un événement de test (icône avion en papier).

n8n devrait maintenant afficher l'événement capturé dans le nœud Webhook. Cliquez sur Use captured event pour l'utiliser comme charge d'exemple pour le reste du workflow.


3. Passer de l'URL de test à l'URL de production

n8n distingue les URL de test (ne se déclenchent que lorsque vous cliquez sur "Listen") des URL de production (toujours actives).

  1. Une fois votre workflow construit et testé, cliquez sur Activate (en haut à droite).
  2. n8n affiche une URL de production — généralement identique à l'URL de test mais sans -test (ex. https://your-n8n-host.com/webhook/zenovay-events).
  3. Dans les paramètres de webhook Zenovay, modifiez le webhook et remplacez l'URL de test par l'URL de production.
  4. Envoyez un autre événement de test pour confirmer qu'il arrive.

4. Vérifier la signature Zenovay dans n8n

Pour une fiabilité en production, vérifiez la signature HMAC-SHA256 afin que seuls les événements Zenovay authentiques déclenchent votre flow.

Ajoutez un nœud Function juste après le nœud Webhook :

const crypto = require('crypto');

const signature = $input.item.json.headers['x-zenovay-signature'] || '';
const provided = signature.replace(/^sha256=/, '');
const rawBody = JSON.stringify($input.item.json.body);
const expected = crypto.createHmac('sha256', $env.ZENOVAY_WEBHOOK_SECRET)
  .update(rawBody)
  .digest('hex');

if (provided !== expected) {
  throw new Error('Invalid Zenovay signature');
}

return $input.item;

Définissez ZENOVAY_WEBHOOK_SECRET comme variable d'environnement n8n (Paramètres → Variables) en utilisant le secret depuis Paramètres → Webhooks → cliquez sur l'icône œil sur la carte du webhook dans Zenovay.

La signature est calculée sur le corps brut de la requête, pas sur le JSON analysé. n8n convertit le corps en chaîne pour vous dans $input.item.json.body, mais si votre version de n8n réordonne les clés, vous pourriez obtenir des échecs de vérification incorrects. Dans ce cas, définissez le mode "Response" du nœud Webhook sur "Use response code from previous node" et lisez le corps brut via $input.item.binary.body.data.


5. Recettes de workflows courants

DéclencheurFlow n8n
goal_completedPostgres → INSERT dans revenue_events
traffic_spikeNœud Slack → DM à la personne de garde
website_downGitHub Issues → Créer un problème urgent + assigner des étiquettes
error_spikeNœud Sentry → Étiqueter la version + notifier #engineering sur Discord

Dépannage

  • n8n affiche l'événement de test mais l'URL de production ne se déclenche pas : le workflow n'est pas activé. Cliquez sur le bouton Active (en haut à droite) — il doit être vert.
  • La vérification HMAC échoue : confirmez que vous avez copié le bon secret de webhook. Le secret est par webhook, pas par compte.
  • n8n expire : le mode de réponse par défaut du nœud Webhook Immediately renvoie 200 instantanément — Zenovay considère cela comme un succès. Si vous définissez When Last Node Finishes, le long flow peut dépasser le délai de livraison de 5 secondes de Zenovay (les nouvelles tentatives se déclenchent ensuite via le cron toutes les 6 heures).

Voir aussi

Cette page vous a-t-elle été utile ?