Retour aux cas d’usage
Support client

Support client IA — Claude + Kunavo pour automatiser les tickets en production

Le déploiement IA offrant le retour sur investissement le plus rapide dans tout SaaS B2C — automatisez le tri des tickets, rédigez 80 % des réponses et transmettez proprement le reste. Code de production, chiffres de coûts réels et pièges de conformité qui surprennent les équipes.

Modèles recommandés

Dernière vérification le .

Pourquoi le support client est le déploiement d’IA au meilleur retour sur investissement

Trois chiffres l’expliquent. Ticket traité par un humain en moyenne : ~5 minutes, 1,50 à 3 $ tout compris. Ticket rédigé par l’IA et relu par un humain en moyenne : ~1 minute, 0,01 à 0,05 $ de coûts d’API. Résolution entièrement par l’IA en moyenne, sans humain : ~30 secondes, 0,01 $. Cela représente une réduction des coûts de 30 à 150 fois à qualité égale, une fois la consigne de classification et de rédaction correctement réglée.

Le point délicat : les tickets fréquents de niveau 1 fonctionnent très bien avec l’IA ; les tickets complexes nécessitent des humains. L’architecture ci-dessous achemine intelligemment les demandes : un modèle peu coûteux les classe, un modèle coûteux rédige des réponses pour les cas qui le justifient, et les règles d’escalade envoient les cas difficiles vers une file prise en charge par des humains.

Architecture en quatre étapes

  1. Classer — Claude Haiku 4.5 renvoie la catégorie, la priorité et le sentiment au format JSON
  2. Récupérer — extraire les 5 documents les plus pertinents de votre base de connaissances (utilisez le guide RAG)
  3. Rédiger — Claude Sonnet 5 rédige une réponse à partir du contexte de la base de connaissances et des consignes de ton
  4. Acheminer — envoyer automatiquement si la priorité est faible et la confiance élevée ; sinon transmettre à un agent humain pour approbation ou modification en un clic
support_bot.py
import json
from openai import OpenAI
client = OpenAI(api_key="sk-kn-...", base_url="https://api.kunavo.com/v1")

# Claude enforces a json_schema response_format; json_object it does not.
TICKET = {
    "type": "object",
    "properties": {
        "category": {"type": "string",
                     "enum": ["billing", "shipping", "account", "technical", "other"]},
        "priority": {"type": "string", "enum": ["low", "normal", "urgent"]},
        "sentiment": {"type": "string", "enum": ["negative", "neutral", "positive"]},
    },
    "required": ["category", "priority", "sentiment"],
    "additionalProperties": False,
}

# 1) Classify the ticket (cheap model)
def classify(text: str) -> dict:
    resp = client.chat.completions.create(
        model="claude-haiku-4-5",
        messages=[
            {"role": "system", "content": "Classify this support ticket."},
            {"role": "user", "content": text},
        ],
        response_format={"type": "json_schema",
                         "json_schema": {"name": "ticket", "schema": TICKET}},
        max_tokens=200,
    )
    return json.loads(resp.choices[0].message.content)

# 2) Draft a response (better model)
def draft(ticket: str, kb_context: list[str], guidelines: str) -> str:
    resp = client.chat.completions.create(
        model="claude-sonnet-5",
        messages=[
            {"role": "system", "content": [{
                "type": "text",
                "text": guidelines,  # tone, policy, escalation rules
                "cache_control": {"type": "ephemeral"},
            }]},
            {"role": "user", "content": (
                f"# Knowledge base\n{chr(10).join(kb_context)}\n\n"
                f"# Customer message\n{ticket}\n\n"
                "Draft a reply. Be specific, cite the KB doc id."
            )},
        ],
        max_tokens=500,
    )
    return resp.choices[0].message.content

Projection du coût réel

  • 100 tickets/jour avec classification, rédaction et mise en cache : ~0,02 $/ticket × 100 = ~60 $/mois
  • 1 000 tickets/jour : ~600 $/mois — remplace environ 3 agents à temps plein aux tarifs occidentaux habituels du niveau 1
  • 10 000 tickets/jour (grand site e-commerce) : ~6 000 $/mois — remplace 30 agents ou plus

Ces chiffres supposent que la mise en cache des prompts est activée (le prompt système est statique ; le contexte de la base de connaissances varie selon le ticket). Fonctionnement de la mise en cache des prompts — la différence entre 60 $ et 200 $ par mois pour 100 tickets par jour.

Anti-modèles à éviter

  • Envoyer automatiquement des réponses à enjeux élevés (remboursements, modifications de compte, réclamations) sans validation humaine. Le risque réputationnel d’une seule mauvaise réponse automatique dépasse tous les gains d’efficacité
  • Acheminer selon des mots-clés plutôt que par classification LLM — le routage par mots-clés se brise dès que les utilisateurs formulent leur demande différemment ; la classification LLM gère les paraphrases sans difficulté
  • Attentes excessives pour le niveau 1 — l’IA gère les répétitions et les questions courantes, pas « j’ai été facturé 3 fois pour une commande et votre chatbot me dit sans cesse de contacter le support ». Préservez une sortie claire vers un humain

À quoi ressemble une bonne mise en œuvre au 6e mois

  • 60 à 80 % des tickets entrants résolus sans intervention humaine (IA + base de connaissances)
  • Les 20 à 40 % restants sont rédigés par l’IA, relus et envoyés par des humains en ~1 minute par ticket
  • L’équipe humaine se concentre sur les cas particuliers et l’amélioration de la base de connaissances
  • Coût net : 70 à 85 % inférieur à celui d’avant l’IA ; la satisfaction client est souvent supérieure grâce à des réponses plus rapides

Considérations linguistiques

Si vous prenez en charge plusieurs langues, Claude Sonnet 5 en gère correctement environ 30. Pour le coréen en particulier (les niveaux de politesse sont importants), consultez notre analyse approfondie de l’automatisation des centres d’appels coréens. Pour le japonais, le chinois, l’allemand et le français, appliquez la même méthode avec des consignes propres à chaque langue dans le prompt système mis en cache.

Démarrez en 30 minutes

  1. Inscrivez-vous — paiement à l’usage à partir d’un rechargement de 10 $ sur /app/signup
  2. Branchez votre base de connaissances sur pgvector + text-embedding-3-large, avec les embeddings générés directement via OpenAI — Kunavo sert l’étape de génération, pas celle des embeddings
  3. Intégrez l’extrait de classification et de rédaction ci-dessus à votre système de tickets (Intercom, Zendesk et Freshdesk proposent tous des points d’entrée webhook)
  4. Commencez en « mode brouillon » : les humains approuvent chaque réponse. Après 100 validations correctes, activez l’envoi automatique pour les catégories à faible priorité

FAQ

How much does AI customer support automation cost per month?

At 1,000 tickets a day a tiered Claude pipeline costs roughly $600 per month at Kunavo rates, which replaces three or more full-time tier-1 agents. The classification step alone is under $0.0001 per ticket on Claude Haiku 4.5.

Which model should classify tickets, and which should draft replies?

Claude Haiku 4.5 classifies — it returns category, priority and sentiment in one short call — and Claude Sonnet 4.6 drafts the reply from knowledge-base context plus tone guidelines. Splitting the two is what produces the 30–150× cost reduction against sending every ticket to one large model.

What share of support tickets can be automated?

About 80% of tickets can be drafted automatically. Auto-send applies to low-priority tickets where model confidence is high; everything else queues for human review.

How do I keep prompt cost down on a support pipeline?

Put the tone-guidelines block under cache_control. It is identical on every ticket, so it bills as cached input instead of being re-sent at the full input rate.