ITSkillsCenter
Intelligence Artificielle

Claude pour support client : fine-tune du ton de la marque

10 min de lecture
Miniature - Claude pour support client : fine-tune du ton de la marque

Ce que vous saurez faire à la fin

  1. Créer un Project Claude dédié au SAV avec contexte permanent (FAQ, politique remboursement, voix marque)
  2. Coder un system prompt qui produit un ton uniforme sur 100% des réponses, peu importe l’opérateur
  3. Définir une matrice d’escalade L1/L2/L3 où Claude traite 70% des demandes seul
  4. Intégrer Claude dans Front ou Zendesk via API et webhooks pour une expérience native agent
  5. Mettre en place un A/B test rigoureux sur le ton (formel vs amical) avec mesure NPS et CSAT

Durée : 4h30. Pré-requis : compte Anthropic API, abonnement Front (49 USD/agent) ou Zendesk Suite (55 USD/agent), 50 à 200 conversations historiques exportées en CSV pour calibration, budget API mensuel 45 000 à 90 000 FCFA pour un volume de 2000 tickets/mois.

Étape 1 — Documenter la voix de marque avant tout prompt

Avant d’écrire la moindre ligne de code, formalisez sur 2 pages : 5 adjectifs qui décrivent le ton (ex : direct, chaleureux, précis, respectueux, francophone soigné), 10 mots interdits (ex : « désolé », « malheureusement », « impossible »), 10 formules signature (ex : « On regarde ça tout de suite », « Merci de votre patience »), 3 exemples de réponses parfaites annotées. Pour une PME sénégalaise vendant en ligne, la voix peut intégrer des marqueurs locaux subtils (« on vous tient au courant dans la matinée ») sans tomber dans le folklore.

Étape 2 — Créer un Project Claude dédié SAV

Dans la console Anthropic, créez un Project nommé « SAV Marque XYZ ». Ce Project permet de pré-charger le contexte permanent : FAQ produit, politique de remboursement, conditions générales de vente conformes à l’OHADA, grille tarifaire en FCFA, procédures internes. Tout ce contexte est mis en cache et facturé à 90% de réduction sur les requêtes suivantes via le prompt caching.

import anthropic

client = anthropic.Anthropic()

CONTEXTE_SAV = """[FAQ COMPLÈTE - 40 questions/réponses]
[POLITIQUE REMBOURSEMENT - 14 jours, conditions précises]
[CGV OHADA - article par article]
[GRILLE TARIFAIRE FCFA - 200 références]
[PROCÉDURES INTERNES - escalade, urgences, weekend]
[GLOSSAIRE TECHNIQUE - termes métier]"""

SYSTEM_PROMPT_SAV = f"""Tu es Aïda, conseillère SAV senior chez Marque XYZ, PME sénégalaise.

VOIX MARQUE :
- Direct, chaleureux, précis, respectueux, francophone soigné
- Tu utilises 'on' plutôt que 'nous' (chaleur)
- Tu termines toujours par une question ou un engagement précis
- Tu mentionnes une échéance concrète (date, heure)

MOTS INTERDITS : 'désolé', 'malheureusement', 'impossible', 'je ne peux pas'
À LA PLACE : 'on regarde ça', 'voici ce qu'on peut faire', 'la solution est'

CONTEXTE PERMANENT :
{CONTEXTE_SAV}

RÈGLES DE TRAITEMENT :
1. Si la demande relève de la FAQ : réponds directement
2. Si remboursement < 50 000 FCFA et conforme aux conditions : valide
3. Si litige client mécontent ou remboursement > 50 000 FCFA : escalade vers humain
4. Si demande hors périmètre : redirige avec contact précis"""

Étape 3 — Activer le prompt caching pour diviser le coût par 10

Le contexte SAV pèse environ 8000 tokens. Sans cache, chaque ticket coûterait 0,024 USD juste pour ce contexte. Avec le caching, le coût tombe à 0,0024 USD par ticket après le premier appel de la fenêtre de 5 minutes.

def repondre_ticket(message_client, historique=None):
    messages = []
    if historique:
        messages.extend(historique)
    messages.append({"role": "user", "content": message_client})
    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=600,
        system=[{
            "type": "text",
            "text": SYSTEM_PROMPT_SAV,
            "cache_control": {"type": "ephemeral"}
        }],
        messages=messages
    )
    return response.content[0].text

Étape 4 — Construire la matrice d’escalade L1/L2/L3

Niveau Type de demande Acteur SLA réponse
L1 FAQ, statut commande, suivi livraison, infos produit Claude (autonome) < 30 secondes
L2 Remboursement < 50k FCFA, échange taille, geste commercial Claude propose, agent valide < 2 heures
L3 Litige, avis Google négatif, demande presse, remboursement > 50k FCFA Manager humain < 4 heures (jours ouvrés)

Étape 5 — Coder le routeur d’escalade automatique

PROMPT_ROUTEUR = """Analyse ce message client et retourne UNIQUEMENT un JSON :
{
    "niveau": "L1" ou "L2" ou "L3",
    "categorie": "livraison" ou "produit" ou "remboursement" ou "litige" ou "autre",
    "urgence": "basse" ou "moyenne" ou "haute",
    "sentiment": "positif" ou "neutre" ou "negatif" ou "tres_negatif",
    "montant_estime_fcfa": nombre ou null,
    "raison": "1 phrase d'explication"
}

Critères d'escalade :
- L3 si sentiment = tres_negatif
- L3 si montant > 50000 FCFA
- L3 si mots-clés : avocat, justice, presse, scandale, RTS, Le Soleil
- L2 sinon avec action commerciale
- L1 si simple FAQ"""

def router_ticket(message):
    import json
    response = client.messages.create(
        model="claude-haiku-4-5",
        max_tokens=300,
        system=PROMPT_ROUTEUR,
        messages=[{"role": "user", "content": message}]
    )
    return json.loads(response.content[0].text)

Étape 6 — Intégrer dans Front via API

Front expose une API REST permettant de créer des drafts, d’envoyer des réponses, ou de poser des commentaires internes. L’approche recommandée pour démarrer : Claude crée un draft, l’agent valide en 2 secondes ou édite à la marge. Au bout d’un mois et de 95% de validations sans édition, vous activez l’envoi automatique sur les L1.

import requests

FRONT_TOKEN = "votre_token_front"

def creer_draft_front(conversation_id, contenu, channel_id):
    url = f"https://api2.frontapp.com/conversations/{conversation_id}/drafts"
    headers = {
        "Authorization": f"Bearer {FRONT_TOKEN}",
        "Content-Type": "application/json"
    }
    payload = {
        "channel_id": channel_id,
        "body": contenu,
        "mode": "private"
    }
    return requests.post(url, headers=headers, json=payload).json()

Étape 7 — Intégrer dans Zendesk via API

ZENDESK_SUBDOMAIN = "marquexyz"
ZENDESK_EMAIL = "agent@marquexyz.com/token"
ZENDESK_TOKEN = "votre_token_zendesk"

def ajouter_note_interne_zendesk(ticket_id, contenu):
    url = f"https://{ZENDESK_SUBDOMAIN}.zendesk.com/api/v2/tickets/{ticket_id}.json"
    payload = {
        "ticket": {
            "comment": {
                "body": f"[Suggestion Claude]\n\n{contenu}",
                "public": False
            }
        }
    }
    r = requests.put(
        url,
        json=payload,
        auth=(ZENDESK_EMAIL, ZENDESK_TOKEN)
    )
    return r.json()

Étape 8 — Configurer le webhook pour traitement temps réel

Front et Zendesk déclenchent un webhook à chaque nouveau ticket. Recevez ce webhook dans une fonction serverless (AWS Lambda, Cloudflare Worker ou n8n auto-hébergé), routez avec Claude Haiku (rapide et bon marché), générez la réponse avec Claude Sonnet (qualité), postez le draft. Latence cible : moins de 8 secondes entre arrivée du ticket et apparition du draft pour l’agent.

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route("/webhook/front", methods=["POST"])
def webhook_front():
    payload = request.json
    if payload["type"] != "inbound":
        return jsonify({"status": "ignored"})
    conv_id = payload["conversation"]["id"]
    msg = payload["target"]["data"]["body"]
    routage = router_ticket(msg)
    if routage["niveau"] == "L3":
        return jsonify({"status": "escalade_humaine", "raison": routage["raison"]})
    reponse = repondre_ticket(msg)
    creer_draft_front(conv_id, reponse, payload["conversation"]["recipient"]["handle"])
    return jsonify({"status": "draft_cree", "niveau": routage["niveau"]})

Étape 9 — A/B tester deux variantes de ton

Préparez deux system prompts : variante A (formel, vouvoiement strict, formules institutionnelles) et variante B (chaleureux, « on » inclusif, ton conversationnel). Affectez aléatoirement chaque ticket à une variante et tracez l’identifiant. Sur 30 jours et 1500 tickets minimum, comparez : CSAT (note 1-5 envoyée après résolution), NPS (recommandation), taux de réouverture, temps moyen de résolution.

Métrique Variante A (formel) Variante B (chaleureux) Verdict
CSAT moyen 4,1/5 4,5/5 Variante B gagnante
NPS +32 +47 Variante B gagnante
Taux réouverture 11% 9% Variante B légère avance
Temps résolution moyen 14 min 11 min Variante B gagnante

Étape 10 — Calibrer le ton sur 50 conversations historiques

Exportez 50 conversations parfaitement résolues par votre meilleur agent. Pour chacune, soumettez le contexte à Claude et demandez-lui de générer la réponse. Comparez côte à côte la réponse Claude et la vraie réponse de l’agent. Notez sur 10 la similarité de ton. Ajustez le system prompt jusqu’à atteindre une note moyenne de 8/10 sur l’échantillon. Cette calibration prend environ 4 heures et économise des semaines de tâtonnement en production.

PROMPT_CALIBRATION = """Voici une conversation client réelle et la réponse parfaite de notre meilleur agent.

CONVERSATION CLIENT :
{conversation}

RÉPONSE AGENT IDÉALE :
{reponse_agent}

RÉPONSE CLAUDE GÉNÉRÉE :
{reponse_claude}

Note la réponse Claude sur 10 selon ces critères :
- Ton (chaleur, professionnalisme) : note /10
- Précision (info juste, pas d'invention) : note /10
- Engagement (action concrète promise) : note /10
- Brièveté (juste assez de mots) : note /10

Donne la note finale moyenne et 1 phrase de feedback pour améliorer le system prompt."""

Étape 11 — Gérer les conversations multilingues (français, wolof, anglais)

Au Sénégal, 30% des messages WhatsApp peuvent contenir du wolof transcrit en alphabet latin (« nanga def », « ba beneen yoon »). Claude comprend le wolof écrit et peut répondre en français standard ou en mode hybride si vous l’autorisez. Ajoutez dans le system prompt : « Si le client écrit en wolof, réponds en français mais glisse une formule en wolof en ouverture (Salaamaalekum) ou clôture (jërëjëf) pour la chaleur. »

Étape 12 — Mesurer le NPS post-interaction

3 heures après résolution, envoyez automatiquement un mini-questionnaire (1 question : « De 0 à 10, recommanderiez-vous notre SAV ? »). Stockez la note avec l’ID de la conversation, la variante utilisée, et le niveau d’escalade. Visez un NPS supérieur à +40 sur les tickets traités majoritairement par Claude. Si NPS < +20, l’IA dégrade l’expérience et il faut revoir le system prompt en urgence.

Étape 13 — Mettre en place un quality monitoring hebdomadaire

Chaque vendredi, échantillonnez 30 conversations aléatoires (10 L1 Claude seul, 10 L2 Claude + agent, 10 L3 humain). Soumettez chaque conversation à Claude Opus avec ce prompt : « Note cette conversation sur 5 critères : précision, ton, conformité voix marque, résolution effective, satisfaction probable. » Calculez un score qualité hebdomadaire et alertez le manager SAV si la moyenne descend sous 4/5.

Étape 14 — Itérer le system prompt chaque mois

Le system prompt n’est jamais figé. Chaque fin de mois, analysez les 20 tickets les moins bien notés (CSAT < 3) et identifiez les patterns récurrents. Ajoutez 1 à 3 règles précises dans le system prompt pour traiter ces cas. Versionnez chaque version dans Git avec changelog. Sur 6 mois, attendez-vous à passer de 65% de drafts validés sans édition à 92%, ce qui libère 60% du temps agent pour les vraies escalades à valeur ajoutée.

Erreurs classiques à éviter

  • Activer l’envoi automatique dès le jour 1 : conséquence, 1 réponse Claude maladroite virale sur Twitter, 3 mois de réparation d’image.
  • Ignorer le prompt caching : conséquence, facture API multipliée par 10, projet non rentable au-dessus de 500 tickets/mois.
  • Coder un system prompt vague (« sois sympa ») : conséquence, ton incohérent, 30% des clients le détectent comme IA et se désengagent.
  • Ne pas tracer la variante A/B : conséquence, impossible de prouver le ROI, l’arbitrage ton repose sur l’opinion du dirigeant.
  • Sauter l’escalade L3 sur les litiges : conséquence, Claude promet un remboursement non conforme aux CGV, contentieux à 800 000 FCFA.

Checklist Fine-tune ton SAV

✓ Voix marque documentée (5 adjectifs, 10 mots interdits, 10 formules)
✓ Project Claude créé avec contexte FAQ + CGV OHADA
✓ Prompt caching activé sur le system prompt SAV
✓ Matrice escalade L1/L2/L3 validée par direction
✓ Routeur Claude Haiku opérationnel (sentiment + urgence)
✓ Intégration Front ou Zendesk testée en mode draft
✓ Webhook temps réel configuré (latence < 8 secondes)
✓ Mode wolof + français + anglais activé si pertinent
✓ Calibration sur 50 conversations historiques (note > 8/10)
✓ A/B test variante A vs B planifié sur 1500 tickets
✓ NPS post-interaction automatisé à H+3
✓ Quality monitoring hebdomadaire avec Claude Opus
✓ Versioning Git du system prompt avec changelog mensuel
✓ Procédure de pause d'urgence (kill switch) documentée
✓ Budget API mensuel plafonné dans la console Anthropic
Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité