API de Presets
Un preset de push es una plantilla de notificación push reutilizable, el mismo objeto que se construye 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í.
Utilice 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 a través de HTTPS. Las solicitudes y respuestas utilizan application/json a menos que se indique lo contrario.
Autenticación
Anchor link toCada solicitud debe incluir una cabecera Authorization con su token de API del Servidor:
Authorization: Api YOUR_API_TOKENConvenciones
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 utilizando 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 utilizan esa forma. code: cada respuesta de preset lleva su propio código, generado enCreate. Pase este código aGet,Update,UpdatePartial,Delete,Clone, y a las APIs de mensajería/journey mencionadas anteriormente.- Claves de plataforma: los mapas
platformsyopen_actionsutilizan como clave el código de tipo de dispositivo numérico (1para iOS,3para Android, etc.).platform_propertiesutiliza como clave el nombre de la enumeración de la plataforma (IOS,ANDROID,HUAWEI_ANDROID,OSX, las únicas cuatro plataformas que cubre). - Campos no rellenados: las respuestas de
Get,CreateyCloneincluyen todos los campos del Objeto Preset, incluso cuando están vacíos o tienen valor cero.Listdevuelve un conjunto de campos reducido; consulte Listar a continuación.UpdateyUpdatePartialno devuelven ningún campo de preset; consulte la advertencia en sus secciones.
Respuestas de error
Anchor link to| Estado HTTP | Significado |
|---|---|
400 Bad Request | Argumento no válido: falta un campo obligatorio o está mal formado, o ha fallado una precondición (por ejemplo, clonar sin un name). |
401 Unauthorized | Falta la cabecera Authorization o no es válida. |
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 | Fallo inesperado del lado del servidor. |
Delete en un preset que todavía está siendo utilizado por un punto de envío de push de un journey en ejecución o en pausa también devuelve 400 Bad Request (un FailedPrecondition en la comunicación), no 409. Elimine primero 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 el valor por defecto sea true (v2); establecer en false solo cuando se reproduzca 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 sola vez en la referencia del Objeto Preset más abajo.
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 que se listarán los presets. |
orderBy | string | No | NAME (por defecto), CREATED, o UPDATED. |
orderDirection | string | No | ASC (por defecto) 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 si 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 | Repita el parámetro para filtrar por varias categorías, por ejemplo, ?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 of objects | 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 rellenados.
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 su 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 se envía (un campo de mapa/array que envíe sigue reemplazando completamente el valor existente para ese campo, simplemente no afecta a nada que no haya 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 — vea 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 devuelven realmente: nombres de campo 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íe 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, con clave por código de tipo de dispositivo (por ejemplo, "1" para iOS). |
localized_properties | map<string, object> | Localización → contenido enriquecido 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 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, con clave por nombre de enumeración de la plataforma (IOS, ANDROID, HUAWEI_ANDROID, OSX). Vea el 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, con clave 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 utiliza un deep link o Rich Media. |
Bandeja de entrada
Anchor link to| Campo | Tipo | Descripción |
|---|---|---|
inbox_image | string | URL de la imagen que se muestra en la entrada de la Bandeja de Entrada de Mensajes. |
inbox_icon | string | URL del icono que se muestra en la entrada de la Bandeja de Entrada de Mensajes. |
inbox_days | integer | Días que la entrada permanece en la Bandeja de Entrada de Mensajes. |
inbox_date | string (RFC 3339) | Fecha de caducidad explícita para la entrada de la Bandeja de Entrada de Mensajes, como alternativa a inbox_days. |
Organización y metadatos
Anchor link to| Campo | Tipo | Descripción |
|---|---|---|
categories | array of 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 al que pertenece 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 grande / adjunta. |
icon | string | URL del icono 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 utilizan 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 count / days de FrequencyCapping 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 utiliza este preset. |
notification_delivered_url | string | URL de callback solicitada cuando se entrega una notificación que utiliza este preset. |
notification_click_url | string | URL de callback solicitada cuando se hace clic en una notificación que utiliza este preset. |
Campos heredados
Anchor link toEstos se heredan del modelo de preset v1. Se rellenan por 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 notificación de Windows heredado, tal 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 / 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, 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/Huawei). |
delivery_priority | string | Prioridad de entrega NORMAL o HIGH (solo Android/Huawei). |
ios_interruption_level | string | passive, active, time-sensitive, o critical (solo iOS). |