Comment envoyer des messages WhatsApp à partir de Google Sheets à l'aide de l'API WhatsApp

Publié: 2022-06-16

WhatsApp with Google Sheets

Ce didacticiel décrit comment utiliser la nouvelle API WhatsApp avec Google Apps Script pour envoyer des messages WhatsApp à partir de Google Sheets. La même approche fonctionnerait également pour envoyer des messages WhatsApp à partir de Google Forms lorsque de nouvelles soumissions de formulaires sont reçues.

Étape 1 : Créer une application WhatsApp

Allez sur developers.facebook.com et cliquez sur le bouton Create App pour créer une nouvelle application que nous utiliserons pour envoyer des messages WhatsApp.

Facebook WhatsApp App

Sélectionnez Business comme type d'application.

Donnez à votre application un nom descriptif (n'utilisez aucune marque commerciale Facebook telle que WhatsApp ou Facebook dans le nom de l'application) et cliquez sur le bouton Create App pour créer l'application.

WhatsApp App Name

Une fois l'application créée, cliquez sur le bouton WhatsApp sur l'écran suivant pour ajouter des fonctionnalités d'envoi WhatsApp à votre application.

Sur l'écran suivant, vous devrez lier votre application WhatsApp à votre compte professionnel Facebook. Vous aurez également la possibilité de créer un nouveau compte professionnel si vous n'en avez pas encore.

Add WhatsApp App

Étape 2 : Ajoutez le numéro de téléphone du destinataire

Facebook vous fournira un numéro de téléphone WhatsApp de test qui sera l'adresse d'envoi par défaut de votre application. Pour les destinataires, vous aurez la possibilité d'ajouter un maximum de 5 numéros de téléphone pendant la phase de développement sans avoir à effectuer de paiement.

Votre application WhatsApp vous fournira un jeton d'accès temporaire qui sera valide pendant 23 heures. Notez ce jeton car nous en aurons besoin dans une étape ultérieure.

WhatsApp Phone Number

Ensuite, cliquez sur le menu déroulant Recipient Phone Number pour ajouter jusqu'à 5 numéros de téléphone WhatsApp différents à votre application. Vous recevrez un code de vérification sur les numéros ajoutés et vous pourrez envoyer des messages WhatsApp uniquement aux numéros qui ont été vérifiés avec le code.

Verify Phone Number

Étape 3 : Créer un modèle de message WhatsApp

Basculez vers le gestionnaire de modèles et créez un nouveau modèle de message WhatsApp.

Pour cet exemple, nous choisirons la catégorie Mise à Account Update et donnerons un nom unique à votre modèle de message. Pour les langues, nous choisirons l'anglais dont la langue de code est en . Si vous utilisez une autre langue, notez la langue du code car elle est nécessaire pour envoyer des messages.

WhatsApp Message Template

Rédigez le message personnalisé

Nous utilisons des paramètres variables dans le message et ceux-ci seront remplacés par les valeurs réelles de la feuille Google. Il est très similaire aux marqueurs que vous avez pu utiliser dans Publipostage et Document Studio avec une petite différence qu'il s'agit de marqueurs de position et non de marqueurs nommés.

Voici notre modèle de message où les variables {{1}} et {{2}} correspondent respectivement au nom du client et au nom de l'article.

WhatsApp Message Template

WhatsApp peut prendre jusqu'à une minute pour approuver votre nouveau modèle de message.

Étape 4 : Envoyer des messages WhatsApp

Maintenant que toute notre configuration côté Facebook/WhatsApp est terminée, travaillons sur la Google Sheet qui enverra effectivement ces messages WhatsApp personnalisés de manière automatisée.

Cliquez ici pour copier la feuille WhatsApp dans votre propre compte Google.

Google sheets WhatsApp

Ensuite, ajoutez les numéros de téléphone (avec l'indicatif du pays) dans la colonne Numéro de téléphone de la feuille de calcul Google. Vous ne devez ajouter que des numéros que vous avez vérifiés avec votre compte WhatsApp de test à l'étape précédente.

Accédez ensuite au menu Extension et choisissez Apps Script pour ouvrir le script sous-jacent. Remplacez WHATSAPP_ACCESS_TOKEN et WHATSAPP_TEMPLATE_NAME par les valeurs que vous avez copiées dans les étapes précédentes.

Cliquez sur le bouton Run dans l'éditeur Apps Script et il devrait envoyer instantanément le message WhatsApp à vos numéros de téléphone répertoriés.

Et ce que vous avez ci-dessous est le message WhatsApp réel envoyé par l'API WhatsApp remplaçant les marqueurs de variable dans le modèle par les valeurs réelles de Google Sheets.

WhatsApp Message Text

Les détails techniques

Fonctionnement de l'API WhatsApp avec Google Apps Script

Le script Google Apps se connecte à Google Sheets et récupère les détails des clients, y compris les numéros de téléphone, qui doivent recevoir des messages via WhatsApp.

 // Get data from Google Sheets // for sending messages through WhatsApp const getSheetData_ = ( ) => { const sheet = SpreadsheetApp . getActiveSheet ( ) ; const [ header , ... rows ] = sheet . getDataRange ( ) . getDisplayValues ( ) ; const data = [ ] ; rows . forEach ( ( row ) => { const recipient = { } ; header . forEach ( ( title , column ) => { recipient [ title ] = row [ column ] ; } ) ; data . push ( recipient ) ; } ) ; return data ; } ;

Ensuite, le script parcourt chaque ligne de la feuille et envoie un message WhatsApp en appelant l'API WhatsApp Cloud avec le service UrlFetch.

 // Send Message with WhatsApp Cloud API const sendMessage_ = ( e ) => { const apiUrl = 'https://graph.facebook.com/v13.0/114746974570888/messages' ; const request = UrlFetchApp . fetch ( apiUrl , { muteHttpExceptions : true , method : 'POST' , headers : { Authorization : ` Bearer ${ WHATSAPP_ACCESS_TOKEN } ` , 'Content-Type' : 'application/json' , } , payload : JSON . stringify ( { type : 'template' , messaging_product : 'whatsapp' , to : e . recipient_number , template : { name : WHATSAPP_TEMPLATE_NAME , language : { code : LANGUAGE_CODE } , components : [ { type : 'body' , parameters : [ { type : 'text' , text : e . customer_name } , { type : 'text' , text : e . item_name } , { type : 'text' , text : e . delivery_date } , ] , } , ] , } , } ) , } ) ; const { error } = JSON . parse ( request ) ; if ( error ) { Logger . log ( ` ${ error } ` ) ; } else { Logger . log ( ` Message sent to ${ recipient_number } ` ) ; } } ; const main = ( ) => { getSheetData_ ( ) . forEach ( ( row ) => { const status = sendMessage_ ( { recipient_number : row [ 'Phone Number' ] . replace ( / [^\d] / g , '' ) , customer_name : row [ 'Customer Name' ] , item_name : row [ 'Item Name' ] , delivery_date : row [ 'Delivery Date' ] , } ) ; } ) ; } ;

Voir également : Automatiser les flux de travail avec Google Sheets