API de Email
createEmailMessage Obsoleto
Anchor link toCrea un mensaje de correo electrónico.
POST https://api.pushwoosh.com/json/1.3/createEmailMessage
Parámetros del cuerpo de la solicitud
Anchor link to| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| auth | string | Sí | Token de acceso a la API desde el Panel de Control de Pushwoosh. |
| application | string | Sí | Código de aplicación de Pushwoosh |
| notifications | array | Sí | Array JSON que contiene los detalles del mensaje de correo electrónico. Consulte la tabla Parámetros de notificaciones a continuación. |
Parámetros de notificaciones
Anchor link to| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| send_date | string | Sí | Define cuándo enviar el correo electrónico. Formato: YYYY-MM-DD HH:mm o "now". |
| preset | string | Sí | Código de preajuste de email. Cópielo de la barra de URL del Editor de Contenido de Email en el Panel de Control de Pushwoosh. |
| subject | string o object | No | Línea de asunto del correo electrónico. El correo electrónico siempre estará en el idioma del contenido. Si el subject no contiene un idioma que coincida con el content, el asunto estará vacío. |
| content | string o object | No | El contenido del cuerpo del correo electrónico. Puede ser una cadena para contenido HTML simple o un objeto para versiones localizadas. |
| attachments | array | No | Los archivos adjuntos del correo electrónico. Solo hay dos archivos adjuntos disponibles. Cada archivo adjunto no debe exceder 1MB (codificado en base64). |
| list_unsubscribe | string | No | Permite establecer una URL personalizada para el encabezado “Link-Unsubscribe”. |
| campaign | string | No | Código de campaña para asociar el correo electrónico con una campaña específica. |
| ignore_user_timezone | boolean | No | Si es true, envía el correo electrónico inmediatamente, ignorando las zonas horarias del usuario. |
| timezone | string | No | Envía el correo electrónico según la zona horaria del usuario. Ejemplo: "America/New_York". |
| filter | string | No | Envía el correo electrónico a los usuarios que coinciden con una condición de filtro específica. |
| devices | array | No | Lista de direcciones de correo electrónico (máx. 1000) para enviar correos electrónicos dirigidos. Si se utiliza, el mensaje se envía solo a estas direcciones. Se ignora si se utiliza el Grupo de Aplicaciones. |
| use_auto_registration | boolean | No | Si es true, registra automáticamente los correos electrónicos del parámetro devices. |
| users | array | No | Si se establece, el mensaje de correo electrónico solo se entregará a los ID de usuario especificados (registrados a través de la llamada /registerEmail). No más de 1000 ID de usuario en un array. Si se especifica el parámetro “devices”, el parámetro “users” será ignorado. |
| dynamic_content_placeholders | object | No | Marcadores de posición para contenido dinámico en lugar de los valores de las etiquetas del dispositivo. |
| conditions | array | No | Condiciones de segmentación usando etiquetas. Ejemplo: [["Country", "EQ", "BR"]]. |
| from | object | No | Especifique un nombre y correo electrónico de remitente personalizados, anulando el predeterminado en las propiedades de la aplicación. |
| reply-to | object | No | Especifique un correo electrónico de respuesta personalizado, anulando el predeterminado en las propiedades de la aplicación. |
| bcc | array | No | BCC (Copia Oculta): array de direcciones de correo electrónico que reciben una copia del correo electrónico sin que otros destinatarios las vean. |
| email_type | string | No | Especifique el tipo de correo electrónico: "marketing" o "transactional". Si se omite, el mensaje se trata como transaccional y se entrega a todos, incluido el grupo de control. Los mensajes de marketing no se entregan a los miembros del grupo de control. |
| email_category | string | Requerido cuando email_type es "marketing". | Especifique uno de los nombres de categoría configurados en el centro de preferencias de suscripción (por ejemplo, Newsletter, Promocional, Actualizaciones de Producto). |
| transactionId | string | No | Identificador de mensaje único para evitar el reenvío en caso de problemas de red. Se almacena en el lado de Pushwoosh durante 5 minutos. |
| capping_days | integer | No | El número de días (máx. 30) para aplicar el límite de frecuencia por dispositivo. Nota: Asegúrese de que el Límite de frecuencia global esté configurado en el Panel de Control. |
| capping_count | integer | No | El número máximo de correos electrónicos que se pueden enviar desde una aplicación específica a un dispositivo particular dentro de un período de capping_days. En caso de que el mensaje creado exceda el límite de capping_count para un dispositivo, no se enviará a ese dispositivo. |
| capping_exclude | boolean | No | Si se establece en true, este correo electrónico no se contará para el límite de frecuencia de futuros correos electrónicos. |
| capping_avoid | boolean | No | Si se establece en true, el límite de frecuencia no se aplicará a este correo electrónico específico. |
| send_rate | integer | No | Limite cuántos mensajes se pueden enviar por segundo a todos los usuarios. Ayuda a prevenir la sobrecarga del backend durante envíos de gran volumen. |
| send_rate_avoid | boolean | No | Si se establece en true, el límite de regulación no se aplicará a este correo electrónico específico. |
Ejemplo de solicitud
Anchor link to{ "request": { "auth": "API_ACCESS_TOKEN", // required. API access token from Pushwoosh Control Panel "application": "APPLICATION_CODE", // required. Pushwoosh application code. "notifications": [{ "send_date": "now", // required. YYYY-MM-DD HH:mm OR 'now' "preset": "ERXXX-32XXX", // required. Copy Email preset code from the URL bar of // the Email Content editor page in Pushwoosh Control Panel. "subject": { // optional. Email message subject line. "de": "subject de", "en": "subject en" }, "content": { // optional. Email body content. "de": "<html><body>de Hello, moto</body></html>", "default": "<html><body>default Hello, moto</body></html>" }, "attachments": [{ // optional. Email attachments "name": "image.png", // "name" - file name "content": "iVBANA...AFTkuQmwC" // "content" - base64 encoded content of the file }, { "name": "file.pdf", "content": "JVBERi...AFTarEGC" }], "list_unsubscribe": "URL", // optional. Allow to set custom URL for "Link-Unsubscribe" header "campaign": "CAMPAIGN_CODE", // optional. To assign this email message to a particular campaign, // add a campaign code here. "ignore_user_timezone": true, // optional. "timezone": "America/New_York", // optional. Specify to send the message according to // timezone set on user's device. "filter": "FILTER_NAME", // optional. Send the message to specific users meeting filter conditions. "devices": [ // optional. Specify email addresses to send targeted email messages. "email_address1", // Not more than 1000 addresses in an array. "email_address2" // If set, the message will only be sent to the addresses on ], // the list. Ignored if the Application Group is used. "use_auto_registration": true, // optional. Automatically register emails specified in "devices" parameter "users": [ // optional. If set, the email message will only be delivered to the "userId1", // specified user IDs (registered via /registerEmail call). "userId2" // Not more than 1000 user IDs in an array. ], // If the "devices" parameter is specified, // the "users" parameter will be ignored. "dynamic_content_placeholders": { // optional. Placeholders for dynamic content instead of device tag values. "firstname": "John", "firstname_en": "John" }, "conditions": [ // optional. Segmentation conditions, see remark below. ["Country", "EQ", "BR"], ["Language", "EQ", "pt"] ], "from": { // optional. Specify a sender name and sender email address "name": "alias from", // to replace the default "From name" and "From email" "email": "from-email@email.com" // set up in application properties. }, "reply-to": { // optional. Specify an email address to replace the "name": "alias reply to ", // default "Reply to" set up in application properties. "email": "reply-to@email.com" }, "bcc": [ // optional. BCC: array of email addresses that receive a copy without other recipients seeing them. "bcc1@example.com", "bcc2@example.com" ], "email_type": "marketing", // optional. "marketing" or "transactional". // If omitted, treated as transactional: delivered to everyone. // Marketing messages are not delivered to control group members. "email_category": "category name",// required when email_type is "marketing". Category name. "transactionId": "unique UUID", // optional. Unique message identifier to prevent re-sending // in case of network problems. Stored on the side // of Pushwoosh for 5 minutes. // Frequency capping params. Ensure that Global frequency capping is configured in the Control Panel. // Frequency capping does not apply to transactional messages. // In all other cases, including omitted "email_type", frequency capping applies. "capping_days": 30, // optional. Amount of days for frequency capping (max 30 days) "capping_count": 10, // optional. The max number of emails that can be sent from a // specific app to a particular device within a 'capping_days' // period. In case the message created exceeds the // 'capping_count' limit for a device, it won't // be sent to that device. "capping_exclude": true, // optional. If set to true, this email will not // be counted towards the capping for future emails. "capping_avoid": true, // optional. If set to true, capping will not be applied to // this specific email. "send_rate": 100, // optional. Throttling limit. // Limit how many messages can be sent per second across all users. // Helps prevent backend overload during high-volume sends. "send_rate_avoid": true, // optional. If set to true, throttling limit will not be applied to // this specific email. }] }}Ejemplos de respuesta
Anchor link to{ "status_code": 200, "status_message": "OK", "response": null}{ "status_code": 210, "status_message": "Preset content is not approved", "response": null}{ "status_code": 403, "status_message": "Token restrictions forbid this operation", "response": null}Condiciones de etiqueta
Anchor link toCada condición de etiqueta es un array como [tagName, operator, operand] donde
- tagName: nombre de una etiqueta
- operator: “EQ” | “IN” | “NOTEQ” | “NOTIN” | “LTE” | “GTE” | “BETWEEN”
- operand: string | integer | array | date
Descripción del operando
Anchor link to- EQ: el valor de la etiqueta es igual al operando;
- IN: el valor de la etiqueta se cruza con el operando (el operando siempre debe ser un array);
- NOTEQ: el valor de la etiqueta no es igual a un operando;
- NOTIN: el valor de la etiqueta no se cruza con el operando (el operando siempre debe ser un array);
- GTE: el valor de la etiqueta es mayor o igual que el operando;
- LTE: el valor de la etiqueta es menor o igual que el operando;
- BETWEEN: el valor de la etiqueta es mayor o igual que el valor mínimo del operando pero menor o igual que el valor máximo del operando (el operando siempre debe ser un array).
Etiquetas de cadena
Anchor link toOperadores válidos: EQ, IN, NOTEQ, NOTIN
Operandos válidos:
- EQ, NOTEQ: el operando debe ser una cadena;
- IN, NOTIN: el operando debe ser un array de cadenas como
["value 1", "value 2", "value N"];
Etiquetas de entero
Anchor link toOperadores válidos: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE
Operandos válidos:
- EQ, NOTEQ, GTE, LTE: el operando debe ser un entero;
- IN, NOTIN: el operando debe ser un array de enteros como
[value 1, value 2, value N]; - BETWEEN: el operando debe ser un array de enteros como
[min_value, max_value].
Etiquetas de fecha
Anchor link toOperadores válidos: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE
Operandos válidos:
"YYYY-MM-DD 00:00"(cadena)- marca de tiempo unix
1234567890(entero) "N days ago"(cadena) para los operadores EQ, BETWEEN, GTE, LTE
Etiquetas booleanas
Anchor link toOperadores válidos: EQ
Operandos válidos: 0, 1, true, false
Etiquetas de lista
Anchor link toOperadores válidos: IN
Operandos válidos: el operando debe ser un array de cadenas como ["value 1", "value 2", "value N"].
registerEmail
Anchor link toRegistra la dirección de correo electrónico para la aplicación.
POST https://api.pushwoosh.com/json/1.3/registerEmail
Encabezados de la solicitud
Anchor link to| Nombre | Requerido | Valor | Descripción |
|---|---|---|---|
| Authorization | Sí | Token XXXX | Token de dispositivo de API para acceder a la API de Dispositivos. Reemplace XXXX con su token de API de Dispositivos real. |
Cuerpo de la solicitud
Anchor link to| Nombre | Tipo | Descripción |
|---|---|---|
| application* | string | Código de aplicación de Pushwoosh |
| email* | string | Dirección de correo electrónico. |
| language | string | Configuración regional de idioma para asociar con el contacto. No hay un dispositivo desde el cual leerlo, así que páselo explícitamente aquí, o configúrelo más tarde a través de Etiquetas. Un contacto que se deja sin él no se cuenta para ningún idioma y recibe el correo electrónico en el idioma predeterminado. Debe ser un código de dos letras en minúsculas según el estándar ISO-639-1. |
| userId | string | ID de usuario para asociar con la dirección de correo electrónico. |
| tz_offset | integer | Desplazamiento de la zona horaria en segundos. |
| tags | object | Valores de etiqueta para asignar al dispositivo registrado. |
{ "status_code": 200, "status_message": "OK", "response": null}{ "status_code": 210, "status_message": "this hwid (email) is blacklisted", "response": null}{ "status_code": 400, "status_message": "Missing required argument: email", "response": null}{ "status_code": 403, "status_message": "Token restrictions forbid this operation", "response": null}{ "status_code": 500, "status_message": "Internal server error", "response": null}{ "request": { "application": "APPLICATION_CODE", // required. Pushwoosh application code. "email":"email@domain.com", // required. Email address to be registered. "language": "en", // optional. Language locale. "userId": "userId", // optional. User ID to associate with the email address. "tz_offset": 3600, // optional. Timezone offset in seconds. "tags": { // optional. Tag values to set for the device registered. "StringTag": "string value", "IntegerTag": 42, "ListTag": ["string1","string2"], // sets the list of values for Tags of List type "DateTag": "2024-10-02 22:11", // note the time should be in UTC "BooleanTag": true // valid values are: true, false } }}Códigos de respuesta
Anchor link toLa API pública devuelve el resultado en status_code. Use la siguiente tabla para decidir si una llamada fallida debe reintentarse.
status_code | Significado | ¿Reintentar? |
|---|---|---|
200 | Éxito — la dirección de correo electrónico está registrada. | No — listo. |
210 | Error de argumento/validación — la solicitud fue entendida pero rechazada (dirección en lista negra, correo electrónico no válido o desechable, plataforma incorrecta para el plan de la cuenta). Consulte los mensajes de error 210 a continuación. | No — la misma solicitud devuelve el mismo 210. Registre la dirección y omítala. |
400 | Solicitud mal formada — JSON no válido o un campo requerido faltante. | No — corrija la solicitud, no la repita. |
403 | Prohibido — token de API de Dispositivos no válido o restringido. | No — corrija la autorización. |
500 | Error interno del servidor — problema temporal de infraestructura o tiempo de espera. | Sí, con retroceso exponencial — el único caso transitorio. |
Mensajes de error 210
Anchor link toUna respuesta 210 lleva la razón específica en status_message.
status_message | Significado |
|---|---|
this hwid (email) is blacklisted | La dirección está en la lista de supresión después de un rebote permanente (duro) y no se volverá a registrar. |
hwid (email) is invalid / has invalid semantic | La dirección no pasa la validación. |
hwid (email) is empty | No se proporcionó ninguna dirección. |
hwid (email) has invalid count of parts | Falta o sobra un @. |
hwid (email) has invalid local part | La parte antes de @ no es válida. |
hwid (email) has invalid domain part | La parte del dominio no es válida. |
hwid (email) has disposable domain | La dirección utiliza un dominio de correo electrónico desechable/temporal (por ejemplo, 10minutemail). |
hwid is not valid | El hwid en sí está mal formado. |
only email platform allowed for Email Only subscription | La cuenta está en un plan Solo Email y no puede registrar dispositivos que no sean de correo electrónico. |
deleteEmail
Anchor link toElimina la dirección de correo electrónico de su base de usuarios.
POST https://api.pushwoosh.com/json/1.3/deleteEmail
Encabezados de la solicitud
Anchor link to| Nombre | Requerido | Valor | Descripción |
|---|---|---|---|
| Authorization | Sí | Token XXXX | Token de dispositivo de API para acceder a la API de Dispositivos. Reemplace XXXX con su token de API de Dispositivos real. |
Cuerpo de la solicitud
Anchor link to| Nombre | Tipo | Descripción |
|---|---|---|
| application | string | Código de aplicación de Pushwoosh |
| string | Dirección de correo electrónico utilizada en la solicitud /registerEmail. |
{ "status_code": 200, "status_message": "OK", "response": null}{ "request": { "application": "APPLICATION_CODE", // required. Pushwoosh application code "email": "email@domain.com" // required. Email to delete from app subscribers. }}setEmailTags
Anchor link toEstablece los valores de las etiquetas para la dirección de correo electrónico.
POST https://api.pushwoosh.com/json/1.3/setEmailTags
Encabezados de la solicitud
Anchor link to| Nombre | Requerido | Valor | Descripción |
|---|---|---|---|
| Authorization | Sí | Token XXXX | Token de dispositivo de API para acceder a la API de Dispositivos. Reemplace XXXX con su token de API de Dispositivos real. |
Cuerpo de la solicitud
Anchor link to| Nombre | Tipo | Descripción |
|---|---|---|
| application | string | Código de aplicación de Pushwoosh |
| string | Dirección de correo electrónico. | |
| tags | object | Objeto JSON de etiquetas para establecer, envíe ‘null’ para eliminar el valor. |
| userId | string | ID de usuario asociado con la dirección de correo electrónico. |
{ "status_code": 200, "status_message": "OK", "response": { "skipped": [] }}{ "request": { "email": "email@domain.com", // required. Email address to set tags for. "application": "APPLICATION_CODE", // required. Pushwoosh application code. "tags": { "StringTag": "string value", "IntegerTag": 42, "ListTag": ["string1", "string2"], "DateTag": "2024-10-02 22:11", // time in UTC "BooleanTag": true // valid values are: true, false }, "userId": "userId" // optional. User ID associated with the email address. }}registerEmailUser
Anchor link toAsocia un ID de usuario externo con una dirección de correo electrónico especificada.
POST https://api.pushwoosh.com/json/1.3/registerEmailUser
Se puede usar en la llamada a la API /createEmailMessage (el parámetro ‘users’).
Encabezados de la solicitud
Anchor link to| Nombre | Requerido | Valor | Descripción |
|---|---|---|---|
| Authorization | Sí | Token XXXX | Token de dispositivo de API para acceder a la API de Dispositivos. Reemplace XXXX con su token de API de Dispositivos real. |
Cuerpo de la solicitud
Anchor link to| Nombre | Tipo | Descripción |
|---|---|---|
| application* | string | Código de aplicación de Pushwoosh |
| email* | string | Dirección de correo electrónico. |
| userId* | string | ID de usuario para asociar con la dirección de correo electrónico. |
| tz_offset | integer | Desplazamiento de la zona horaria en segundos. |
{ "status_code": 200, "status_message": "OK", "response": null}{ "status_code": 400, "status_message": "Request format is not valid."}{ "status_code": 403, "status_message": "Forbidden."}{ "request": { "application": "APPLICATION_CODE", // required. Pushwoosh application code. "email": "email@domain.com", // required. User email address. "userId": "userId", // required. User ID to associate with the email address. "tz_offset": 3600 // optional. Timezone offset in seconds. }}