메시지 템플릿

마케팅, 유틸리티 및 인증 대화를 시작하려면 메시지 템플릿이 필요합니다. 이러한 대화의 예로는 고객 관리 메시지나 예약 알림, 결제 또는 배송 업데이트, 알림 등이 있습니다.

요구 사항

  • 메시지 템플릿은 승인을 받아야 대화를 시작하는 데 사용할 수 있습니다. 더 알아보기.
  • 마케팅, 유틸리티 및 인증과 관련하여 고객과 대화를 시작하려면 고객이 비즈니스에서 메시지를 수신하도록 옵트인했어야 합니다. 자세히 알아보세요.

지원되는 템플릿 카테고리

카테고리를 참조하세요.

번역

메시지 템플릿을 전송할 때는 language 필드를 사용하여 언어를 지정해야 합니다. 사용하려는 모든 번역에 대한 책임은 비즈니스에 있습니다.

지원되는 언어

지원 언어

메시지 템플릿에 지원되는 언어는 다음과 같습니다.

언어코드

아프리칸스어

af

알바니아어

sq

아랍어

ar

아제르바이잔어

az

벵골어

bn

불가리아어

bg

카탈로니아어

ca

중국어(본토)

zh_CN

중국어(홍콩)

zh_HK

중국어(대만)

zh_TW

크로아티아어

hr

체코어

cs

덴마크어

da

네덜란드어

nl

영어

en

영어(영국)

en_GB

영어(미국)

en_US

에스토니아어

et

필리핀어

fil

핀란드어

fi

프랑스어

fr

독일어

de

그리스어

el

구자라트어

gu

하우사어

ha

히브리어

he

힌디어

hi

헝가리어

hu

인도네시아어

id

아일랜드어

ga

이탈리아어

it

일본어

ja

칸나다어

kn

카자흐어

kk

한국어

ko

라오스어

lo

라트비아어

lv

리투아니아어

lt

마케도니아어

mk

말레이어

ms

말라얄람어

ml

마라티어

mr

노르웨이어

nb

페르시아어

fa

폴란드어

pl

포르투갈어(브라질)

pt_BR

포르투갈어(포르투갈)

pt_PT

펀자브어

pa

루마니아어

ro

러시아어

ru

세르비아어

sr

슬로바키아어

sk

슬로베니아어

sl

스페인어

es

스페인어(아르헨티나)

es_AR

스페인어(스페인)

es_ES

스페인어(멕시코)

es_MX

스와힐리어

sw

스웨덴어

sv

타밀어

ta

텔루구어

te

태국어

th

터키어

tr

우크라이나어

uk

우르두어

ur

우즈벡어

uz

베트남어

vi

줄루어

zu

언어 팩

메시지 템플릿은 언어 팩에 저장됩니다. 언어 팩은 특정 언어 또는 로캘의 메시지 템플릿 요소로 구성된 번들입니다. 비즈니스가 어떤 언어 또는 로캘에 대한 번역을 하나 이상 지원할 경우, 해당 언어 또는 로캘에 대한 팩이 생성됩니다.

메시지 템플릿 네임스페이스는 특정 비즈니스의 언어 팩으로 구성된 번들입니다.

언어 정책 옵션

language: policy 필드를 기본값인 deterministic으로 설정하고 메시지 템플릿을 전송할 경우, WhatsApp은 요청된 해당 언어 및 로캘로 메시지 템플릿을 전송합니다. 그런 다음, 기기가 해당 언어의 언어 팩을 서버에 쿼리합니다.

이 메시지가 기기에 전송되면 기기가 다음과 같이 동작합니다.

  • 정책/코드 검사 - "policy": "deterministic""code": "en"일 때 기기에 캐시된 en 팩이 있나요?
    • 해당 팩이 있다면 요소 검사로 이동합니다.
    • 해당 팩이 없다면 en 팩을 서버에서 찾을 수 있나요?
      • 해당 팩을 서버에서 찾을 수 있다면 로컬 캐시를 업데이트하고 요소 검사로 이동합니다.
      • 해당 팩을 서버에서 찾을 수 없다면 실패를 로깅하고 서버가 Webhooks를 통해 structure_unavailable 오류를 반환하며, 기기에서 메시지가 렌더링되지 않습니다.

  • 요소 검사 - "element": "hello_world" 요소가 있나요?
    • 해당 요소가 있을 경우 매개변수의 압축을 풀고 기기에서 메시지를 렌더링합니다.
    • 해당 요소가 없을 경우:
      • 언어 팩이 로컬 캐시에서 제공된다면 서버에서 최신 en 팩을 다운로드하고 요소 검사를 반복합니다.
      • 최근 언어 팩을 서버에서 다운로드했다면 실패를 로깅하고 서버가 Webhooks를 통해 structure_unavailable 오류를 반환하며, 기기에서 메시지가 렌더링되지 않습니다.

기기 언어/로캘 설정을 완전히 무시합니다.

deterministic 정책을 사용할 때 요청하는 언어/로캘이 존재하지 않을 경우 문제가 발생할 수 있습니다. 이때 다음을 확인해야 합니다.

  • 네임스페이스가 올바른지 확인하세요.
  • 요소 이름이 올바른지 확인하세요.
  • 해당 요소에 언어/로캘 번역본이 있는지 확인하세요.
  • 전송된 매개변수 개수가 메시지 템플릿에 지정된 것과 일치하는지 확인하세요.

현지화

메시지 템플릿은 기기 로캘 설정에 따라 메시지를 현지화하여 즉시 현지화 지원을 제공합니다.

현지화 가능한 매개변수

템플릿은 메시지에 동적으로 포함되는 매개변수가 있습니다. 이 문서에서 사용된 예시의 경우 메시지 템플릿은 다음과 같습니다.

"You made a purchase for {{1}} using a credit card ending in {{2}}."

"element_name": "purchase_with_credit_card"를 포함한 "namespace": "cdb2df51_9816_c754_c5a4_64cdabdcad3e"의 경우, 첫 번째로 기재한 값은 템플릿 메시지의 {{1}} 변수를 대체하고 두 번째로 기재한 값은 {{2}} 변수를 대체합니다.

페이로드에 전달되는 매개변수 개수는 template 개체의 매개변수 개수와 일치해야 합니다. 그렇지 않을 경우 메시지 템플릿을 표시하는 데 문제가 있다는 콜백이 나타나게 될 것입니다.

일부 매개변수(예: date_time 또는 currency)는 현지화가 가능하며, 고객의 언어와 로캘 기본 설정에 따라 적절히 표시됩니다. 기기에서 매개변수를 현지화하지 못했을 경우에는 fallback_value로 기본 설정됩니다.

fallback_value 외에 통화와 날짜를 지정하려면 currencydate_time 개체를 사용하세요. 이렇게 하면 고객이 이 데이터를 가능한 한 최적의 방법으로 현지화할 수 있으며 데이터를 현지화하지 못할 경우에만 fallback_value로 기본 설정됩니다.

localizable_params 옵션은 아래의 표와 같습니다.

매개변수

이름설명

fallback_value

유형: 문자열

필수 항목.

현지화 실패 여부를 나타내는 기본 텍스트입니다. 모든 현지화 매개변수는 폴백 값이 있어야 합니다. 텍스트를 지정할 때는 폴백 값만 필요합니다.

currency

유형: currency 개체

선택 사항.

currency 개체를 사용하면 필수 매개변수인 currency_codeamount_1000이 포함됩니다.

date_time

유형: date_time 개체

선택 사항.

date_time 개체를 사용하면 날짜와 시간에 대한 자세한 정의가 필요합니다. 아래 예시에서 두 가지 옵션을 참조하세요.

currency 개체

Whatsapp Business API 클라이언트는 지정된 현지화에 따라 통화 형식을 지정하려고 시도합니다.

이름설명

currency_code

유형: 문자열

필수 항목.

ISO 4217에 정의된 통화 코드

amount_1000

유형: 정수

필수 항목.

1,000을 곱한 금액

{
    "type": "currency",
    "currency" : {
        "fallback_value": "$230.99",
        "code": "USD",
        "amount_1000": 230990
    }
}  

date_time 개체

Whatsapp Business API 클라이언트는 지정된 현지화에 따라 날짜/시간 형식을 지정하려고 시도합니다. 지원되는 날짜 및 시간 형식은 다음과 같습니다.

  • 구성 요소 시간 - 구성 요소를 조합한 시간입니다(즉, 요일, 월, 시간 등). 클라이언트의 시간대와 상관없이 지정된 시간은 동일합니다.
  • Unix 시간 - 표시될 시간은 클라이언트의 시간대에 따릅니다.

DateTime

이름설명

component

유형: DateTimeComponent

unix_epoch가 없는 경우 필수.

구성 요소별 날짜/시간

unix_epoch

유형: DateTimeUnixEpoch

component가 없는 경우 필수.

Unix Epoch별 날짜/시간

componentunix_epoch 필드 중 하나 이상이 필요합니다. 이 필드를 사용할 경우 둘 중 하나만 표시할 수 있습니다.

DateTimeComponent

이름설명

day_of_week

유형: 문자열

선택 사항.

날짜(지정된 경우)에서 파생된 값과 다를 경우 파생된 값을 사용합니다. 문자열과 숫자 모두 사용할 수 있습니다.
선택 사항:"MONDAY", 1, "TUESDAY", 2, "WEDNESDAY", 3, "THURSDAY", 4, "FRIDAY", 5, "SATURDAY", 6, "SUNDAY", 7

year

유형: 정수

선택 사항.

년.

month

유형: 정수

선택 사항.

월.

day_of_month

유형: 정수

선택 사항.

일.

hour

유형: 정수

선택 사항.

시간.

minute

유형: 정수

선택 사항.

분.

calendar

유형: 문자열

선택 사항.

달력 유형.
선택 사항:GREGORIAN, SOLAR_HIJRI

{
    "type": "date_time",
    "date_time" : {
        "fallback_value": "October 25, 2020",
        "day_of_week": "Saturday",
        "day_of_month": 25,
        "year": 2020,
        "month": 10,
        "hour": 12,
        "minute": 0
    }
}

DateTimeUnixEpoch

DateTimeUnixEpoch는 사용 중단되고, 앞으로는 DateTimeComponent가 기본 설정됩니다. 코드를 변경하여 문제가 생기지 않도록 하세요.

이름설명

timestamp

유형: 정수

필수 항목.

Epoch 타임스탬프(초). 이 필드는 사용 중단될 예정입니다.

다음 단계

이 문서에는 메시지 템플릿에 대한 참고 정보가 포함되어 있습니다. 템플릿을 만들고 보내는 방법에 대한 가이드는 메시지 템플릿 보내기를 참조하세요. 메시지 템플릿에서 사용할 수 있는 모든 매개변수는 메시지, 메시지 템플릿에서 확인할 수 있습니다.

https://developers.facebook.com/docs/whatsapp/message-templates/creation#step-1--create-template-using-the-whatsapp-manager