API de Presets
Un preset de push es una plantilla de notificación push reutilizable, el mismo objeto que construyes en el editor de push del Panel de Control. Esta API gestiona únicamente los presets de push; los presets de SMS, WhatsApp, Kakao, LINE y Viber tienen cada uno su propio servicio de presets dedicado, que no se cubre aquí.
Usa el code de un preset para enviarlo a través de Notify (payload preset) o un punto de Envío de push de Customer Journey.
URL base
Anchor link tohttps://rpc-api.svc-nue.pushwoosh.comTodos los endpoints se sirven sobre HTTPS. Las solicitudes y respuestas usan application/json a menos que se indique lo contrario.
Autenticación
Anchor link toCada solicitud debe incluir un encabezado Authorization con tu token de API del Servidor:
Authorization: Api TU_TOKEN_APIConvenciones
Anchor link to- Nomenclatura de campos: los cuerpos de las solicitudes y los parámetros de consulta/ruta aceptan
lowerCamelCase(por ejemplo,sendType,localizedProperties,searchByName); el servidor deserializa cualquiera de las dos formas. Las respuestas siempre se serializan usando los nombres de campo de proto, ensnake_case(localized_properties,platform_properties,per_page, etc.). Los ejemplos de respuesta y la referencia del objeto Preset a continuación usan esa forma. code: cada respuesta de preset lleva su propio código, generado enCreate. Pasa este código aGet,Update,UpdatePartial,Delete,Cloney a las API de mensajería/journey mencionadas anteriormente.- Claves de plataforma: los mapas
platformsyopen_actionsse clavean por el código de tipo de dispositivo numérico (1para iOS,3para Android, etc.).platform_propertiesse clavea por el nombre enum de la plataforma en su lugar (IOS,ANDROID,BAIDU_ANDROID,HUAWEI_ANDROID,OSX— las únicas cinco plataformas que cubre). - Campos no poblados: las respuestas de
Get,CreateyCloneincluyen todos los campos del objeto Preset, incluso cuando están vacíos o con valor cero.Listdevuelve un conjunto de campos reducido — ver List a continuación.UpdateyUpdatePartialno devuelven ningún campo de preset en absoluto — ver la advertencia en sus secciones.
Respuestas de error
Anchor link to| Estado HTTP | Significado |
|---|---|
400 Bad Request | Argumento inválido — falta un campo requerido o está mal formado, o una precondición falló (por ejemplo, clonar sin un name). |
401 Unauthorized | Encabezado Authorization ausente o inválido. |
403 Forbidden | La aplicación o el preset no pertenecen a la cuenta del solicitante. |
404 Not Found | No se encontró el preset o la aplicación. |
500 Internal Server Error | Falla inesperada del lado del servidor. |
Delete en un preset que todavía está en uso por un punto de envío de push de un journey en ejecución o pausado también devuelve 400 Bad Request (un FailedPrecondition en la comunicación) — no 409. Primero, elimina el preset del journey.
Endpoints
Anchor link to| Método | Ruta | Descripción |
|---|---|---|
POST | /api/presets | Crear un nuevo preset de push |
GET | /api/presets | Listar los presets de push de una aplicación |
GET | /api/presets/{code} | Obtener un único preset de push |
PUT | /api/presets/{code} | Actualizar un preset de push (sobrescritura completa) |
PUT | /api/presets/{code}:partial | Actualizar un preset de push (parcial) |
POST | /api/presets/{code}:clone | Clonar un preset de push |
DELETE | /api/presets/{code} | Eliminar un preset de push |
Crear
Anchor link toCrea un nuevo preset de push en una aplicación y lo devuelve con su código generado.
POST /api/presets
Cuerpo de la solicitud
Anchor link to| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
application | string | Sí | El código de aplicación en el que se creará el preset. |
name | string | Sí | Nombre del preset. |
sendType | string | No | Canal del preset (por ejemplo, push). |
isV2 | boolean | No | Fija el indicador de origen del preset. Omitir para que por defecto sea true (v2); establecer en false solo al reproducir un preset v1 heredado. |
Todos los demás campos — contenido localizado, plataformas, deep link, inbox, categorías, etc. — se comparten con Update y se documentan una vez en la referencia del objeto Preset a continuación.
Ejemplo de solicitud
Anchor link to{ "application": "XXXXX-XXXXX", "name": "20% discount", "platforms": { "1": true, "3": true }, "localizedContent": { "default": "Get your 20% discount right now", "es": "Consigue tu 20% de descuento ahora mismo" }, "localizedTitle": { "default": "Hi there" }, "openAction": { "link": { "url": "https://example.com" } }, "categories": ["promo"]}Respuesta
Anchor link toDevuelve { "preset": { ... } }, el objeto Preset creado.
Listar
Anchor link toLista los presets de push de una aplicación — un conjunto de campos reducido, no el objeto completo — con paginación, ordenación y filtrado por nombre o categoría.
GET /api/presets
Parámetros de consulta
Anchor link to| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
application | string | Sí | El código de la aplicación para la cual listar los presets. |
orderBy | string | No | NAME (predeterminado), CREATED o UPDATED. |
orderDirection | string | No | ASC (predeterminado) o DESC. |
page | integer | No | Índice de página basado en cero. |
perPage | integer | No | Tamaño de la página. Por defecto es 100 cuando se omite o es 0. |
searchByName | string | No | Coincidencia de subcadena insensible a mayúsculas y minúsculas en el nombre o código del preset (ILIKE %value%). |
searchByCategory | array of strings | No | Repite el parámetro para filtrar por varias categorías, ej. ?searchByCategory=promo&searchByCategory=lifecycle. |
showHidden | boolean | No | Incluir presets marcados como hidden. |
Respuesta
Anchor link toCada elemento contiene solo: name, code, platforms, localized_content (texto plano por localización — no localized_properties), localized_title, localized_subtitle, banner, icon, categories, journey_uuid, custom_data, is_v2, created, updated. Todos los demás campos del objeto Preset — localized_properties, platform_properties, deeplink, richmedia, url, etc. — se omiten, incluso si están establecidos en el preset.
| Campo | Tipo | Descripción |
|---|---|---|
presets | array de objetos | La página actual de presets, en la forma reducida descrita anteriormente. |
page | integer | El índice de la página devuelta. |
per_page | integer | El tamaño de página utilizado para esta respuesta. |
total | integer | Número total de presets que coinciden con los filtros, en todas las páginas. |
Ejemplo de respuesta
Anchor link to{ "presets": [ { "name": "20% discount", "code": "AAAAA-BBBBB", "platforms": { "1": true, "3": true }, "categories": ["promo"] } ], "page": 0, "per_page": 100, "total": 1}Obtener
Anchor link toDevuelve un único preset de push por su código, con todos los campos del objeto Preset poblados.
GET /api/presets/{code}
Parámetros de ruta
Anchor link to| Parámetro | Tipo | Descripción |
|---|---|---|
code | string | El código del preset. |
Respuesta
Anchor link toDevuelve { "preset": { ... } }, el objeto Preset completo.
Actualizar
Anchor link toSobrescribe un preset de push existente por código con los campos proporcionados.
PUT /api/presets/{code}
Parámetros de ruta
Anchor link to| Parámetro | Tipo | Descripción |
|---|---|---|
code | string | El código del preset a sobrescribir. |
Cuerpo de la solicitud
Anchor link toMismos campos que en Crear (menos application), más el resto de los campos del objeto Preset. sendType se acepta pero se ignora — el canal de un preset no se puede cambiar después de la creación.
Respuesta
Anchor link toUn objeto vacío en caso de éxito: {}.
UpdatePartial
Anchor link toActualiza solo los campos proporcionados de un preset de push existente por código, dejando los campos no establecidos sin cambios.
PUT /api/presets/{code}:partial
Parámetros de ruta
Anchor link to| Parámetro | Tipo | Descripción |
|---|---|---|
code | string | El código del preset a parchear. |
Cuerpo de la solicitud
Anchor link toMismos campos que en Update, menos application. A diferencia de Update, cada campo aquí — incluyendo localizedProperties, platformProperties, categories, y el resto del grupo de propiedades de contenido listado en la advertencia de Update — se deja sin cambios cuando se omite, y solo se modifica cuando lo envías (un campo de mapa/array que envíes todavía reemplaza completamente el valor existente para ese campo, simplemente no afecta a nada que no hayas incluido). sendType también se acepta pero se ignora.
Ejemplo de solicitud
Anchor link to{ "sendRate": 500, "cappingCount": 3, "cappingDays": 7}Respuesta
Anchor link toTambién un objeto vacío — ver la advertencia anterior.
Clonar
Anchor link toDuplica un preset de push existente, con un nuevo nombre, en la misma aplicación.
POST /api/presets/{code}:clone
Cuerpo de la solicitud
Anchor link to| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
code | string | Sí | Código del preset de origen a duplicar. |
name | string | Sí | Nombre para el nuevo preset. |
Ejemplo de solicitud
Anchor link to{ "code": "AAAAA-BBBBB", "name": "20% discount (copy)" }Respuesta
Anchor link toDevuelve { "preset": { ... } }, el nuevo objeto Preset.
Eliminar
Anchor link toElimina permanentemente un preset de push por código.
DELETE /api/presets/{code}
Parámetros de ruta
Anchor link to| Parámetro | Tipo | Descripción |
|---|---|---|
code | string | El código del preset a eliminar. |
Respuesta
Anchor link toUn objeto vacío en caso de éxito: {}.
Referencia de objetos
Anchor link toLos nombres de los campos a continuación coinciden con lo que Get, Create, Update y Clone realmente devuelven — nombres de campo de proto en snake_case (ver Convenciones). La forma lowerCamelCase utilizada en los ejemplos de solicitud anteriores funciona de la misma manera en la entrada.
Objeto Preset
Anchor link toIdentidad
Anchor link to| Campo | Tipo | Descripción |
|---|---|---|
code | string | Generado en Create. Identifica este preset en cualquier otro lugar de la API. |
name | string | Nombre del preset. |
send_type | string | Canal del preset (por ejemplo, push). |
is_v2 | boolean | true para presets creados o migrados al modelo de contenido v2. |
system | boolean | Marca el preset como un preset de sistema/interno. |
hidden | boolean | Oculta el preset de los resultados de List (envía showHidden: true para incluirlo). |
created | string (RFC 3339) | Marca de tiempo de creación. |
updated | string (RFC 3339) | Marca de tiempo de la última actualización. |
Segmentación y contenido
Anchor link to| Campo | Tipo | Descripción |
|---|---|---|
platforms | map<string, boolean> | A qué plataformas se dirige el preset, claveado por código de tipo de dispositivo (ej. "1" para iOS). |
localized_properties | map<string, object> | Localización → contenido rico por plataforma. Misma forma que LocalizedContent en el payload de Notify — una entrada por bloque de plataforma (ios, android, etc.). Esta es la forma principal de establecer contenido de push específico de la plataforma. |
localized_title / localized_subtitle / localized_content | map<string, string> | Localización → texto plano. Una alternativa más simple a localized_properties para el título, subtítulo y cuerpo cuando no se necesitan sobrescrituras por plataforma. |
platform_properties | map<string, object> | Sobrescrituras heredadas por plataforma, claveadas por el nombre enum de la plataforma (IOS, ANDROID, BAIDU_ANDROID, HUAWEI_ANDROID, OSX). Ver objeto PlatformProperties a continuación. |
open_action | OpenAction | Acción que se activa cuando el usuario abre la notificación, aplicada a todas las plataformas. Mutuamente excluyente con open_actions — la respuesta establece exactamente una. |
open_actions | map<string, OpenAction> | Sobrescritura por plataforma de open_action, claveada por código de tipo de dispositivo. |
deeplink | string | Código de Deep Link. |
deeplink_params | map<string, string> | Parámetros pasados al deep link. |
richmedia | string | Código de Rich Media abierto por la notificación. |
url | string | URL abierta por la notificación, si no se usa un deep link o Rich Media. |
Inbox
Anchor link to| Campo | Tipo | Descripción |
|---|---|---|
inbox_image | string | URL de la imagen que se muestra en la entrada del Message Inbox. |
inbox_icon | string | URL del ícono que se muestra en la entrada del Message Inbox. |
inbox_days | integer | Días que la entrada permanece en el Message Inbox. |
inbox_date | string (RFC 3339) | Fecha de expiración explícita para la entrada del Message Inbox, como alternativa a inbox_days. |
Organización y metadatos
Anchor link to| Campo | Tipo | Descripción |
|---|---|---|
categories | array de strings | Nombres de las categorías con las que está etiquetado el preset. |
campaign_code | string | Código de campaña al que se atribuye este preset. |
filter_code | string | Código de Segmento / Filtro al que se dirige este preset por defecto. |
geo_zones | string | Segmentación por Geozona, si el preset se activa por geolocalización. |
journey_uuid | string | UUID del Customer Journey que posee este preset, si fue creado desde un punto de envío de push de un journey. |
custom_data | object | JSON de formato libre reenviado al SDK del cliente como el parámetro u. |
banner | string | URL de la imagen de gran tamaño / adjunto. |
icon | string | URL del ícono de notificación personalizado. |
Límites de entrega
Anchor link to| Campo | Tipo | Descripción |
|---|---|---|
send_rate | integer | Limitación de velocidad para los envíos que usan este preset, en mensajes/segundo — el equivalente a nivel de preset de SendRate de Notify. |
capping_count / capping_days | integer | Límite de frecuencia por usuario para este preset — el equivalente a nivel de preset de FrequencyCapping count / days de Notify. |
Webhooks
Anchor link to| Campo | Tipo | Descripción |
|---|---|---|
notification_sent_url | string | URL de callback solicitada cuando se envía una notificación que usa este preset. |
notification_delivered_url | string | URL de callback solicitada cuando se entrega una notificación que usa este preset. |
notification_click_url | string | URL de callback solicitada cuando se hace clic en una notificación que usa este preset. |
Campos heredados
Anchor link toEstos se arrastran del modelo de preset v1. Se pueblan para compatibilidad con el Panel de Control en lugar de para nuevas integraciones.
| Campo | Tipo | Descripción |
|---|---|---|
remote_page | string | Referencia de página remota heredada. |
wns_content | string | JSON de plantilla de toast de Windows heredado, como lo aceptan los métodos v1 createPreset/getPreset. |
original_url | string | El valor de url antes de ser acortado, cuando url fue reemplazado por un enlace acortado. |
ios_silent / android_silent / baidu_android_silent / huawei_android_silent | boolean | Indicadores de push silencioso (solo datos) por plataforma. |
Objeto PlatformProperties
Anchor link toCampos disponibles en cada entrada de platform_properties (IOS, ANDROID, BAIDU_ANDROID, HUAWEI_ANDROID, OSX):
| Campo | Tipo | Descripción |
|---|---|---|
badge | string | Sobrescritura del contador de notificaciones (badge). |
sound | string | Nombre del archivo de sonido. |
sound_off | boolean | Silenciar el sonido de la notificación. |
priority | string | Prioridad en la bandeja de entrada (solo Android/Baidu/Huawei). |
delivery_priority | string | Prioridad de entrega NORMAL o HIGH (solo Android/Baidu/Huawei). |
ios_interruption_level | string | passive, active, time-sensitive, o critical (solo iOS). |