Zum Inhalt springen

E-Mail-Vorlagen-API

Die E-Mail-Vorlagen-API verwaltet die wiederverwendbaren E-Mail-Vorlagen hinter den E-Mail-Presets einer Anwendung – dieselben Vorlagen, die Sie im E-Mail-Editor des Control Panels erstellen. Jede Vorlage speichert Betreffzeilen, Absenderinformationen und Editor-Inhalte pro Gebietsschema und wird durch den Code des E-Mail-Presets identifiziert, mit dem sie verbunden ist. Verwenden Sie diesen Code, um die Vorlage über Notify (E-Mail-Payload email_template) oder einen Customer Journey Send email point zu senden.

https://rpc-api.svc-nue.pushwoosh.com

Alle Endpunkte werden über HTTPS bereitgestellt. Anfragen und Antworten verwenden application/json, sofern nicht anders angegeben.

Authentifizierung

Anchor link to

Jede Anfrage muss einen Authorization-Header mit Ihrem Server-API-Token enthalten:

Authorization: Api YOUR_API_TOKEN

Konventionen

Anchor link to
  • Feldnamen: Anfragekörper und Abfrage-/Pfadparameter akzeptieren lowerCamelCase (zum Beispiel previewSettings, searchByLabel, includeHtml) – der Server verarbeitet beide Schreibweisen. Antworten werden immer mit den Proto-Feldnamen in snake_case marshalled (per_page, email_template, sender_info, preview_settings usw.). Die Antwortbeispiele und die Objektreferenz unten verwenden diese Schreibweise.
  • code: Jede Vorlagenantwort enthält den Code des zugehörigen E-Mail-Presets, nicht eine interne Vorlagen-ID. Übergeben Sie denselben Code an Get, Update, Delete und an die oben genannten Messaging-/Journey-APIs.
  • Nicht ausgefüllte Felder: Antworten enthalten alle Felder, auch wenn sie leer sind oder den Wert Null haben.

Fehlerantworten

Anchor link to
HTTP-StatusBedeutung
400 Bad RequestUngültiges Argument – ein erforderliches Feld fehlt oder ist fehlerhaft, oder eine Vorbedingung ist fehlgeschlagen (z. B. das Löschen einer Vorlage, die noch von einer Journey verwendet wird).
401 UnauthorizedFehlender oder ungültiger Authorization-Header.
403 ForbiddenDie Anwendung oder das Preset gehört nicht zum Konto des Aufrufers.
404 Not FoundDie Vorlage, das Preset oder die Anwendung wurde nicht gefunden.
500 Internal Server ErrorUnerwarteter serverseitiger Fehler.
MethodePfadBeschreibung
POST/api/email_templatesEine neue E-Mail-Vorlage erstellen
GET/api/email_templatesE-Mail-Vorlagen einer Anwendung auflisten
GET/api/email_templates/{code}Eine einzelne E-Mail-Vorlage abrufen
PUT/api/email_templates/{code}Eine E-Mail-Vorlage aktualisieren
DELETE/api/email_templates/{code}Eine E-Mail-Vorlage löschen
POST/api/email_templates:cloneEine E-Mail-Vorlage in eine Anwendung klonen

Erstellt eine neue E-Mail-Vorlage – ihren Editor-Inhalt plus ein verbundenes E-Mail-Preset – in einer Anwendung und gibt den generierten Vorlagencode zurück.

POST /api/email_templates

Anfragekörper

Anchor link to
ParameterTypErforderlichBeschreibung
applicationstringJaDer Pushwoosh-Anwendungscode, in dem die Vorlage erstellt werden soll.
namestringJaVorlagenname, 1–255 Zeichen.
contentobjectJaDas E-Mail-Inhaltsobjekt.
labelstringNeinFreitext-Label, bis zu 255 Zeichen.
categoriesarray of stringsNeinKategorienamen, um die Vorlage zu taggen.
previewSettingsobjectNeinBeliebige Editor-Vorschau-Einstellungen, die unverändert gespeichert und zurückgegeben werden.
systembooleanNeinMarkiert die Vorlage als System-Vorlage – eine interne Funktion, z. B. ein Fragment für synchronisierte Blöcke. System-Vorlagen sind in der List (siehe Hinweis unten) ausgeblendet, bleiben aber per Code erreichbar. Standard ist false.
Beispiel für eine Anfrage
Anchor link to
{
"application": "XXXXX-XXXXX",
"name": "Welcome email",
"label": "onboarding",
"categories": ["lifecycle"],
"content": {
"senderInfo": {
"from": { "email": "hello@acme.com", "name": "Acme" },
"replyTo": { "email": "support@acme.com", "name": "Acme Support" }
},
"subject": { "en": "Welcome to Acme!", "default": "Welcome to Acme!" },
"pushwoosh": {
"html": "<html><body>Welcome, {name|string|there}!</body></html>",
"localizationData": { "default": { "name": "there" } }
}
}
}

Gibt { "email_template": { ... } } zurück – das erstellte E-Mail-Vorlagenobjekt, aber ohne content (dieser Endpunkt gibt ihn nicht zurück). Rufen Sie Get mit dem zurückgegebenen code auf, wenn Sie den Inhalt zurücklesen müssen.

Listet die E-Mail-Vorlagen einer Anwendung auf – nur Metadaten, kein Inhalt – mit Paginierung, Sortierung und Filterung nach Name, Label oder Kategorie.

GET /api/email_templates

Abfrageparameter

Anchor link to
ParameterTypErforderlichBeschreibung
applicationstringJaDer Anwendungscode, für den Vorlagen aufgelistet werden sollen.
orderBystringNeinNAME (Standard), CREATED oder UPDATED.
orderDirectionstringNeinASC (Standard) oder DESC.
pageintegerNeinNullbasierter Seitenindex.
perPageintegerNeinSeitengröße. Standard ist 100, wenn weggelassen oder 0. Dieser Endpunkt erzwingt kein explizites Maximum.
searchByNamestringNeinTeilstring-Übereinstimmung (like %value%) mit dem Namen der Vorlage oder ihrem Code – eine der beiden Übereinstimmungen genügt.
searchByLabelstringNeinTeilstring-Übereinstimmung für das Label (like %label%) oder exakte Übereinstimmung, wenn strictSearchByLabel true ist.
strictSearchByLabelbooleanNeinVerwendet exakte Übereinstimmung anstelle von Teilstring für searchByLabel.
searchByCategoryarray of stringsNeinWiederholen Sie den Parameter, um nach einer von mehreren Kategorien zu filtern, z. B. ?searchByCategory=lifecycle&searchByCategory=promo.
FeldTypBeschreibung
email_templatesarray of objectsDie aktuelle Seite der E-Mail-Vorlagenobjekte. content ist bei jedem Element null.
pageintegerDer zurückgegebene Seitenindex.
per_pageintegerDie für diese Antwort verwendete Seitengröße.
totalintegerGesamtzahl der Vorlagen, die den Filtern entsprechen, über alle Seiten hinweg.
Beispiel für eine Antwort
Anchor link to
{
"email_templates": [
{ "code": "AAAAA-BBBBB", "name": "Welcome email", "label": "onboarding", "categories": ["lifecycle"] }
],
"page": 0,
"per_page": 100,
"total": 1
}

Gibt eine einzelne E-Mail-Vorlage anhand ihres Codes zurück, einschließlich Absenderinformationen, Betreffzeilen pro Gebietsschema und dem vollständigen Editor-Inhalt.

GET /api/email_templates/{code}

Pfadparameter

Anchor link to
ParameterTypBeschreibung
codestringDer Code der Vorlage (der Code des verbundenen E-Mail-Presets).

Abfrageparameter

Anchor link to
ParameterTypErforderlichBeschreibung
includeHtmlbooleanNeinGibt an, ob das gerenderte html zusammen mit dem Editor-Inhalt zurückgegeben werden soll. Standard ist true. Setzen Sie es auf false, um es zu überspringen – es macht typischerweise über die Hälfte der Payload aus, und der Editor-Inhalt beschreibt die Vorlage bereits.

Gibt { "email_template": { ... } } zurück, das vollständige E-Mail-Vorlagenobjekt.

Aktualisieren

Anchor link to

Aktualisiert eine bestehende E-Mail-Vorlage nach Code und überschreibt die angegebenen Felder.

PUT /api/email_templates/{code}

Pfadparameter

Anchor link to
ParameterTypBeschreibung
codestringDer Code der zu aktualisierenden Vorlage.

Anfragekörper

Anchor link to
ParameterTypErforderlichBeschreibung
namestringNeinNeuer Name, 1–255 Zeichen. Weglassen, um den aktuellen Namen beizubehalten.
contentobjectNeinNeues E-Mail-Inhaltsobjekt, das den gespeicherten Inhalt vollständig ersetzt. Weglassen, um den Inhalt unverändert zu lassen.
labelstringNeinNeues Label. Wird immer überschrieben – weglassen oder "" senden, um es zu löschen.
categoriesarray of stringsNeinNeuer vollständiger Satz von Kategorienamen. Weglassen, um Kategorien unverändert zu lassen; [] senden, um sie zu löschen.
previewSettingsobjectNeinNeue Vorschau-Einstellungen. Weglassen, um sie unverändert zu lassen.
Beispiel für eine Anfrage
Anchor link to
{
"name": "Welcome email v2",
"label": "onboarding",
"content": {
"senderInfo": { "from": { "email": "hello@acme.com", "name": "Acme" } },
"subject": { "default": "Welcome to Acme — updated!" },
"pushwoosh": {
"html": "<html>...</html>",
"localizationData": {}
}
}
}

Gibt { "email_template": { ... } } zurück – das aktualisierte E-Mail-Vorlagenobjekt, ebenfalls ohne content. Rufen Sie Get auf, wenn Sie den Inhalt zurücklesen müssen.

Löscht eine E-Mail-Vorlage und das zugehörige Preset nach Code und entfernt den gespeicherten Inhalt.

DELETE /api/email_templates/{code}

Pfadparameter

Anchor link to
ParameterTypBeschreibung
codestringDer Code der zu löschenden Vorlage.

Ein leeres Objekt bei Erfolg: {}.

Klont eine E-Mail-Vorlage – ihren Inhalt und ihr Preset – in eine Zielanwendung, optional unter einem neuen Namen.

POST /api/email_templates:clone

Anfragekörper

Anchor link to
ParameterTypErforderlichBeschreibung
emailPresetCodestringJaDer code der Vorlage (wie von Create, Get, List oder Update zurückgegeben), die geklont werden soll. Hier emailPresetCode genannt, weil es der Code des verbundenen E-Mail-Presets ist – siehe Konventionen.
applicationstringJaAnwendungscode des Ziels. Kann dieselbe Anwendung sein oder eine andere, die zum selben Konto gehört.
namestringNeinName für den Klon, 1–255 Zeichen. Standard ist der Name der Quellvorlage.
Beispiel für eine Anfrage
Anchor link to
{
"emailPresetCode": "AAAAA-BBBBB",
"application": "YYYYY-YYYYY",
"name": "Welcome email (copy)"
}
FeldTypBeschreibung
email_preset_codestringDer code der neuen Vorlage – derselbe Bezeichner, den Get/Update/Delete als code verwenden.

Objektreferenz

Anchor link to

Die folgenden Feldnamen entsprechen dem, was Get, List, Update und Create tatsächlich zurückgeben – Proto-Feldnamen in snake_case (siehe Konventionen). Wenn Sie dieselben Strukturen in einem Anfragekörper zurücksenden (Create, Update), funktioniert auch die in den obigen Anfragebeispielen verwendete lowerCamelCase-Form; der Server akzeptiert bei der Eingabe beide Schreibweisen.

E-Mail-Vorlagenobjekt

Anchor link to
FeldTypBeschreibung
codestringCode des verbundenen E-Mail-Presets. Identifiziert diese Vorlage überall sonst in der API.
namestringVorlagenname.
labelstringFreitext-Label.
categoriesarray of stringsKategorienamen.
contentobjectDas E-Mail-Inhaltsobjekt. Wird nur von Get ausgefüllt; null in den Antworten von Create, List und Update.
preview_settingsobjectBeliebige Editor-Vorschau-Einstellungen.
createdstring (RFC 3339)Erstellungszeitstempel.
updatedstring (RFC 3339)Zeitstempel der letzten Aktualisierung.

E-Mail-Inhaltsobjekt

Anchor link to
FeldTypBeschreibung
sender_infoobjectAbsenderinformationsobjektfrom- und reply_to-Adressen.
subjectobject (map)Betreff pro Gebietsschema, z. B. { "en": "Subject", "default": "Subject" }.
unlayer / pushwoosh / smartcardsobjectDer Editor-Inhalt. Genau eines davon muss gesetzt sein – es wählt aus, welcher Editor die Vorlage erstellt hat (und rendern wird). Siehe Editor-Arten unten.

Editor-Arten

Anchor link to
ArtFeldErforderliche UnterfelderBeschreibung
unlayerhtml, localization_data, editor_configeditor_config, localization_dataDrag-and-Drop-Blockeditor (Unlayer). editor_config ist das Unlayer-Design-JSON.
pushwooshhtml, localization_datalocalization_dataPushwooshs eigener HTML-basierter Editor. Empfohlen für programmatisch/API-erstellte Vorlagen.
smartcardshtml, localization_data, contentcontent, localization_dataSmart Cards-Blockeditor; content ist sein editorspezifisches JSON.

Bei jeder Art ist html die gerenderte Ausgabe. localization_data ist der eigene Inhalt dieses Editors pro Gebietsschema: ein Objekt, das nach Gebietsschemacode (en, es, default, …) geschlüsselt ist, wobei jeder Wert die Kopie der Editorfelder für dieses Gebietsschema ist. Seine innere Form ist editorspezifisch und für diese API undurchsichtig – die API speichert und gibt sie unverändert zurück. Es ist bei Create/Update für jede Art erforderlich (senden Sie {} wenn nichts zu lokalisieren ist).

Text innerhalb von html oder einem localization_data-Wert kann Dynamic Content-Tags enthalten, z. B. {name|string|there} – diese werden gegen die Tags des Empfängergeräts aufgelöst, wenn die E-Mail tatsächlich gesendet wird. Diese API löst sie nicht auf; sie speichert und gibt nur den Text zurück, den Sie dort eingeben.

Absenderinformationsobjekt

Anchor link to
FeldTypBeschreibung
fromobject{ "email": string, "name": string } – Absenderadresse.
reply_toobject{ "email": string, "name": string } – Antwortadresse.

Beide email-Unterfelder müssen, wenn sie nicht leer sind, gültige E-Mail-Adressen sein.

Verwandte Themen

Anchor link to