WebHook Customer Contact (V5.3)

Résumé

Manipulation de l'entité CustomerContact (Contacts des clients) en lecture/écriture/suppression via un objet métier depuis une application externe.

Tables

Les tables utilisées sont :

  • sw_data_customercontact : Table des contacts des tiers

Les tables liées sont :

  • sw_data_customeraddresscustomercontact : Table des adresses liées aux contacts du tiers

Critères d'activation

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

Règles métier

verb: PUT

  • Contact principal

    • A la fin de la création/modification d’un contact si celui-ci est un contact principal (sw_data_customercontact.mainContact = 1) et que le client rattaché est un particulier (sw_data_customer.isIndividual = 1), le client sera automatiquement mis à jour

Fonctionnement

verb: GET
resultType: simple

"customercontact":{ "codecustomercontact":"C0000001-DJ", "customer_ID":"C0000001", "generictype_ID_civility":"M", "lastName":"DENEIR", "firstName":"Jacques", "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", "generictype_ID_country":"FR", "generictype_ID_province":"", "baseculture_ID":"" }

verb: GET
resultType: extended

"customercontact":{ "codecustomercontact":"C0000001-DJ", "customer_ID":"C0000001", "generictype_ID_civility":"M", "lastName":"DENEIR", "firstName":"Jacques", "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", "generictype_ID_country":"FR", "generictype_ID_province":"", "baseculture_ID":"", "gpsLongitude":"", "gpsLatitude":"", "description":"Acheteur direct", "generictype_ID_position":"Responsable commercial", "birthday":"1980-09-18", "mainContact":"0", "generictype_ID_service":"Commercial", "skype":"", "bouncedEmailDetected":"", "closedDate":"", "twitter":"", "linkedin":"", "decisionMaker":"", "customercontact_ID_superior":"", "topFlowchartLevel": "", "erpContactID":"" }

verb: GET
resultType: extendedRelated
en complément du résultat pour resultType: extended on aura le détail pour les tables customer, generictype_civility, generictype_position, generictype_country, generictype_ID_province, generictype_service et baseculture

"related":[ { "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", "gpsPrecision":"8", "gpsUpdateDate":"2020-09-03 23:02:12", "gpsManual":"", "accountNumber":"C0000001", "contactName":"", "currency_ID":"", "authorizedCredit":"0", "risk":"1", "language":"", "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":"FR", "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":"" }, "generictype_civility":{ "codegenerictype":"CIVILITY-M", "label":"Monsieur", "originalCode":"M", "dataType":"CIVILITY", "description":"", "translationKey":"GenType_CIVILITY-M", "generictype_ID_parent":"", "tag":"", "orderNumber":"" }, "generictype_country": { "codegenerictype": "COUNTRY-FR", "label": "FRANCE", "originalCode": "FR", "dataType": "COUNTRY", "description": "", "translationKey": "GenType_COUNTRY-FR", "generictype_ID_parent": "", "tag": "", "orderNumber": "" }, "generictype_province": { "codegenerictype": "", "label": "", "originalCode": "", "dataType": "", "description": "", "translationKey": "", "generictype_ID_parent": "", "tag": "", "orderNumber": "" }, "baseculture": { "codebaseculture": "FR-FR", "label": "French - France", "codelanguage": "FR" }, "generictype_position": { "codegenerictype": "CONTACT_POSITION-2", "label": "Responsable commercial", "originalCode": "2", "dataType": "CONTACT_POSITION", "description": "", "translationKey": "GenType_CONTACT_POSITION-2", "generictype_ID_parent": "", "tag": "", "orderNumber": "" }, "generictype_service": { "codegenerictype": "SERVICE-COMM", "label": "Commercial", "originalCode": "COMM", "dataType": "SERVICE", "description": "", "translationKey": "", "generictype_ID_parent": "", "tag": "", "orderNumber": "" } }]

verb: PUT

{ "customercontact": { "codecustomercontact": "C0000001-DJ", /* Code globalement unique de contact client (Varchar (255))*/ "customer_ID": "C0000001", /* Code client (ForeignKey () - sw_data_customer.codecustomer)*/ "generictype_ID_civility": "CIVILITY-Mr", /* Code civilité (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = CIVILITY)*/ "lastName": "DENEIR", /* Nom (Varchar (255))*/ "firstName": "Jacques", /* Prénom (Varchar (255))*/ "address1": "1b rue Darwin", /* Adresse 1 (Varchar (255))*/ "address2": null, /* Adresse 2 (Varchar (255))*/ "address3": null, /* Adresse 3 (Varchar (255))*/ "postalCode": "21000", /* Code postal (Varchar (16))*/ "city": "DIJON", /* Ville (Varchar (64))*/ "phoneNumber": "05 55 79 56 92", /* N° de téléphone (Varchar (64))*/ "mobilePhoneNumber": "06 07 08 09 10", /* N° de portable (Varchar (64))*/ "faxNumber": "05 55 79 56 11", /* N° de télécopie (Varchar (64))*/ "email": "jdeneir@nebout.div", /* Email (Varchar (255))*/ "description": "Acheteur direct", /* Description (Varchar (255))*/ "generictype_ID_position": "CONTACT_POSITION-rcom", /* Code fonction (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = CONTACT_POSITION)*/ "generictype_ID_country": "COUNTRY-FR", /* Code pays (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = COUNTRY)*/ "generictype_ID_province": null, /* Code province (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = PROVINCE)*/ "generictype_ID_service": "SERVICE-CIAL", /* Code service(ForeignKey () - sw_data_generictype.codegenerictype avec datatype = SERVICE)*/ "birthday": "1980-09-18", /* Date d'anniversaire (DateTime ())*/ "mainContact": "0", /* Contact principal (Valeurs possibles : 0,1) (Bool ())*/ "baseculture_ID": "", /* Code culture (ForeignKey () - sw_data_baseculture.codebaseculture)*/ "bouncedEmailDetected": "", /* Date email NPAI (N'habite Pas/Plus à l’Adresse Indiquée) (DateTime ())*/ "closedDate": "", /* Date d'archivage (DateTime ())*/ "skype": "", /* Skype (Varchar (255))*/ "twitter": "", /* Twitter (Varchar (255))*/ "linkedin": "", /* LinkedIn (Varchar (255))*/ "decisionMaker", "0" /* Décideur (Valeurs possibles : 0,1) (Bool ())*/ "customercontact_ID_superior": "", /* Supérieur hiérarchique (ForeignKey () - sw_data_customercontact.codecustomercontact)*/ "topFlowchartLevel": "0", /* Niveau supérieur de l'organigramme (Valeurs possibles : 0,1) (Bool ())*/ "erpContactID": "", /* ID contact ERP (Varchar (255))*/ "fileBase64": "iVBORw0KGgoAAAANSUhEUgAAAEsAAACQCAYAAABAt5Y ....", /* Fichier du profil du contact encodé en base 64 (MediumBlob ())*/ "internalcodecustomercontact": null, /* CodeCustomerContact 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": "t10", "fieldvalue": "Formation marketing 2.0" }, { "fieldname": "t20", "fieldvalue": "Formation commerciale expert" }, { ... }] /* 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_t10": "Formation marketing 2.0", "v_t20": "Formation commerciale expert", ... }, "customeraddresscustomercontact": [ { "codecustomeraddresscustomercontact": "", /* Code globalement unique d'un lien d'adresse. Si non fourni code=ID (Vachar(255))*/ "customercontact_ID": "", /* Code contact. Optionnel : reprendre le code contact du bloc json "customercontact", si non fourni reprend automatiquement le code contact (ForeignKey () - sw_data_customercontact.codecustomercontact)*/ "customeraddress_ID" : "C0000001-SXB" /* Code de l'adresse. (ForeignKey () - sw_data_customeraddress.codecustomeraddress)*/ } ] }

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

"filters:" { "codeCustomerContact": "value", filter is equal "codeCustomer": "value", filter is equal "lastName": "value", filter is contains "firstName": "value", filter is contains "birthday": "value", filter is greater or equal to "birthdayBetween": "value1|value2", filter is between value1 and value2 "codeCountry": "value", filter is equal "email": "value", filter is equal "emailDomain": "value", filter is endswith (ie "emailDomain": "@domaine.extension") "notClosedBefore": "value", filter is (closedDate is null OR closedDate > value) "closedAfter": "value", filter is closedDate > value "closedBefore": "value" filter is closedDate < value }, "orderBy": "value"

Valeurs possibles pour le tri "orderBy" :

  • lastNameAscfirstNameAsc : par nom et prénom ascendant