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_idplus 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.