•  


템플릿 - WhatsApp Business Management API - 文書 - Meta for Developers

對話 基盤 價格이 變更되었습니다. 새로운 對話 基盤 價格 모델의 適用 方法에 對해 알아보려면 價格 을 參照하세요.

또한 metric_types 의 標示 方式이 2023年 7月 1日 부터 變更되었습니다. 仔細한 內容은 轉換 分析 票 를 參照하세요.

템플릿 만들기 및 管理하기

引證 템플릿

2024年 4月 1日부터 一回用 祕密番號 버튼이 包含된 引證 템플릿 이 아닌 旣存 引證 템플릿은 電送하거나, 修正하거나, 在庫를 要請할 수 없습니다.

2024年 7月 1日부터 人道에서 認證 템플릿을 利用할 수 있습니다.


템플릿은 Meta가 호스팅하는 클라우드 API 또는 온프레미스 API를 使用하여 템플릿 메시지를 電送할 때 使用됩니다. 클라우드 API는 클라우드 API 서비스의 保安課 無結成을 保護하기 위해 머신 러닝을 使用하여 템플릿과 可變 媒介變數를 檢討합니다. 클라우드 API가 템플릿과 可變 텍스트를 檢討할 때는 WhatsApp에 情報를 共有하지 않습니다.

템플릿은 Business Management API 또는 WhatsApp 비즈니스 管理者를 使用하여 만들 수 있습니다. WhatsApp Business 計定이 保有할 수 있는 템플릿 數는 上位 비즈니스에서 決定합니다. 上位 비즈니스가 引證되지 않은 境遇, WhatsApp Business 計定은 各各 템플릿 250個로 制限됩니다. 그러나 上位 비즈니스가 引證 을 받았고 WhatsApp Business 計定 中 하나 以上의 비즈니스 電話番號에 承認된 標示 이름 이 있을 境遇, 各 WhatsApp Business 計定은 템플릿을 6,000個까지 保有할 수 있습니다.

始作하기 前에

다음과 같은 項目이 必要합니다.

  • 비즈니스에 링크된 시스템 使用者 액세스 토큰
  • 비즈니스의 WhatsApp Business 計定 ID
  • 미디어 템플릿에서 使用할 모든 文書, 이미지 또는 動映像 파일에 對한 미디어 資産의 使用者 이름. 미디어 資産의 使用者 이름을 가져오려면 再開 可能한 업로드 API 를 使用하여 미디어 資産을 업로드해야 합니다.

制限 事項

  • 메시지 템플릿 이름 필드는 512字로 制限됩니다.
  • 메시지 템플릿 콘텐츠 필드는 1,024字로 制限됩니다.
  • 템플릿은 承認됨 , 거부됨 또는 一時 中斷됨 狀態일 때만 修正할 수 있습니다. 템플릿은 하루에 1番, 한 달에 10番까지 修正할 수 있습니다.
  • WhatsApp Business 計定은 1時間當 100個의 메시지 템플릿만 만들 수 있습니다.
  • 4個 以上의 버튼이나 빠른 答狀 버튼과 하나 以上의 다른 類型 버튼으로 構成된 템플릿은 WhatsApp 데스크톱 클라이언트에서 確認할 수 없습니다. 이러한 템플릿 메시지 中 하나를 받는 WhatsApp 使用者에게는 代身 携帶폰에서 메시지를 確認하라는 메시지가 標示됩니다.

現地化

템플릿을 만들 때 特定 言語로 메시지 템플릿을 追加할 수 있습니다. 이러한 템플릿의 數는 制限에 反映됩니다. 飜譯을 提供할 때는 一貫性에 維持하세요. 仔細한 內容은 顧客 센터의 콜백에서 'structure unavailable'이라는 誤謬가 發生하는 理由는 무엇인가요? 文書를 參照하세요.

템플릿 만들기

WhatsApp Business 計定 > 메시지 템플릿 엔드포인트로 POST 要請을 보내서 템플릿을 만듭니다.

要請 構文

POST /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates

POST 本文

{
  "name": "<NAME>",
  "category": "<CATEGORY>",
  "allow_category_change": <ALLOW_CATEGORY_CHANGE>,
  "language": "<LANGUAGE>",
  "components": [<COMPONENTS>]
}

本文 屬性

자리 標示子 說明 샘플 값

<NAME>

文字列

必須 項目.


템플릿 이름입니다.

最大 512者입니다.

order_confirmation

<CATEGORY>

enum

必須 項目.


템플릿 카테고리입니다.

아래의 템플릿 카테고리 를 參照하세요.

UTILITY

<ALLOW_CATEGORY_CHANGE>

부울

選擇 事項.


true로 設定하면 카테고리를 自動으로 割當 할 수 있습니다. 省略하는 境遇, 카테고리 誤謬로 인해 템플릿이 거부될 수 있습니다.

true

<LANGUAGE>

enum

必須 項目.


템플릿 言語 및 로캘 코드 입니다.

en_US

<LIBRARY_TEMPLATE_NAME>

文字列

選擇 事項.


유틸리티 템플릿 라이브러리 템플릿의 正確한 이름입니다.

유틸리티 템플릿 라이브러리 를 使用하여 템플릿을 만드는 方法 알아보기

delivery_update_1

<LIBRARY_TEMPLATE_BUTTON_INPUTS>

個體의 配列

選擇 事項.


템플릿에서 使用되는 비즈니스의 웹사이트 및/또는 電話番號입니다.


參考: 버튼이 있는 유틸리티 템플릿의 境遇, 이 屬性은 選擇 事項이 아닙니다 .

유틸리티 템플릿 라이브러리 를 使用하여 템플릿을 만드는 方法 알아보기

“[ {'type': 'URL', 'url': {'base_url' : 'https://www.example.com/{{1}}', 'url_suffix_example' : 'https://www.example.com/demo'}}, {type: 'PHONE_NUMBER', 'phone_number': '+16315551010'} ]"

<COMPONENTS>

個體의 配列

必須 項目.


템플릿을 構成하는 構成 要素입니다.

아래의 템플릿 構成 要素 를 參照하세요.

아래의 템플릿 構成 要素 를 參照하세요.

템플릿 카테고리

템플릿은 다음 中 한 가지 카테고리로 分類되어야 합니다. 카테고리는 價格 에 反映되며 指定한 카테고리는 템플릿 生成 時 檢證 됩니다.

  • AUTHENTICATION
  • MARKETING
  • UTILITY

템플릿을 만들 때 어떤 카테고리를 使用할지 確認하려면 템플릿 카테고리化 文書를 參照하세요.

템플릿 構成 要素

템플릿은 비즈니스 要求 事項을 基盤으로 다양한 텍스트, 미디어 및 인터랙티브 構成 要素로 構成됩니다. 샘플 및 例示 쿼리, 모든 可能한 構成 要素 및 該當 要求 事項의 리스트는 템플릿 構成 要素 文書를 參照하세요.

템플릿을 만들 때 構成 要素 個體의 配列을 要請 本文의 components 屬性에 割當하여 構成 要素를 定義합니다.

例를 들어 두 個의 變數와 샘플 값이 包含된 텍스트 本文 構成 要素, 電話番號 버튼 構成 要素, URL 버튼 構成 要素를 包含하는 配列은 다음과 같습니다.

[
  {
    "type": "BODY",
    "text": "Thank you for your order, {{1}}! Your confirmation number is {{2}}. If you have any questions, please use the buttons below to contact support. Thank you for being a customer!",
    "example": {
      "body_text": [
        [
          "Pablo","860198-230332"
        ]
      ]
    }
  },
  {
    "type": "BUTTONS",
    "buttons": [
      {
        "type": "PHONE_NUMBER",
        "text": "Call",
        "phone_number": "15550051310"
      },
      {
        "type": "URL",
        "text": "Contact Support",
        "url": "https://www.luckyshrub.com/support"
      }
    ]
  }
]

샘플 및 例示 쿼리, 모든 可能한 構成 要素 및 該當 要求 事項의 리스트는 템플릿 構成 要素 文書를 參照하세요.

AUTHENTICATION 으로 分類한 템플릿에는 固有한 構成 要素 要求 事項이 있습니다. 引證 템플릿 을 參照하세요.

카테고리 檢證

템플릿 生成 要請을 電送하면 Meta에서 템플릿 카테고리 分類 가이드라인을 使用하여 카테고리를 卽時 檢證합니다.

  • Meta가 指定된 카테고리에 同意 하는 境遇 템플릿을 만들고 status PENDING 으로 設定합니다. 그러면 템플릿은 템플릿 檢收 를 거치게 됩니다.
  • Meta가 指定된 카테고리에 同意하지 않는 境遇 템플릿을 만들지만 status REJECTED 로 設定하고 reason INCORRECT_CATEGORY 로 設定한 메시지 템플릿 狀態 업데이트 Webhooks를 트리거합니다. Meta에서는 開發者가 Webhooks를 受信하여 拒否된 템플릿을 確認하거나 새로 生成된 템플릿에서 rejected_reason 필드를 要請할 것을 勸奬합니다. 이 필드는 TAG_CONTENT_MISMATCH 값을 가지게 됩니다.

두 境遇 모두 템플릿의 最初 狀態가 API 應答 過程에서 返還됩니다.

카테고리 檢證 過程에서 템플릿 狀態가 REJECTED 로 設定된 境遇 다음과 같은 여러 가지 옵션이 있습니다.

自動 카테고리 分類

要請에 allow_category_change 屬性을 包含하여 Meta에서 템플릿 內容과 템플릿 카테고리 分類 가이드라인에 따라 카테고리를 自動으로 割當하도록 할 수 있습니다. 그러면 카테고리 誤謬로 인해 템플릿 狀態가 바로 REJECTED 로 設定되지 않도록 할 수 있습니다.

自動 카테고리 分類는 템플릿을 만들 때만 使用할 수 있습니다.

템플릿 檢收

狀態가 PENDING 人 템플릿은 템플릿 檢收를 받는 過程에 있습니다. Meta는 各各의 새로 만들거나 修正된 템플릿의 內容을 檢討하여 콘텐츠 가이드라인과 政策을 遵守하는지 確認합니다. 이 檢收 結果에 따라서 템플릿 狀態를 APPROVED 또는 REJECTED 로 自動 變更합니다. 그러면 메시지 템플릿 狀態 업데이트 Webhooks가 트리거됩니다.

템플릿 狀態

카테고리 檢證 및 템플릿 檢收 結果에 따라 템플릿의 status 를 다음 값 中 한 가지로 設定하거나 變更합니다.

  • APPROVED ? 템플릿이 템플릿 檢收를 通過하여 承認을 받았고 이제 템플릿 메시지로 電送 될 수 있습니다.
  • PENDING ? 템플릿이 카테고리 檢證을 通過했고 템플릿 檢收를 받고 있습니다.
  • REJECTED ? 템플릿이 카테고리 檢證이나 템플릿 檢收를 通過하지 못했습니다. 템플릿에 對해 rejected_reason 필드를 要請하여 理由를 確認할 수 있습니다.

모든 使用 可能한 필드와 狀態는 WhatsApp 메시지 템플릿 엔드포인트 參考 資料를 參照하세요.

應答

要請이 成功하면 새로 만든 템플릿 ID, 狀態, 카테고리를 包含하여 API가 應答합니다. 可能한 세 가지 結果는 다음과 같습니다.

  • Meta가 指定된 카테고리에 同意하고 템플릿이 템플릿 檢收를 거치고 있습니다( status PENDING ).
  • Meta가 指定된 카테고리에 同意하지 않습니다( status REJECTED ).
  • Meta가 템플릿을 自動으로 承認합니다( status APPROVED ). 一回用 祕密番號 버튼이 있는 引證 템플릿 萬 可能합니다.
{
    "id": "<ID>",
    "status": "<STATUS>",
    "category": "<CATEGORY>"
}

應答 屬性

자리 標示子 說明 샘플 값

<ID>

템플릿 ID입니다.

572279198452421

<STATUS>

템플릿 狀態 입니다.

PENDING

<CATEGORY>

開發者가 指定했거나 Meta에서 割當한 템플릿 카테고리 입니다.

MARKETING

要請 例示

다음의 構成 要素로 構成된 시즌性 弘報 템플릿을 만들기 위한 要請의 예:

  • 텍스트 헤더
  • 텍스트 本文
  • 바닥글
  • 두 個의 빠른 答狀 버튼

追加的인 例示는 要請 例示 를 參照하세요.

curl 'https://graph.facebook.com/
v20.0
/102290129340398/message_templates' \
-H 'Authorization: Bearer EAAJB...' \
-H 'Content-Type: application/json' \
-d '
{
  "name": "seasonal_promotion",
  "language": "en_US",
  "category": "MARKETING",
  "components": [
    {
      "type": "HEADER",
      "format": "TEXT",
      "text": "Our {{1}} is on!",
      "example": {
        "header_text": [
          "Summer Sale"
        ]
      }
    },
    {
      "type": "BODY",
      "text": "Shop now through {{1}} and use code {{2}} to get {{3}} off of all merchandise.",
      "example": {
        "body_text": [
          [
            "the end of August","25OFF","25%"
          ]
        ]
      }
    },
    {
      "type": "FOOTER",
      "text": "Use the buttons below to manage your marketing subscriptions"
    },
    {
      "type":"BUTTONS",
      "buttons": [
        {
          "type": "QUICK_REPLY",
          "text": "Unsubscribe from Promos"
        },
        {
          "type":"QUICK_REPLY",
          "text": "Unsubscribe from All"
        }
      ]
    }
  ]
}'

應答 例示

{
    "id": "572279198452421",
    "status": "PENDING",
    "category": "MARKETING"
}

템플릿 보내기

클라우드 API 또는 온프레미스 API 를 使用하여 템플릿 메시지를 통해 템플릿을 보냅니다.

마케팅 템플릿 模範 事例

마케팅 옵트아웃 버튼

MARKETING 으로 分類된 템플릿에 빠른 答狀 버튼 을 追加하여 顧客이 마케팅 메시지를 쉽게 옵트아웃할 수 있도록 하는 것이 좋습니다. 그러면 비즈니스를 遮斷하지 않고 마케팅 메시지를 옵트아웃하는 옵션을 顧客에게 提供할 수 있습니다. 따라서 메시지 볼륨을 더 빠르게 擴張할 수 있습니다. 마케팅 템플릿에 옵트아웃 버튼을 追加할 때의 利點에 對한 仔細한 內容은 이 文書 를 參照하세요.

비즈니스는 마케팅 메시지 受信을 옵트아웃韓 顧客에게 마케팅 메시지 電送을 中斷하는 데 必要한 措置를 取해야 합니다. 이 措置를 取하지 않으면 遮斷率과 品質 點數에 否定的인 影響을 미칠 수 있습니다.

템플릿 가져오기

WhatsApp Business 計定 > 메시지 템플릿 엔드포인트로 GET 要請을 보내면 WhatsApp Business 計定에서 所有한 템플릿 리스트를 가져올 수 있습니다.

要請 構文

GET /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates
  ?fields=<FIELDS>
  &limit=<LIMIT>

쿼리 文字列 媒介變數

자리 標示子 說明 샘플 값

<FIELDS>

쉼標로 區分한 리스트

選擇 事項.


返還하고자 하는 템플릿 필드 의 리스트입니다.

name,status

<LIMIT>

精髓

選擇 事項.


各 結果 페이지에서 返還하고자 하는 템플릿의 最大 數입니다.

10

要請 例示

curl 'https://graph.facebook.com/
v20.0
/102290129340398/message_templates?fields=name,status&limit=3' \
-H 'Authorization: Bearer EAAJB...'

應答 例示

{
  "data": [
    {
      "name": "seasonal_promotion_text_only",
      "status": "APPROVED",
      "id": "564750795574598"
    },
    {
      "name": "seasonal_promotion_video",
      "status": "PENDING",
      "id": "1252715608684590"
    },
    {
      "name": "seasonal_promotion_image_header",
      "status": "PENDING",
      "id": "1372429296936443"
    }
  ],
  "paging": {
    "cursors": {
      "before": "MAZDZD",
      "after": "MgZDZD"
    },
    "next": "https://graph.facebook.com/
v20.0
/102290129340398/message_templates?fields=name%2Cstatus&limit=3&after=MgZDZD"
  }
}

要請 例示(거부된 템플릿)

필드와 願하는 값을 要請에 包含하면 特定 필드 값이 있는 템플릿만 返還할 수 있습니다. 例를 들어 拒否된 템플릿만 가져오려면 status=REJECTED 를 包含할 수 있습니다.

curl 'https://graph.facebook.com/
v20.0
/104996122399160/message_templates?fields=name,status&status=REJECTED' \
-H 'Authorization: Bearer EAAJB...'

應答 例示

{
  "data": [
    {
      "name": "seasonal_promotion_text_only_v4",
      "status": "REJECTED",
      "id": "564750795574598"
    },
    {
      "name": "discount_qualifier",
      "status": "REJECTED",
      "id": "163917509772674"
    },
    {
      "name": "limited_time_offer_tuscan_getaway_2023",
      "status": "REJECTED",
      "id": "202389039167147"
    },
    {
      "name": "2023_mar_promo_2",
      "status": "REJECTED",
      "id": "1116034925734553"
    },
    {
      "name": "2023_mar_promo",
      "status": "REJECTED",
      "id": "952600926095321"
    }
  ]
}

템플릿 네임스페이스 가져오기

메시지 템플릿 네임스페이스는 메시지 템플릿을 使用하여 메시지를 보내는 데 必要합니다.

템플릿의 네임스페이스를 가져오려면 /{whatsapp-business-account-ID} 엔드포인트로 GET 要請을 보내고 message_template_namespace 필드를 包含합니다.

要請 例示

可讀性을 높이기 위해 形式을 指定했습니다.
curl -i -X GET "https://graph.facebook.com/
v20.0
/{whatsapp-business-account-ID}
  ?fields=message_template_namespace
  &access_token=
{system-user-access-token}
"

成功 時 WhatsApp Business 計定 ID와 네임스페이스를 包含한 JSON 個體가 返還됩니다.

{
    "id": "1972385232742141",
    "message_template_namespace": "12abcdefghijk_34lmnop" 
}

템플릿 修正

WhatsApp 메시지 템플릿 엔드포인트로 POST 要請을 보내서 템플릿을 修正합니다. WhatsApp 管理者 > 計定 道具 > 메시지 템플릿 패널을 使用하여 手動으로 템플릿을 修正할 수도 있습니다.

制限 事項

  • APPROVED , REJECTED 또는 PAUSED 狀態의 템플릿만 修正할 수 있습니다.
  • 템플릿의 category 또는 components 萬 修正할 수 있습니다.
  • 承認된 템플릿의 category 는 修正할 수 없습니다.
  • 承認된 템플릿은 30日 동안 10回, 24時間 동안 1回까지 修正할 수 있습니다. 거부되거나 一時 中斷된 템플릿은 回數 制限 없이 修正할 수 있습니다.
  • 承認되거나 一時 中斷된 템플릿을 修正하고 나면 템플릿 檢討에 失敗하지 않는 限 自動으로 承認됩니다.

要請 構文

POST /<WHATSAPP_MESSAGE_TEMPLATE_ID>

POST 本文

{
  "category": "<CATEGORY>",
  "components": [<COMPONENTS>]
}

屬性

자리 標示子 說明 샘플 값

<CATEGORY>

文字列

構成 要素 屬性이 省略된 境遇 必須입니다.


템플릿 카테고리입니다.

AUTHENTICATION

<COMPONENTS>

配列

카테고리 屬性이 省略된 境遇 必須입니다.


템플릿 構成 要素 個體의 配列입니다.

아래의 要請 例示(構成 要素 修正) 를 參照하세요.

要請 例示(構成 要素 修正)

마케팅 및 유틸리티 콘텐츠를 모두 包含하는 템플릿 本文 텍스트에 對해 마케팅 콘텐츠만 包含하도록 하는 要請 例示입니다.

curl 'https://graph.facebook.com/
v20.0
/564750795574598' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
  "components": [
    {
      "type": "HEADER",
      "format": "TEXT",
      "text": "Our {{1}} is on!",
      "example": {
        "header_text": [
          "Spring Sale"
        ]
      }
    },
    {
      "type": "BODY",
      "text": "Shop now through {{1}} and use code {{2}} to get {{3}} off of all merchandise.",
      "example": {
        "body_text": [
          [
            "the end of April",
            "25OFF",
            "25%"
          ]
        ]
      }
    },
    {
      "type": "FOOTER",
      "text": "Use the buttons below to manage your marketing subscriptions"
    },
    {
      "type": "BUTTONS",
      "buttons": [
        {
          "type": "QUICK_REPLY",
          "text": "Unsubcribe from Promos"
        },
        {
          "type": "QUICK_REPLY",
          "text": "Unsubscribe from All"
        }
      ]
    }
  ]
}'

要請 例示(카테고리만 修正)

템플릿 카테고리를 UTILITY 에서 MARKETING 으로 變更하는 要請 例示입니다.

curl 'https://graph.facebook.com/
v20.0
/1252715608684590' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
  "category": "MARKETING"
}'

應答 例示

成功 時 應答 例示입니다.

{
  "success": true
}

템플릿 削除

WhatsApp Business 計定 > 메시지 템플릿 엔드포인트를 使用하여 이름 또는 ID로 템플릿을 削除합니다.

參考

  • 템플릿 메시지를 통해 電送되었지만 아직 傳達되지 않은 템플릿을 削除하는 境遇(예: 顧客의 携帶폰이 꺼져 있는 境遇), 템플릿 狀態는 PENDING_DELETION 으로 設定되고 WhatsApp에서 30日 동안 該當 메시지를 傳達하려고 試圖합니다. 이 期間이 지나면 "救助 使用 不可" 誤謬가 電送되며 顧客은 메시지를 受信하지 않습니다.
  • 템플릿이 削除되면 該當 承認된 템플릿의 이름은 30日間 다시 使用할 수 없습니다.

이름으로 削除

이름으로 템플릿을 削除하면 該當 이름과 一致하는 모든 템플릿이 削除됩니다(즉, 이름이 같지만 言語가 다른 템플릿度 削除됩니다).

要請 構文

DELETE /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates
  ?name=<NAME>

要請 例示

curl -X DELETE 'https://graph.facebook.com/v16.0/102290129340398/message_templates?name=order_confirmation' \
-H 'Authorization: Bearer EAAJB...'

應答 例示

{
  "success": true
}

ID로 削除

ID로 템플릿을 削除하려면 要請에 템플릿 이름과 함께 ID를 包含합니다. 템플릿 ID가 一致하는 템플릿만 削除됩니다.

要請 構文

DELETE /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates
  ?hsm_id=<HSM_ID>,
  &name=<NAME>

要請 例示

curl -X DELETE 'https://graph.facebook.com/
v20.0
/102290129340398/message_templates?hsm_id=1407680676729941&name=order_confirmation' \
-H 'Authorization: Bearer EAAJB...'

應答 例示

{
  "success": true
}
- "漢字路" 한글한자자동변환 서비스는 교육부 고전문헌국역지원사업의 지원으로 구축되었습니다.
- "漢字路" 한글한자자동변환 서비스는 전통문화연구회 "울산대학교한국어처리연구실 옥철영(IT융합전공)교수팀"에서 개발한 한글한자자동변환기를 바탕하여 지속적으로 공동 연구 개발하고 있는 서비스입니다.
- 현재 고유명사(인명, 지명등)을 비롯한 여러 변환오류가 있으며 이를 해결하고자 많은 연구 개발을 진행하고자 하고 있습니다. 이를 인지하시고 다른 곳에서 인용시 한자 변환 결과를 한번 더 검토하시고 사용해 주시기 바랍니다.
- 변환오류 및 건의,문의사항은 juntong@juntong.or.kr로 메일로 보내주시면 감사하겠습니다. .
Copyright ⓒ 2020 By '전통문화연구회(傳統文化硏究會)' All Rights reserved.
 한국   대만   중국   일본