Aller au contenu principal

Webhooks

Les webhooks vous permettent de recevoir des notifications HTTP en temps réel lorsque des événements se produisent dans votre locataire FeedbackPulse.


Configuration

Via le tableau de bord

  1. Allez à Paramètres > Intégrations
  2. Saisissez votre URL webhook
  3. Sélectionnez les événements auxquels vous souhaitez vous abonner
  4. Définissez optionnellement un secret pour la vérification de signature HMAC
  5. Enregistrez

Via l'API

PUT /api/v2/webhooks/config
{
"url": "https://your-app.com/webhooks/feedbackpulse",
"events": ["submission.created", "submission.status_changed"],
"secret": "your_shared_secret"
}

Charge utile webhook

Lorsqu'un événement se produit, FeedbackPulse envoie une requête POST à votre URL :

{
"event": "submission.created",
"timestamp": "2024-03-15T10:30:00Z",
"data": {
"id": 42,
"campaign_id": 1,
"star_rating": 5,
"text_feedback": "Love this product!",
"customer_name": "Jane Doe",
"status": "pending"
}
}

En-têtes

Content-Type: application/json
X-FeedbackPulse-Signature: sha256=abc123...
X-FeedbackPulse-Event: submission.created

Vérification de signature

Si vous définissez un secret webhook, vérifiez la signature :

$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_FEEDBACKPULSE_SIGNATURE'];
$expected = 'sha256=' . hash_hmac('sha256', $payload, $secret);

if (!hash_equals($expected, $signature)) {
http_response_code(403);
exit('Invalid signature');
}

Points de terminaison supportés

FeedbackPulse détecte automatiquement et formate les charges utiles pour :

ServiceModèle d'URLFormat
Slackhooks.slack.com/*Format Slack Block Kit
Discorddiscord.com/api/webhooks/*Format Discord embed
PersonnaliséToute URL HTTPSCharge utile JSON brute

Protection SSRF

Les URLs webhook sont validées pour prévenir la falsification de requêtes côté serveur :

  • localhost, 127.0.0.1, 0.0.0.0 sont bloqués
  • Les plages IP privées (10.x, 172.16-31.x, 192.168.x) sont bloquées
  • Seules les URLs HTTPS publiques sont autorisées

Journaux webhook

Voir l'historique de livraison :

Via le tableau de bord

Paramètres > Intégrations > Journaux webhook

Une page dédiée Journaux webhook est également disponible à /webhooks/logs, fournissant un historique complet de livraison avec les détails de réponse et des options de filtrage. Vous pouvez filtrer par type d'événement, code de statut et plage de dates, et inspecter la charge utile complète de la requête et le corps de la réponse pour chaque tentative de livraison.

Visionneur de journaux webhook admin

Les superadmins ont accès à un visionneur de journaux webhook à l'échelle de la plateforme à /admin/webhook-logs. Cela offre une visibilité sur les livraisons webhook pour tous les locataires, utile pour diagnostiquer les problèmes d'intégration et surveiller la santé de la plateforme.

Via l'API

GET /api/v2/webhooks/logs

Chaque entrée de journal affiche :

  • Type d'événement
  • URL
  • Code de réponse
  • Charge utile envoyée
  • Corps de la réponse
  • Horodatage

Étapes suivantes