Lancer un compagnon IA sur WhatsApp en 2026 : le guide
Plan pas à pas pour lancer un compagnon IA sur WhatsApp : numéro, persona, lien wa.me, mémoire, règles de sécurité, rétention sans message à froid, coût.

L’essentiel
- Les conditions WhatsApp Business de Meta, en vigueur depuis le 15 janvier 2026, écartent les assistants IA dont l'IA est la fonction principale, sauf sur une courte liste de marchés : la plupart des compagnons tournent donc sur un numéro WhatsApp personnel.
- Sur whasp, l'utilisateur écrit toujours en premier : affichez après l'inscription un lien wa.me avec un message prérempli qui contient un code reliant son téléphone à son compte.
- Les serveurs de whasp ne conservent aucun message : c'est votre propre base qui garde l'historique de la conversation, le résumé glissant et les faits dont votre compagnon se souvient.
- La rétention vient des boucles ouvertes dans la conversation, des liens (e-mail, application) qui ouvrent le chat et des rappels que les utilisateurs demandent, pas des messages à froid.
- Prévoyez la sécurité dès le premier jour : dire que c'est une IA, vérifier l'âge à l'inscription, traiter l'automutilation et respecter STOP.
Pour lancer un compagnon IA sur WhatsApp, faites-le tourner sur un numéro WhatsApp personnel, car l’API Business de Meta écarte les assistants IA généralistes dans la plupart des marchés. Définissez un persona sur le profil du numéro, donnez aux utilisateurs un lien pour qu’ils écrivent en premier, répondez à chaque message depuis un webhook avec une mémoire que vous stockez vous-même, et appliquez des règles de sécurité dès le premier jour.
Pourquoi créer un compagnon sur WhatsApp, et est-ce autorisé ?
Un compagnon vit ou meurt selon la fréquence à laquelle les gens ouvrent la conversation. Plus de 3 milliards de personnes utilisent WhatsApp chaque mois, selon l’appel de Meta sur les résultats du premier trimestre 2025, rapporté par TechCrunch, et votre compagnon arrive comme un contact dans une application qu’ils ouvrent déjà tous les jours. Pas d’installation, pas de fiche sur un store, pas de nouvelle autorisation de notifications. Les arguments complets, chiffres à l’appui, font l’objet d’un article à part.
Le hic, ce sont les règles. Les conditions WhatsApp Business de Meta, en vigueur depuis le 15 janvier 2026, interdisent aux « AI providers » (fournisseurs d’IA) l’accès à la Business Platform lorsque l’IA est la fonctionnalité principale. La page tarifaire de Meta les définit comme les développeurs de modèles de langage, les plateformes d’IA générative et les assistants généralistes. Un compagnon est l’IA elle-même ; selon notre lecture, il est donc concerné.
La page de Meta indique que Meta ne prend en charge les fournisseurs d’IA que sur les marchés où la loi l’y oblige : l’Italie, le Brésil, 29 autres pays européens et, à partir du 15 octobre 2026, la Turquie. Même là, les messages de service ne peuvent être envoyés qu’en réponse aux utilisateurs, dans une fenêtre de 24 heures ouverte. La page ne cite ni les États-Unis, ni le Royaume-Uni, ni l’Inde, ni le Mexique. La règle de janvier 2026 en détail en donne la chronologie.
Reste le numéro WhatsApp personnel. Vous pouvez en exploiter un vous-même avec une bibliothèque open source (le numéro, le téléphone et le risque de bannissement sont à vous) ou utiliser un numéro géré. La suite de ce guide utilise whasp, qui fait tourner le numéro sur un téléphone cloud et vous donne un webhook et un appel d’envoi.
Comment configurer le persona et le numéro ?
Un numéro whasp est un vrai compte WhatsApp, il porte donc un seul persona : un nom, une ligne d’info (about) et une photo. Le nom compte 25 caractères au maximum, l’info 139, en ASCII simple pour l’instant (donc sans accents). Le profil est la première chose que voit l’utilisateur : indiquez-y que c’est une IA.
curl https://api.whasp.ai/v1/numbers \
-H "Authorization: Bearer $WHASP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"label": "ava",
"profile": {
"name": "Ava",
"about": "Une amie IA. Parle-moi quand tu veux.",
"photo_url": "https://example.com/ava.jpg"
}
}'
Cet appel débite $49. Le numéro revient active (le cas habituel) ou provisioning, ce qui prend environ 30 minutes et se termine par un événement number.ready. Pointez ensuite whasp vers votre serveur. La réponse contient le secret de signature, whsec_..., créé une seule fois et conservé.
curl -X PUT https://api.whasp.ai/v1/webhook \
-H "Authorization: Bearer $WHASP_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://companion.example.com/whasp" }'
Si vous faites tourner plusieurs personnages, vous gérez plusieurs numéros, un profil chacun.
Comment les utilisateurs démarrent-ils la conversation avec le compagnon ?
Ce sont les utilisateurs qui lancent la conversation. Un numéro whasp ne peut pas en ouvrir une : un envoi vers quelqu’un qui n’a jamais écrit renvoie 409 chat_not_open. Le premier contact a donc lieu dans votre produit. Après l’inscription, affichez un bouton qui ouvre WhatsApp avec le message déjà saisi.
GET /v1/numbers/pick renvoie le numéro sain qui a le plus de place, avec un wa_link. Mettez dans le texte prérempli un code issu de l’inscription : le premier message entrant vous dit à qui appartient ce téléphone.
// Appelée quand un utilisateur connecté touche « Parler à Ava » dans votre application.
export async function chatLink(code: string): Promise<string> {
const text = encodeURIComponent(`Salut Ava, mon code est ${code}`);
const res = await fetch(`https://api.whasp.ai/v1/numbers/pick?text=${text}`, {
headers: { Authorization: `Bearer ${process.env.WHASP_API_KEY}` },
});
if (res.ok) {
const { wa_link } = await res.json();
return wa_link;
}
throw new Error(`pick failed with ${res.status}`); // 409 no_capacity : ajoutez un numéro
}
Vérifiez l’âge et faites accepter vos conditions avant d’afficher le lien. Si un téléphone inconnu écrit sans code, répondez une seule fois avec un lien d’inscription.
Comment le compagnon répond-il, se souvient-il et garde-t-il un ton humain ?
Le compagnon répond depuis un webhook. Chaque message entrant arrive dans un événement message.received, signé selon Standard Webhooks. Vérifiez la signature, répondez 2xx tout de suite, puis faites le travail lent : charger la mémoire, appeler votre modèle, envoyer la réponse.
import { createServer } from "node:http";
import { Webhook } from "standardwebhooks";
declare function linkPhoneToAccount(phone: string, code: string): Promise<void>;
declare function companionReply(chat: string, text: string): Promise<string[]>; // mémoire + modèle
const wh = new Webhook(process.env.WHASP_WEBHOOK_SECRET ?? ""); // whsec_...
const handled = new Set<string>(); // en production, utilisez une table en base de données
async function send(to: string, text: string, key: string) {
const res = await fetch("https://api.whasp.ai/v1/messages", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.WHASP_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": key,
},
body: JSON.stringify({ to, text }),
});
if (res.ok) return;
console.error("send failed", res.status, await res.text());
}
async function handle(event: any) {
const { chat, text } = event.data.message;
const code = text?.match(/mon code est (\w+)/i)?.[1];
if (code) await linkPhoneToAccount(chat, code);
const parts = await companionReply(chat, text ?? "");
for (const [i, part] of parts.entries()) await send(chat, part, `${event.id}:${i}`);
}
createServer(async (req, res) => {
req.setEncoding("utf8");
let body = "";
for await (const chunk of req) body += chunk;
let event: any;
try {
event = wh.verify(body, req.headers as Record<string, string>);
} catch {
res.writeHead(401).end();
return;
}
res.writeHead(204).end(); // on accuse réception d'abord, on travaille ensuite
const duplicate = handled.has(event.id);
handled.add(event.id);
if (event.type === "message.received" && duplicate === false) await handle(event);
}).listen(3000);
En utilisant l’identifiant de l’événement dans l’Idempotency-Key, un événement rejoué n’envoie jamais deux fois. Les événements peuvent arriver en double ou dans le désordre, d’où le contrôle handled.
La mémoire vous appartient. Les serveurs de whasp ne conservent aucun message : le contenu d’un message entrant ne vous parvient qu’une fois, dans cet événement. Stockez les derniers échanges, un résumé glissant et une courte liste de faits (prénom, métier, proches, projets). C’est ce qui permet à Ava de dire « Comment s’est passé vendredi ? » trois semaines plus tard. La mémoire de conversation détaille le schéma et les budgets de tokens.
Le ton est celui du chat, pas de la dissertation. Découpez une réponse en deux ou trois messages courts, posez une question à la fois et évitez le Markdown. whasp envoie les messages d’un numéro un par un, à environ une seconde d’écart : le rythme est donc intégré. Écrire pour WhatsApp propose un modèle de system prompt.
Maya : Ça s’est super bien passé, j’ai eu le poste.
Ava : Maya, c’est énorme. Félicitations.
Ava : La semaine dernière, tu appréhendais le deuxième tour. Qu’est-ce qu’ils t’ont demandé au final ?
Un numéro est un téléphone piloté comme le ferait une personne, donc certaines choses manquent : indicateurs de saisie, confirmations de lecture, messages vocaux sortants, groupes, réponse à un message précis. Un message vocal envoyé par un utilisateur arrive sous forme de fichier audio que vous pouvez transcrire.
Quelles règles de sécurité et d’âge un compagnon doit-il respecter ?
Un compagnon a besoin de ses règles de sécurité avant son premier utilisateur, car tôt ou tard il rencontrera quelqu’un en détresse. Quatre points comptent sur WhatsApp.
- Dire que c’est une IA. Mettez-le dans la ligne d’info du profil et dans le premier message. La loi SB 243 de Californie, promulguée en octobre 2025, oblige les opérateurs de chatbots compagnons à indiquer clairement que le chatbot est une IA dès qu’une personne raisonnable pourrait croire parler à un humain, et toujours aux utilisateurs qu’ils savent mineurs.
- Vérifier l’âge avant le lien. Les conditions d’utilisation de WhatsApp fixent un minimum de 13 ans, ou plus si la loi locale l’exige. whasp ne peut pas vérifier les âges. Vous, vous le pouvez, à l’inscription, avant d’afficher le lien. Le même résumé californien ajoute des rappels de pause pour les mineurs et l’interdiction des images sexuellement explicites pour eux.
- Gérer l’automutilation. La SB 243 exige aussi des protocoles face aux idées suicidaires. Détectez-les, sortez du jeu de rôle et donnez un numéro d’écoute adapté au pays de l’utilisateur. L’indicatif du numéro de téléphone
chatvous indique lequel. - Respecter STOP. Un
STOP,UNSUBSCRIBE,OPTOUT,CANCEL,END,QUITentrant, ou n’importe quelle graphie de « opt out », désinscrit automatiquement la conversation, et les envois renvoient ensuite 403chat_opted_outjusqu’à ce que l’utilisateur écrive de nouveau. Les demandes polies (« arrête, s’il te plaît ») sont à vous de les repérer. Confirmez une seule fois avec"override_optout": true.
Les règles de sécurité des compagnons IA en 2026 transforment les lois en liste de contrôle. Ceci n’est pas un avis juridique.
Comment fidéliser les utilisateurs sans message à froid ?
Sur un numéro qui ne peut pas écrire en premier, la rétention vient de trois sources, et aucune n’est un message à froid.
Des boucles ouvertes dans la conversation. Terminez une session sur quelque chose qui a une suite : l’entretien de vendredi, le livre qui vient d’être commencé, la dispute à régler. Enregistrez-le. Quand l’utilisateur réécrit, la première réponse d’Ava le reprend. On revient pour finir une histoire.
Les canaux que vous maîtrisez. Votre application, un e-mail ou une notification push peut porter le même wa_link, avec un message prérempli « Salut Ava, c’est Maya ». L’utilisateur touche le lien et écrit en premier : il n’y a donc aucun message à froid. Collectez un e-mail à l’inscription pour cet usage et pour le cas du bannissement plus bas.
Les demandes faites dans la conversation. Si Maya dit « prends de mes nouvelles vendredi soir », votre système peut envoyer ce message plus tard. whasp accepte un envoi vers toute personne qui a écrit au numéro et le refuse pour tous les autres. Gardez ces messages rares, précis et explicitement demandés. Ne bâtissez pas le produit sur des messages que personne n’a demandés.
Ne promettez jamais aux utilisateurs que le compagnon « vous écrit en premier ». Il ne le peut pas, et les cas d’usage qui fonctionnent le mieux partent tous de l’utilisateur.
Comment fixer le prix d’un compagnon et prévoir la montée en charge ?
Faites payer en dehors de WhatsApp. Vendez l’abonnement sur votre site ou dans votre application, liez le téléphone au compte grâce au code d’inscription et vérifiez le forfait dans le code qui traite le webhook. Un téléphone sans abonnement reçoit une seule réponse avec un lien pour s’abonner. whasp ne gère pas les paiements des utilisateurs finaux.
Côté coût, un numéro whasp revient à $49 par 30 jours, prélevés sur un solde prépayé, pour environ 100 utilisateurs actifs (les personnes qui ont écrit au cours des 30 derniers jours). Cela fait moins de 50 cents par utilisateur actif et par mois. Votre facture de modèle est le poste le plus lourd et le moins prévisible : plafonnez donc le nombre de messages par utilisateur et par jour.
Chaque numéro autorise 100 conversations actives sur 30 jours, 40 nouvelles conversations par 24 heures et 1 500 messages envoyés par 24 heures. Un numéro qui dépasse 80 % d’une limite passe en at_risk ; les changements entre healthy, at_risk et critical arrivent dans des événements number.status_changed. Ajoutez un numéro avant d’en arriver là : /numbers/pick envoie les nouveaux utilisateurs vers celui qui a de la place, et un utilisateur de retour reste sur le sien.
Si WhatsApp bannit un numéro, whasp le retire et vous bascule sur un numéro de remplacement avec le même label, le même profil et la même période payée, annoncé par number.replaced. Le nouveau numéro démarre vide et les conversations ne suivent pas. Vous envoyez à chaque utilisateur le nouveau wa_link par e-mail ou dans l’application, et chacun écrit de nouveau en premier. Votre base de mémoire rend la transition indolore : même utilisateur, même historique.
Que faire ensuite ?
- Rédigez le persona et les règles de sécurité, dans cet ordre.
- Ajoutez un numéro et configurez le webhook.
POST /v1/webhook/testvérifie votre endpoint. - Invitez cinq personnes que vous connaissez et lisez chaque conversation.
- Regardez ce qui fonctionne d’autre sur WhatsApp avant d’ajouter des fonctionnalités.
Le guide de démarrage décrit tout le parcours, et la page des tarifs liste les options de recharge.
Questions
Puis-je faire tourner un compagnon IA sur l'API WhatsApp Business ?
En général, non. Les conditions de Meta, en vigueur depuis le 15 janvier 2026, écartent les fournisseurs d'IA dont l'IA est la fonction principale, sauf là où les régulateurs ont imposé des exceptions (Italie, Brésil, 29 autres pays européens et, à partir du 15 octobre 2026, Turquie). Même là, les réponses doivent rester dans la fenêtre de service client de 24 heures.
Mon compagnon IA peut-il écrire en premier aux utilisateurs sur WhatsApp ?
Pas sur whasp. Un numéro ne peut envoyer de messages qu'aux personnes qui lui ont écrit, et un envoi vers toute autre personne renvoie 409 chat_not_open. Utilisez un lien dans votre application ou un e-mail pour que les utilisateurs écrivent en premier.
Combien d'utilisateurs un numéro WhatsApp peut-il gérer ?
Sur whasp, environ 100 utilisateurs actifs par numéro (les personnes qui ont écrit au cours des 30 derniers jours), 40 nouvelles conversations par 24 heures et 1 500 messages envoyés par 24 heures. Ajoutez des numéros à mesure que vous grandissez.
Combien coûte un compagnon IA sur WhatsApp ?
Un numéro whasp coûte $49 par 30 jours, soit moins de 50 cents par utilisateur actif et par mois à raison d'environ 100 utilisateurs par numéro. Votre facture de modèle s'y ajoute et augmente avec le temps que les utilisateurs passent à discuter.
Que devient mon compagnon si son numéro est banni ?
whasp remplace le numéro sans frais, avec le même label, le même profil et la même période payée, et envoie un événement number.replaced. Les conversations ne suivent pas : vous envoyez donc aux utilisateurs le nouveau lien wa.me.


