Template email

Personal secara desain. Siap saat pengiriman.

Design an email worth opening. Publish a version, then personalize every send. Build in the dashboard or with the API, CLI and MCP; your team works with the same stored templates.

Cursor

Template studio

Versi terpublikasi
first_name: "Alex"

Example designs, personalized with each recipient’s values. Nothing is sent.

Dipercaya setiap hari oleh tim yang membangun perangkat lunak kelas dunia

Baca lebih banyak kisah pelanggan

Simpan sebuah template. Personalisasi saat pengiriman.

Markup sudah tersimpan di Bird.

Template adalah bagian dari Bird Email API. Simpan layout dan logikanya sekali; setiap pengiriman menyebut template berdasarkan slug atau id dan meneruskan nilai yang dibutuhkan token-nya. Pesan akhir dirender di sisi kami, sehingga template yang sama bisa digunakan untuk satu tanda terima, batch seratus, atau broadcast ke seluruh audiens.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

// No subject and no html: the template's published version supplies both.
const { data, error } = await bird.email
  .send({
    from:     "orders@acme.com",
    to:       ["delivered@messagebird.dev"],
    category: "transactional",
    template: {
      slug:       "order-confirmation",
      parameters: {
        first_name: "Ada",
        order_number: "A-1043",
      },
    },
  })
  .safe();

Lebih dari sekadar find-and-replace.

Liquid, diproses di sisi Bird saat pesan dibuat.

  1. 01

    Conditional.

    Blok if Liquid hanya ditampilkan ketika nilainya berlaku, seperti catatan khusus anggota atau banner gratis ongkir, sehingga satu template mencakup kedua kasus.

  2. 02

    Loop.

    Loop for mengulang baris untuk setiap item dalam array, sehingga satu template konfirmasi pesanan mencantumkan setiap item yang benar-benar dibeli pelanggan. Satu batasan yang perlu diketahui sejak awal: broadcast hanya membawa satu nilai per properti kontak dan tidak memiliki apa pun untuk diiterasi, sehingga template yang menggunakan loop dikirim melalui API messages, bukan broadcast.

  3. 03

    Filter.

    Alirkan nilai melalui filter Liquid sebelum dirender. Filter default menangkap nama depan yang kosong sebelum terkirim sebagai sapaan kosong.

  4. 04

    Parameter bernama dan field kontak.

    Gunakan nama datar untuk parameter Anda sendiri, seperti order_number. Field bird.contact yang dicadangkan membaca properti penerima. Path parameter bertitik biasa ditolak saat publikasi.

  5. 05

    Tidak perlu deklarasi apa pun.

    Daftar token dibaca dari markup Anda, digabungkan dari semua bahasa, sehingga tidak ada skema variabel terpisah yang perlu diselaraskan dengan isi. Gunakan bentuk parameter yang didokumentasikan untuk alur pengiriman Anda; broadcast dibatasi pada properti kontak yang terdaftar.

Tulis dengan cara Anda sudah bekerja.

Tiga cara masuk, semuanya menuju template yang sama. Dashboard builder adalah yang visual. Bird CLI menjalankan seluruh siklus dari skrip atau langkah deploy, dan agen mengakses operasi yang sama melalui MCP. Sudah punya komponen React Email? Render ke HTML dan simpan hasilnya, biarkan token Bird sebagai teks literal di JSX agar tetap bertahan saat render, bukan terpanggang sebagai nilai saat React dijalankan.

publish-receipt.sh
bird CLI
# Render React Email to HTML, then publish it as a template version.
node scripts/render-receipt.mjs > receipt.json

bird email templates create receipt --category transactional --source html
bird email templates versions languages set "$TEMPLATE" "$DRAFT" en \
  --body-file receipt.json --yes

# --validate-only reports every problem across every language, freezing nothing.
bird email templates versions submit "$TEMPLATE" "$DRAFT" --validate-only --yes
bird email templates versions submit "$TEMPLATE" "$DRAFT" --yes

A creative workflow you can trust

Beautiful in the inbox. Dependable behind the scenes.

Berversi, seperti kode Anda lainnya.

Pengeditan dilakukan pada draft dan tidak pernah menyentuh yang sudah live, karena pengiriman selalu mengambil versi terpublikasi terkini dan draft tidak pernah dikirim. Publikasi membekukan versi bernomor yang tidak dapat diubah dan menjadikannya live; jika ada perubahan yang salah, kembalikan ke versi sebelumnya. Penyimpanan membawa revisi terakhir yang Anda baca, sehingga jika rekan tim mengubah bahasa tersebut sementara itu, penyimpanan ditolak sebagai konflik alih-alih menimpa pekerjaan mereka. Statistik pengiriman dan keterlibatan dirinci per template, sehingga Anda bisa melihat mana yang benar-benar berhasil.

Satu template, hingga 25 bahasa.

Template dapat memuat konten dalam hingga 25 bahasa, masing-masing dengan subjek dan isi sendiri, dikunci berdasarkan tag BCP-47 seperti en atau pt-BR. Pengiriman menyebutkan bahasa yang diinginkan, atau mengosongkannya dan mendapatkan bahasa default template. Ketika pengiriman meminta bahasa yang tidak dimiliki template, on_missing_language menentukan apa yang terjadi: fallback menyajikan kecocokan terdekat, sehingga permintaan untuk pt-BR dijawab oleh pt yang tersedia, dan fail menolak pengiriman secara langsung, untuk konten di mana bahasa yang salah lebih buruk daripada tidak mengirim sama sekali.

Pratinjau persis apa yang akan dikirim.

Isi template dengan nilai sampel dan dapatkan subjek serta isi HTML dan teks yang akan dikirimkan. Preview merender draft, yang memungkinkan Anda memeriksa perubahan sebelum live, atau versi terpublikasi ketika Anda ingin melihat apa yang sedang dikirim saat ini. Tidak ada yang terkirim. Ini juga menjalankan pemeriksaan personalisasi yang sama seperti saat publikasi, sehingga konstruksi yang akan ditolak muncul di sini terlebih dahulu.

Mulai dari draf yang dapat digunakan ulang.

Mulai dengan editor dashboard atau salin template bawaan ke draf yang dapat diedit. Periksa subjek, teks pratinjau, bahasa, dan fallback kontak sebelum mempublikasikan. Jaga versi yang dipublikasikan tetap stabil selagi Anda menyiapkan perubahan berikutnya.

Pelajari lebih dalam di dokumentasi.

Panduan template mencakup draft, versi terpublikasi, konten per bahasa, dan aturan Liquid. Panduan pengiriman memuat kontrak sisi pengiriman, dan event email dan webhook mengalirkan data open dan click kembali.

Terapkan dalam praktik.

Lanjutkan dengan dokumentasi, panduan, dan contoh untuk topik ini. Sumber daya tersedia dalam bahasa Inggris.

Coba praktiknya dan dapatkan ringkasan implementasi

Pertanyaan tentang template

Apakah saya harus menggunakan visual builder?
Tidak. Gunakan editor dashboard atau tulis HTML melalui alur kerja CLI dan MCP. Output React Email dapat disimpan sebagai HTML dengan placeholder Bird tetap dipertahankan. API, CLI, dan MCP beroperasi pada draf dan versi terpublikasi yang sama seperti yang Anda lihat di dashboard.
Bagaimana cara kerja personalisasi?
Template tersimpan mendukung Liquid dan parameter bernama. Nama parameter biasa bersifat datar, seperti order_number. Field bird.contact yang dicadangkan membaca properti penerima. Broadcast menggunakan properti kontak terdaftar dan tidak dapat menggunakan loop template; API messages mendukung pengiriman template yang lebih umum.
Bisakah saya mengembalikan template ke versi sebelumnya?
Ya. Pengeditan mengubah draf. Penerbitan membuat versi permanen yang digunakan oleh pengiriman berikutnya. Mengembalikan ke versi sebelumnya memilih versi terpublikasi yang lebih awal dan mengatur ulang draf ke konten tersebut; pengiriman yang sudah diterima tetap mempertahankan kontennya.
Bisakah satu template melayani beberapa bahasa?
Sebuah template dapat menyimpan subjek, teks pratinjau, dan konten isi khusus bahasa. Konfigurasikan bahasa default dan tentukan apakah bahasa yang tidak tersedia akan menggunakan fallback atau gagal. Pratinjau dengan nilai kontak representatif sebelum menerbitkan.

Talk to our email team

Create email your team can reuse.

Discuss your template workflow, personalization and integration. We’ll help you plan how your team builds and sends email with Bird.

Buat akun Anda, lalu buat template yang dapat digunakan ulang dan pratinjau kontennya.

Data Anda

Semua kolom kontak wajib diisi.

Agar tim kami dapat menghubungi Anda terkait demo.

Produk yang diminati

Opsional

Kami akan menghubungi Anda untuk menjadwalkan demo.
Kebijakan privasi

Mulai dengan satu channel.
Tambahkan yang lain saat Anda siap.

API key uji coba langsung tersedia untuk Anda. Akses produksi terbuka setelah Anda menambahkan metode pembayaran dan memverifikasi pengirim.

Menggunakan Claude Code, Cursor, atau Codex? Salin prompt pengaturan dan agen Anda akan menginstal Bird CLI dan skill untuk Anda. Pilih milik Anda:

Cursor