E-Mail-Templates

In Vorschau

Templates mit Logik, beim Versand gerendert.

Speichern Sie Betreff und Body einmal, veröffentlichen Sie es als unveränderliche Version und versenden Sie es per Slug. Liquid-Bedingungen, Schleifen und Filter werden bei der Nachrichtengenerierung ausgeführt – so lebt die Personalisierungslogik im Template statt verstreut in Ihrem Code. Erstellen Sie es im Dashboard-Builder, über die bird CLI oder lassen Sie einen Agenten es per MCP erledigen.

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();

Mehr als Suchen-und-Ersetzen.

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

    Filter.

    Leiten Sie einen Wert durch einen Liquid-Filter, bevor er gerendert wird. Der default-Filter fängt einen fehlenden Vornamen ab, bevor er als leere Begrüßung verschickt wird.

  4. 04

    Verschachtelte Daten.

    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.

    Die Token-Liste wird aus Ihrem Markup ausgelesen und über alle Sprachen hinweg zusammengeführt – es gibt kein separates Variablen-Schema, das mit dem Body synchron gehalten werden muss. Werte können beliebiges JSON sein: Strings, Zahlen, Booleans, Arrays, Objekte.

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

Versioniert, wie der Rest Ihres Codes.

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.

Füllen Sie ein Template mit Beispielwerten und erhalten Sie den Betreff sowie die HTML- und Text-Bodys zurück, die ein Versand liefern würde. Die Vorschau rendert den Entwurf – so prüfen Sie eine Änderung, bevor sie live geht – oder eine veröffentlichte Version, wenn Sie sehen möchten, was gerade rausgeht. Es wird nichts versendet. Es führt außerdem dieselben Personalisierungsprüfungen wie beim Veröffentlichen durch – ein Konstrukt, das abgelehnt würde, taucht hier zuerst auf.

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.

Speichern, versionieren und personalisieren Sie Templates über dieselbe Email API, die Versand, Zustellbarkeit, Suppression und Analytics übernimmt. Ein Satz 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.

Sie nutzen Claude Code, Cursor oder Codex? Kopieren Sie einen Setup-Prompt und Ihr Agent installiert die Bird CLI und Skills für Sie. Wählen Sie Ihren:

Cursor