name: handle-complaint
description: Utiliser quand un client se plaint (email, avis, ticket) et qu'il faut traiter la réclamation de bout en bout : contexte récupéré, réponse rédigée, correctif opérationnel proposé. Accepte un email ou un ID de ticket en argument. S'appuie sur le MCP foodeatup pour les données réelles et sur ./rapido-kb/ pour les seuils maison.
source: anthropics/knowledge-work-plugins (commit 564d560c), Apache 2.0
allowed-tools: Read, WebFetch, Bash
Nécessite le MCP foodeatup (déclaré dans le .mcp.json du plugin).
Découplé de RapidoCRM : FoodEatUp porte ses propres outils CRM.
Adaptation Rapido (lire d'abord)
Ce skill vient d'un contexte US générique. Dans cette marketplace, remplacer
systématiquement ses outils par les équivalents Rapido :
| Outil cité dans ce skill | Équivalent à utiliser ici |
|---|
| QuickBooks / PayPal / Square / Stripe (finances, ventes) | FoodEatUp : finance_summary, list_orders, list_invoices, list_expenses |
| HubSpot (CRM, pipeline) | FoodEatUp : get_client, list_clients, list_quotes (devis restaurant) — le pipeline B2B relève du plugin rapidocrm, hors périmètre ici |
| Gmail (envoi d'emails) | brouillons via le plugin rapido-direction ; réponse à un avis public : reply_review (confirmée) |
| Google Drive / Calendar | plugin rapido-direction (coffre-documents, agenda) |
| Slack (notifications) | pas d'équivalent — restituer dans la conversation, ou notification via un workflow n8n (plugin rapido-n8n) |
| Zendesk / Shopify | pas d'équivalent direct — support : noter l'échange sur la fiche client (update_client) ; vente en ligne : carte vitrine FoodEatUp |
| CSV uploads | inutile si les MCP répondent — les données viennent des serveurs |
Les seuils, cadences et benchmarks du skill sont des DÉFAUTS US : les seuils
maison de ./rapido-kb/processus-internes.md priment (les citer).
Run the complaint resolution workflow by chaining two skills. Read the complaint, gather context, draft a response, and suggest a fix so it doesn't happen again.
Parse arguments:
EMAIL_OR_TICKET_ID (optional) — ID de fil email (rapido-direction), ID de ticket
CRM, ou "latest" pour la plainte non résolue la plus récente. Sinon, demander à
l'exploitant de coller le texte de la plainte.
Step 1 — Load the complaint
Récupérer la plainte :
- If an ID was given: charger le fil depuis la boîte mail (plugin rapido-direction) ou le ticket CRM.
- If "latest": prendre la plainte non résolue la plus récente (email support / activité CRM).
- If neither: ask the owner to paste the complaint text directly.
- Identify: customer name, order/account info, what they're upset about, what they're asking for.
Step 2 — Pull context
- Historique client : FoodEatUp —
get_client, list_orders du client,
get_loyalty_account (ancienneté, points, gestes déjà faits).
- Commande concernée : FoodEatUp
list_orders / get_order (statut), list_invoices
(paiement/avoir) — pas de PayPal/Stripe dans cet écosystème.
- Summarize: "This is a {new/returning} customer, ${lifetime_value} in purchases, {0/N} prior complaints. Their current issue is {one sentence}."
Step 3 — Draft response
Pour une réponse au ton juste, si le plugin rapidocrm est installé, son skill
draft-response (situations client délicates) peut aider. Sinon, rédiger
directement :
- Draft a reply matched to the severity and the customer's history:
- First-time complainers with high LTV → empathetic, generous
- Repeat complainers → professional, firm, solution-focused
- Abusive tone → professional, brief, boundary-setting
- Include: acknowledgment, explanation (if known), resolution offer, next step.
- Present the draft to the owner. Do NOT send.
Step 4 — Suggest operational fix
- Vérifier si la plainte recoupe un thème connu (plaintes similaires déjà tracées dans
la fiche client (
update_client), ou notes ./rapido-kb/).
- If it's a pattern: "This is the {Nth} complaint about {issue} this month. Consider: {specific operational change}."
- If it's isolated: "This looks like a one-off. No pattern detected."
Volet avis publics (FoodEatUp)
Au-delà des plaintes privées, gérer les avis clients (site + Google) :
list_reviews (establishment_id, rating/status optionnels) : lister, prioriser
les avis négatifs récents.
- Répondre :
reply_review (review_id, body) — la réponse est enregistrée
(publication Google manuelle). Rédiger la réponse en brouillon, validée avec
l'exploitant AVANT l'appel (public, ton de marque).
- Modérer un avis du site :
moderate_review (review_id, action ∈ publish/reject)
— confirmation (hook garde-destructif).
Connector failures
Si le CRM et la boîte mail (rapido-direction) sont injoignables, demander à l'exploitant
de coller le texte de la plainte — le skill fonctionne en saisie manuelle. Si FoodEatUp
est injoignable, sauter la recherche de commande et noter « statut de commande
indisponible — travail à partir du texte de la plainte uniquement ».
Approval gates
- Never send a response without explicit owner approval. Drafts only.
- Never issue refunds or credits automatically. Present the option; the owner decides.
- Never close tickets or resolve disputes without owner confirmation.
Output
Present the customer context summary, the drafted response, and any pattern-based operational suggestion. Ask: "Want to send this response, edit it, or handle it differently?"