E-Mail-Templates

In Vorschau

Templates mit Logik, beim Versand gerendert.

Store a subject and body once, publish it as an immutable version, then send it by slug. Liquid conditionals, loops, and filters run when the message is generated, so the personalization logic lives in the template instead of scattered through your code. Author it in the dashboard builder, from the bird CLI, or let an agent do it over MCP.

welcome.tsx
200 · 1.2s
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..."

Ein Template speichern. Beim Versand personalisieren.

Das Markup liegt bereits in Bird.

Templates sind Teil der Bird Email API. Speichern Sie Layout und Logik einmal; jeder Versand referenziert das Template per Slug oder ID und übergibt die Werte, die seine Tokens benötigen. Die finale Nachricht wird auf unserer Seite gerendert – dasselbe Template funktioniert für eine einzelne Quittung, einen Batch von hundert oder einen Broadcast an eine ganze Zielgruppe.

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", total: "$42.00" },
      },
    },
  })
  .safe();

More than find-and-replace.

Liquid, aufgelöst auf Bird-Seite bei der Nachrichtengenerierung.

  1. 01

    Bedingungen.

    Ein Liquid-if-Block wird nur angezeigt, wenn sein Wert zutrifft – etwa ein Hinweis nur für Mitglieder oder ein Gratis-Versand-Banner – so deckt ein Template beide Fälle ab.

  2. 02

    Schleifen.

    Eine for-Schleife wiederholt eine Zeile für jedes Element in einem Array, sodass ein einzelnes Bestellbestätigungs-Template jede Position auflistet, die ein Kunde tatsächlich gekauft hat. Ein wichtiges Limit vorab: Ein Broadcast trägt pro Kontakteigenschaft nur einen einzelnen Wert und hat nichts zum Iterieren – ein Template mit Schleifen wird daher über die Messages API statt per Broadcast versendet.

  3. 03

    Filters.

    Pipe a value through a Liquid filter before it renders. The default filter catches a missing first name before it ships as an empty greeting.

  4. 04

    Nested data.

    Gepunktete Tokens greifen in strukturierte Objekte hinein – so können Sie ein ganzes Bestellobjekt übergeben und dessen Nummer und Summe direkt im Markup ansprechen, statt es vorher flachzuklopfen.

  5. 05

    Nichts zu deklarieren.

    The token list is read off your markup, combined across every language, so there's no separate variable schema to keep in step with the body. Values can be any JSON: strings, numbers, booleans, arrays, objects.

Erstellen Sie es so, wie Sie ohnehin arbeiten.

Drei Wege hinein, alle zum selben Template. Der Dashboard-Builder ist der visuelle. Die bird CLI steuert den gesamten Lebenszyklus aus einem Skript oder Deploy-Schritt, und ein Agent erreicht dieselben Operationen per MCP. Sie haben bereits React Email-Komponenten? Rendern Sie sie zu HTML und speichern Sie das Ergebnis – lassen Sie Birds Tokens als Klartext im JSX, damit sie den Render überstehen, statt beim Ausführen von React einen festen Wert einzubacken.

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

Versioned, like the rest of your code.

Bearbeitung findet am Entwurf statt und berührt nie, was live ist – denn ein Versand löst immer die aktuell veröffentlichte Version auf, Entwürfe werden nie versendet. Veröffentlichen friert eine unveränderliche, nummerierte Version ein und macht sie live; wenn eine Änderung schiefgeht, rollen Sie auf eine frühere zurück. Speichervorgänge tragen die Revision, die Sie zuletzt gelesen haben – hat ein Teammitglied diese Sprache zwischenzeitlich geändert, wird das Speichern als Konflikt abgelehnt, statt dessen Arbeit zu überschreiben. Zustellungs- und Engagement-Statistiken werden pro Template aufgeschlüsselt, sodass Sie sehen, welches tatsächlich ankommt.

Ein Template, bis zu 25 Sprachen.

Ein Template enthält Inhalte in bis zu 25 Sprachen, jeweils mit eigenem Betreff und Body, gekennzeichnet durch ein BCP-47-Tag wie en oder pt-BR. Ein Versand benennt die gewünschte Sprache oder lässt sie weg und erhält den Standard des Templates. Wenn ein Versand eine Sprache anfordert, die das Template nicht enthält, entscheidet on_missing_language, was passiert: fallback liefert die nächste Übereinstimmung – eine Anfrage für pt-BR wird durch ein vorhandenes pt beantwortet – und fail lehnt den Versand ab, für Inhalte, bei denen die falsche Sprache schlimmer ist als gar kein Versand.

Sehen Sie genau in der Vorschau, was verschickt wird.

Fill a template with sample values and get back the subject and the HTML and text bodies a send would deliver. Preview renders the draft, which is how you check a change before it goes live, or a published version when you want to see what is going out right now. Nothing is sent. It also runs the same personalization checks as publishing, so a construct that would be rejected shows up here first.

Wohin sich Templates entwickeln.

Der visuelle Builder und eine Startbibliothek mit vierzig integrierten Templates sind bereits enthalten – kopieren Sie eines in Ihren Workspace und bearbeiten Sie es von dort. Als Nächstes geplant: ein Template per Prompt beschreiben und einen Entwurf zum Verfeinern erhalten, eine kompaktere Erstellungsoberfläche für Agenten und Brand Kits, die Ihre Farben, Typografie und Tonalität auf Workspace-Ebene speichern und ein Template daraus gestalten. Jede dieser Erweiterungen baut auf demselben versionierten Modell auf – was Sie heute integrieren, ist die Grundlage, auf der sie aufbauen.

Gehen Sie in der Doku tiefer.

Der Templates-Leitfaden behandelt Entwürfe, veröffentlichte Versionen, sprachspezifische Inhalte und die Liquid-Regeln. Der Versand-Leitfaden beschreibt den Versandvertrag, und E-Mail-Events und Webhooks bringt Öffnungen und Klicks zurück.

Templates werden mit der gesamten Plattform drum herum ausgeliefert.

Store, version, and personalize templates on the same Email API that handles sending, deliverability, suppression, and analytics. One set of keys.

Starten Sie mit einem Kanal.
Fügen Sie die anderen hinzu, wenn Sie bereit sind.

Ein Test-API-Key steht Ihnen sofort zur Verfügung. Der Produktivzugang wird freigeschaltet, sobald Sie eine Zahlungsmethode hinzufügen und einen Absender verifizieren.

Using Claude Code, Cursor, or Codex? Copy a setup prompt and your agent installs the Bird CLI and skills for you. Pick yours:

Cursor