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"
}
]
}
}
]
}
]
}
Common button types include URL, PHONE_NUMBER, QUICK_REPLY, COPY_CODE, FLOW, VOICE_CALL, catalog and order-related buttons, and other Meta-supported template button types.
Dualhook Handling
Dualhook does not currently track message_template_components_update as one of its normalized management event types. If Meta sends this field to Dualhook's app-level callback, it is treated as an unknown or generic management event rather than as a first-class dashboard state transition.
For your own integration, subscribe your app or endpoint if you need component-change notifications. In Dualhook, template state is primarily maintained through explicit template sync actions and the template status and quality management fields.
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.