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

You are viewing an old version of this content. View the current version.

afficher les différences View Version History

Vous regardez la version actuelle de cette page. (v. 1) 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