Zum Inhalt springen

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.

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 IHR_API_TOKEN

Konventionen

Anchor link to
  • Feldnamen: Anfragekörper und Abfrage-/Pfadparameter akzeptieren lowerCamelCase (zum Beispiel sendType, localizedProperties, searchByName) – der Server verarbeitet beide Schreibweisen. Antworten werden immer mit den Proto-Feldnamen in snake_case formatiert (localized_properties, platform_properties, per_page usw.). Die Antwortbeispiele und die Referenz zum Preset-Objekt unten verwenden diese Schreibweise.
  • code: Jede Preset-Antwort enthält ihren eigenen Code, der bei Create generiert wird. Übergeben Sie diesen Code an Get, Update, UpdatePartial, Delete, Clone und an die oben genannten Messaging-/Journey-APIs.
  • Plattformschlüssel: Die platforms- und open_actions-Maps werden durch den numerischen Gerätetyp-Code (1 für iOS, 3 für Android usw.) geschlüsselt. platform_properties wird 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, Create und Clone enthalten jedes Feld des Preset-Objekts, auch wenn es leer ist oder den Wert null hat. List gibt einen reduzierten Feldsatz zurück – siehe List unten. Update und UpdatePartial geben überhaupt keine Preset-Felder zurück – siehe die Warnung in ihren Abschnitten.

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. Klonen ohne name).
401 UnauthorizedFehlender oder ungültiger Authorization-Header.
403 ForbiddenDie Anwendung oder das Preset gehört nicht zum Konto des Aufrufers.
404 Not FoundDas Preset oder die Anwendung wurde nicht gefunden.
500 Internal Server ErrorUnerwarteter 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.

MethodePfadBeschreibung
POST/api/presetsEin neues Push-Preset erstellen
GET/api/presetsPush-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}:partialEin Push-Preset aktualisieren (teilweise)
POST/api/presets/{code}:cloneEin Push-Preset klonen
DELETE/api/presets/{code}Ein Push-Preset löschen

Erstellt ein neues Push-Preset in einer Anwendung und gibt es mit seinem generierten Code zurück.

POST /api/presets

Anfragekörper

Anchor link to
ParameterTypErforderlichBeschreibung
applicationstringJaDer Anwendungscode, in dem das Preset erstellt werden soll.
namestringJaName des Presets.
sendTypestringNeinKanal des Presets (z. B. push).
isV2booleanNeinFixiert 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"]
}

Gibt { "preset": { ... } } zurück, das erstellte Preset-Objekt.

Listet 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
ParameterTypErforderlichBeschreibung
applicationstringJaDer Anwendungscode, für den Presets aufgelistet werden sollen.
orderBystringNeinNAME (Standard), CREATED oder UPDATED.
orderDirectionstringNeinASC (Standard) oder DESC.
pageintegerNeinNullbasierter Seitenindex.
perPageintegerNeinSeitengröße. Standardmäßig 100, wenn weggelassen oder 0.
searchByNamestringNeinGroß- und kleinschreibungsunabhängige Teilstring-Suche nach Preset-Name oder Code (ILIKE %value%).
searchByCategoryarray of stringsNeinWiederholen Sie den Parameter, um nach mehreren Kategorien zu filtern, z. B. ?searchByCategory=promo&searchByCategory=lifecycle.
showHiddenbooleanNeinSchließt als hidden markierte Presets ein.

Jedes 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-Objektslocalized_properties, platform_properties, deeplink, richmedia, url usw. – wird weggelassen, auch wenn es im Preset gesetzt ist.

FeldTypBeschreibung
presetsarray of objectsDie aktuelle Seite der Presets in der oben beschriebenen reduzierten Form.
pageintegerDer zurückgegebene Seitenindex.
per_pageintegerDie für diese Antwort verwendete Seitengröße.
totalintegerGesamtzahl 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
}

Gibt 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
ParameterTypBeschreibung
codestringDer Code des Presets.

Gibt { "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
ParameterTypBeschreibung
codestringDer Code des zu überschreibenden Presets.

Anfragekörper

Anchor link to

Dieselben 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.

Ein leeres Objekt bei Erfolg: {}.

Teilweise aktualisieren

Anchor link to

Aktualisiert 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
ParameterTypBeschreibung
codestringDer Code des zu patchenden Presets.

Anfragekörper

Anchor link to

Dieselben 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
}

Ebenfalls ein leeres Objekt – siehe die Warnung oben.

Dupliziert ein bestehendes Push-Preset unter einem neuen Namen in derselben Anwendung.

POST /api/presets/{code}:clone

Anfragekörper

Anchor link to
ParameterTypErforderlichBeschreibung
codestringJaCode des zu duplizierenden Quell-Presets.
namestringJaName für das neue Preset.
Anfragebeispiel
Anchor link to
{ "code": "AAAAA-BBBBB", "name": "20% Rabatt (Kopie)" }

Gibt { "preset": { ... } } zurück, das neue Preset-Objekt.

Löscht ein Push-Preset dauerhaft nach Code.

DELETE /api/presets/{code}

Pfadparameter

Anchor link to
ParameterTypBeschreibung
codestringDer Code des zu löschenden Presets.

Ein leeres Objekt bei Erfolg: {}.

Objektreferenz

Anchor link to

Die 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 to

Identität

Anchor link to
FeldTypBeschreibung
codestringWird bei Create generiert. Identifiziert dieses Preset überall sonst in der API.
namestringName des Presets.
send_typestringKanal des Presets (z. B. push).
is_v2booleantrue für Presets, die mit dem v2-Inhaltsmodell erstellt oder dorthin migriert wurden.
systembooleanMarkiert das Preset als System-/internes Preset.
hiddenbooleanVerbirgt das Preset in den List-Ergebnissen (senden Sie showHidden: true, um es einzuschließen).
createdstring (RFC 3339)Zeitstempel der Erstellung.
updatedstring (RFC 3339)Zeitstempel der letzten Aktualisierung.

Zielgruppenansprache & Inhalt

Anchor link to
FeldTypBeschreibung
platformsmap<string, boolean>Welche Plattformen das Preset anspricht, geschlüsselt nach Gerätetyp-Code (z. B. "1" für iOS).
localized_propertiesmap<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_contentmap<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_propertiesmap<string, object>Veraltete plattformspezifische Überschreibungen, geschlüsselt nach dem Enum-Namen der Plattform (IOS, ANDROID, HUAWEI_ANDROID, OSX). Siehe PlatformProperties-Objekt unten.
open_actionOpenActionAktion, 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_actionsmap<string, OpenAction>Plattformspezifische Überschreibung von open_action, geschlüsselt nach Gerätetyp-Code.
deeplinkstringDeep Link-Code.
deeplink_paramsmap<string, string>Parameter, die an den Deep Link übergeben werden.
richmediastringRich Media-Code, der durch die Benachrichtigung geöffnet wird.
urlstringURL, die durch die Benachrichtigung geöffnet wird, wenn kein Deep Link oder Rich Media verwendet wird.

Posteingang

Anchor link to
FeldTypBeschreibung
inbox_imagestringBild-URL, die im Eintrag des Nachrichten-Posteingangs angezeigt wird.
inbox_iconstringIcon-URL, die im Eintrag des Nachrichten-Posteingangs angezeigt wird.
inbox_daysintegerTage, die der Eintrag im Nachrichten-Posteingang verbleibt.
inbox_datestring (RFC 3339)Explizites Ablaufdatum für den Eintrag im Nachrichten-Posteingang, als Alternative zu inbox_days.

Organisation & Metadaten

Anchor link to
FeldTypBeschreibung
categoriesarray of stringsKategorienamen, mit denen das Preset getaggt ist.
campaign_codestringKampagnencode, dem dieses Preset zugeordnet ist.
filter_codestringSegment- / Filtercode, den dieses Preset standardmäßig anspricht.
geo_zonesstringGeozone-Targeting, wenn das Preset geo-ausgelöst ist.
journey_uuidstringUUID der Customer Journey, der dieses Preset gehört, wenn es von einem Send-Push-Punkt einer Journey erstellt wurde.
custom_dataobjectFreiform-JSON, das als u-Parameter an das Client-SDK weitergeleitet wird.
bannerstringGroßbild- / Anhang-Bild-URL.
iconstringURL des benutzerdefinierten Benachrichtigungs-Icons.

Lieferbeschränkungen

Anchor link to
FeldTypBeschreibung
send_rateintegerDrosselung für Sendungen, die dieses Preset verwenden, in Nachrichten/Sekunde – das Äquivalent auf Preset-Ebene zu Notifys SendRate.
capping_count / capping_daysintegerFrequenzlimit pro Benutzer für dieses Preset – das Äquivalent auf Preset-Ebene zu Notifys FrequencyCapping count / days.
FeldTypBeschreibung
notification_sent_urlstringCallback-URL, die angefordert wird, wenn eine Benachrichtigung mit diesem Preset gesendet wird.
notification_delivered_urlstringCallback-URL, die angefordert wird, wenn eine Benachrichtigung mit diesem Preset zugestellt wird.
notification_click_urlstringCallback-URL, die angefordert wird, wenn auf eine Benachrichtigung mit diesem Preset geklickt wird.

Veraltete Felder

Anchor link to

Diese stammen aus dem v1-Preset-Modell. Sie werden eher aus Kompatibilitätsgründen mit dem Control Panel ausgefüllt als für neue Integrationen.

FeldTypBeschreibung
remote_pagestringVeralteter Verweis auf eine Remote-Seite.
wns_contentstringVeraltetes Windows-Toast-Vorlagen-JSON, wie es von den v1-Methoden createPreset/getPreset akzeptiert wird.
original_urlstringDer Wert von url vor der Verkürzung, wenn url durch einen verkürzten Link ersetzt wurde.
ios_silent / android_silent / huawei_android_silentbooleanPlattformspezifische Flags für stille (nur Daten) Push-Benachrichtigungen.

PlatformProperties-Objekt

Anchor link to

Felder, die in jedem platform_properties-Eintrag verfügbar sind (IOS, ANDROID, HUAWEI_ANDROID, OSX):

FeldTypBeschreibung
badgestringÜberschreibung der Badge-Anzahl.
soundstringName der Sounddatei.
sound_offbooleanStummschalten des Benachrichtigungstons.
prioritystringPriorität im Benachrichtigungsfach (nur Android/Huawei).
delivery_prioritystringNORMAL oder HIGH Lieferpriorität (nur Android/Huawei).
ios_interruption_levelstringpassive, active, time-sensitive oder critical (nur iOS).

Verwandte Themen

Anchor link to