Intégrer l'API WhatsApp Business dans un logiciel RH SaaS demande moins de travail qu'il n'y paraît si l'on dispose d'un BSP bien documenté. Ce tutoriel couvre les étapes concrètes : connexion au BSP, onboarding d'une entreprise cliente, création d'un template de notification RH, envoi de messages et gestion des réponses entrantes.
Étape 1 : préparer l'environnement technique
Avant d'écrire la première ligne de code, validez les prérequis suivants :
Infrastructure :
- Un endpoint HTTPS public pour recevoir les webhooks (ou un tunnel ngrok en développement)
- Un stockage pour les tokens et credentials par client (en environnement multi-tenant, chaque client a ses propres credentials)
- Un mécanisme de file d'attente pour les envois en volume (éviter les appels API synchrones sur les processus métier critiques)
Compte BSP :
- Compte Whakup actif avec accès à la sandbox
- Token d'API et URL de base communiqués lors de l'onboarding BSP
- Accès au dashboard pour créer et soumettre des templates
Test en sandbox :
Commencez par tester sur l'environnement sandbox avant toute mise en production. La sandbox permet d'envoyer des messages à des numéros de test sans toucher aux crédits réels ni aux numéros de production.
Étape 2 : intégrer l'embedded signup pour onboarder les clients RH
Chaque entreprise cliente de votre logiciel RH doit connecter son propre numéro WhatsApp Business. L'embedded signup automatise ce processus directement dans votre interface.
Intégration du bouton embedded signup dans votre frontend :
<!-- Chargement du SDK Facebook -->
<script>
window.fbAsyncInit = function() {
FB.init({
appId: 'VOTRE_APP_ID',
autoLogAppEvents: true,
xfbml: true,
version: 'v19.0'
});
};
</script>
<script async defer src="https://connect.facebook.net/fr_FR/sdk.js"></script>
<!-- Bouton de connexion -->
<button onclick="launchWhatsAppSignup()">
Connecter votre numéro WhatsApp Business
</button>
<script>
function launchWhatsAppSignup() {
FB.login(function(response) {
if (response.authResponse) {
const code = response.authResponse.code;
// Envoyer le code à votre backend pour finaliser l'onboarding
fetch('/api/whatsapp/onboard', {
method: 'POST',
body: JSON.stringify({ code: code, client_id: CURRENT_CLIENT_ID })
});
}
}, {
config_id: 'VOTRE_CONFIG_ID',
response_type: 'code',
override_default_response_type: true
});
}
</script>
Votre backend reçoit le code d'autorisation, l'échange contre un token via l'API Whakup, et stocke les credentials associés à cet account_id client. Toutes les communications futures pour ce client utilisent ces credentials.
Étape 3 : créer un template de notification RH
Les notifications RH sont des messages proactifs envoyés hors fenêtre de conversation. Ils nécessitent des templates approuvés par Meta. Voici un exemple pour un rappel de signature de contrat.
Création du template via l'API :
POST /v1/templates
Authorization: Bearer {CLIENT_TOKEN}
Content-Type: application/json
{
"name": "rappel_signature_contrat",
"category": "UTILITY",
"language": "fr",
"components": [
{
"type": "HEADER",
"format": "TEXT",
"text": "Action requise : signature de contrat"
},
{
"type": "BODY",
"text": "Bonjour {{1}},\n\nVotre contrat de travail est en attente de signature depuis {{2}} jours. Merci de le signer avant le {{3}} pour finaliser votre dossier.\n\nPour toute question, contactez votre responsable RH."
},
{
"type": "FOOTER",
"text": "Répondez STOP pour ne plus recevoir ces rappels."
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "URL",
"text": "Signer mon contrat",
"url": "https://votre-logiciel-rh.fr/signature/{{4}}"
}
]
}
]
}
Ce template appartient à la catégorie UTILITY (coût ~0,034 €/message FR). Après soumission, Meta l'examine sous 24 heures. Une fois approuvé, il est réutilisable pour tous les clients de votre logiciel RH, avec remplacement dynamique des variables à chaque envoi.
Pour tout savoir sur la gestion des catégories et l'impact sur la facturation, consultez notre article sur les catégories de templates WhatsApp.
Étape 4 : envoyer une notification et gérer les réponses
Envoi d'un rappel de signature :
POST /v1/messages
Authorization: Bearer {CLIENT_TOKEN}
Content-Type: application/json
{
"to": "33612345678",
"type": "template",
"template": {
"name": "rappel_signature_contrat",
"language": { "code": "fr" },
"components": [
{
"type": "body",
"parameters": [
{ "type": "text", "text": "Sophie Martin" },
{ "type": "text", "text": "3" },
{ "type": "text", "text": "20/08/2026" },
{ "type": "text", "text": "token-unique-sophie-martin" }
]
},
{
"type": "button",
"sub_type": "url",
"index": "0",
"parameters": [
{ "type": "text", "text": "token-unique-sophie-martin" }
]
}
]
}
}
Configuration des webhooks pour les réponses :
{
"url": "https://votre-logiciel-rh.fr/webhooks/whatsapp",
"events": [
"message.received",
"message.delivered",
"message.read",
"message.failed"
]
}
Votre endpoint webhook doit traiter les événements entrants et mettre à jour l'état dans votre logiciel RH :
| Événement | Action dans le logiciel RH |
|---|---|
message.delivered |
Marquer la notification comme "livrée" dans le dossier collaborateur |
message.read |
Marquer comme "lue", arrêter les relances automatiques |
message.received |
Créer une tâche RH si la réponse nécessite un traitement humain |
message.failed |
Alerter le RH, vérifier la validité du numéro |
FAQ
Comment gérer les envois en masse sans surcharger l'API ?
Implémentez une file d'attente avec un worker asynchrone. Ne dépassez pas le débit autorisé par votre BSP (généralement indiqué dans la documentation). Pour un logiciel RH qui doit envoyer des rappels à toute une entreprise simultanément, un batch de 100 à 500 messages par minute est une valeur sûre pour démarrer, à ajuster selon les limites de votre BSP.
Faut-il un token différent par client dans le modèle multi-tenant ?
Oui. Chaque entreprise cliente dispose de son propre phone_number_id et de son propre token d'accès. Votre backend doit stocker ces credentials de manière sécurisée (chiffrée) et les résoudre dynamiquement à l'envoi en fonction du client concerné. Ne jamais réutiliser les credentials d'un client pour envoyer au nom d'un autre.
Comment tester les webhooks en développement local ?
Utilisez un outil comme ngrok pour exposer votre serveur local sur une URL HTTPS publique. Configurez cette URL temporaire dans votre dashboard BSP. Pensez à la remplacer par votre URL de production avant le déploiement.
L'API supporte-t-elle les envois planifiés (scheduled messages) ?
L'API WhatsApp ne propose pas de planification native. C'est à votre application de gérer le scheduling : un cron job ou un système de tâches différées (ex. : Celery, Bull, Sidekiq) qui déclenche l'appel API au moment souhaité. Cette logique de planification doit être implémentée côté logiciel RH.
Ce tutoriel couvre l'essentiel pour une première intégration fonctionnelle. Pour une vision complète de l'écosystème BSP et des décisions d'architecture, consultez notre article sur build vs buy pour l'API WhatsApp.
Prêt à passer en production ? Découvrez les offres de l'API WhatsApp Whakup et obtenez vos credentials de sandbox pour démarrer aujourd'hui.

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
API WhatsApp pour les agences de communication : tutoriel 2026
Tutoriel pas-à-pas pour connecter l'API WhatsApp Business à votre agence de communication : onboarding, envoi de templates et gestion multi-clients.
API WhatsApp pour les plateformes de fidélité : tutoriel 2026
Tutoriel pas à pas pour intégrer l'API WhatsApp Business dans une plateforme de fidélité : configuration, templates, envoi et gestion des statuts de livraison.
API WhatsApp pour les logiciels RH : cas pratique 2026
Cas pratique d'intégration de l'API WhatsApp Business dans un logiciel RH : onboarding collaborateur, rappels de signature et relances formation avec résultats concrets.