message_template_components_update Webhook

Field reference for WhatsApp message_template_components_update webhooks: template component edits, button fields, payload shape, and Dualhook handling.

The message_template_components_update field reports that an existing template's components changed. It is useful when your app caches template body text, headers, footers, or button definitions.

What message_template_components_update Reports

This field can include:

  • template ID, name, and language,
  • body text,
  • text header,
  • footer,
  • button definitions such as URL and phone-number buttons.

It does not replace the need to fetch the template from Meta if your local copy must be canonical; treat it as a change signal and lightweight payload.

When It Fires

Meta sends this webhook when a template is edited.

Payload Shape

{
  "object": "whatsapp_business_account",
  "entry": [
    {
      "id": "<WABA_ID>",
      "time": 1751250234,
      "changes": [
        {
          "field": "message_template_components_update",
          "value": {
            "message_template_id": 1315502779341834,
            "message_template_name": "order_confirmation",
            "message_template_language": "en_US",
            "message_template_title": "Your order is confirmed!",
            "message_template_element": "Thank you for your order, {{1}}.",
            "message_template_footer": "Footer text",
            "message_template_buttons": [
              {
                "message_template_button_type": "URL",
                "message_template_button_text": "View order",
                "message_template_button_url": "https://example.com/orders"
              }
            ]
          }
        }
      ]
    }
  ]
}

message_template_title is included only when the template has a text header, message_template_footer only when it has a footer, and message_template_buttons only when it has a URL or phone-number button.

Documented message_template_button_type values include CATALOG, COPY_CODE, EXTENSION, FLOW, MPM, ORDER_DETAILS, OTP, PHONE_NUMBER, POSTBACK, REMINDER, SEND_LOCATION, SPM, QUICK_REPLY, URL, and VOICE_CALL.

Dualhook Handling

Dualhook subscription: not subscribed. Dualhook's Meta app does not subscribe to message_template_components_update, so a Dualhook connection never delivers it to you. Meta does not allow Webhook Override for template fields either, so the only way to receive it is with your own Meta app: subscribe that app to the field in its App Dashboard and to the WABA with POST /<WABA_ID>/subscribed_apps.

In Dualhook, template state is maintained through template sync and the message_template_status_update and template_category_update fields. After editing a template in WhatsApp Manager, sync templates in the dashboard to pick up the new components.

Implementation Notes

  • Use message_template_id plus language as the stable lookup key.
  • After receiving this event, fetch the template from Meta if you need the full canonical component model.
  • Do not assume every optional field is present. Headers, footers, and button arrays depend on the template.
  • Review send builders after component changes, especially when variable count or button shape changes.

Related

  • Webhook Subscription FieldsReference list of all 22+ WhatsApp Business Platform webhook subscription fields, what each notifies you of, required permissions, payload size limits, retry policy, and IP allowlisting.
  • TemplatesTemplate lifecycle, categories, and management through Dualhook and Meta Graph API.
  • Template ElementsTemplate structure: headers, body, footer, buttons, variables, and practical limits.
  • message_template_status_update WebhookField reference for WhatsApp message_template_status_update webhooks: template approval, rejection, pause, disablement, archive, deletion, appeal, and Dualhook handling.
Browse more docsStart Free Trial