Passer au contenu

Objet WhatsApp

L’objet whats_app vous permet de modifier ou de créer des messages WhatsApp via nos endpoints d’envoi de messages.

Objet WhatsApp

{
  "app_id": (required, string) see App Identifier,
  "subscription_group_id": (required, string) the ID of your subscription group,
  "message_variation_id": (optional, string) used when providing a campaign_id to specify which message variation this message should be tracked under,
  "message_type": (required, string) the type of WhatsApp message being sent under the `message` key (template_message | text_response_message | text_image_response_message | quick_reply_response_message | list_response_message | flow_response_message | carousel_response_message),
  "message": (required, object) The message object that must include the required fields based on the selected `message_type`. Below are the specific message structures for each type. Refer to the relevant message type for the required fields and their format.
}

Types de messages

template_message

{
  "template_name": (required, string) the WhatsApp template name for the message,
  "template_language_code": (required, string) the language code of the WhatsApp template for the message,
  "header_variables": (optional, header variables object) an object to specify header variable values for specified template_name, required if the header has variables; see object specification below,
  "body_variables": (optional, body variable object) an object to specify body variable values for specified template_name, required if the body has variables; see object specification below,
  "button_variables": (optional, button variables object) an object to specify button variable values for specified template_name, required if buttons have variables; see object specification below,
  "header_media_uri": (optional, string) URI to the header media, if the header is of type IMAGE in specified template_name. Only IMAGE and TEXT header types are supported by the messages/send API,
  "carousel_cards": (optional, array) an array of carousel card objects, required if the specified template_name is a carousel template; see object specification below
}

Chaque carte de carrousel remplit une carte d’un modèle de carrousel approuvé, dans l’ordre. La carte à l’index 0 remplit la première carte du modèle.

{
  "header_media_uri": (required, string) URI to the card's header media; must be Braze-hosted media,
  "header_media_type": (required, string) The type of the card's header media (image | video),
  "body_variables": (optional, body variables object) Values for the card's body variables, in the same format as the template-level body_variables,
  "button_variables": (optional, button variables object) Values for the card's button variables, in the same format as the template-level button_variables
}
Contraintes
  • carousel_cards : doit contenir entre 2 et 10 cartes, correspondant au nombre de cartes du modèle approuvé.
  • header_media_uri : doit faire référence à un média hébergé dans la bibliothèque multimédia de Braze.
  • header_media_type : toutes les cartes doivent utiliser le même type de média, correspondant au modèle approuvé.
Exemple
{
  "template_name": "weekly_picks",
  "template_language_code": "en",
  "body_variables": {
    "0": "Jane"
  },
  "carousel_cards": [
    {
      "header_media_uri": "https://braze-images.com/card1.png",
      "header_media_type": "image",
      "body_variables": {
        "0": "Runner X"
      }
    },
    {
      "header_media_uri": "https://braze-images.com/card2.png",
      "header_media_type": "image",
      "body_variables": {
        "0": "Trail Pro"
      },
      "button_variables": {
        "0": "/promo/123"
      }
    }
  ]
}
Objet variables d’en-tête

L’objet header_variables vous permet de spécifier des valeurs pour les variables d’en-tête dans le modèle WhatsApp. Chaque clé correspond à l’index de variable du modèle WhatsApp (indexé à partir de zéro) à remplacer par la valeur spécifiée.

{
  "$TEMPLATE_VARIABLE_INDEX_0": "$TEMPLATE_VARIABLE_VALUE_0"
}

Actuellement, seules zéro ou une variable d’en-tête peuvent être spécifiées.

Exemple
{
  "0": "Check it out!"
}
Objet variables de corps

L’objet body_variables vous permet de spécifier des valeurs pour les variables de corps dans le modèle WhatsApp. Chaque clé correspond à l’index de variable du modèle WhatsApp (indexé à partir de zéro) à remplacer par la valeur spécifiée.

{
  "$TEMPLATE_VARIABLE_INDEX_0": "$TEMPLATE_VARIABLE_VALUE_0",
  "$TEMPLATE_VARIABLE_INDEX_1": "$TEMPLATE_VARIABLE_VALUE_1"
}
Exemple
{
  "0": "Check it out!",
  "1": "It's pretty neat."
}
Objet variables de bouton

L’objet button_variables vous permet de spécifier des valeurs pour les variables de bouton dans le modèle WhatsApp. Chaque clé correspond à l’index de variable du modèle WhatsApp (indexé à partir de zéro) à remplacer par la valeur spécifiée.

{
  "$TEMPLATE_VARIABLE_INDEX_1": "$TEMPLATE_VARIABLE_VALUE_1"
}

Actuellement, une seule variable de bouton peut être spécifiée, correspondant au composant de chemin d’une URL d’appel à l’action. L’index de la variable doit correspondre à l’index du bouton URL CTA dans le modèle. Par exemple, si votre bouton CTA est le deuxième bouton de votre modèle, utilisez l’index de variable « 1 ».

Exemple
{
  "1": "/marketing/promotion123"
}

Messages de réponse

text_response_message

{
  "body": (required, string) the body of the message to send,
  "preview_url": (optional, boolean) whether WhatsApp should render a preview of links included in body
}
Exemple
{
  "body": "Check out our new deals at https://braze.com",
  "preview_url": true
}

text_image_response_message

{
  "image_uri": (required, string) the uri of the image to send,
  "caption": (optional, string) the caption for the image being sent
}
Exemple
{
  "image_uri": "https://braze.com/promotion.jpg",
  "caption": "This won't last for long, check it out!"
}

quick_reply_response_message

{
  "body": (required, string) the body of the message to send,
  "header_image_uri": (optional, string) the URI of the image to send as the message header (only valid if header_text not present),
  "header_text": (optional, string) the text to send as the message header (only valid if header_image_uri not present),
  "footer": (optional, string) the footer of the message to send,
  "buttons": (required, array) array of Button objects. Will render in message based on order in array.
}
Objet bouton
{
  "text": (required, string) the text of the button
}
Exemple
{
  "body": "Want to keep hearing from us?",
  "buttons": [
    {
      "text": "Yes!"
    },
    {
      "text": "No thanks"
    }
  ]
}

list_response_message

Le type list_response_message vous permet d’envoyer un message sous forme de liste dans WhatsApp. Ce type de message inclut une liste d’éléments avec lesquels le destinataire peut interagir.

{
  "header": (optional, string) the header of the message to send,
  "body": (required, string) the body of the message to send,
  "footer": (optional, string) the footer of the message to send,
  "list": (required, object) the list object that contains:
    "list_button_text": (required, string) the text that will appear on the list button,
    "list_sections": (required, array) an array of List Section Objects
}

Objet section de liste

{
  "section_title": (required, string) The title of the section,
  "list_rows": (required, array) An array of List Row Objects
}

Objet ligne de liste

{
  "row_title": (required, string) The title of the row,
  "row_description": (optional, string) The description for the row
}
Contraintes
  • list_sections : doit contenir au moins une section.
  • list_rows : un maximum de 10 lignes peut être inclus dans l’ensemble des sections.
  • row_description : facultatif pour chaque ligne.
Exemple
{
  "body": "Here is a list of options to choose from:",
  "list": {
    "list_button_text": "Choose an option",
    "list_sections": [
      {
        "section_title": "Section 1",
        "list_rows": [
          {
            "row_title": "Option 1"
          },
          {
            "row_title": "Option 2",
            "row_description": "Description for Option 2"
          }
        ]
      },
      {
        "section_title": "Section 2",
        "list_rows": [
          {
            "row_title": "Option 3"
          },
          {
            "row_title": "Option 4"
          },
          {
            "row_title": "Option 5"
          }
        ]
      }
    ]
  }
}

flow_response_message

Le type flow_response_message vous permet d’envoyer un message basé sur un flux dans WhatsApp. Ce type de message inclut un flux interactif que le destinataire peut compléter.

{
  "header_text": (optional, string) the header text of the message to send,
  "body": (required, string) the body of the message to send,
  "footer": (optional, string) the footer of the message to send,
  "flow_button": (required, object) the flow button object that contains:
    "caption": (required, string) the text that will appear on the flow button,
    "flow_id": (required, string) the unique identifier of the WhatsApp Flow,
  "generate_custom_attribute": (optional, boolean) whether to save flow response on the user profile and generate a custom attribute upon responding to this flow message
}
Objet bouton de flux
{
  "caption": (required, string) The text displayed on the button,
  "flow_id": (required, string) The ID of the flow
}
Contraintes
  • flow_button : doit inclure à la fois caption et flow_id.
  • caption : 20 caractères maximum.
  • flow_id : doit être un ID de flux publié valide.
Exemple
{
  "body": "Please complete your order details",
  "flow_button": {
    "caption": "Start Order",
    "flow_id": "594425479261596"
  },
  "generate_custom_attribute": true
}

Le type carousel_response_message vous permet d’envoyer un carrousel interactif de cartes médias que les utilisateurs peuvent faire défiler en tant que message de réponse. Chaque carte contient un média, un texte de corps facultatif, et soit des boutons de réponse rapide, soit un bouton de site web.

{
  "body": (required, string) the body of the message to send,
  "carousel_button_type": (required, string) the button type used by every card (quick_reply | url),
  "cards": (required, array) an array of Card objects. Cards render in the carousel in array order.
}
Objet carte
{
  "media_uri": (required, string) the URI of the card's media,
  "media_type": (required, string) the type of the card's media (image | video),
  "body_text": (optional, string) the body text of the card,
  "buttons": (required for quick_reply, array) an array of button label strings,
  "cta_url_button": (required for url, object) the website button object that contains:
    "display_text": (required, string) the text displayed on the button,
    "url": (required, string) the URL the button opens
}
Contraintes
  • cards : doit contenir entre 2 et 10 cartes.
  • media_type : toutes les cartes doivent utiliser le même type de média.
  • body_text : 160 caractères maximum par carte.
  • buttons : pour quick_reply, chaque carte doit avoir le même nombre de boutons, avec un maximum de deux par carte.
  • cta_url_button : pour url, chaque carte doit inclure un cta_url_button.
Exemple avec boutons de réponse rapide
{
  "body": "Check out this week's picks!",
  "carousel_button_type": "quick_reply",
  "cards": [
    {
      "media_uri": "https://example.com/card1.png",
      "media_type": "image",
      "body_text": "Runner X - now 20% off",
      "buttons": ["Shop now", "Not for me"]
    },
    {
      "media_uri": "https://example.com/card2.png",
      "media_type": "image",
      "body_text": "Trail Pro - back in stock",
      "buttons": ["Shop now", "Not for me"]
    }
  ]
}
Exemple avec boutons de site web
{
  "body": "Check out this week's picks!",
  "carousel_button_type": "url",
  "cards": [
    {
      "media_uri": "https://example.com/card1.png",
      "media_type": "image",
      "body_text": "Runner X - now 20% off",
      "cta_url_button": {
        "display_text": "Visit",
        "url": "https://example.com/runner-x"
      }
    },
    {
      "media_uri": "https://example.com/card2.png",
      "media_type": "image",
      "body_text": "Trail Pro - back in stock",
      "cta_url_button": {
        "display_text": "Visit",
        "url": "https://example.com/trail-pro"
      }
    }
  ]
}
New Stuff!