Le service client est le cas d'usage numéro un des chatbots WhatsApp en Afrique. Et pour cause : il combine l'urgence d'une réponse rapide, la répétitivité de nombreuses questions, et la disponibilité 24h/24 que WhatsApp rend naturellement attendue. Un chatbot de service client bien architecturé peut traiter 70% des demandes sans intervention humaine tout en améliorant la satisfaction client.
Ce guide vous présente l'architecture de référence et les scénarios types d'un chatbot WhatsApp de service client africain.
Architecture de référence
MESSAGE ENTRANT WhatsApp
↓
COUCHE DE RÉCEPTION
(Webhook Whakup)
↓
PRÉTRAITEMENT LINGUISTIQUE
(normalisation, langue détection)
↓
MOTEUR DE ROUTING
┌──────────────┴─────────────────┐
Intention Sentiment
détectée très négatif
│ │
┌─────────┼──────────┐ ESCALADE
│ │ │ URGENTE
FAQ TRANSACTIONNEL COMPLEXE
│ │ │
BOT API NLP/LLM
statique intégrée avancé
│ │ │
└─────────┼──────────┘
│
RÉPONSE CLIENTE
│
LOGGING & CRM
Scénario 1 : Réponse FAQ automatique
Le scénario le plus fréquent. 40-50% des messages entrants dans un service client africain typique sont des questions répétitives avec des réponses fixes.
// Système FAQ WhatsApp avec routing par intention
const faqFlows = {
'horaires': {
triggers: ['horaire', 'ouvert', 'fermé', 'heure', 'weekend', 'samedi', 'dimanche'],
response: async () => {
const schedule = await getBusinessSchedule();
return `🕐 Nos horaires :
Lun-Ven : ${schedule.weekday}
Samedi : ${schedule.saturday}
Dimanche : ${schedule.sunday}
Notre chatbot est disponible 24h/24 pour les questions courantes.`;
},
follow_up_buttons: ['Commander', 'Suivi commande', 'Autre question']
},
'livraison_tarif': {
triggers: ['livraison', 'délai', 'combien livraison', 'tarif livraison', 'frais port'],
response: async (customerCity) => {
const rates = await getDeliveryRates(customerCity);
return `📦 Livraison :
${rates.map(r => `• ${r.city} : ${r.delay} — ${r.price} FCFA`).join('\n')}
✅ Livraison offerte dès ${rates.free_threshold} FCFA d'achat`;
}
},
'paiement_modes': {
triggers: ['payer', 'paiement', 'wave', 'orange money', 'mtn', 'mobile money'],
response: `💳 Modes de paiement :
✅ Wave (Sénégal & Côte d'Ivoire)
✅ Orange Money (CI, Sénégal, Cameroun)
✅ MTN Mobile Money (CI, Cameroun)
✅ Carte bancaire Visa/Mastercard
✅ Paiement à la livraison (Abidjan et Dakar)
Tous les paiements sont sécurisés et confirmés par message.`
}
};
async function handleFAQMessage(phone, message, intentionData) {
const flow = faqFlows[intentionData.intent];
if (!flow) return null; // Pas de FAQ pour cette intention
const response = typeof flow.response === 'function'
? await flow.response(intentionData.entities?.city)
: flow.response;
await sendMessage(phone, response);
if (flow.follow_up_buttons) {
await sendButtonMessage(phone,
"Puis-je vous aider avec autre chose ?",
flow.follow_up_buttons
);
}
return { handled: true, type: 'faq' };
}
Scénario 2 : Suivi de commande avec API
Le deuxième cas d'usage le plus fréquent, et l'un des plus rentables à automatiser.
// Flow complet de suivi de commande
const orderTrackingFlow = {
step1_ask_order_number: {
message: "Pour suivre votre commande, envoyez-moi votre numéro de commande (ex: CMD-2026-1234).",
waiting_for: 'order_number',
validation: /^CMD-\d{4}-\d+$/i
},
step2_verify_and_display: async (phone, orderNumber) => {
const order = await ordersAPI.getOrder(orderNumber);
if (!order) {
return {
message: `Ce numéro de commande n'existe pas dans notre système 🤔
Vérifiez votre email de confirmation ou tapez *aide* pour parler à un agent.`,
type: 'not_found'
};
}
// Vérifier que la commande appartient à ce numéro WhatsApp
if (order.customer_phone !== phone) {
return {
message: "Ce numéro de commande ne correspond pas à votre compte. Pour des raisons de sécurité, je ne peux pas afficher ces informations. Tapez *agent* pour parler à un conseiller.",
type: 'security_check'
};
}
const statusMessages = {
'pending': '⏳ En attente de traitement',
'confirmed': '✅ Commande confirmée',
'preparing': '📦 En préparation',
'shipped': '🚚 En cours de livraison',
'out_for_delivery': '🛵 Livreur en route vers vous !',
'delivered': '✅ Livré',
'returned': '↩️ Retour en cours'
};
const statusLine = statusMessages[order.status] || `Statut: ${order.status}`;
return {
message: `Commande *${orderNumber}*
${statusLine}
📅 Commandée le : ${formatDate(order.created_at)}
🎁 Articles : ${order.items.map(i => i.name).join(', ')}
💰 Total : ${formatCurrency(order.total)}
${order.tracking_url ? `\n🔗 Suivi en temps réel : ${order.tracking_url}` : ''}
${order.estimated_delivery ? `\n📅 Livraison estimée : ${formatDate(order.estimated_delivery)}` : ''}`,
follow_up: order.status !== 'delivered'
? ['Modifier adresse', 'Annuler', 'Contacter agent']
: ['Commander à nouveau', 'Retour/Échange', 'Laisser un avis']
};
}
};
Scénario 3 : Gestion de réclamation
Le scénario le plus délicat — ici, l'empathie et la rapidité sont cruciales.
// Flow de réclamation avec sentiment monitoring
const reclamationFlow = {
async handle(phone, message, customerData) {
// Empathie d'abord, TOUJOURS
await sendMessage(phone,
"Je suis vraiment désolé pour ce problème et je vais m'en occuper personnellement. " +
"Pour vous aider au mieux, pouvez-vous me donner :"
);
// Collecter les informations via formulaire WhatsApp Flows
await sendFlowMessage(phone, {
flow_id: 'complaint_form',
fields: [
{ name: 'order_id', label: 'Numéro de commande', required: true },
{ name: 'problem_type', label: 'Type de problème', type: 'select',
options: ['Produit non reçu', 'Produit défectueux', 'Mauvais produit',
'Problème de paiement', 'Autre'] },
{ name: 'description', label: 'Décrivez le problème', max_chars: 500 }
]
});
// À la réception du formulaire rempli
return { next_step: 'process_complaint_form' };
},
async processComplaintForm(phone, formData) {
// Créer ticket dans le système
const ticket = await createComplaintTicket(phone, formData);
// Notifier l'équipe concernée
await notifyRelevantTeam(ticket);
// Confirmer au client avec délai de résolution
await sendMessage(phone,
`Votre réclamation *#${ticket.id}* est bien enregistrée ✅
Notre équipe va la traiter en priorité.
Délai de réponse : *2h en heures ouvrables*.
Vous recevrez une mise à jour par WhatsApp.
Merci de votre patience — nous allons résoudre cela. 🙏`
);
}
};
Scénario 4 : Retour produit automatisé
// Flow de retour produit
const returnFlow = {
async initiate(phone, orderId) {
const order = await ordersAPI.getOrder(orderId);
// Vérifier éligibilité
const daysSincePurchase = getDaysDiff(order.purchase_date, new Date());
if (daysSincePurchase > 30) {
return sendMessage(phone,
"Désolé, le délai de retour de 30 jours est dépassé pour cette commande 😕\n" +
"Si l'article est défectueux, cela reste possible. Tapez *défectueux* pour continuer."
);
}
// Collecter la raison
await sendListMessage(phone, "Pourquoi souhaitez-vous retourner cet article ?", [
{ id: 'wrong_size', title: 'Mauvaise taille' },
{ id: 'not_as_described', title: 'Ne correspond pas à la description' },
{ id: 'defective', title: 'Défectueux/Endommagé' },
{ id: 'changed_mind', title: 'Changement d\'avis' }
]);
},
async processReturn(phone, orderId, reason) {
// Générer étiquette de retour
const returnLabel = await returnsAPI.createReturnLabel(orderId, reason);
await sendMessage(phone,
`✅ Retour initié avec succès !
*Code retour : ${returnLabel.code}*
📍 Déposez votre colis dans n'importe quel point relais [Opérateur Logistique].
📅 Délai retour : déposez dans les 7 jours
💰 Remboursement sous *5-7 jours ouvrés* après réception.
Pour trouver le point relais le plus proche : ${returnLabel.points_relais_url}`
);
}
};
Pour approfondir, consultez notre guide sur le bot de vente WhatsApp et notre article sur l'automatisation WhatsApp flows.
FAQ
Q: Un chatbot de service client WhatsApp peut-il vraiment résoudre 70% des demandes ?
A: Oui, mais ce taux dépend de votre préparation. 70% est atteignable si vous avez : (1) une FAQ exhaustive et à jour, (2) une intégration API avec votre système de gestion des commandes pour le suivi en temps réel, (3) un flow de réclamation qui collecte les informations et crée les tickets automatiquement. Les entreprises qui démarrent sans ces trois éléments atteignent plutôt 40-50%.
Q: Comment gérer les cas où le client est insatisfait de la réponse du bot et demande un humain ?
A: Toujours escalader sans friction. Un bouton "Parler à un agent" doit être disponible à chaque étape du flow. Configurez une transition empathique : "Je comprends que vous souhaitez parler directement avec quelqu'un. Je vous connecte immédiatement." La satisfaction post-escalade est généralement meilleure que si le bot avait insisté à gérer seul.
Q: Le bot doit-il gérer les réclamations ou les transférer systématiquement à un humain ?
A: Le bot peut gérer la collecte des informations de réclamation (numéro commande, type de problème, description) et créer le ticket automatiquement. La résolution finale (remboursement, échange, geste commercial) doit être confirmée par un humain sauf pour les cas très standardisés (retour dans les délais = remboursement automatique sans condition). Ce découplage collecte/résolution est l'architecture optimale.
Q: Comment s'assurer que le bot ne promet pas ce que l'entreprise ne peut pas tenir ?
A: Votre system prompt et vos flows doivent être extrêmement précis sur ce que le bot est autorisé à promettre. Le bot ne doit jamais promettre un remboursement, une livraison express ou un geste commercial sans vérification humaine. Il peut dire "notre équipe va étudier votre demande de remboursement" mais pas "vous serez remboursé dans 48h" sans que ce soit une politique automatique confirmée.
Un chatbot de service client WhatsApp bien architecturé est le meilleur investissement que vous puissiez faire pour votre relation client en Afrique.
Créez votre chatbot de service client avec Whakup et automatisez 70% de vos demandes dès les premières semaines.

Co-fondateur et Chief Product Officer de Whakup, Pablo conçoit les fonctionnalités qui permettent aux marques africaines de maximiser leur impact sur WhatsApp.
Prêt à passer à l'action ?
Essayez Whakup gratuitement pendant 15 jours. Aucune carte bancaire requise.
Démarrer l'essai gratuitArticles similaires
Abandon de flows WhatsApp : comprendre et réduire le taux d'abandon
Analyser et réduire l'abandon de flows dans votre chatbot WhatsApp. Identifier les étapes problématiques, comprendre les causes et appliquer les corrections pour améliorer la complétion.
Benchmark WhatsApp Marketing en Afrique par secteur : données 2025
Benchmarks WhatsApp Marketing par secteur d'activité en Afrique : e-commerce, banque, santé, tourisme, immobilier. Taux d'ouverture, conversion et satisfaction pour vous situer.
Conversation analytics WhatsApp : créer un tableau de bord de pilotage
Construire un tableau de bord analytics pour piloter votre chatbot WhatsApp. Métriques clés, visualisations, alertes automatiques et reporting pour décideurs africains.