Configurer WhatsApp Business

Ce guide accompagne la page de configuration de WhatsApp (Paramètres → Intégrations → WhatsApp → Configurer). Les étapes sont numérotées comme les indications sous chaque champ. Comptez 1 à 3 jours, car Meta examine manuellement la vérification de l’entreprise et les modèles ; si vous voulez commencer tout de suite, Telegram ne demande rien de tout cela.

1. Ce que demande la page

Sous « Configuration de base », un « Nom de l’intégration » et l’« Environnement ». Sous « Identifiants », quatre données Meta : l’« ID du numéro de téléphone » (étape 4), le « Jeton d’accès » (étape 5), le « Secret de l’application » (étape 6) et le « Jeton de vérification du webhook », que vous inventez (étape 7).

L’enregistrement avec « Enregistrer la configuration » fait apparaître « Tester la connexion ». Ensuite, chaque utilisateur active WhatsApp dans ses préférences de notification : le lien « Aller aux préférences de notification » vous y conduit.

2. Étapes 1 à 3 : compte Meta Business, vérification et application

Étape 1. Rendez-vous sur business.facebook.com avec votre compte Facebook et créez un portefeuille d’entreprise (nom de l’entreprise, votre nom et un e-mail professionnel).

Étape 2. Dans « Paramètres de l’entreprise → Centre de sécurité → Vérification de l’entreprise », téléversez le numéro d’identification fiscale de l’entreprise et un justificatif d’adresse. Meta met 2 à 4 jours ; tant que l’entreprise n’est pas vérifiée, vous ne pouvez envoyer qu’en mode test.

Étape 3. Dans developers.facebook.com → « Mes apps » → « Créer une app », choisissez le cas d’usage « Communiquer avec les clients via WhatsApp », nommez l’application et liez-la à votre portefeuille.

3. Étapes 4 à 6 : numéro, jeton et secret de l’application

Étape 4. Dans « Configuration de l’API », dans la liste déroulante « De », appuyez sur « Ajouter un numéro de téléphone » et vérifiez-le par SMS ou par appel. WhatsApp ne doit pas déjà être installé sur ce numéro. Son ID apparaît en dessous : copiez-le dans « ID du numéro de téléphone ».

Étape 5. Le jeton de « Configuration de l’API » expire au bout de 24 h. Dans « Paramètres de l’entreprise → Utilisateurs système », créez un utilisateur système administrateur, attribuez-lui l’application et le compte WhatsApp, appuyez sur « Générer un token » avec l’expiration « Jamais » et les autorisations whatsapp_business_messaging, whatsapp_business_management et business_management. Copiez-le (il commence par EAA…) dans « Jeton d’accès » : il n’est affiché qu’une seule fois.

Étape 6. Dans l’application Meta, « Paramètres → De base », appuyez sur « Afficher » à côté de la clé secrète de l’application et copiez-la dans « Secret de l’application ».

4. Étapes 7 et 8 : jeton de vérification et enregistrement

Étape 7. Inventez une longue chaîne aléatoire (32 caractères ou plus) et saisissez-la dans « Jeton de vérification du webhook ». Vous la réutiliserez à l’étape 9 et elle doit être identique.

Étape 8. Appuyez sur « Enregistrer la configuration » puis sur « Tester la connexion ». Si le jeton et le numéro sont corrects, l’intégration devient active.

5. Étape 9 : le webhook de statut (recommandé)

Il permet à goPrevina de savoir si chaque message a été remis ou lu. Dans l’application Meta, « WhatsApp → Configuration → Webhooks → Modifier ». Dans « URL de rappel », saisissez https://<your-API-domain>/api/v1/whatsapp/webhook et dans « Vérifier le token », la même valeur qu’à l’étape 7. Appuyez sur « Vérifier et enregistrer » et, sous « Champs du webhook », abonnez-vous à messages.

6. Étape 10 : modèles de messages à copier-coller

WhatsApp ne permet d’envoyer que des modèles approuvés par Meta. Créez-les dans WhatsApp Manager → « Modèles de messages » → « Créer un modèle », avec le nom exact et la catégorie indiquée, et collez le corps tel quel (les paramètres {{1}}, {{2}}… suivent l’ordre de la liste). Meta approuve généralement les modèles UTILITY en 24 à 48 h.

prl_user_invitation — Catégorie : UTILITY — Paramètres : recipientName, tenantName, activationUrl

Corps à copier : Bonjour {{1}}, vous avez été invité à rejoindre {{2}} sur goPrevina. Activez votre compte ici : {{3}}

prl_password_reset — Catégorie : AUTHENTICATION — Paramètres : recipientName, resetUrl

Corps à copier : Bonjour {{1}}, vous avez demandé la réinitialisation de votre mot de passe. Utilisez ce lien : {{2}}

prl_critical_alert — Catégorie : UTILITY — Paramètres : alertTitle, alertMessage

Corps à copier : ALERTE CRITIQUE : {{1}}. {{2}}

prl_document_expiring — Catégorie : UTILITY — Paramètres : documentName, expiryDate, daysRemaining

Corps à copier : Le document « {{1}} » expire le {{2}} ({{3}} jours restants). Consultez-le dans goPrevina.

prl_document_expired — Catégorie : UTILITY — Paramètres : documentName, expiryDate

Corps à copier : Le document « {{1}} » a expiré le {{2}}. Mettez-le à jour dans goPrevina.

prl_incident_reported — Catégorie : UTILITY — Paramètres : incidentNumber, title, location

Corps à copier : Nouvel incident {{1}} : « {{2}} » à {{3}}. Consultez-le dans goPrevina.

prl_incident_assigned — Catégorie : UTILITY — Paramètres : incidentNumber, title, assignedBy

Corps à copier : Incident {{1}} qui vous est attribué : « {{2}} » (par {{3}}). Ouvrez-le dans goPrevina.

prl_inspection_scheduled — Catégorie : UTILITY — Paramètres : inspectionTitle, scheduledDate, location

Corps à copier : Inspection planifiée : « {{1}} » le {{2}} à {{3}}.

prl_inspection_reminder — Catégorie : UTILITY — Paramètres : inspectionTitle, dueDate

Corps à copier : Rappel : l’inspection « {{1}} » est à réaliser pour le {{2}}.

prl_training_reminder — Catégorie : UTILITY — Paramètres : courseName, sessionDate, location

Corps à copier : Rappel de formation : « {{1}} » le {{2}} à {{3}}.

prl_medical_appointment — Catégorie : UTILITY — Paramètres : appointmentDate, appointmentTime, location

Corps à copier : Vous avez un rendez-vous de surveillance médicale le {{1}} à {{2}} à {{3}}.

prl_meeting_invitation — Catégorie : UTILITY — Paramètres : meetingTitle, meetingDate, organizer

Corps à copier : Réunion : « {{1}} » le {{2}}, organisée par {{3}}.

prl_notification — Catégorie : UTILITY — Paramètres : title, message

Corps à copier : {{1}} : {{2}}

prl_generic — Catégorie : UTILITY — Paramètres : dynamic

Corps à copier : {{1}}