Ticket de support pour chaque avis négatif avec n8n
Un workflow n8n qui lit le journal d'événements toutes les 5 minutes et ouvre un ticket pour chaque avis ou retour privé de 2 étoiles ou moins.
Documentation de l'APIRecettes sans code · Tickets avec n8n
Ce que vous obtenez
Toutes les 5 minutes, n8n lit les nouveaux événements du compte là où il s'était arrêté, garde les avis et les retours privés de 2 étoiles ou moins, et ouvre un ticket dans votre outil de support, avec la note, le texte et l'auteur. Votre équipe traite les mécontentements comme n'importe quelle demande client.
Le workflow interroge le journal d'événements (GET /v1/events) plutôt que de recevoir des webhooks : il n'a besoin d'aucune adresse publique, fonctionne aussi avec un n8n installé derrière un pare-feu, et n'a pas de signature à vérifier puisque c'est lui qui appelle l'API. Il n'existe pas de nœud Ma Belle Note dans n8n : le workflow utilise les nœuds génériques Schedule Trigger, Code et HTTP Request. Les libellés cités sont ceux de l'interface anglaise de n8n.
Il vous faut
- n8n, sur n8n Cloud ou installé chez vous.
- Une clé API avec le droit
events:read, créée avec le modèle Personnalisé. - Le nœud n8n de votre outil de support (n8n en propose notamment pour Zendesk, Freshdesk et Jira), ou un nœud d'envoi d'email.
1. Enregistrer la clé dans n8n
Créez un identifiant de type Header Auth :
- Name :
Authorization. - Value :
Bearersuivi de votre clé, par exempleBearer mbn_live_....
La clé reste ainsi chiffrée dans les identifiants de n8n, et non en clair dans le workflow.
2. Déclencher le workflow toutes les 5 minutes
Ajoutez un nœud Schedule Trigger, avec un intervalle de 5 minutes.
3. Reprendre là où le workflow s'était arrêté
Ajoutez un nœud Code, en JavaScript, nommé Position de lecture :
const state = $getWorkflowStaticData("global");
state.startedAt ??= new Date().toISOString();
const query = new URLSearchParams({ types: "review.created,feedback.created", limit: "100" });
if (state.after) query.set("after", state.after);
return [{ json: { url: `https://api.mabellenote.com/v1/events?${query}` } }];
Les données statiques du workflow gardent, d'une exécution à l'autre, la position de lecture after et la date d'activation du workflow.
4. Lire le journal d'événements
Ajoutez un nœud HTTP Request :
- Method :
GET. - URL : l'expression
{{ $json.url }}. - Authentication : Generic Credential Type, puis Header Auth, avec l'identifiant de l'étape 1.
La réponse est une page d'au plus 100 événements, du plus ancien au plus récent, avec la position suivante dans nextCursor.
5. Avancer la position et garder les événements utiles
Ajoutez un second nœud Code, nommé Événements négatifs :
const state = $getWorkflowStaticData("global");
const page = $input.first().json;
state.after = page.nextCursor;
return page.data
.filter((event) => event.createdAt >= state.startedAt)
.filter((event) => event.data.object.rating <= 2)
.map((event) => ({ json: event }));
Il enregistre la nouvelle position, écarte les événements antérieurs à l'activation du workflow et ne garde que les avis et les retours de 1 ou 2 étoiles. Un avis supprimé entre-temps, livré sans note, est écarté lui aussi.
6. Ouvrir le ticket
Ajoutez le nœud de votre outil de support, par exemple Create ticket pour Zendesk ou Freshdesk, et composez le ticket avec les expressions n8n :
| Élément du ticket | Expression |
|---|---|
| Objet | Avis {{ $json.data.object.rating }}/5 de {{ $json.data.object.author.name }} |
| Description | {{ $json.data.object.comment }} |
| Référence externe | {{ $json.id }}, l'identifiant de l'événement |
Le type de l'événement, review.created ou feedback.created, est dans {{ $json.type }} et l'établissement concerné dans {{ $json.establishmentId }}.
7. Activer le workflow
Activez (publiez) le workflow. La position de lecture ne s'enregistre que lors des exécutions déclenchées par le Schedule Trigger : les exécutions de test lancées à la main repartent du début et ne la modifient pas.
À sa première activation, le workflow rattrape les 30 jours d'événements que conserve le journal, par pages de 100, sans ouvrir de ticket pour ce qui précède son activation : selon votre volume, quelques exécutions y suffisent.
Ce qu'il faut savoir
- Reprise après une erreur : si un nœud échoue, par exemple parce que l'outil de support ne répond pas, l'exécution échoue et la position n'avance pas. La même page est relue à l'exécution suivante : servez-vous de l'identifiant de l'événement comme référence externe du ticket pour ne pas en créer deux.
- Délai : un événement est publié quelques secondes après le fait qu'il décrit, puis lu à l'exécution suivante, soit au plus 5 minutes plus tard.
- Débit : 288 appels par jour, très loin de la limite de 120 appels par minute.
- Données personnelles : un retour privé contient les coordonnées que le client a laissées (
author.name,author.email). N'envoyez vers l'outil de support que ce dont votre équipe a besoin. - Webhooks : pour une réaction instantanée, un nœud Webhook de n8n peut recevoir les livraisons à la place du sondage, à condition d'être joignable en HTTPS et de vérifier la signature sur le corps brut, comme décrit dans le guide des webhooks.
Mis à jour le 25 octobre 2026

