Modèles de carrousels WhatsApp
Les modèles de carrousel de cartes médias vous permettent de présenter plusieurs produits dans un seul modèle de message marketing sur WhatsApp. Chaque produit apparaît sous la forme d'une carte à défilement horizontal, ce qui permet aux utilisateurs de parcourir, de comparer et d'agir sur les offres sans être submergés par de multiples messages.
Ce format est particulièrement efficace pour les promotions et les campagnes saisonnières.
Un modèle de carrousel de cartes médias est un modèle de marketing WhatsApp qui combine :
- un texte unique dans le corps du message, et
- Un carrousel à défilement horizontal comprenant jusqu'à 10 fiches produits.
Chaque carte représente un produit ou une offre et est conçue pour conduire les utilisateurs vers une page d'achat ou d'information externe.
Les cartes carrousel ne sont prises en charge que pour les messages des modèles de marketing et ne sont pas disponibles pour les modèles d'utilité ou d'authentification.
Composants d'un carrousel
Chaque carte de carrousel peut contenir les éléments suivants :
En-tête (obligatoire)
Une image ou une vidéo représentant le produit.
Corps de texte (facultatif)
Texte descriptif court, tel qu'un nom de produit, un prix ou une promotion.
Boutons (facultatifs, jusqu'à deux par carte)
Les types de boutons pris en charge sont les suivants :
- Boutons URL
- Touches de numéros de téléphone
- Boutons de réponse rapide
Vous pouvez mélanger les types de boutons au sein d'une carte (par exemple, un bouton URL et un bouton de réponse rapide).
Exigence de cohérence
Toutes les cartes d'un même modèle de carrousel doivent utiliser le même ensemble de composants.
Par exemple, si une carte comporte un corps de texte et deux boutons, toutes les cartes doivent également comporter un corps de texte et deux boutons.
Créer un modèle de carrousel WhatsApp
Les carrousels de cartes médias doivent être créés en tant que modèles marketing à l'aide de l'API de gestion des modèles.
Chaque modèle comprend
- A
BODYcomposant (s'applique à l'ensemble du message) - A
CAROUSELcomposant contenant jusqu'à 10 cartes - Chaque carte doit définir les mêmes composants
Carrousel de recommandation de produits
Cet exemple crée un modèle de carrousel avec trois fiches produits, chacune comprenant :
- Un en-tête d'image
- Un organisme avec un paramètre de prix dynamique
- Un bouton URL et un bouton de réponse rapide
{
"name": "sample_carousel_template10",
"language": "en",
"category": "MARKETING",
"allow_category_change": true,
"components": [
{
"type": "BODY",
"text": "Hi *{{1}}*. Following your preferences, we think those are the *Vonage* products that match best your needs:",
"example": {
"body_text": "[['Pablo']]"
}
},
{
"type": "CAROUSEL",
"cards": [
{
"components": [
{
"type": "HEADER",
"format": "IMAGE",
"example": {
"header_handle": ["4::aW1hZ2UvanBn:ARYMX_ceB7hy4UrocTFGovCrheY7VIeEc0Lxc2fAn_SNsWN5icskgixQ1viE8pPoiiQ6S6Smv6RpaWHNb5mJaUQI4Y7zB6L87QvnTNs3NeVmfg:e:1775210982:1767162543555562:100040931896219:ARYyiV3YGhM1uOFNyKw"]
}
},
{
"type": "BODY",
"text": "*Video API*: As low as {{1}} USD per minute per participant. The best option to have full control on your video app and you want to delight your users!",
"example": {
"body_text": "[['0.00395']]"
}
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "URL",
"text": "Video API Developer Docs",
"url": "https://tokbox.com/developer/"
},
{
"type": "QUICK_REPLY",
"text": "Tell me more about *Video API*!"
}
]
}
]
},
{
"components": [
{
"type": "HEADER",
"format": "IMAGE",
"example": {
"header_handle": ["4::aW1hZ2UvanBn:ARYfk5Coa-tyuiaGtJIGbbZpadRtRf6_DRGx1eC4COq2TBS9jESnifBwlvBesVPYsJoJG0vlF8DcQ-SAoynD7_V4AKoVcAbO_fS9tVesGgb-Aw:e:1775210995:1767162543555562:100040931896219:ARYPxK9WzQSw_RPhWnI"]
}
},
{
"type": "BODY",
"text": "*Messages API*: As low as {{1}} EUR per minute per participant. With almost every pre-built for you, this option saves you time to go live!",
"example": {
"body_text": "[['0.00475']]"
}
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "URL",
"text": "Messages API Page",
"url": "https://www.vonage.com/communications-apis/messages/"
},
{
"type": "QUICK_REPLY",
"text": "Tell me more about *Messages API*!"
}
]
}
]
},
{
"components": [
{
"type": "HEADER",
"format": "IMAGE",
"example": {
"header_handle": ["4::aW1hZ2UvanBn:ARZWziKvjbUO_8_-zr3gi45fXqs_4kI8A24lPhI1QvREJuojcAEspv6iHMjBvAOJ23j2sT8Y11xn1oFNm_vUsQHNwGTlpodB1Q8OxonGUrmFDw:e:1775211007:1767162543555562:100040931896219:ARa3BLIlI4stgYj9Hzo"]
}
},
{
"type": "BODY",
"text": "*In-App Voice*: Build app-to-app, app-to-phone and phone-to-app use cases. app-to-app calls as low as {{1}} EUR per minute per participant.",
"example": {
"body_text": "[['0.0040']]"
}
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "URL",
"text": "In-App Voice Developer Docs",
"url": "https://developer.vonage.com/en/vonage-client-sdk/in-app-voice/overview"
},
{
"type": "QUICK_REPLY",
"text": "Tell me more about *In-App Voice*!"
}
]
}
]
}
]
}
]
}

Réponse
Status 202 ACCEPTED
{
"id": "1477582267072231",
"status": "PENDING",
"category": "MARKETING"
}
Carrousel avec paramètres URL dynamiques
Ce modèle présente des boutons URL dynamiques, où une partie de l'URL est fournie au moment de l'envoi.
{
"name": "sample_carousel_dynamic_links10",
"language": "en",
"category": "MARKETING",
"allow_category_change": true,
"components": [
{
"type": "BODY",
"text": "Hi *{{1}}*. Below you have some dynamic links:",
"example": {
"body_text": "[['Pablo']]"
}
},
{
"type": "CAROUSEL",
"cards": [
{
"components": [
{
"type": "HEADER",
"format": "IMAGE",
"example": {
"header_handle": ["4::aW1hZ2UvanBn:ARYfk5Coa-tyuiaGtJIGbbZpadRtRf6_DRGx1eC4COq2TBS9jESnifBwlvBesVPYsJoJG0vlF8DcQ-SAoynD7_V4AKoVcAbO_fS9tVesGgb-Aw:e:1775210995:1767162543555562:100040931896219:ARYPxK9WzQSw_RPhWnI"]
}
},
{
"type": "BODY",
"text": "Learn more about Vonage Messages API"
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "URL",
"text": "Link",
"url": "https://vonage.com/{{1}}",
"example": [
"https://www.vonage.com/communications-apis/messages/"
]
}
]
}
]
},
{
"components": [
{
"type": "HEADER",
"format": "IMAGE",
"example": {
"header_handle": ["4::aW1hZ2UvanBn:ARZWziKvjbUO_8_-zr3gi45fXqs_4kI8A24lPhI1QvREJuojcAEspv6iHMjBvAOJ23j2sT8Y11xn1oFNm_vUsQHNwGTlpodB1Q8OxonGUrmFDw:e:1775211007:1767162543555562:100040931896219:ARa3BLIlI4stgYj9Hzo"]
}
},
{
"type": "BODY",
"text": "Learn more about Vonage Voice Communications"
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "URL",
"text": "Link",
"url": "https://vonage.com/{{1}}",
"example": [
"https://www.vonage.com/communications-apis/voice/"
]
}
]
}
]
},
{
"components": [
{
"type": "HEADER",
"format": "IMAGE",
"example": {
"header_handle": ["4::aW1hZ2UvanBn:ARYMX_ceB7hy4UrocTFGovCrheY7VIeEc0Lxc2fAn_SNsWN5icskgixQ1viE8pPoiiQ6S6Smv6RpaWHNb5mJaUQI4Y7zB6L87QvnTNs3NeVmfg:e:1775210982:1767162543555562:100040931896219:ARYyiV3YGhM1uOFNyKw"]
}
},
{
"type": "BODY",
"text": "Learn more about Vonage Video API platform"
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "URL",
"text": "Link",
"url": "https://vonage.com/{{1}}",
"example": [
"https://www.vonage.com/communications-apis/video/"
]
}
]
}
]
}
]
}
]
}

Réponse
Status 202 Accepted
{
"id": "1635112524349526",
"status": "PENDING",
"category": "MARKETING"
}
Carrousel d'information sans paramètres
Ce modèle utilise un corps de texte et des boutons statiques, sans qu'aucun paramètre ne soit requis lors de l'envoi.
{
"name": "sample_carousel_quick_reply10",
"language": "en",
"category": "MARKETING",
"allow_category_change": true,
"components": [
{
"type": "BODY",
"text": "With *Vonage* you can implement any type of Voice application.\n\nGoing from basic SIP trunks to make calls and receive inbound calls in your Vonage virtual numbes, to complex Voice API applications featuring text-to-speech, speech-to-text, conference rooms, etc.\n\nWe also offer the Client SDK by which you can add In-App Voice capabitilities to your web and native apps"
},
{
"type": "CAROUSEL",
"cards": [
{
"components": [
{
"type": "HEADER",
"format": "IMAGE",
"example": {
"header_handle": ["4::aW1hZ2UvanBn:ARYvt342aYJNXghr96KCAaJrEjtBQ1V2MK2AGhspduZc0ALIvV_Ti2Ec3Fr09SyJQAlmLb8OEnymiA25n-RzwVA8qUpXrHozR28OHkVhfCz9vA:e:1775215593:1767162543555562:100040931896219:ARYOpAnR6U-6cAGW8YM"]
}
},
{
"type": "BODY",
"text": "*Vonage SIP Trunking*: Make phone calls worldwide via SIP. Rent a virtual number and receive inbound calls too!"
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "URL",
"text": "Vonage SIP Trunking Docs",
"url": "https://developer.vonage.com/en/sip/overview"
},
{
"type": "QUICK_REPLY",
"text": "Tell me more about SIP Trunking!"
}
]
}
]
},
{
"components": [
{
"type": "HEADER",
"format": "IMAGE",
"example": {
"header_handle": ["4::aW1hZ2UvanBn:ARYXBRY83hHNm6fcsll3p7zJsxepaZIuAuKM1YYbbkix--aE3w41wTdGMXY_rN8hYA4etKSS-a6xCygPGETN4C3ZBLBywyE93IFa4mx1Za1q7A:e:1775215701:1767162543555562:100040931896219:ARY6_ZRadoHSHQHYUuU"]
}
},
{
"type": "BODY",
"text": "*Voice API Text-to-Speech*: You can convert text to natural-sounding language in a range of languages and voices"
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "URL",
"text": "Vonage Voice API TTS Docs",
"url": "https://www.vonage.com/communications-apis/voice/features/tts/"
},
{
"type": "QUICK_REPLY",
"text": "Tell me more about Voice API Text-to-Speech!"
}
]
}
]
},
{
"components": [
{
"type": "HEADER",
"format": "IMAGE",
"example": {
"header_handle": ["4::aW1hZ2UvanBn:ARZtdQZsf61x1CHZuzu9hHpxkny9sBr7JDwg92UEPIgjOkUZdC1_ua19bGNzePg5oig83AbYWDX_itrGormlSiqiU8Pz71jUxpPqTrTnHQGB6Q:e:1775215569:1767162543555562:100040931896219:ARb4jYhguGyuCUukgcE"]
}
},
{
"type": "BODY",
"text": "*Voice Quality Engine*: Deliver high quality voice experiences using our reliable global carrier network."
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "URL",
"text": "Vonage Voice Quality Engine Docs",
"url": "https://www.vonage.com/communications-apis/platform/voice-quality/"
},
{
"type": "QUICK_REPLY",
"text": "Tell me more about Voice Quality Engine!"
}
]
}
]
}
]
}
]
}

Réponse
Status 202 ACCEPTED
{
"id": "1214481130497745",
"status": "PENDING",
"category": "MARKETING"
}
Expérience de l'utilisateur lors de la réception d'un carrousel
Lorsqu'un utilisateur appuie sur un bouton URL dans une carte de carrousel :
- L'URL mappée s'ouvre dans le navigateur web par défaut de l'appareil.
- L'utilisateur n'a plus accès à l'expérience client de WhatsApp
Parce que les achats se font en dehors de WhatsApp :
- Les webhooks WhatsApp ne sont pas déclenchés pour les commandes
- Les détails de la commande ne sont pas disponibles dans les API de WhatsApp
Télécharger des fichiers multimédias
Avant d'envoyer des modèles de carrousel avec des médias, vous devrez peut-être télécharger vos fichiers multimédias afin d'obtenir des poignées de médias. Téléchargez vos fichiers multimédias à l'aide de l'API de téléchargement de médias pour obtenir des poignées de médias.
Télécharger la demande de média :
curl --location 'https://api.nexmo.com/v2/whatsapp-manager/media/uploads?file_type=image%2Fjpg' \
--header 'Authorization: Basic xxxxxxxxxxx' \
--form 'mediafile=@"/Users/pcristobaldelrio/Desktop/client-sdk.png"'