Create a template draft
/v1/whatsapp/templates/{template_ref}/versionsconst draft = await bird.whatsapp.templates.versions.create("order_update");
console.log(draft.id);draft = client.whatsapp.templates.versions.create("order_update")
print(draft.id)draft, err := client.Whatsapp.Templates.Versions.Create(context.Background(), "order_update")
if err != nil {
log.Fatal(err)
}
fmt.Println(draft.Id)$draft = $bird->whatsapp->templates->versions->create('order_update');
echo $draft->getId(), "\n";bird whatsapp templates versions create <template-ref>curl -X POST "https://us1.platform.bird.com/v1/whatsapp/templates/{template_ref}/versions" \
-H "Authorization: Bearer $TOKEN"{
"id": "wav_01krdgeqcxet5s7t44vh8rt9mg",
"template_id": "wat_01krdgeqcxet5s7t44vh8rt9mg",
"version_number": 4,
"submitted_at": "2026-07-20T11:04:00Z",
"variables": [
{
"type": "code"
}
],
"languages": {
"en": {
"status": "approved",
"components": [
{
"type": "body",
"text": "Your verification code is {{1}}.",
"example_parameters": [
{
"type": "text",
"text": "123456"
}
]
}
]
}
},
"created_at": "2026-07-20T10:31:00Z"
}
Opens the template's draft, seeded from the newest submitted version, or an empty draft if the template has none. A template has at most one open draft. The API returns 200 with an existing draft and 201 when this call opens one; both responses use the same body shape. Read the template's draft_version_id first if you do not want to open a draft.
A WhatsApp template has no draft until this call opens one. The email channel has no equivalent operation, because an email template's draft always exists.
Parameter
template_refstringTemplate ID (wat_ prefix) or slug. A value that parses as a valid ID resolves by ID; any other value resolves as a slug.
Payload Respons
idStable Bird identifier for the version.
template_idThe template this version belongs to.
version_numberThe version's sequence number, assigned when it is submitted. Null on a draft, which has not been submitted and has no place in the sequence yet.
submitted_atWhen this version was submitted to Meta. Null on a draft, which has not been submitted, and null for a built-in template's version, which Bird ships already approved rather than submitting on your behalf.
variablesThe variable slots this version's content fills in from the values you supply when sending. Combined across every language, because languages need not declare the same slots: if the English body uses first_name and the French one uses last_name, both appear here. A template with named parameters keys them by name; a positional one keys them by their {{n}} position, as 1, 2 and so on. Supply the slots the language you send declares, by these keys in template.parameters or through components.
languagesThis version's content, keyed by BCP-47 language tag, with what its submission did with each language.
created_atWhen the version was opened. Null for a built-in template's version, which Bird ships rather than stores.
Sumber daya terkait
Lanjutkan dengan dokumentasi, panduan, dan contoh untuk topik ini.