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: Anfrage-Bodys und Query-/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 Maps
platformsundopen_actionssind nach dem numerischen Gerätetyp-Code (1für iOS,3für Android usw.) geschlüsselt.platform_propertiesist stattdessen nach dem Enum-Namen der Plattform geschlüsselt (IOS,ANDROID,BAIDU_ANDROID,HUAWEI_ANDROID,OSX– die einzigen fünf Plattformen, die es abdeckt). - Nicht ausgefüllte Felder:
Get-,Create- undClone-Antworten enthalten 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 für ein Preset, das noch von einem Send-Push-Point 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
Anfrage-Body
Anchor link to| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
application | string | Ja | Der Anwendungscode, in dem das Preset erstellt werden soll. |
name | string | Ja | Preset-Name. |
sendType | string | Nein | Kanal des Presets (z. B. push). |
isV2 | boolean | Nein | Setzt 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 – lokalisierter Inhalt, 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
Query-Parameter
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-Übereinstimmung für Preset-Namen 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 Presets ein, die als hidden markiert sind. |
Antwort
Anchor link toJeder Eintrag enthält nur: name, code, platforms, localized_content (einfacher Text pro Locale – 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 anhand des Codes mit den angegebenen Feldern.
PUT /api/presets/{code}
Pfadparameter
Anchor link to| Parameter | Typ | Beschreibung |
|---|---|---|
code | string | Der Code des zu überschreibenden Presets. |
Anfrage-Body
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 anhand des Codes 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. |
Anfrage-Body
Anchor link toDieselben Felder wie bei Update, ohne application. Im Gegensatz zu Update bleibt hier jedes Feld – einschließlich localizedProperties, platformProperties, categories und der restlichen Gruppe von Inhaltseigenschaften, die in der Warnung von Update aufgeführt sind – unverändert, wenn es weggelassen wird, und wird nur berührt, wenn Sie es senden (ein Map-/Array-Feld, das Sie senden, 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
Anfrage-Body
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 anhand seines Codes dauerhaft.
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 folgenden 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 | Preset-Name. |
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> | Locale → reichhaltiger plattformspezifischer Inhalt. Gleiche Form wie LocalizedContent im Notify-Payload – ein Eintrag pro Plattformblock (ios, android usw.). Dies ist die primäre Methode, um plattformspezifischen Push-Inhalt festzulegen. |
localized_title / localized_subtitle / localized_content | map<string, string> | Locale → einfacher Text. Eine einfachere Alternative zu localized_properties für Titel, Untertitel und Text, wenn Sie keine plattformspezifischen Überschreibungen benötigen. |
platform_properties | map<string, object> | Veraltete plattformspezifische Überschreibungen, geschlüsselt nach Plattform-Enum-Namen (IOS, ANDROID, BAIDU_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 eine. |
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 von der Benachrichtigung geöffnet wird. |
url | string | URL, die von der Benachrichtigung geöffnet wird, wenn kein Deep Link oder Rich Media verwendet wird. |
Inbox
Anchor link to| Feld | Typ | Beschreibung |
|---|---|---|
inbox_image | string | Bild-URL, die im Message Inbox-Eintrag angezeigt wird. |
inbox_icon | string | Icon-URL, die im Message Inbox-Eintrag angezeigt wird. |
inbox_days | integer | Tage, die der Eintrag in der Message Inbox verbleibt. |
inbox_date | string (RFC 3339) | Explizites Ablaufdatum für den Message Inbox-Eintrag, 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-getriggert ist. |
journey_uuid | string | UUID der Customer Journey, der dieses Preset gehört, wenn es aus einem Send-Push-Point 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 eine Benachrichtigung mit diesem Preset angeklickt 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-Template-JSON, wie es von den v1-Methoden createPreset/getPreset akzeptiert wird. |
original_url | string | Der Wert von url vor der Kürzung, wenn url durch einen gekürzten Link ersetzt wurde. |
ios_silent / android_silent / baidu_android_silent / huawei_android_silent | boolean | Plattformspezifische Flags für stille (nur Daten) Push-Nachrichten. |
PlatformProperties-Objekt
Anchor link toFelder, die in jedem platform_properties-Eintrag verfügbar sind (IOS, ANDROID, BAIDU_ANDROID, HUAWEI_ANDROID, OSX):
| Feld | Typ | Beschreibung |
|---|---|---|
badge | string | Überschreibung der Badge-Anzahl. |
sound | string | Name der Sound-Datei. |
sound_off | boolean | Stummschalten des Benachrichtigungstons. |
priority | string | Priorität im Posteingang (nur Android/Baidu/Huawei). |
delivery_priority | string | NORMAL oder HIGH Lieferpriorität (nur Android/Baidu/Huawei). |
ios_interruption_level | string | passive, active, time-sensitive oder critical (nur iOS). |