Passer au contenu

API E-mail

createEmailMessage

Anchor link to

Crée un message e-mail.

POST https://api.pushwoosh.com/json/1.3/createEmailMessage

Paramètres du corps de la requête

Anchor link to
NomType
RequisDescription
authstringOuiJeton d’accès API depuis le Control Panel de Pushwoosh.
applicationstringOuiCode d’application Pushwoosh
notificationsarrayOuiTableau JSON contenant les détails du message e-mail. Voir le tableau Paramètres des notifications ci-dessous.

Paramètres des notifications

Anchor link to
NomType
RequisDescription
send_datestringOuiDéfinit quand envoyer l’e-mail. Format : AAAA-MM-JJ HH:mm ou "now".
presetstringOuiCode de préréglage d’e-mail. Copiez-le depuis la barre d’URL de l’Éditeur de contenu d’e-mail dans le Control Panel de Pushwoosh.
subjectstring ou objectNonLigne d’objet de l’e-mail. L’e-mail sera toujours dans la langue du contenu. Si subject ne contient pas de langue correspondante pour content, l’objet sera vide.
contentstring ou objectNonLe contenu du corps de l’e-mail. Peut être une chaîne de caractères pour du contenu HTML simple ou un objet pour des versions localisées.
attachmentsarrayNonLes pièces jointes de l’e-mail. Seules deux pièces jointes sont disponibles. Chaque pièce jointe ne doit pas dépasser 1 Mo (encodée en base64).
list_unsubscribestringNonPermet de définir une URL personnalisée pour l’en-tête “Link-Unsubscribe”.
campaignstringNonCode de campagne pour associer l’e-mail à une campagne spécifique.
ignore_user_timezonebooleanNonSi true, envoie l’e-mail immédiatement, en ignorant les fuseaux horaires des utilisateurs.
timezonestringNonEnvoie l’e-mail en fonction du fuseau horaire de l’utilisateur. Exemple : "America/New_York".
filterstringNonEnvoie l’e-mail aux utilisateurs correspondant à une condition de filtre spécifique.
devicesarrayNonListe d’adresses e-mail (max 1000) pour envoyer des e-mails ciblés. Si utilisé, le message n’est envoyé qu’à ces adresses. Ignoré si le groupe d’applications est utilisé.
use_auto_registrationbooleanNonSi true, enregistre automatiquement les e-mails du paramètre devices.
usersarrayNonSi défini, le message e-mail ne sera livré qu’aux User ID spécifiés (enregistrés via l’appel /registerEmail). Pas plus de 1000 User ID dans un tableau. Si le paramètre “devices” est spécifié, le paramètre “users” sera ignoré.
dynamic_content_placeholdersobjectNonEspaces réservés pour le contenu dynamique au lieu des valeurs de Tag de l’appareil.
conditionsarrayNonConditions de segmentation utilisant des Tags. Exemple : [["Country", "EQ", "BR"]].
fromobjectNonSpécifiez un nom et un e-mail d’expéditeur personnalisés, remplaçant les valeurs par défaut dans les propriétés de l’application.
reply-toobjectNonSpécifiez un e-mail de réponse personnalisé, remplaçant la valeur par défaut dans les propriétés de l’application.
bccarrayNonCCI (Copie Carbone Invisible) : tableau d’adresses e-mail qui reçoivent une copie de l’e-mail sans que les autres destinataires ne les voient.
email_typestringNonSpécifiez le type d’e-mail : "marketing" ou "transactional". Si omis, les utilisateurs avec PW_ControlGroup: true ne recevront pas le message.
email_categorystringRequis lorsque email_type est "marketing".Spécifiez l’un des noms de catégorie configurés dans le centre de préférences d’abonnement (par ex. Newsletter, Promotionnel, Mises à jour de produit).
transactionIdstringNonIdentifiant de message unique pour éviter le renvoi en cas de problèmes réseau. Stocké du côté de Pushwoosh pendant 5 minutes.
capping_daysintegerNonLe nombre de jours (max 30) pour appliquer la limitation de fréquence par appareil. Note : Assurez-vous que la limitation de fréquence globale est configurée dans le Control Panel.
capping_countintegerNonLe nombre maximum d’e-mails pouvant être envoyés depuis une application spécifique à un appareil particulier pendant une période de capping_days. Si le message créé dépasse la limite capping_count pour un appareil, il ne sera pas envoyé à cet appareil.
capping_excludebooleanNonSi défini sur true, cet e-mail ne sera pas comptabilisé pour la limitation des futurs e-mails.
capping_avoidbooleanNonSi défini sur true, la limitation ne sera pas appliquée à cet e-mail spécifique.
send_rateintegerNonLimite le nombre de messages pouvant être envoyés par seconde à travers tous les utilisateurs. Aide à prévenir la surcharge du backend lors d’envois à grand volume.
send_rate_avoidbooleanNonSi défini sur true, la limite de régulation ne sera pas appliquée à cet e-mail spécifique.

Exemple de requête

Anchor link to
{
"request": {
"auth": "API_ACCESS_TOKEN", // requis. Jeton d'accès API depuis le Control Panel de Pushwoosh
"application": "APPLICATION_CODE", // requis. Code d'application Pushwoosh.
"notifications": [{
"send_date": "now", // requis. AAAA-MM-JJ HH:mm OU 'now'
"preset": "ERXXX-32XXX", // requis. Copiez le code de préréglage d'e-mail depuis la barre d'URL de
// la page de l'éditeur de contenu d'e-mail dans le Control Panel de Pushwoosh.
"subject": { // optionnel. Ligne d'objet du message e-mail.
"de": "subject de",
"en": "subject en"
},
"content": { // optionnel. Contenu du corps de l'e-mail.
"de": "<html><body>de Hello, moto</body></html>",
"default": "<html><body>default Hello, moto</body></html>"
},
"attachments": [{ // optionnel. Pièces jointes de l'e-mail
"name": "image.png", // "name" - nom du fichier
"content": "iVBANA...AFTkuQmwC" // "content" - contenu du fichier encodé en base64
}, {
"name": "file.pdf",
"content": "JVBERi...AFTarEGC"
}],
"list_unsubscribe": "URL", // optionnel. Permet de définir une URL personnalisée pour l'en-tête "Link-Unsubscribe"
"campaign": "CAMPAIGN_CODE", // optionnel. Pour assigner ce message e-mail à une campagne particulière,
// ajoutez un code de campagne ici.
"ignore_user_timezone": true, // optionnel.
"timezone": "America/New_York", // optionnel. Spécifiez pour envoyer le message selon
// le fuseau horaire défini sur l'appareil de l'utilisateur.
"filter": "FILTER_NAME", // optionnel. Envoyer le message à des utilisateurs spécifiques remplissant les conditions du filtre.
"devices": [ // optionnel. Spécifiez les adresses e-mail pour envoyer des messages e-mail ciblés.
"email_address1", // Pas plus de 1000 adresses dans un tableau.
"email_address2" // Si défini, le message ne sera envoyé qu'aux adresses de
], // la liste. Ignoré si le groupe d'applications est utilisé.
"use_auto_registration": true, // optionnel. Enregistre automatiquement les e-mails spécifiés dans le paramètre "devices"
"users": [ // optionnel. Si défini, le message e-mail ne sera livré qu'aux
"userId1", // User ID spécifiés (enregistrés via l'appel /registerEmail).
"userId2" // Pas plus de 1000 User ID dans un tableau.
], // Si le paramètre "devices" est spécifié,
// le paramètre "users" sera ignoré.
"dynamic_content_placeholders": { // optionnel. Espaces réservés pour le contenu dynamique au lieu des valeurs de Tag de l'appareil.
"firstname": "John",
"firstname_en": "John"
},
"conditions": [ // optionnel. Conditions de segmentation, voir la remarque ci-dessous.
["Country", "EQ", "BR"],
["Language", "EQ", "pt"]
],
"from": { // optionnel. Spécifiez un nom d'expéditeur et une adresse e-mail d'expéditeur
"name": "alias from", // pour remplacer le "Nom de l'expéditeur" et l'"E-mail de l'expéditeur" par défaut
"email": "from-email@email.com" // configurés dans les propriétés de l'application.
},
"reply-to": { // optionnel. Spécifiez une adresse e-mail pour remplacer
"name": "alias reply to ", // le "Répondre à" par défaut configuré dans les propriétés de l'application.
"email": "reply-to@email.com"
},
"bcc": [ // optionnel. CCI : tableau d'adresses e-mail qui reçoivent une copie sans que les autres destinataires ne les voient.
"bcc1@example.com",
"bcc2@example.com"
],
"email_type": "marketing", // optionnel. "marketing" ou "transactional".
// Si omis, les utilisateurs avec PW_ControlGroup: true ne recevront pas le message.
"email_category": "category name",// requis lorsque email_type est "marketing". Nom de la catégorie.
"transactionId": "unique UUID", // optionnel. Identifiant de message unique pour éviter le renvoi
// en cas de problèmes réseau. Stocké du côté
// de Pushwoosh pendant 5 minutes.
// Paramètres de limitation de fréquence. Assurez-vous que la limitation de fréquence globale est configurée dans le Control Panel.
// La limitation de fréquence ne s'applique pas aux messages transactionnels.
// Dans tous les autres cas, y compris si "email_type" est omis, la limitation de fréquence s'applique.
"capping_days": 30, // optionnel. Nombre de jours pour la limitation de fréquence (max 30 jours)
"capping_count": 10, // optionnel. Le nombre max d'e-mails pouvant être envoyés depuis une
// application spécifique à un appareil particulier pendant une période de 'capping_days'.
// Si le message créé dépasse la
// limite 'capping_count' pour un appareil, il ne
// sera pas envoyé à cet appareil.
"capping_exclude": true, // optionnel. Si défini sur true, cet e-mail ne sera pas
// comptabilisé pour la limitation des futurs e-mails.
"capping_avoid": true, // optionnel. Si défini sur true, la limitation ne sera pas appliquée à
// cet e-mail spécifique.
"send_rate": 100, // optionnel. Limite de régulation.
// Limite le nombre de messages pouvant être envoyés par seconde à travers tous les utilisateurs.
// Aide à prévenir la surcharge du backend lors d'envois à grand volume.
"send_rate_avoid": true, // optionnel. Si défini sur true, la limite de régulation ne sera pas appliquée à
// cet e-mail spécifique.
}]
}
}

Exemples de réponse

Anchor link to
{
"status_code": 200,
"status_message": "OK",
"response": null
}

Conditions de Tag

Anchor link to

Chaque condition de Tag est un tableau comme [tagName, operator, operand]

  • tagName : nom d’un Tag
  • operator : “EQ” | “IN” | “NOTEQ” | “NOTIN” | “LTE” | “GTE” | “BETWEEN”
  • operand : string | integer | array | date

Description de l’opérande

Anchor link to
  • EQ : la valeur du Tag est égale à l’opérande ;
  • IN : la valeur du Tag croise l’opérande (l’opérande doit toujours être un tableau) ;
  • NOTEQ : la valeur du Tag n’est pas égale à un opérande ;
  • NOTIN : la valeur du Tag ne croise pas l’opérande (l’opérande doit toujours être un tableau) ;
  • GTE : la valeur du Tag est supérieure ou égale à l’opérande ;
  • LTE : la valeur du Tag est inférieure ou égale à l’opérande ;
  • BETWEEN : la valeur du Tag est supérieure ou égale à la valeur minimale de l’opérande mais inférieure ou égale à la valeur maximale de l’opérande (l’opérande doit toujours être un tableau).

Tags de type chaîne de caractères

Anchor link to

Opérateurs valides : EQ, IN, NOTEQ, NOTIN
Opérandes valides :

  • EQ, NOTEQ : l’opérande doit être une chaîne de caractères ;
  • IN, NOTIN : l’opérande doit être un tableau de chaînes de caractères comme ["valeur 1", "valeur 2", "valeur N"] ;

Tags de type entier

Anchor link to

Opérateurs valides : EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE
Opérandes valides :

  • EQ, NOTEQ, GTE, LTE : l’opérande doit être un entier ;
  • IN, NOTIN : l’opérande doit être un tableau d’entiers comme [valeur 1, valeur 2, valeur N] ;
  • BETWEEN : l’opérande doit être un tableau d’entiers comme [valeur_min, valeur_max].

Tags de type date

Anchor link to

Opérateurs valides : EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE
Opérandes valides :

  • "AAAA-MM-JJ 00:00" (chaîne de caractères)
  • timestamp unix 1234567890 (entier)
  • "N days ago" (chaîne de caractères) pour les opérateurs EQ, BETWEEN, GTE, LTE

Tags de type booléen

Anchor link to

Opérateurs valides : EQ
Opérandes valides : 0, 1, true, false

Tags de type liste

Anchor link to

Opérateurs valides : IN
Opérandes valides : l’opérande doit être un tableau de chaînes de caractères comme ["valeur 1", "valeur 2", "valeur N"].

registerEmail

Anchor link to

Enregistre une adresse e-mail pour l’application.

POST https://api.pushwoosh.com/json/1.3/registerEmail

En-têtes de la requête

Anchor link to
NomRequisValeurDescription
AuthorizationOuiToken XXXXJeton d’API d’appareil pour accéder à l’API d’appareil. Remplacez XXXX par votre jeton d’API d’appareil réel.

Corps de la requête

Anchor link to
NomTypeDescription
application*stringCode d’application Pushwoosh
email*stringAdresse e-mail.
languagestringLocale de langue de l’appareil. Doit être un code à deux lettres en minuscules selon la norme ISO-639-1.
userIdstringUser ID à associer à l’adresse e-mail.
tz_offsetintegerDécalage de fuseau horaire en secondes.
tagsobjectValeurs de Tag à assigner à l’appareil enregistré.
{
"status_code": 200,
"status_message": "OK",
"response": null
}
Exemple
{
"request": {
"application": "APPLICATION_CODE", // requis. Code d'application Pushwoosh.
"email":"email@domain.com", // requis. Adresse e-mail à enregistrer.
"language": "en", // optionnel. Locale de langue.
"userId": "userId", // optionnel. User ID à associer à l'adresse e-mail.
"tz_offset": 3600, // optionnel. Décalage de fuseau horaire en secondes.
"tags": { // optionnel. Valeurs de Tag à définir pour l'appareil enregistré.
"StringTag": "string value",
"IntegerTag": 42,
"ListTag": ["string1","string2"], // définit la liste de valeurs pour les Tags de type Liste
"DateTag": "2024-10-02 22:11", // notez que l'heure doit être en UTC
"BooleanTag": true // les valeurs valides sont : true, false
}
}
}

deleteEmail

Anchor link to

Supprime une adresse e-mail de votre base d’utilisateurs.

POST https://api.pushwoosh.com/json/1.3/deleteEmail

En-têtes de la requête

Anchor link to
NomRequisValeurDescription
AuthorizationOuiToken XXXXJeton d’API d’appareil pour accéder à l’API d’appareil. Remplacez XXXX par votre jeton d’API d’appareil réel.

Corps de la requête

Anchor link to
NomTypeDescription
applicationstringCode d’application Pushwoosh
emailstringAdresse e-mail utilisée dans la requête /registerEmail.
{
"status_code": 200,
"status_message": "OK",
"response": null
}
Exemple
{
"request": {
"application": "APPLICATION_CODE", // requis. Code d'application Pushwoosh
"email": "email@domain.com" // requis. E-mail à supprimer des abonnés de l'application.
}
}

setEmailTags

Anchor link to

Définit les valeurs de Tag pour l’adresse e-mail.

POST https://api.pushwoosh.com/json/1.3/setEmailTags

En-têtes de la requête

Anchor link to
NomRequisValeurDescription
AuthorizationOuiToken XXXXJeton d’API d’appareil pour accéder à l’API d’appareil. Remplacez XXXX par votre jeton d’API d’appareil réel.

Corps de la requête

Anchor link to
NomTypeDescription
applicationstringCode d’application Pushwoosh
emailstringAdresse e-mail.
tagsobjectObjet JSON de Tags à définir, envoyez ‘null’ pour supprimer la valeur.
userIdstringUser ID associé à l’adresse e-mail.
{
"status_code": 200,
"status_message": "OK",
"response": {
"skipped": []
}
}
Exemple
{
"request": {
"email": "email@domain.com", // requis. Adresse e-mail pour laquelle définir les Tags.
"application": "APPLICATION_CODE", // requis. Code d'application Pushwoosh.
"tags": {
"StringTag": "string value",
"IntegerTag": 42,
"ListTag": ["string1", "string2"],
"DateTag": "2024-10-02 22:11", // heure en UTC
"BooleanTag": true // les valeurs valides sont : true, false
},
"userId": "userId" // optionnel. User ID associé à l'adresse e-mail.
}
}

registerEmailUser

Anchor link to

Associe un User ID externe à une adresse e-mail spécifiée.

POST https://api.pushwoosh.com/json/1.3/registerEmailUser

Peut être utilisé dans l’appel API /createEmailMessage (le paramètre ‘users’).

En-têtes de la requête

Anchor link to
NomRequisValeurDescription
AuthorizationOuiToken XXXXJeton d’API d’appareil pour accéder à l’API d’appareil. Remplacez XXXX par votre jeton d’API d’appareil réel.

Corps de la requête

Anchor link to
NomTypeDescription
application*stringCode d’application Pushwoosh
email*stringAdresse e-mail.
userId*stringUser ID à associer à l’adresse e-mail.
tz_offsetintegerDécalage de fuseau horaire en secondes.
{
"status_code": 200,
"status_message": "OK",
"response": null
}
Exemple
{
"request": {
"application": "APPLICATION_CODE", // requis. Code d'application Pushwoosh.
"email": "email@domain.com", // requis. Adresse e-mail de l'utilisateur.
"userId": "userId", // requis. User ID à associer à l'adresse e-mail.
"tz_offset": 3600 // optionnel. Décalage de fuseau horaire en secondes.
}
}