When to use it?
When you need to move your WhatsApp templates from one WhatsApp Business Account (WABA) to another. For example: number migration, a company with more than one WABA that wants the same templates in all of them, or a change of portfolio in Meta Business. Meta has no "duplicate" button between accounts, but you can do it through Meta's API (Graph API) in a few steps.
This procedure requires someone familiar with API calls. If you prefer, contact our support team and we'll help.
There is no way to clone the approved status. Every template recreated in the destination WABA goes through Meta's approval again (usually minutes, but it can take up to 24h). Plan the switch with this in mind, so you're not left without approved templates in the new account.
What do I need beforehand?
- The source WABA ID and the destination WABA ID
- An access token with the
whatsapp_business_managementpermission that has access to both WABAs (from a Business Manager system user, for example)
How do I do it, step by step?
1. List the approved templates in the source WABA
curl -G "https://graph.facebook.com/v{version}/{SOURCE_WABA_ID}/message_templates" \
-d "status=APPROVED" \
-d "fields=name,language,category,parameter_format,components" \
-d "limit=100" \
-H "Authorization: Bearer {TOKEN}"
The response includes the name, language, category and content (components) of each template. If there are more than 100, follow the paging.next link in the response until the end.
2. Create each template in the destination WABA
For each item in the list, send a POST with the same data. Remove the fields that belong to the source account (id, status, quality, etc.) and send only name, language, category, parameter_format (if present) and components.
curl -X POST "https://graph.facebook.com/v{version}/{DESTINATION_WABA_ID}/message_templates" \
-H "Authorization: Bearer {TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "welcome",
"language": "en_US",
"category": "UTILITY",
"components": [ ...copied from the source... ]
}'
3. Track the approval
Run the GET again on the destination WABA and check the status field until all templates are APPROVED. Any that come back REJECTED need manual adjustment.
What should I watch out for?
- Templates with media in the header (image, video, document): the sample file from the source doesn't work in the other account. Upload the media again through the Resumable Upload API, get the new handle and replace it in
header_handlebefore the POST. - Variables: keep the examples (
example) that come in thecomponents. Without them, Meta rejects the template. - Creation limit: at most 100 templates created per hour in each WABA. If you have a lot, do it in batches.
- Total limit: 250 templates per WABA if the portfolio is not verified (verified portfolios allow many more).
- Category: Meta may reclassify the category during the new approval (e.g. from utility to marketing), which changes the sending cost.
- Name: the same
name+ language can't already exist in the destination WABA.
Notes
- To create, edit and use templates inside Cloud Chat, see WhatsApp templates: create, edit, delete and use the builder.
- To understand categories and rejection reasons, see WhatsApp template rules (Meta).
- Any questions? Contact our support team.
Official reference: Message templates (Meta for Developers)