E-mailsjablonen
In previewSjablonen met logica, gerenderd bij verzending.
Sla een onderwerp en body één keer op, publiceer het als een onveranderlijke versie en verstuur het op basis van slug. Liquid-conditionals, loops en filters worden uitgevoerd wanneer het bericht wordt gegenereerd, zodat de personalisatielogica in het template leeft in plaats van verspreid door uw code. Maak het in de dashboardbuilder, vanuit de bird CLI, of laat een agent het doen via MCP.
import { BirdClient } from "@messagebird/sdk";
import { render } from "@react-email/render";
import { WelcomeEmail } from "./emails/welcome";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.email.send({
from: "Bird <hello@bird.com>",
to: ["ada@example.com"],
subject: "Your invite is ready",
html: await render(<WelcomeEmail name="Ada" />),
}).safe();
if (error) throw error;
console.log(data.id);
// → "em_2bX91Yk8h..."
You can sign in any time at bird.com/login.
Your test API key is on your dashboard, ready to send.
Sla een sjabloon op. Personaliseer bij verzending.
De markup staat al in Bird.
Templates maken deel uit van de Bird Email API. Sla de lay-out en de logica één keer op; elke verzending verwijst naar het template op basis van slug of id en geeft de waarden mee die de tokens nodig hebben. Het uiteindelijke bericht wordt aan onze kant gerenderd, zodat hetzelfde template werkt voor één bon, een batch van honderd of een broadcast naar een heel publiek.
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", total: "$42.00" },
},
},
})
.safe();
Meer dan zoeken-en-vervangen.
Liquid, opgelost aan Bird's kant wanneer het bericht wordt gegenereerd.
- 01
Conditionals.
Een Liquid if-blok wordt alleen getoond wanneer de waarde van toepassing is, zoals een opmerking alleen voor leden of een gratis-verzendbanner, zodat één template beide gevallen dekt.
- 02
Loops.
Een for-loop herhaalt een rij voor elk item in een array, zodat één orderbevestigingstemplate elke regel toont die een klant daadwerkelijk heeft gekocht. Een beperking die u vooraf moet weten: een broadcast draagt één enkele waarde per contacteigenschap en heeft niets om over te itereren, dus een template met loops verzendt via de messages API in plaats van een broadcast.
- 03
Filters.
Leid een waarde door een Liquid-filter voordat deze wordt gerenderd. Het default-filter vangt een ontbrekende voornaam op voordat deze als lege begroeting wordt verzonden.
- 04
Geneste data.
Tokens met punten reiken in gestructureerde objecten, zodat u een heel orderobject kunt meegeven en het nummer en totaal vanuit de markup kunt aanspreken in plaats van het eerst plat te slaan.
- 05
Niets aan te geven.
De tokenlijst wordt uit uw markup gelezen, gecombineerd over alle talen, dus er is geen apart variabelenschema dat u synchroon moet houden met de body. Waarden kunnen elke JSON zijn: strings, getallen, booleans, arrays, objecten.
Maak het zoals je al werkt.
Drie manieren om erin te komen, allemaal naar hetzelfde template. De dashboardbuilder is de visuele manier. De bird CLI stuurt de hele levenscyclus aan vanuit een script of een deploystap, en een agent bereikt dezelfde bewerkingen via MCP. Heeft u al React Email-componenten? Render ze naar HTML en sla het resultaat op, waarbij u Bird's tokens als letterlijke tekst in de JSX laat staan zodat ze de render overleven in plaats van dat er een waarde wordt ingebakken wanneer React draait.
# 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
Geversioneerd, net als de rest van je code.
Bewerken gebeurt op een concept en raakt nooit wat live staat, omdat een verzending altijd de huidige gepubliceerde versie gebruikt en concepten nooit worden verzonden. Publiceren bevriest een onveranderlijke, genummerde versie en maakt deze live; als een wijziging misgaat, draait u terug naar een eerdere versie. Opslagacties bevatten de revisie die u het laatst las, dus als een collega die taal inmiddels heeft gewijzigd, wordt het opslaan geweigerd als conflict in plaats van hun werk te overschrijven. Bezorgings- en engagementstatistieken worden per template uitgesplitst, zodat u kunt zien welk template daadwerkelijk aankomt.
Eén template, tot 25 talen.
Een template bevat content in maximaal 25 talen, elk met een eigen onderwerp en body, aangeduid met een BCP-47-tag zoals en of pt-BR. Een verzending geeft de gewenste taal aan, of laat deze weg en krijgt de standaardtaal van het template. Wanneer een verzending een taal vraagt die het template niet bevat, bepaalt on_missing_language wat er gebeurt: fallback levert de dichtstbijzijnde match, zodat een verzoek voor pt-BR wordt beantwoord door een beschikbare pt, en fail weigert de verzending volledig, voor content waarbij de verkeerde taal erger is dan helemaal niet verzenden.
Bekijk precies wat er verzonden wordt.
Vul een template met voorbeeldwaarden en krijg het onderwerp en de HTML- en tekstbody's terug die een verzending zou opleveren. Preview rendert het concept, zodat u een wijziging kunt controleren voordat deze live gaat, of een gepubliceerde versie wanneer u wilt zien wat er nu wordt verzonden. Er wordt niets verstuurd. Het voert ook dezelfde personalisatiecontroles uit als publiceren, zodat een constructie die zou worden geweigerd hier eerst zichtbaar wordt.
Waar sjablonen naartoe gaan.
De visuele builder en een startersbibliotheek van veertig ingebouwde templates worden standaard meegeleverd, zodat u er een naar uw workspace kunt kopiëren en van daaruit kunt bewerken. Hierna op de planning: beschrijf een template in een prompt en krijg een concept om te verfijnen, een compacter bewerkingsoppervlak voor agents, en brandkits die uw kleuren, typografie en tone of voice op werkruimteniveau bewaren en een template daarmee opmaken. Elk van deze breidt hetzelfde versioned model uit, dus wat u vandaag integreert, is waar zij op voortbouwen.
Ga dieper in de docs.
De templategids behandelt concepten, gepubliceerde versies, content per taal en de Liquid-regels. De verzendgids beschrijft het contract aan de verzendzijde, en e-mailevents en webhooks laat opens en clicks terugstromen.
De rest van het Email-platform
Eén API, één set keys. Ontdek de andere mogelijkheden.
Templates worden geleverd met het platform eromheen.
Sla sjablonen op, versioneer en personaliseer ze op dezelfde Email API die verzending, deliverability, suppressie en analyses afhandelt. Eén set keys.