Aller au contenu

Types de messages

Neuf types de messages, un seul corps de requête

Une requête d’envoi indique un canal, un destinataire et un type, le contenu étant placé sous une clé qui porte le nom du type. Cette page présente chaque type, le corps qui le produit et les canaux qui le prennent en charge.

Matrice de compatibilité

Quel canal accepte quel type

Un canal indique ce qu’il accepte dans capabilities. L’envoi d’un type qu’un canal ne prend pas en charge renvoie 400 unsupported_message_type et rien n’est facturé.

Prise en charge des types de messages par type de canal
TypeWhatsAppSMSSMS OTPTelegramMessengerInstagramTikTok
TextetextPris en chargePris en chargePris en chargePris en chargePris en chargePris en chargePris en charge
Pièces jointesattachmentsPris en chargePris en chargeNon pris en chargePris en chargePris en chargePris en chargePris en charge
ModèletemplatePris en chargeNon pris en chargeNon pris en chargeNon pris en chargeNon pris en chargeNon pris en chargeNon pris en charge
Boutons de réponsebuttonPris en chargeNon pris en chargeNon pris en chargePris en chargePris en chargePris en chargePris en charge
ListelistPris en chargeNon pris en chargeNon pris en chargeNon pris en chargeNon pris en chargeNon pris en chargeNon pris en charge
Bouton URLcta_urlPris en chargeNon pris en chargeNon pris en chargeNon pris en chargeNon pris en chargeNon pris en chargeNon pris en charge
PositionlocationPris en chargeNon pris en chargeNon pris en chargePris en chargeNon pris en chargeNon pris en chargeNon pris en charge
ContactscontactsPris en chargeNon pris en chargeNon pris en chargePris en chargeNon pris en chargeNon pris en chargeNon pris en charge
SondagepollNon pris en chargeNon pris en chargeNon pris en chargePris en chargeNon pris en chargeNon pris en chargeNon pris en charge
type: "text"

Texte

Du texte brut, accepté par tous les types de canaux. Définissez preview_url pour laisser le canal afficher un aperçu du lien.

body : de 1 à 4 096 caractères.

  • WhatsApp Business
  • SMS
  • SMS OTP
  • Telegram
  • Messenger
  • Instagram
  • TikTok
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "text",
  "text": {
    "body": "Votre commande n° 1042 a été expédiée. Suivez-la sur https://example.com/t/1042",
    "preview_url": true
  },
  "reference": "order-1042"
}
type: "attachments"

Pièces jointes

Un seul élément multimédia par message, référencé par une URL https : image, vidéo, document, audio, message vocal ou sticker, avec une légende facultative.

Un élément exactement. caption : 1 024 caractères au maximum.

  • WhatsApp Business
  • SMS
  • Telegram
  • Messenger
  • Instagram
  • TikTok
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "attachments",
  "attachments": [
    {
      "type": "image",
      "url": "https://example.com/receipts/1042.jpg",
      "caption": "Votre reçu pour la commande n° 1042."
    }
  ]
}
type: "template"

Modèle

Un modèle WhatsApp approuvé, avec des variables. Les modèles sont les seuls messages que WhatsApp accepte en dehors de la fenêtre de service client de 24 heures.

name et language doivent correspondre à un modèle approuvé du canal.

  • WhatsApp Business
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "template",
  "template": {
    "name": "order_out_for_delivery",
    "language": {
      "code": "en"
    },
    "components": [
      {
        "type": "body",
        "parameters": [
          {
            "type": "text",
            "text": "Camille"
          },
          {
            "type": "text",
            "text": "#1042"
          },
          {
            "type": "text",
            "text": "18:00"
          }
        ]
      }
    ]
  }
}
type: "button"

Boutons de réponse

Un message proposant jusqu’à trois réponses rapides. L’ID du bouton touché revient à votre webhook dans un événement message.received.

De 1 à 3 boutons. title : 20 caractères au maximum.

  • WhatsApp Business
  • Telegram
  • Messenger
  • Instagram
  • TikTok
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "button",
  "button": {
    "body": {
      "text": "Votre table pour deux est réservée ce soir à 19 h 30. Est-ce toujours bon pour vous ?"
    },
    "action": {
      "buttons": [
        {
          "reply": {
            "id": "confirm",
            "title": "Confirmer"
          }
        },
        {
          "reply": {
            "id": "reschedule",
            "title": "Reporter"
          }
        },
        {
          "reply": {
            "id": "cancel",
            "title": "Annuler"
          }
        }
      ]
    }
  }
}
type: "list"

Liste

Un menu qui s’ouvre à partir d’un seul bouton, avec des lignes regroupées en sections titrées.

action.button : 20 caractères au maximum.

  • WhatsApp Business
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "list",
  "list": {
    "body": {
      "text": "Quelle équipe peut vous aider aujourd’hui ?"
    },
    "action": {
      "button": "Choisir une équipe",
      "sections": [
        {
          "title": "Équipes",
          "rows": [
            {
              "id": "orders",
              "title": "Commandes",
              "description": "Livraison, retours et remboursements"
            },
            {
              "id": "billing",
              "title": "Facturation",
              "description": "Factures et moyens de paiement"
            },
            {
              "id": "technical",
              "title": "Assistance technique",
              "description": "Configuration et dépannage"
            }
          ]
        }
      ]
    }
  }
}
type: "cta_url"

Bouton URL

Un message doté d’un bouton qui ouvre une URL, pour les pages de suivi, les paiements et les liens de connexion.

Un seul bouton par message.

  • WhatsApp Business
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "cta_url",
  "cta_url": {
    "body": {
      "text": "Votre colis est en route. Suivez-le en temps réel."
    },
    "action": {
      "parameters": {
        "display_text": "Suivre la commande",
        "url": "https://example.com/t/1042"
      }
    }
  }
}
type: "location"

Position

Un repère accompagné d’un nom et d’une adresse, qui s’ouvre dans l’application de cartographie du destinataire.

latitude et longitude sont exprimées en degrés décimaux.

  • WhatsApp Business
  • Telegram
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "location",
  "location": {
    "latitude": 25.2048,
    "longitude": 55.2708,
    "name": "Point de retrait",
    "address": "Sheikh Zayed Road, Dubaï"
  }
}
type: "contacts"

Contacts

Une ou plusieurs fiches de contact. Le tableau est transmis tel quel au canal ; il utilise donc le format de contact propre au fournisseur.

L’exemple montre le format de contact de WhatsApp.

  • WhatsApp Business
  • Telegram
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "contacts",
  "contacts": [
    {
      "name": {
        "formatted_name": "Service d’assistance",
        "first_name": "Assistance"
      },
      "phones": [
        {
          "phone": "+971800123456",
          "type": "WORK"
        }
      ]
    }
  ]
}
type: "poll"

Sondage

Un sondage Telegram natif, avec une question et une série d’options.

Telegram uniquement.

  • Telegram
POST /v1/messages
{
  "channel": "ch_4Tn8rW2yK6dF9sA1mQ5v",
  "to": "584201337",
  "type": "poll",
  "poll": {
    "question": "Quand souhaitez-vous être livré ?",
    "options": [
      "Matin, de 09:00 à 12:00",
      "Après-midi, de 12:00 à 17:00",
      "Soir, de 17:00 à 21:00"
    ]
  }
}

Essayez tous les types dans le bac à sable

Chaque compte dispose d’un canal bac à sable pour chaque type de canal. Envoyez n’importe quel type pris en charge avec une clé de test : rien n’est distribué ni facturé.