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/UDW62/pages/11005603348/WebHook+Deal+V5.3) 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. 3) afficher la version suivante »

Résumé

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

Remarque

A partir de la Summer'22, le webhook Deal a été scindé en deux afin de gérer les opportunités séparément. Il faudra donc à présent utiliser le nouveau webhook Opportunity pour cette partie.

Tables

Les tables utilisées sont :

  • sw_data_deal : Table des opportunités/affaires

Les tables liées sont :

  • sw_data_dealelement : Table des éléments d’affaires

  • sw_data_customeraddressdeal : Table des adresses d'affaires

  • sw_data_dealstep : Table des étapes d’affaires

Critères d'activation

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

Règles métier

verb: PUT

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

  • Le statut est mis par défaut à 'Brouillon' (generictype_ID_status = DRAFTING) si non fourni lors d'une création

Fonctionnement

settings parameters

"settings":
{
  "getPartners": "1" // pour le verb GET et LIST permet de retourner les informations des partenaires de l'affaire
}

verb: GET
resultType: simple

  "deal":{
    "codedeal": "AFR000011",
    "customer_ID": "C0000001",
    "label": "Vitrine de magasin",
    "creationDate": "2021-12-01 00:00:00"
    "generictype_ID_dealType": "Type affaire 1",
    "generictype_ID_status": "STARTED",
    "dealNumber": "AFR000011"
  }

verb: GET
resultType: extended

  "deal":{
    "codedeal": "AFR000011",
    "customer_ID": "C0000001",
    "label": "Vitrine de magasin",
    "creationDate": "2021-12-01 00:00:00",
    "generictype_ID_dealType": "Type affaire 1",
    "generictype_ID_status": "STARTED",
    "dealNumber": "AFR000011",
    "description": "",    
    "closingDate": "",
    "amount": "300",
    "probability": "55",
    "customer_ID_introducer": "",
    "baseuser_ID": "MOREL",
    "amount2": "",
    "realClosingDate": "",
    "dealstep_ID_current": "",
    "deal_ID_origin": "",
    "manualProbability": "0",
    "marketinglead_ID_origin": "",
    "customercontact_ID": "C0000001-DJ"
  }

verb: GET
resultType: extendedRelated
en complément du résultat pour resultType: extended on aura le détail pour les tables generictype_dealType, customer, customercontact, baseuser, generictype_status et dealstep_current

"related":[
{
  "generictype_dealType":{
    "codegenerictype": "DEAL_DEALTYPE-AFR",
    "label": "Type affaire 1",
    "originalCode": "AFR",
    "dataType": "DEAL_DEALTYPE",
    "description": "",
    "translationKey": "",
    "generictype_ID_parent": "Deal",
    "tag":"",
    "orderNumber":""
  },
  "generictype_status": {
    "codegenerictype": "DEAL_STATUS-3",
    "label": "Démarré",
    "originalCode": "3",
    "dataType": "DEAL_STATUS_V2",
    "description": "",
    "translationKey": "GenType_DEAL_STATUS_STARTED",
    "generictype_ID_parent": "",
    "tag": "STARTED",
    "orderNumber": ""
  },
  "customer":{
    "codecustomer": "C0000001",
    "name": "ENTREPRISE DIJON GUICHARD",
    "baseuser_ID": "",
    "address1" :"33 Avenue du Drapeau",
    "address2": "",
    "address3": "",
    "postalCode": "21000",
    "city": "DIJON",
    "phoneNumber": "03 90 11 22 33",
    "faxNumber": "03 90 11 22 44",
    "mobilePhoneNumber": "06 90 11 22 33",
    "email": "contact@guichard.com",
    "deliveryDays": "1A;1B;2A;2B;3A;3B;4A;4B;5A;5B",
    "openingDays": "1A;1B;2A;2B;3A;3B;4A;4B;5A;5B",
    "siretNumber":" ",
    "vatIntra": "",
    "apeCode": "516K",
    "comment": "",
    "blocked": "0",
    "blockedComment": "",
    "message": "",
    "vacationStart": "",
    "vacationEnd": "",
    "gpsLongitude": "5.04372",
    "gpsLatitude": "47.33222",
    "accountNumber": "C0000001",
    "contactName": "",
    "currency_ID": "",
    "authorizedCredit": "0",
    "risk": "1",
    "underSurveillance": "",
    "workforce": "25",
    "customer_ID_paying": "",
    "pricecategory_ID": "",
    "discountRate": "0",
    "website": "https://www.guichard.com",
    "legalStatus": "Société Anonyme avec Directoire",
    "generictype_ID_brand": "",
    "generictype_ID_deliveryMode": "",
    "generictype_ID_paymentMean": "",
    "generictype_ID_country": "",
    "generictype_ID_province": "",
    "generictype_ID_customerType": "CTC",
    "generictype_ID_customerFamily": "",
    "confirmationEmail": "contact@guichard.com",
    "confirmationFax": "03 90 11 22 44",
    "generictype_ID_taxCode": "",
    "productdepot_ID": "",
    "generictype_ID_accountingCategory": "",
    "generictype_ID_customerPotential": "B",
    "generictype_ID_civility": "",
    "skype": "contact@guichard.com",
    "generictype_ID_role": "",
    "unused": "0",
    "customergroup_ID": "",
    "generictype_ID_referencing": "2",
    "generictype_ID_distribution": "SELF",
    "generictype_ID_market": "BIG",
    "area": "",
    "baseculture_ID": "FR-FR",
    "baseuser_ID_favoriteTechnician": "TECH-01",
    "branchoffice_ID": "SXB",
    "emailFormat": "",
    "isIndividual": "0",
    "facebook": "https://www.facebook.com/guichard/",
    "twitter": "https://twitter.com/guichard",
    "youtube": "https://www.youtube.com/watch?v=6jGbnEwQJ54",
    "linkedin": "https://www.linkedin.com/company/guichard",
    "activity": ""
  },
  "customercontact":{
    "codecustomercontact": "C0000001-DJ",
    "customer_ID": "C0000001",
    "lastName": "DENEIR",
    "firstName": "Jacques",
    "generictype_ID_civility": "Monsieur",
    "address1": "1b rue Darwin",
    "address2": "",
    "address3": "",
    "postalCode": "21000",
    "city": "DIJON",
    "phoneNumber": "05 55 79 56 92",
    "faxNumber": "05 55 79 56 11",
    "mobilePhoneNumber": "06 07 08 09 10",
    "email": "jdeneir@nebout.div",
    "gpsLongitude": "5.0384",
    "gpsLatitude": "47.33073",
    "description": "Acheteur direct",
    "generictype_ID_position": "Direction",
    "birthday": "1980-09-18 00:00:00",
    "generictype_ID_country": "FR",
    "generictype_ID_province": "",
    "mainContact": "0",
    "generictype_ID_service": "Direction",
    "skype": "",
    "baseculture_ID": "",
    "bouncedEmailDetected": "",
    "closedDate": "",
    "twitter": "",
    "linkedin": ""
  },
  "baseuser":{
    "codebaseuser":"25",
    "lastName":"MOREL",
    "firstName":"Vincent",
    "initials":"MV",
    "baseusertree_ID":"Région 2",
    "productdepot_ID":"Dépôt Vincent MOREL",
    "productdepot_ID_current":"",
    "email":"vincent@morel.com",
    "phoneNumber":"",
    "faxNumber":"",
    "address1":"",
    "address2":"",
    "postalCode":"",
    "city":"",
    "position":"Représentant",
    "department":"Commercial",
    "structureNav":"1",
    "supervisor":"0",
    "useMileageRate":"",
    "account":"",
    "analyticSection":"",
    "lastGPSDate":"",
    "gpsLongitude":"",
    "gpsLatitude":"",
    "gpsPrecision":"",
    "gpsUpdateDate":"",
    "gpsManual":"",
    "generictype_ID_country":"",
    "generictype_ID_province":"",
    "baseculture_ID":"",
    "branchoffice_ID":"",
    "resourcetype_ID":"",
    "teamtype_ID":""
  },
  "dealstep_current": {
    "codedealstep": "AFR000011-2",
    "deal_ID": "AFR000011",
    "stepDate": "2023-09-15 11:34:01",
    "comment": "",
    "dealsteptype_ID": "DEAL_STEP-AFR-ANA"
  }
}]

verb: PUT

{
  "deal": {
    "codedeal": "AFR000011", /* Code globalement unique de l'affaire (Varchar (255))*/
    "customer_ID": "C0000001", /* Code client (ForeignKey () - sw_data_customer.codecustomer)*/
    "label": "Vitrine de magasin", /* Libellé (Varchar (255))*/
    "generictype_ID_dealType": "DEAL_DEALTYPE-AFR", /* Code type d'affaire (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = DEAL_DEALTYPE) et generictype_ID_parent = DEAL*/
    "dealNumber": "AFR000011", /* N° d'affaire (Varchar (64))*/
    "description": "", Description (Text (65535))*/
    "creationDate" : "2021-12-01", /* Date de création (DateTime ())*/
    "closingDate": "", /* Date de fin (DateTime ())*/
    "amount": "300", /* Montant (Double ())*/
    "probability": "55", /* Probabilité (en %) (Int ())*/
    "customer_ID_introducer": "", /* Code client apporteur d'affaire (ForeignKey () - sw_data_customer.codecustomer)
    "baseuser_ID": "25", /* Code responsable (ForeignKey () - sw_data_baseuser.codebaseuser)*/
    "amount2": "", /* Montant 2 (Double ())*/
    "generictype_ID_status": "DEAL_STATUS-3", /* Statut (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = DEAL_STATUS_V2)*/    
    "realClosingDate": "", /* Date de fin réelle (DateTime ())*/
    "dealstep_ID_current": "", /* Code étape actuelle (ForeignKey () - sw_data_dealstep.codedealstep)*/
    "deal_ID_origin": "", /* Code opportunité d'origine (ForeignKey () - sw_data_deal.codedeal)*/
    "manualProbability": "0", /* Probabilité manuelle (Valeurs possibles : 0,1) (Bool ())*/
    "marketinglead_ID_origin": "", /* Code lead marketing d'origine (ForeignKey () - sw_data_marketinglead.codemarketinglead)*/
    "customercontact_ID": "C0000001-DJ", /* Code contact client (ForeignKey () - sw_data_customercontact.codecustomercontact)*/	        
    "internalcodedeal": null /* Code deal original de weavy s'il y a eu transcodage (Varchar (255)) */

    /* Optionnel : pour mettre à jour les champs dynamiques selon paramétrage */
    /* Exemple 1 : */
    "dynamicfields": 
    [{
      "fieldname": "aff10",
      "fieldvalue": "100000"
    },
    {
      "fieldname": "aff30",
      "fieldvalue": "Jean-René Abraham"    
    },
    {
      ...
    }]
    /* Exemple 2 : */
    /* A partir de la version SUMMER'21, le mappage direct des champs dynamiques est possible en utilisant le nom du champ en bdd */
    "v_aff10": "100000",
    "v_aff30": "Jean-René Abraham",
    ...
  },
  "dealelement": [
  {
    "codedealelement": "AFR000011-0-1", /* Code globalement unique de l'élément d'affaire (Varchar (255))*/
    "deal_ID": "AFR000011", /* Code affaire. Optionnel : reprendre le code affaire du bloc json "deal", si non fourni reprend automatiquement le code affaire (ForeignKey () - sw_data_deal.codedeal)*/
    "label" : "Elément 1", /* Libellé (Varchar (255))*/ 
    "DataOrder": "10", /* Ordre d'affichage (Int ())*/
    "originalCode": "1", /* Code de l'élément d'affaire à afficher (Varchar (255))*/
    "dealelementstructure_ID": "", /* Code structure (ForeignKey () - sw_data_dealelementstructure.codedealelementstructure)*/	        
    "dealelement_ID_parent": "" /* Code élément d'affaire parent (nécessite que le parent a été créée avant celui-ci) (ForeignKey () - sw_data_dealelement.codedealelement)*/
  },
  {
    "codedealelement": "AFR000011-0-1.1", /* Code globalement unique de l'élément d'affaire (Varchar (255))*/ 
    "deal_ID": "AFR000011", /* Code affaire. Optionnel : reprendre le code affaire du bloc json "deal", si non fourni reprend automatiquement le code affaire (ForeignKey () - sw_data_deal.codedeal)*/
    "label" : "Elément 1.1", /* Libellé (Varchar (255))*/  
    "DataOrder": "11", /* Ordre d'affichage (Int ())*/ 
    "originalCode": "1.1", /* Code de l'élément d'affaire à afficher (Varchar (255))*/
    "dealelementstructure_ID": "", /* Code structure (ForeignKey () - sw_data_dealelementstructure.codedealelementstructure)*/
    "dealelement_ID_parent": "AFR000011-0-1" /* Code élément d'affaire parent (nécessite que le parent a été créée avant celui-ci) (ForeignKey () - sw_data_dealelement.codedealelement)*/
  },
  {
    "codedealelement": "AFR000011-0-2", /* Code globalement unique de l'élément d'affaire (Varchar (255))*/
    "deal_ID": "PJ000011", /* Code affaire. Optionnel : reprendre le code affaire du bloc json "deal", si non fourni reprend automatiquement le code affaire (ForeignKey () - sw_data_deal.codedeal)*/
    "label" : "Elément 2", /* Libellé (Varchar (255))*/  
    "DataOrder": "20", /* Ordre d'affichage (Int ())*/ 
    "originalCode": "2", /* Code de l'élément d'affaire à afficher (Varchar (255))*/
    "dealelementstructure_ID": "", /* Code structure (ForeignKey () - sw_data_dealelementstructure.codedealelementstructure)*/
    "dealelement_ID_parent": "" /* Code élément d'affaire parent (nécessite que le parent a été créée avant celui-ci) (ForeignKey () - sw_data_dealelement.codedealelement)*/
  }],
  "customeraddressdeal": [
  {
    "codecustomeraddressdeal": "", /* Code globalement unique d'un lien d'adresse. Si non fourni code=ID (Vachar(255))*/
    "deal_ID": "", /* Code affaire. Optionnel reprendre le code affaire du bloc json "deal", si non fourni reprend automatiquement le code affaire (ForeignKey () - sw_data_deal.codedeal)*/
    "customeraddress_ID" : "C0000001-SXB" /* Code de l'adresse. (ForeignKey () - sw_data_customeraddress.codecustomeraddress)*/
  }],
  "dealstep": [
  {
    "codedealstep": "" /* Code gloablement unique de l'étape d'affaire. Si non fourni code=ID (Vachar(255))*/
    "deal_ID": "", /* Code affaire. Optionnel : reprendre le code affaire du bloc json "deal", si non fourni reprend automatiquement le code affaire (ForeignKey () - sw_data_deal.codedeal)*/
    "dealsteptype_ID": "DEAL_STEP-AFR-ANA" /* Code type d'étape d'affaire (ForeignKey () - sw_data_dealsteptype.codedealsteptype)*/
    "stepDate": "2023-09-12 10:00", /* Date-Heure de l'étape d'affaire. Si non fourni, on prend l'heure courrante (DateTime ())
    "comment": "" /* Commentaire (Text (65535))*/
  }]
}

Compléments :

  • A la fin de la création/modification d’une affaire, la mise à jour de l'étape actuelle sur l’affaire est possible en même temps que sa création. Le statut de l’affaire peut également évoluer en fonction du paramétrage des types d'étapes d’affaires. Exemple :

    {
      "deal": {
        "codedeal": "AFR000011", /* Code affaire*/
        "customer_ID": "C0000001", /* Code client*/
        "generictype_ID_dealType": "DEAL_DEALTYPE-AFR", /* Code type d'affaire*/       
        "dealstep_ID_current": "AFR000011-ANA" /* Code étape actuelle. Reprendre le code étape du bloc "dealstep" qui est en-dessous*/
        ...
      },
      "dealstep": [
      {
        "codedealstep": "AFR000011-ANA", /* Code étape d'affaire*/
        "dealsteptype_ID": "DEAL_STEP-AFR-ANA", /* Code type d'étape d'affaire*/
        ...
      }]
    }

verb: LIST
resultType: simple, extended reprendre les définitions du GET

"filters:" {
  "codeDeal": "value", filter is equal
  "dealNumber": "value", filter is equal
  "label": "value", filter is contains
  "creationDate": "value", filter is greater or equal to
  "creationDateBetween": "value1|value2", filter is between value1 and value2
  "codeCustomer": "value", filter is equal
  "dealType": "value", filter is equal
  "codeStatus": "value", filter is equal
  "externalReference": "value", filter is equal
},
"orderBy": "value"

Valeurs possibles pour le tri "orderBy" :

  • dealNumberAsc : par n° d'affaire ascendant

  • labelAsc : par intitulé ascendant

  • creationDateAsc : par date de création ascendant

  • creationDateDesc : par date de création descendant

verb: DELETE
La suppression d'une affaire (sw_data_deal) va supprimer en cascade les éléments liés dans la table sw_data_dealelement.

  • Aucune étiquette