Template Migration

This document describes how to migrate templates from one WhatsApp Business Account (WABA) to another. Note that migration doesn't move templates, it recreates them in the destination WABA.

Limitations

  • Templates can only be migrated between WABAs owned by the same Meta business.
  • Only templates with a status of APPROVED and a quality_score of either GREEN or UNKNOWN are eligible for migration.

Request Syntax

Use the WhatsApp Business Account > Migrate Message Templates endpoint to migrate templates from one WABA to another.

POST /<DESTINATION_WABA_ID>/migrate_message_templates
  ?source_waba_id=<SOURCE_WABA_ID>
  &page_number=<PAGE_NUMBER>

Parameters

PlaceholderDescriptionExample Value

<DESTINATION_WABA_ID>

WhatsApp Business Account ID

Required.

Destination WhatsApp Business Account ID.

104996122399160

<SOURCE_WABA_ID>

WhatsApp Business Account ID

Required.

Source WhatsApp Business Account ID.

102290129340398

<PAGE_NUMBER>

Integer

Optional.

Indicates amount of templates to migrate as sets of 2500. Zero-indexed. For example, to migrate 5000 templates, send one request with this value set to 0 and another request with this value set to 1, in parallel.

0

Response

{
  "migrated_templates": [<MIGRATED_TEMPLATES>],
  "failed_templates": [<FAILED_TEMPLATES>]
}

Response Properties

PlaceholderDescriptionExample Value

<MIGRATED_TEMPLATES>

List

List of template IDs that were successfully duplicated in the destination WhatsApp Business Account.

"1473688840035974","6162904357082268","6147830171896170"

<FAILED_TEMPLATES>

Map

Map identifying templates that were not duplicated in the destination WhatsApp Business Account.


Keys are template IDs and values are failure reasons.

"1019496902803242":"Incorrect category", "259672276895259":"Formatting error - dangling parameter", "572279198452421":"Incorrect category"

Example Request

curl -X POST 'https://graph.facebook.com/v21.0/104996122399160/migrate_message_templates?source_waba_id=102290129340398&page_number=0' \
-H 'Authorization: Bearer EAAJB...'

Example Response

{
  "migrated_templates": [
    "1473688840035974",
    "6162904357082268",
    "6147830171896170"
  ],
  "failed_templates": {
    "1019496902803242": "Incorrect category",
    "259672276895259": "Formatting error - dangling parameter",
    "572279198452421": "Incorrect category"
  }
}