Presets-API
Ein Push-Preset ist eine wiederverwendbare Vorlage für Push-Benachrichtigungen – dasselbe Objekt, das Sie im Push-Editor des Control Panels erstellen. Diese API verwaltet nur Push-Presets; SMS-, WhatsApp-, Kakao-, LINE- und Viber-Presets haben jeweils ihren eigenen dedizierten Preset-Dienst, der hier nicht behandelt wird.
Verwenden Sie den code eines Presets, um es über Notify (Payload preset) oder einen Customer Journey Send push point zu senden.
Basis-URL
Anchor link tohttps://rpc-api.svc-nue.pushwoosh.comAlle Endpunkte werden über HTTPS bereitgestellt. Anfragen und Antworten verwenden application/json, sofern nicht anders angegeben.
Authentifizierung
Anchor link toJede Anfrage muss einen Authorization-Header mit Ihrem Server-API-Token enthalten:
Authorization: Api IHR_API_TOKENKonventionen
Anchor link to- Feldnamen: Anfragekörper und Abfrage-/Pfadparameter akzeptieren
lowerCamelCase(zum BeispielsendType,localizedProperties,searchByName) – der Server verarbeitet beide Schreibweisen. Antworten werden immer mit den Proto-Feldnamen insnake_caseformatiert (localized_properties,platform_properties,per_pageusw.). Die Antwortbeispiele und die Referenz zum Preset-Objekt unten verwenden diese Schreibweise. code: Jede Preset-Antwort enthält ihren eigenen Code, der beiCreategeneriert wird. Übergeben Sie diesen Code anGet,Update,UpdatePartial,Delete,Cloneund an die oben genannten Messaging-/Journey-APIs.- Plattformschlüssel: Die
platforms- undopen_actions-Maps werden durch den numerischen Gerätetyp-Code (1für iOS,3für Android usw.) geschlüsselt.platform_propertieswird stattdessen durch den Enum-Namen der Plattform geschlüsselt (IOS,ANDROID,HUAWEI_ANDROID,OSX– die einzigen vier Plattformen, die es abdeckt). - Nicht ausgefüllte Felder: Die Antworten von
Get,CreateundCloneenthalten jedes Feld des Preset-Objekts, auch wenn es leer ist oder den Wert null hat.Listgibt einen reduzierten Feldsatz zurück – siehe List unten.UpdateundUpdatePartialgeben überhaupt keine Preset-Felder zurück – siehe die Warnung in ihren Abschnitten.
Fehlerantworten
Anchor link to| HTTP-Status | Bedeutung |
|---|---|
400 Bad Request | Ungültiges Argument – ein erforderliches Feld fehlt oder ist fehlerhaft, oder eine Vorbedingung ist fehlgeschlagen (z. B. Klonen ohne name). |
401 Unauthorized | Fehlender oder ungültiger Authorization-Header. |
403 Forbidden | Die Anwendung oder das Preset gehört nicht zum Konto des Aufrufers. |
404 Not Found | Das Preset oder die Anwendung wurde nicht gefunden. |
500 Internal Server Error | Unerwarteter serverseitiger Fehler. |
Delete bei einem Preset, das noch von einem Send-Push-Punkt einer laufenden oder pausierten Journey verwendet wird, gibt ebenfalls 400 Bad Request zurück (ein FailedPrecondition auf der Leitung) – nicht 409. Entfernen Sie das Preset zuerst aus der Journey.
Endpunkte
Anchor link to| Methode | Pfad | Beschreibung |
|---|---|---|
POST | /api/presets | Ein neues Push-Preset erstellen |
GET | /api/presets | Push-Presets einer Anwendung auflisten |
GET | /api/presets/{code} | Ein einzelnes Push-Preset abrufen |
PUT | /api/presets/{code} | Ein Push-Preset aktualisieren (vollständiges Überschreiben) |
PUT | /api/presets/{code}:partial | Ein Push-Preset aktualisieren (teilweise) |
POST | /api/presets/{code}:clone | Ein Push-Preset klonen |
DELETE | /api/presets/{code} | Ein Push-Preset löschen |
Erstellen
Anchor link toErstellt ein neues Push-Preset in einer Anwendung und gibt es mit seinem generierten Code zurück.
POST /api/presets
Anfragekörper
Anchor link to| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
application | string | Ja | Der Anwendungscode, in dem das Preset erstellt werden soll. |
name | string | Ja | Name des Presets. |
sendType | string | Nein | Kanal des Presets (z. B. push). |
isV2 | boolean | Nein | Fixiert das Ursprungs-Flag des Presets. Weglassen, um standardmäßig true (v2) zu verwenden; setzen Sie false nur, wenn Sie ein altes v1-Preset reproduzieren. |
Alle anderen Felder – lokalisierte Inhalte, Plattformen, Deep Link, Inbox, Kategorien usw. – werden mit Update geteilt und sind unten in der Referenz zum Preset-Objekt einmal dokumentiert.
Anfragebeispiel
Anchor link to{ "application": "XXXXX-XXXXX", "name": "20% Rabatt", "platforms": { "1": true, "3": true }, "localizedContent": { "default": "Holen Sie sich jetzt Ihren 20% Rabatt", "es": "Consigue tu 20% de descuento ahora mismo" }, "localizedTitle": { "default": "Hallo" }, "openAction": { "link": { "url": "https://example.com" } }, "categories": ["promo"]}Antwort
Anchor link toGibt { "preset": { ... } } zurück, das erstellte Preset-Objekt.
Auflisten
Anchor link toListet die Push-Presets einer Anwendung auf – ein reduzierter Feldsatz, nicht das vollständige Objekt – mit Paginierung, Sortierung und Filterung nach Name oder Kategorie.
GET /api/presets
Abfrageparameter
Anchor link to| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
application | string | Ja | Der Anwendungscode, für den Presets aufgelistet werden sollen. |
orderBy | string | Nein | NAME (Standard), CREATED oder UPDATED. |
orderDirection | string | Nein | ASC (Standard) oder DESC. |
page | integer | Nein | Nullbasierter Seitenindex. |
perPage | integer | Nein | Seitengröße. Standardmäßig 100, wenn weggelassen oder 0. |
searchByName | string | Nein | Groß- und kleinschreibungsunabhängige Teilstring-Suche nach Preset-Name oder Code (ILIKE %value%). |
searchByCategory | array of strings | Nein | Wiederholen Sie den Parameter, um nach mehreren Kategorien zu filtern, z. B. ?searchByCategory=promo&searchByCategory=lifecycle. |
showHidden | boolean | Nein | Schließt als hidden markierte Presets ein. |
Antwort
Anchor link toJedes Element enthält nur: name, code, platforms, localized_content (reiner Text pro Gebietsschema – nicht localized_properties), localized_title, localized_subtitle, banner, icon, categories, journey_uuid, custom_data, is_v2, created, updated. Jedes andere Feld des Preset-Objekts – localized_properties, platform_properties, deeplink, richmedia, url usw. – wird weggelassen, auch wenn es im Preset gesetzt ist.
| Feld | Typ | Beschreibung |
|---|---|---|
presets | array of objects | Die aktuelle Seite der Presets in der oben beschriebenen reduzierten Form. |
page | integer | Der zurückgegebene Seitenindex. |
per_page | integer | Die für diese Antwort verwendete Seitengröße. |
total | integer | Gesamtzahl der Presets, die den Filtern entsprechen, über alle Seiten hinweg. |
Antwortbeispiel
Anchor link to{ "presets": [ { "name": "20% Rabatt", "code": "AAAAA-BBBBB", "platforms": { "1": true, "3": true }, "categories": ["promo"] } ], "page": 0, "per_page": 100, "total": 1}Abrufen
Anchor link toGibt ein einzelnes Push-Preset anhand seines Codes zurück, wobei jedes Feld des Preset-Objekts ausgefüllt ist.
GET /api/presets/{code}
Pfadparameter
Anchor link to| Parameter | Typ | Beschreibung |
|---|---|---|
code | string | Der Code des Presets. |
Antwort
Anchor link toGibt { "preset": { ... } } zurück, das vollständige Preset-Objekt.
Aktualisieren
Anchor link toÜberschreibt ein bestehendes Push-Preset nach Code mit den angegebenen Feldern.
PUT /api/presets/{code}
Pfadparameter
Anchor link to| Parameter | Typ | Beschreibung |
|---|---|---|
code | string | Der Code des zu überschreibenden Presets. |
Anfragekörper
Anchor link toDieselben Felder wie bei Erstellen (ohne application), plus die restlichen Felder des Preset-Objekts. sendType wird akzeptiert, aber ignoriert – der Kanal eines Presets kann nach der Erstellung nicht geändert werden.
Antwort
Anchor link toEin leeres Objekt bei Erfolg: {}.
Teilweise aktualisieren
Anchor link toAktualisiert nur die angegebenen Felder eines bestehenden Push-Presets nach Code und lässt nicht gesetzte Felder unverändert.
PUT /api/presets/{code}:partial
Pfadparameter
Anchor link to| Parameter | Typ | Beschreibung |
|---|---|---|
code | string | Der Code des zu patchenden Presets. |
Anfragekörper
Anchor link toDieselben Felder wie bei Aktualisieren, ohne application. Im Gegensatz zu Update bleibt hier jedes Feld – einschließlich localizedProperties, platformProperties, categories und der restlichen in der Warnung von Update aufgeführten Gruppe von Inhaltseigenschaften – unverändert, wenn es weggelassen wird, und wird nur berührt, wenn Sie es senden (ein von Ihnen gesendetes Map-/Array-Feld ersetzt immer noch den bestehenden Wert für dieses Feld vollständig, es beeinflusst nur nichts, was Sie nicht eingeschlossen haben). sendType wird ebenfalls akzeptiert, aber ignoriert.
Anfragebeispiel
Anchor link to{ "sendRate": 500, "cappingCount": 3, "cappingDays": 7}Antwort
Anchor link toEbenfalls ein leeres Objekt – siehe die Warnung oben.
Klonen
Anchor link toDupliziert ein bestehendes Push-Preset unter einem neuen Namen in derselben Anwendung.
POST /api/presets/{code}:clone
Anfragekörper
Anchor link to| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
code | string | Ja | Code des zu duplizierenden Quell-Presets. |
name | string | Ja | Name für das neue Preset. |
Anfragebeispiel
Anchor link to{ "code": "AAAAA-BBBBB", "name": "20% Rabatt (Kopie)" }Antwort
Anchor link toGibt { "preset": { ... } } zurück, das neue Preset-Objekt.
Löschen
Anchor link toLöscht ein Push-Preset dauerhaft nach Code.
DELETE /api/presets/{code}
Pfadparameter
Anchor link to| Parameter | Typ | Beschreibung |
|---|---|---|
code | string | Der Code des zu löschenden Presets. |
Antwort
Anchor link toEin leeres Objekt bei Erfolg: {}.
Objektreferenz
Anchor link toDie unten stehenden Feldnamen entsprechen dem, was Get, Create, Update und Clone tatsächlich zurückgeben – snake_case Proto-Feldnamen (siehe Konventionen). Die in den obigen Anfragebeispielen verwendete lowerCamelCase-Form funktioniert bei der Eingabe auf die gleiche Weise.
Preset-Objekt
Anchor link toIdentität
Anchor link to| Feld | Typ | Beschreibung |
|---|---|---|
code | string | Wird bei Create generiert. Identifiziert dieses Preset überall sonst in der API. |
name | string | Name des Presets. |
send_type | string | Kanal des Presets (z. B. push). |
is_v2 | boolean | true für Presets, die mit dem v2-Inhaltsmodell erstellt oder dorthin migriert wurden. |
system | boolean | Markiert das Preset als System-/internes Preset. |
hidden | boolean | Verbirgt das Preset in den List-Ergebnissen (senden Sie showHidden: true, um es einzuschließen). |
created | string (RFC 3339) | Zeitstempel der Erstellung. |
updated | string (RFC 3339) | Zeitstempel der letzten Aktualisierung. |
Zielgruppenansprache & Inhalt
Anchor link to| Feld | Typ | Beschreibung |
|---|---|---|
platforms | map<string, boolean> | Welche Plattformen das Preset anspricht, geschlüsselt nach Gerätetyp-Code (z. B. "1" für iOS). |
localized_properties | map<string, object> | Gebietsschema → reichhaltiger Inhalt pro Plattform. Gleiche Form wie LocalizedContent im Notify-Payload – ein Eintrag pro Plattformblock (ios, android usw.). Dies ist die primäre Methode, um plattformspezifische Push-Inhalte festzulegen. |
localized_title / localized_subtitle / localized_content | map<string, string> | Gebietsschema → reiner Text. Eine einfachere Alternative zu localized_properties für Titel, Untertitel und Textkörper, wenn Sie keine plattformspezifischen Überschreibungen benötigen. |
platform_properties | map<string, object> | Veraltete plattformspezifische Überschreibungen, geschlüsselt nach dem Enum-Namen der Plattform (IOS, ANDROID, HUAWEI_ANDROID, OSX). Siehe PlatformProperties-Objekt unten. |
open_action | OpenAction | Aktion, die ausgelöst wird, wenn der Benutzer die Benachrichtigung öffnet, angewendet auf jede Plattform. Schließt sich gegenseitig mit open_actions aus – die Antwort setzt genau eines. |
open_actions | map<string, OpenAction> | Plattformspezifische Überschreibung von open_action, geschlüsselt nach Gerätetyp-Code. |
deeplink | string | Deep Link-Code. |
deeplink_params | map<string, string> | Parameter, die an den Deep Link übergeben werden. |
richmedia | string | Rich Media-Code, der durch die Benachrichtigung geöffnet wird. |
url | string | URL, die durch die Benachrichtigung geöffnet wird, wenn kein Deep Link oder Rich Media verwendet wird. |
Posteingang
Anchor link to| Feld | Typ | Beschreibung |
|---|---|---|
inbox_image | string | Bild-URL, die im Eintrag des Nachrichten-Posteingangs angezeigt wird. |
inbox_icon | string | Icon-URL, die im Eintrag des Nachrichten-Posteingangs angezeigt wird. |
inbox_days | integer | Tage, die der Eintrag im Nachrichten-Posteingang verbleibt. |
inbox_date | string (RFC 3339) | Explizites Ablaufdatum für den Eintrag im Nachrichten-Posteingang, als Alternative zu inbox_days. |
Organisation & Metadaten
Anchor link to| Feld | Typ | Beschreibung |
|---|---|---|
categories | array of strings | Kategorienamen, mit denen das Preset getaggt ist. |
campaign_code | string | Kampagnencode, dem dieses Preset zugeordnet ist. |
filter_code | string | Segment- / Filtercode, den dieses Preset standardmäßig anspricht. |
geo_zones | string | Geozone-Targeting, wenn das Preset geo-ausgelöst ist. |
journey_uuid | string | UUID der Customer Journey, der dieses Preset gehört, wenn es von einem Send-Push-Punkt einer Journey erstellt wurde. |
custom_data | object | Freiform-JSON, das als u-Parameter an das Client-SDK weitergeleitet wird. |
banner | string | Großbild- / Anhang-Bild-URL. |
icon | string | URL des benutzerdefinierten Benachrichtigungs-Icons. |
Lieferbeschränkungen
Anchor link to| Feld | Typ | Beschreibung |
|---|---|---|
send_rate | integer | Drosselung für Sendungen, die dieses Preset verwenden, in Nachrichten/Sekunde – das Äquivalent auf Preset-Ebene zu Notifys SendRate. |
capping_count / capping_days | integer | Frequenzlimit pro Benutzer für dieses Preset – das Äquivalent auf Preset-Ebene zu Notifys FrequencyCapping count / days. |
Webhooks
Anchor link to| Feld | Typ | Beschreibung |
|---|---|---|
notification_sent_url | string | Callback-URL, die angefordert wird, wenn eine Benachrichtigung mit diesem Preset gesendet wird. |
notification_delivered_url | string | Callback-URL, die angefordert wird, wenn eine Benachrichtigung mit diesem Preset zugestellt wird. |
notification_click_url | string | Callback-URL, die angefordert wird, wenn auf eine Benachrichtigung mit diesem Preset geklickt wird. |
Veraltete Felder
Anchor link toDiese stammen aus dem v1-Preset-Modell. Sie werden eher aus Kompatibilitätsgründen mit dem Control Panel ausgefüllt als für neue Integrationen.
| Feld | Typ | Beschreibung |
|---|---|---|
remote_page | string | Veralteter Verweis auf eine Remote-Seite. |
wns_content | string | Veraltetes Windows-Toast-Vorlagen-JSON, wie es von den v1-Methoden createPreset/getPreset akzeptiert wird. |
original_url | string | Der Wert von url vor der Verkürzung, wenn url durch einen verkürzten Link ersetzt wurde. |
ios_silent / android_silent / huawei_android_silent | boolean | Plattformspezifische Flags für stille (nur Daten) Push-Benachrichtigungen. |
PlatformProperties-Objekt
Anchor link toFelder, die in jedem platform_properties-Eintrag verfügbar sind (IOS, ANDROID, HUAWEI_ANDROID, OSX):
| Feld | Typ | Beschreibung |
|---|---|---|
badge | string | Überschreibung der Badge-Anzahl. |
sound | string | Name der Sounddatei. |
sound_off | boolean | Stummschalten des Benachrichtigungstons. |
priority | string | Priorität im Benachrichtigungsfach (nur Android/Huawei). |
delivery_priority | string | NORMAL oder HIGH Lieferpriorität (nur Android/Huawei). |
ios_interruption_level | string | passive, active, time-sensitive oder critical (nur iOS). |