Prévenir le client à son arrivée (accueil, salle d'attente, entrée)

Oui : votre accueil clique « arrivé » dans votre logiciel, qui envoie aussitôt un template UTILITY avec le rang en file ou le numéro de séance en variable.

Prévenir le client à son arrivée (accueil, salle d'attente, entrée)

Astuce
Oui : votre accueil clique « arrivé » dans votre logiciel, qui envoie aussitôt un template UTILITY avec le rang en file ou le numéro de séance en variable.

Scénario

Un patient se présente à l'accueil : l'agent clique « arrivé » et le patient reçoit son rang. Même logique en salle de sport (« bienvenue, séance n° 12 ») ou à l'hôtel (« votre chambre est prête »).

Conversation

(accueil : bouton « Arrivé » dans votre logiciel)
Vous    : (template) Bonjour Jean, votre arrivée est enregistrée.
          Vous êtes 3e dans la file pour le Dr Exemple. Merci de patienter.

Code

curl

curl -X POST "https://wa-api.geskap.com/v1/templates" \
  -H "Authorization: Bearer $GESKAP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "arrivee_salle_attente",
  "language": "fr",
  "category": "UTILITY",
  "body_text": "Bonjour {{1}}, votre arrivée est enregistrée. Vous êtes {{2}} dans la file pour {{3}}. Merci de patienter.",
  "example_values": ["Jean", "3e", "le Dr Exemple"]
}'

Node.js

const res = await fetch("https://wa-api.geskap.com/v1/templates", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.GESKAP_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "arrivee_salle_attente",
    "language": "fr",
    "category": "UTILITY",
    "body_text": "Bonjour {{1}}, votre arrivée est enregistrée. Vous êtes {{2}} dans la file pour {{3}}. Merci de patienter.",
    "example_values": ["Jean", "3e", "le Dr Exemple"]
  }),
});
console.log(res.status, await res.json());

PHP

$ch = curl_init("https://wa-api.geskap.com/v1/templates");
curl_setopt_array($ch, [
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer " . getenv("GESKAP_API_KEY"),
    "Content-Type: application/json",
  ],
  CURLOPT_POSTFIELDS => json_encode([
    "name" => "arrivee_salle_attente",
    "language" => "fr",
    "category" => "UTILITY",
    "body_text" => "Bonjour {{1}}, votre arrivée est enregistrée. Vous êtes {{2}} dans la file pour {{3}}. Merci de patienter.",
    "example_values" => ["Jean", "3e", "le Dr Exemple"],
  ]),
]);
$res = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), " ", $res;

Python

import os, requests

res = requests.request(
    "POST",
    "https://wa-api.geskap.com/v1/templates",
    headers={"Authorization": f"Bearer {os.environ['GESKAP_API_KEY']}"},
    json={
        "name": "arrivee_salle_attente",
        "language": "fr",
        "category": "UTILITY",
        "body_text": "Bonjour {{1}}, votre arrivée est enregistrée. Vous êtes {{2}} dans la file pour {{3}}. Merci de patienter.",
        "example_values": ["Jean", "3e", "le Dr Exemple"],
    },
    timeout=15,
)
print(res.status_code, res.json())

curl

curl -X POST "https://wa-api.geskap.com/v1/messages" \
  -H "Authorization: Bearer $GESKAP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "to": "+237690000003",
  "template": {
    "name": "arrivee_salle_attente",
    "language": "fr",
    "variables": ["Jean", "3e", "le Dr Exemple"]
  }
}'

Node.js

const res = await fetch("https://wa-api.geskap.com/v1/messages", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.GESKAP_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "to": "+237690000003",
    "template": {
      "name": "arrivee_salle_attente",
      "language": "fr",
      "variables": ["Jean", "3e", "le Dr Exemple"]
    }
  }),
});
console.log(res.status, await res.json());

PHP

$ch = curl_init("https://wa-api.geskap.com/v1/messages");
curl_setopt_array($ch, [
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer " . getenv("GESKAP_API_KEY"),
    "Content-Type: application/json",
  ],
  CURLOPT_POSTFIELDS => json_encode([
    "to" => "+237690000003",
    "template" => [
      "name" => "arrivee_salle_attente",
      "language" => "fr",
      "variables" => ["Jean", "3e", "le Dr Exemple"],
    ],
  ]),
]);
$res = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), " ", $res;

Python

import os, requests

res = requests.request(
    "POST",
    "https://wa-api.geskap.com/v1/messages",
    headers={"Authorization": f"Bearer {os.environ['GESKAP_API_KEY']}"},
    json={
        "to": "+237690000003",
        "template": {
            "name": "arrivee_salle_attente",
            "language": "fr",
            "variables": ["Jean", "3e", "le Dr Exemple"],
        },
    },
    timeout=15,
)
print(res.status_code, res.json())
Attention
Piège : utilisez un template même si le client est devant vous. Sa fenêtre de 24 h n'est ouverte que s'il vous a écrit dans les dernières 24 h ; un message libre échouerait sinon (400). Le template passe dans tous les cas.
Attention
Piège : si le rang change (un patient passe avant), n'envoyez pas un message à chaque mouvement : chaque template est facturé. Un seul message à l'arrivée, puis un seul « c'est votre tour ».

Les états du message (distribué, lu) remontent par le webhook message.status : voir Suivre la distribution.

Preuve — vérifié dans le code de l'API : api_schemas.py ; appliqué par la démo WhatsApp : sante, sport.