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
- Allez à Paramètres > Intégrations
- Saisissez votre URL webhook
- Sélectionnez les événements auxquels vous souhaitez vous abonner
- Définissez optionnellement un secret pour la vérification de signature HMAC
- 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 :
| Service | Modèle d'URL | Format |
|---|---|---|
| Slack | hooks.slack.com/* | Format Slack Block Kit |
| Discord | discord.com/api/webhooks/* | Format Discord embed |
| Personnalisé | Toute URL HTTPS | Charge 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.0sont 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