Aller directement à la fin des métadonnées
Aller au début des métadonnées

Vous regardez une version antérieure (v. /wiki/spaces/UDW61/pages/10847494501/Webhook+Email+Template+V5.6) de cette page.

afficher les différences afficher l'historique de la page

Vous regardez la version actuelle de cette page. (v. 1) Actuel »

Résumé

Manipulation de l'entité EmailTemplate (Modèles d’emails) en lecture/écriture/suppression via un objet métier depuis une application externe.

Tables

Les tables utilisées sont :

  • sw_data_emailtemplateheader : Table des entêtes de modèles d’emails

  • sw_data_emailtemplatedetail : Table des détails de modèles d’emails

Les tables liées sont :

  • sw_data_emailtemplatedetaildocument : Table des pièces jointes d'un modèle d'email

Critères d'activation

WHK_EmailTemplate est défini dans la gestion des webhooks du studio.

Règles métier

verb: PUT

  • La date de début de validité est mise par défaut à la date du jour (validityStartDate) si non fournie lors d'une création

  • Si le code entête de modèle d’email fourni n’existe pas (emailtemplateheader_ID), on créé automatiquement une nouvelle entête de modèle d’email (sw_data_emailtemplateheader)

Fonctionnement

verb: GET
resultType: simple

"emailtemplatedetail": {
    "codeemailtemplatedetail": "INVIT_CONF-FR",
    "emailtemplateheader_ID": "INVIT_CONF",
    "name": "Invitation conférence tuning mysql"
    "validityStartDate": "2022-02-28 00:00:00",
    "validityEndDate": "",
    "baseculture_ID": "FR-FR"
}

verb: GET
resultType: extended

"emailtemplate": {
    "codeemailtemplate": "INVIT_CONF-FR",
    "emailtemplateheader_ID": "INVIT_CONF",
    "name": "Invitation conférence tuning mysql"
    "validityStartDate": "2022-02-28 00:00:00",
    "validityEndDate": "",
    "baseculture_ID": "FR-FR",
    "description": "Email d'invitation à la conférence Tuning MySql",
    "subject": "Invitation Tuning MySql",
    "body": "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /></head><body><p>Bonjour [customercontact.firstName] [customercontact.lastName],</p><p>Vous êtes cordialement invité(e) à notre conférence sur le Tuning Mysql qui se tiendra en nos locaux.<br>11 rue Icare à Entzheim<br>Salle Erasme</p><p><strong>Le vendredi 11/03/2022 à partir de 10H.</strong></p><p>Cordialement,<br>Votre dévoué [baseuser.firstName] [baseuser.lastName]<br></p></body></html>"
  }

verb: GET
resultType: extendedRelated
en complément du résultat pour resultType: extended on aura le détail pour les tables emailtemplateheader et baseculture

"related": [
{
  "emailtemplateheader": {
    "codeemailtemplateheader": "INVIT_CONF",
    "generictype_ID_scope": "CONTACT",
    "isDefault": "0"
  },
  "baseculture": {
    "codebaseculture": "FR-FR",
    "label": "French - France",
    "codelanguage": "FR",
    "masked": "0"
  }
}]

verb: PUT

"emailtemplatedetail": {
    "codeemailtemplatedetail": "INVIT_CONF-FR", /* Code globalement unique du modèle d'email. Si non fourni code=ID (Varchar (255))*/
    "emailtemplateheader_ID": "INVIT_CONF", /* Code entête de modèle d'email (ForeignKey () - sw_data_emailtemplateheader.codeemailtemplateheader)*/
    "name": "Invitation conférence tuning mysql" /* Nom (Varchar (255))*/
    "validityStartDate": "2022-02-28 00:00:00", /* Date de début de validité (DatetIme())*/
    "validityEndDate": "", /* Date de fin de validité (DatetIme())*/
    "description": "Email d'invitation à la conférence Tuning MySql", /* Description (Text (65535))*/
    "subject": "Invitation Tuning MySql", /* Objet (Varchar (255))*/ 
    "body": "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />..." /* Corps du modèle en HTML (Text (65535))*/
    
    /* Possibilité de mettre à jour directement les champs du header (il n'existe pas de bloc json "emailtemplateheader") */
    "emailtemplateheader.generictype_ID_scope": "EMAILTEMPLATE_SCOPE-CONTACT", /* Code portée (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = EMAILTEMPLATE_SCOPE)*/
    "emailtemplateheader.isDefault": "0" /* Par défaut pour la portée. Une seule valeur par défaut (isDefault=1) pour une portée donnée (Bool ())*/
  }

Possibilité d’utiliser des tags dans le “subject” et le “body” pour faire référence à des champs de la base qui seront interprétés lors de l’utilisation du modèle d’email.

La liste complète est disponible dans le web (Paramétrage → Général → Modèles d’email puis bouton “Tags”).

Exemples : [customer.address1], [baseuser.firstName], [customer.address1], …

Pour ajouter une ou plusieurs pièces jointes à un modèle d'email il suffira d'appeler le webhook file autant de fois que voulu.
Exemple :

"action":
  {
    "verb": "PUT",
    "parameters":
      {
        "entity": "emailtemplatedetail",
        "extension": "document"
      }
  },
"data":
  {
    "file": {
      "codefile": "", /* Code globalement unique pour entity/extension. Si non fourni code=ID (Varchar (255))*/
      "parent_ID": "xxxxx", /* Code du parent. Ici il faut utiliser le code email template qui est retourné après la création du modèle d'email (soit celui qui a été fourni manuellement dans le json du modèle d'email ou celui qui été attribué automatiquement). (ForeignKey () - sw_data_emailtemplatedetail.codeemailtemplatedetail)*/
      "fileName": "Introduction-to-MySQL-Query-Tuning.png", /* Nom du fichier (Varchar (255))*/
      "description": "Invitation", /* Description (Text (65535))*/
      "fileBase64": "iVBORw0KGgoAAAANSUhEUgAAAEsAAACQCAYAAABAt5Y ....", /* Fichier encodé en base 64 (MediumBlob ())*/
    }
  }

verb: LIST
resultType: simple, extended reprendre les définitions du GET
Ce mode ne retourne pas le champ "body" pour une question de performances.
A la suite du résultat recherché il suffira de lancer le webhook en mode GET sur le "codeEmailTemplate" voulu pour récupérer le "body".

"filters:" {
  "codeEmailTemplateDetail": "value", filter is equal
  "name": "value", filter is contains
  "subject: "value", filter is contains
  "description": "value", filter is contains
  "validityActive": "value", filter is equal (if value = "1" return only template email active today)
  "validityStartDate": "value", filter is greater or equal to
  "validityEndDateDate": "value", filter is less or equal to
  "codeCulture": "value", filter is equal
  "codeEmailTemplateHeader": "value", filter is equal
},
"orderBy": "value"

Valeurs possibles pour le tri "orderBy" :

  • nameAsc : par nom ascendant

verb: DELETE
Une suppression d'un modèle d'email (sw_data_emailtemplatedetail) va supprimer en cascade les éléments dans la table liée sw_data_emailtemplatedetaildocument.

  • Aucune étiquette