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/UDW55/pages/10522525828/WebHook+Email) de cette page.

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

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 2) Actuel »

Résumé

Manipulation de l'entité Email en lecture/écriture/suppression via un objet métier depuis une application externe.

Tables

Les tables utilisées sont :

  • sw_data_email : Table des entêtes/corps d'emails

Les tables liées sont :

  • sw_data_emaildocument : Table des pièces jointes d'un email

  • sw_data_emaillinkedto : Table des liens entre emails et entités (customer, customercontact, deal, intervention, intervention request, ...)

Critères d'activation

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

Fonctionnement

verb: GET
resultType: simple

  "email": {
    "codeemail": "6690000000045", 
    "sentDate": "2021-07-05 14:24:32",
    "sender": "Communication <communication@divalto.com>",
    "generictype_ID_emailImportance": "NORMAL",
    "subject": "Deviens jury du Divalto C.A.R.E I.T",
    "bodyPreview": "HE’S BACK ! Rejoins l’aventure de notre concours solidaire étudiants 4ème edition 2021-2022Pour celles et ceux d’entre vous fraîchement arrivés au sein de la #TeamDIvalto ou bien pour les mémoires de poisson rouge ?Le Divalto"    
  }

verb: GET
resultType: extended

  "email":{
    "codeemail":"6690000000045",
    "sentDate": "2021-07-05 14:24:32",
    "sender": "Communication <communication@divalto.com>",
    "generictype_ID_emailImportance": "Normal",
    "subject": "Deviens jury du Divalto C.A.R.E I.T",
    "bodyPreview": "HE’S BACK ! Rejoins l’aventure de notre concours solidaire étudiants 4ème edition 2021-2022Pour celles et ceux d’entre vous fraîchement arrivés au sein de la #TeamDIvalto ou bien pour les mémoires de poisson rouge ?Le Divalto",
    "receivedDate": "2021-07-05 14:24:34",
    "lastModifiedDate": "2021-07-10 06:10:41",
    "toRecipients": "GRD_EVERYBODY <grdeverybody@divalto.com>",
    "ccRecipients": "",
    "bccRecipients": "",
    "replyTo": "",
    "isDraft": "0",
    "isRead": "1",
    "externalID": "<DBAPR01MB6F8CB1C9@DBAPR01MB6856.eurprd01.prod.exchangelabs.com>",
    "body": "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><meta content=\"text/html; charset=utf-8\">...", 
    "hasAttachments": "0" /* Permet de savoir si l'email a des pièces jointes. Mis à jour automatiquement lors de l'ajout/suppression de pièces jointes dans sw_data_emaildocument. (Valeurs possibles : 0,1) (Bool ())*/     
  }

verb: GET
resultType: extendedRelated
en complément du résultat pour resultType: extended on aura le détail pour la table generictype_emailImportance.

"related":[
{
  "generictype_emailImportance":{
    "codegenerictype": "EMAIL_IMPORTANCE-NORMAL",
    "label": "Normal",
    "originalCode": "NORMAL",
    "dataType": "EMAIL_IMPORTANCE",
    "description": "",
    "translationKey": "GenType_EMAIL_IMPORTANCE-NORMAL",
    "generictype_ID_parent": "",
    "tag": "NORMAL",
    "orderNumber": ""
  }
}]

verb: PUT

{
  "email": {
    "codeemail": "", /* Code globalement unique de l'email. Si non fourni code=ID (Varchar (255))*/
    "sentDate": "2021-07-05T14:24:32Z", /* Date d'envoi (DateTime ())*/
    "receivedDate": "2021-07-05T14:24:34Z", /* Date de réception (DateTime ())*/
    "lastModifiedDate": "2021-07-10T06:10:41Z", /* Date de dernière modification (DateTime ())*/
    "sender": "Communication <communication@divalto.com>", /* Emetteur (Varchar (255))*/
    "toRecipients": "GRD_EVERYBODY <grdeverybody@divalto.com>", /* Destinataires À (Text (65535))*/
    "ccRecipients": "", /* Destinataires Cc (Text (65535))*/
    "bccRecipients": "", /* Destinataires Cci (Text (65535))*/
    "replyTo": "", /* Adresse email à utiliser lors de la réponse (Varchar (255))*/
    "generictype_ID_emailImportance": "EMAIL_IMPORTANCE-NORMAL", /* Code importance email (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = EMAIL_IMPORTANCE)*/
    "isDraft": "0", /* Brouillon (Valeurs possibles : 0,1) (Bool ())*/
    "isRead": "1", /* Message lu (Valeurs possibles : 0,1) (Bool ())*/
    "externalID": "<DBAPR01MB6F8CB1C9@DBAPR01MB6856.eurprd01.prod.exchangelabs.com>" /* ID message externe (Varchar (255))*/
    "subject": "Deviens jury du Divalto C.A.R.E I.T", /* Objet (Varchar (255))*/ 
    "bodyPreview": "HE’S BACK ! Rejoins l’aventure de notre concours solidaire étudiants 4ème edition 2021-2022Pour celles et ceux d’entre vous fraîchement arrivés au sein de la #TeamDIvalto ou bien pour les mémoires de poisson rouge ?Le Divalto", /* 255 premiers caractères du corps du message (Varchar (255))*/
    "body": "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><meta content=\"text/html; charset=utf-8\">..." /* Corps du message en HTML (MediumBlob ())*/
  },
  "emaillinkedto": [
    {
      "codeemaillinkedto": "", /* Code globalement unique d'un lien d'email. Si non fourni code=ID (Vachar(255))*/
      "email_ID": "", /* Code email. Reprendre le code email du bloc json "email". Si non fourni, sera alimenté automatiquement. (ForeignKey () - sw_data_email.codeemail)*/
      "baseentity_ID" : "customer", /* Code de l'entité. (ForeignKey () - sw_data_baseentity.codebaseentity)*/
      "rowID": "C0000001" /* Code de la table principale de l'entité. Par exemple pour customer il s'agira du codecustomer (Varchar (255)*/
    },
    {
      "codeemaillinkedto": "", /* Code globalement unique d'un lien d'email. Si non fourni code=ID (Vachar(255))*/
      "email_ID": "", /* Code email. Reprendre le code email du bloc json "email". Si non fourni, sera alimenté automatiquement. (ForeignKey () - sw_data_email.codeemail)*/
      "baseentity_ID" : "customercontact", /* Code de l'entité. (ForeignKey () - sw_data_baseentity.codebaseentity)*/
      "rowID": "C0000001-AA123" /* Code de la table principale de l'entité. Par exemple pour customercontact il s'agira du codecustomercontact (Varchar (255)*/
    }
  ] 
}

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

"action":
  {
    "verb": "PUT",
    "parameters":
      {
        "entity": "email",
        "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 qui est retourné après la création de l'email (soit celui qui a été fourni manuellement dans le json de l'email ou celui qui été attribué automatiquement). (ForeignKey () - sw_data_email.codeemail)*/
      "fileName": "NewsLetter0721.pdf", /* Nom du fichier (Varchar (255))*/
      "description": "Nouveautés juillet 21", /* 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 "codeEmail" voulu pour récupérer le "body".

"filters:" {
  "codeEmail: "value", filter is equal
  "subject: "value", filter is contains
  "bodyPreview": "value", filter is contains
  "sender": "value", filter is contains
  "toRecipients": "value", filter is contains
  "sentDate": "value", filter is greater or equal to
  "sentDateBetween": "value1|value2", filter is between value1 and value2
  "receivedDate": "value", filter is greater or equal to
  "receivedDateBetween": "value1|value2", filter is between value1 and value2
  "hasAttachments": "value", filter is equal
  "codeEmailImportance": "value" filter is equal
},
"orderBy": "value"

Valeurs possibles pour le tri "orderBy" :

  • receivedDateDesc : par date de réception descendant

  • receivedDateAsc : par date de réception ascendant

verb: DELETE
Une suppression d'un email (sw_data_email) va supprimer en cascade les éléments dans les tables liées sw_data_emaillinkedto et sw_data_emaildocument.

  • Aucune étiquette