Integrated customer master with power platform - modern-driven
Integrated customer master
Effective November 2020:
- Common Data Service has been renamed to Microsoft Dataverse. For more information, see Power Automate Blog.
- Some terminology in Microsoft Dataverse has been updated. For example, entity is now table and field is now column. For more information, see Terminology updates.
This topic will be updated soon to reflect the latest terminology.
Customer data can be mastered in more than one Dynamics 365 application. For example, a customer row can originate though sales activity in Dynamics 365 Sales (a model-driven app in Dynamics 365), or a row can originate through retail activity in Dynamics 365 Commerce (a Finance and Operations app). No matter where where the customer data originates, it is integrated behind the scenes. Integrated customer master gives you the flexibility to master customer data in any Dynamics 365 application and provides a comprehensive view of the customer across the Dynamics 365 application suite.
Customer data flow
Customer is a well-defined concept in applications. Therefore, the integration of customer data just involves harmonizing the customer concept between the two applications. The following illustration shows the customer data flow.
Customers can be broadly classified into two types: commercial/organizational customers and consumers/end users. These two types of customers are stored and handled differently in Finance and Operations and Dataverse.
In Finance and Operations, both commercial/organizational customers and consumers/end users are mastered in a single table that is named CustTable (CustCustomerV3Entity), and they are classified based on the Type attribute. (If Type is set to Organization, the customer is a commercial/organizational customer, and if Type is set to Person, the customer is a consumer/end user.) The primary contact person information is handled through the SMMContactPersonEntity table.
In Dataverse, commercial/organizational customers are mastered in the Account table and are identified as customers when the RelationshipType attribute is set to Customer. Both consumers/end users and the contact person are represented by the Contact table. To provide a clear separation between a consumer/end user and a contact person, the Contact table has a Boolean flag that is named Sellable. When Sellable is True, the contact is a consumer/end user, and quotations and orders can be created for that contact. When Sellable is False, the contact is just a primary contact person of a customer.
When a non-sellable contact participates in a quotation or order process, Sellable is set to True to flag the contact as a sellable contact. A contact that has become a sellable contact remains a sellable contact.
Templates
Customer data includes all information about the customer, such as the customer group, addresses, contact information, payment profile, invoice profile, and loyalty status. A collection of table maps works together during customer data interaction, as shown in the following table.
Finance and Operations apps | Other Dynamics 365 apps | Description |
---|---|---|
CDS Contacts V2 | contacts | This template synchronizes all primary, secondary, and tertiary contact information, for both customers and vendors. |
Customer groups | msdyn_customergroups | This template synchronizes customer group information. |
Customer payment method | msdyn_customerpaymentmethods | This template synchronizes customer payment method information. |
Customers V3 | accounts | This template synchronizes customer master information for commercial and organizational customers. |
Customers V3 | contacts | This template synchronizes customer master data for consumers and end users. |
Name affixes | msdyn_nameaffixes | This template synchronizes name affixes reference data, for both customers and vendors. |
Payment day lines CDS V2 | msdyn_paymentdaylines | This template synchronizes payment day lines reference data, for both customers and vendors. |
Payment days CDS | msdyn_paymentdays | This template synchronizes payment days reference data, for both customers and vendors. |
Payment schedule lines | msdyn_paymentschedulelines | Syncs payment schedule lines reference data, for both customers and vendors. |
Payment schedule | msdyn_paymentschedules | This template synchronizes payment schedule reference data, for both customers and vendors. |
Terms of payment | msdyn_paymentterms | This template synchronizes payment terms (terms of payment) reference data, for both customers and vendors. |
Mapping tables
Mapping types
There are several different mapping types. The following table explains the symbols used in the template tables.
Symbol | Description |
---|---|
> | One-way |
>> | One-way, and data is transformed in the process. |
= | Bidirectional |
>< | Bidirectional, and data is transformed in the process. |
<< | One-way, and data is transformed in the process. |
Filters
The source filter and reverse source filter determine which rows are synchronized.
Default values
If a synchronized field does not exist in either the Finance and Operations table or the other Dynamics 365 table, then a default value is assigned in the synchronized table. In some cases, the default value is an integer that is a lookup to an attribute value in the Common Data Model. For example, in the Contacts table of the Common Data Model, the default value of address1_addresstypecode is 3. In the Common Data Model, for address1AddressTypeCode the value of 3 is Primary address.
CDS Contacts V2 to contacts
This template synchronizes data between Finance and Operations apps and Dataverse.
Source filter: (AssociatedContactType = 1)
Reversed source filter: msdyn_contactforvendor eq true and msdyn_sellable eq false and msdyn_contactpersonid ne ''
Finance and Operations field | Map type | Customer engagement field | Default value |
---|---|---|---|
CONTACTPERSONPARTYNUMBER | = | msdyn_partynumber | |
ASSOCIATEDCONTACTTYPE | << | none | Vendor |
FIRSTNAME | = | firstname | |
MIDDLENAME | = | middlename | |
LASTNAME | = | lastname | |
ASSOCIATEDCONTACTNUMBER | = | msdyn_vendorcontactid.msdyn_vendoraccountnumber | |
PRIMARYADDRESSCITY | = | address1_city | |
PRIMARYADDRESSCOUNTRYREGIONID | = | address1_country | |
PRIMARYADDRESSCOUNTYID | = | address1_county | |
PRIMARYFAXNUMBER | = | fax | |
PRIMARYADDRESSSTATEID | = | address1_stateorprovince | |
PRIMARYADDRESSSTREET | = | address1_line1 | |
PRIMARYADDRESSZIPCODE | = | address1_postalcode | |
PRIMARYPHONENUMBER | = | telephone1 | |
PRIMARYEMAILADDRESS | = | emailaddress1 | |
EMPLOYMENTDEPARTMENT | = | department | |
NOTES | = | description | |
GENDER | >< | gendercode | |
GOVERNMENTIDENTIFICATIONNUMBER | = | governmentid | |
PRIMARYURL | = | websiteurl | |
MARITALSTATUS | >< | familystatuscode | |
ISRECEIVINGDIRECTMAIL | >< | donotemail | |
EMPLOYMENTPROFESSION | = | jobtitle | |
SPOUSENAME | = | spousesname | |
none | >> | msdyn_contactforvendor | True |
CONTACTPERSONID | = | msdyn_contactpersonid |
Customer groups to msdyn_customergroups
This template synchronizes data between Finance and Operations apps and Dataverse.
Finance and Operations field | Map type | Customer engagement field | Default value |
---|---|---|---|
CUSTOMERGROUPID | = | msdyn_groupid | |
DESCRIPTION | = | msdyn_description | |
ISSALESTAXINCLUDEDINPRICE | >< | msdyn_issalestaxincludedinprice | |
PAYMENTTERMID | = | msdyn_paymenttermid.msdyn_name | |
CLEARINGPERIODPAYMENTTERMNAME | = | msdyn_clearingperiodpaymenttermname.msdyn_name |
Customer payment method to msdyn_customerpaymentmethods
This template synchronizes data between Finance and Operations apps and Dataverse.
Finance and Operations field | Map type | Customer engagement field | Default value |
---|---|---|---|
NAME | = | msdyn_name | |
ACCOUNTTYPE | >< | msdyn_accounttype | |
DISCOUNTGRACEPERIODDAYS | = | msdyn_discountgraceperioddays | |
BRIDGINGPOSTINGENABLED | >< | msdyn_bridgingpostingenabled | |
ISSEPA | >< | msdyn_issepa | |
LASTFILENUMBER | = | msdyn_lastfilenumber | |
LASTFILENUMBERTODAY | = | msdyn_lastfilenumbertoday | |
DESCRIPTION | = | msdyn_description | |
PAYMENTTYPE | >< | msdyn_paymenttype | |
CREATEANDDRAWBILLOFEXCHANGEDURINGINVOICEPOSTING | >< | msdyn_invoiceupdate | |
PAYMENTSTATUS | >< | msdyn_paymentstatus | |
SUMBYPERIOD | >< | msdyn_sumbyperiod | |
ENABLEPOSTDATEDCHECKCLEARINGPOSTING | >< | msdyn_enablepostdatescheckclearingposting | |
BILLOFEXCHANGEDRAFTTYPE | >< | msdyn_billofexchangedrafttype | |
DIRECTDEBIT | >< | msdyn_directdebit |
Customers V3 to accounts
This template synchronizes data between Finance and Operations apps and Dataverse.
Source filter: ((PartyType == "Organization"))
Reversed source filter: customertypecode eq 3
Finance and Operations field | Map type | Customer engagement field | Default value |
---|---|---|---|
CUSTOMERACCOUNT | = | accountnumber | |
INVOICEADDRESSCITY | = | address2_city | |
INVOICEADDRESSCOUNTRYREGIONISOCODE | = | address2_country | |
INVOICEADDRESSCOUNTY | = | address2_county | |
INVOICEADDRESSLATITUDE | > | address2_latitude | |
INVOICEADDRESSLONGITUDE | > | address2_longitude | |
INVOICEADDRESSSTATE | = | address2_stateorprovince | |
INVOICEADDRESSSTREET | = | address2_line1 | |
INVOICEADDRESSZIPCODE | = | address2_postalcode | |
CREDITLIMIT | = | creditlimit | |
DELIVERYADDRESSCITY | = | address1_city | |
DELIVERYADDRESSCOUNTRYREGIONISOCODE | = | address1_country | |
DELIVERYADDRESSCOUNTY | = | address1_county | |
DELIVERYADDRESSLATITUDE | > | address1_latitude | |
DELIVERYADDRESSLONGITUDE | > | address1_longitude | |
DELIVERYADDRESSZIPCODE | = | address1_postalcode | |
ORGANIZATIONNAME | = | name | |
ORGANIZATIONNUMBEROFEMPLOYEES | = | numberofemployees | |
PRIMARYCONTACTEMAIL | = | emailaddress1 | |
PRIMARYCONTACTFAX | = | fax | |
PRIMARYCONTACTPHONE | = | telephone1 | |
PRIMARYCONTACTTWITTER | = | primarytwitterid | |
PRIMARYCONTACTURL | = | websiteurl | |
SALESCURRENCYCODE | = | transactioncurrencyid.isocurrencycode | |
SALESMEMO | = | description | |
CREDITLIMITISMANDATORY | >< | msdyn_creditlimitismandatory | |
CREDITRATING | = | msdyn_creditrating | |
CUSTOMERGROUPID | = | msdyn_customergroupid.msdyn_groupid | |
IDENTIFICATIONNUMBER | = | msdyn_identificationnumber | |
INVOICEACCOUNT | = | msdyn_billingaccount.accountnumber | |
INVOICEADDRESS | >< | msdyn_invoiceaddress | |
ISONETIMECUSTOMER | >< | msdyn_onetimecustomer | |
ONHOLDSTATUS | >< | msdyn_onholdstatus | |
PARTYCOUNTRY | = | msdyn_partycountry | |
PARTYSTATE | = | msdyn_partystateprovince | |
PAYMENTDAY | = | msdyn_paymentday.msdyn_name | |
PAYMENTMETHOD | = | msdyn_customerpaymentmethod.msdyn_name | |
PAYMENTSCHEDULE | = | msdyn_paymentschedule.msdyn_name | |
PAYMENTTERMS | = | msdyn_paymentterm.msdyn_name | |
PAYMENTTERMSBASEDAYS | = | msdyn_paymenttermsbasedays | |
PRIMARYCONTACTFACEBOOK | = | msdyn_primaryfacebookid | |
PRIMARYCONTACTFAXEXTENSION | = | msdyn_faxextension | |
PRIMARYCONTACTLINKEDIN | = | msdyn_primarylinkedinid | |
TAXEXEMPTNUMBER | = | msdyn_taxexemptnumber | |
VENDORACCOUNT | = | msdyn_vendor.msdyn_vendoraccountnumber | |
PRIMARYCONTACTEMAILDESCRIPTION | = | msdyn_emailaddress1description | |
PRIMARYCONTACTFACEBOOKDESCRIPTION | = | msdyn_primaryfacebookdescription | |
PRIMARYCONTACTFAXDESCRIPTION | = | msdyn_faxdescription | |
PRIMARYCONTACTLINKEDINDESCRIPTION | = | msdyn_primarylinkedindescrption | |
PRIMARYCONTACTPHONEDESCRIPTION | = | msdyn_telephone1description | |
PRIMARYCONTACTPHONEEXTENSION | = | msdyn_telephone1extension | |
PRIMARYCONTACTTWITTERDESCRIPTION | = | msdyn_primarytwitteriddescription | |
PRIMARYCONTACTURLDESCRIPTION | = | msdyn_websiteurldescription | |
LANGUAGEID | << | none | en-us |
DELIVERYADDRESSSTREET | = | address1_line1 | |
DELIVERYADDRESSSTATE | = | address1_stateorprovince | |
none | >> | address1_addresstypecode | 2 |
none | >> | customertypecode | 3 |
PARTYTYPE | << | none | Organization |
PARTYNUMBER | = | msdyn_partynumber | |
CONTACTPERSONID | = | primarycontactid.msdyn_contactpersonid |
Customers V3 to contacts
This template synchronizes data between Finance and Operations apps and Dataverse.
Source filter: ((PartyType == "Person"))
Reversed source filter: msdyn_sellable eq true and msdyn_contactpersonid ne ''
Finance and Operations field | Map type | Customer engagement field | Default value |
---|---|---|---|
none | >> | msdyn_sellable | True |
PARTYTYPE | << | none | Person |
PARTYNUMBER | = | msdyn_partynumber | |
CUSTOMERACCOUNT | = | msdyn_contactpersonid | |
CUSTOMERGROUPID | = | msdyn_customergroupid.msdyn_groupid | |
PERSONFIRSTNAME | = | firstname | |
PERSONLASTNAME | = | lastname | |
PERSONMIDDLENAME | = | middlename | |
PERSONPROFESSIONALTITLE | = | jobtitle | |
PERSONGENDER | >< | gendercode | |
PERSONMARITALSTATUS | >< | familystatuscode | |
LANGUAGEID | << | none | en-us |
ADDRESSCITY | = | address1_city | |
ADDRESSCOUNTRYREGIONISOCODE | = | address1_country | |
ADDRESSCOUNTY | = | address1_county | |
ADDRESSLATITUDE | > | address1_latitude | |
ADDRESSLONGITUDE | > | address1_longitude | |
ADDRESSLOCATIONROLES | << | none | Business |
ADDRESSSTATE | = | address1_stateorprovince | |
ADDRESSSTREET | = | address1_line1 | |
ADDRESSZIPCODE | = | address1_postalcode | |
ADDRESSPOSTBOX | = | address1_postofficebox | |
none | >> | address1_addresstypecode | 3 |
INVOICEADDRESSCITY | = | address2_city | |
INVOICEADDRESSCOUNTRYREGIONISOCODE | = | address2_country | |
INVOICEADDRESSCOUNTY | = | address2_county | |
INVOICEADDRESSLATITUDE | > | address2_latitude | |
INVOICEADDRESSLONGITUDE | > | address2_longitude | |
INVOICEADDRESSSTATE | = | address2_stateorprovince | |
INVOICEADDRESSSTREET | = | address2_line1 | |
INVOICEADDRESSZIPCODE | = | address2_postalcode | |
DELIVERYADDRESSCITY | = | address3_city | |
DELIVERYADDRESSCOUNTRYREGIONISOCODE | = | address3_country | |
DELIVERYADDRESSCOUNTY | = | address3_county | |
DELIVERYADDRESSLATITUDE | > | address3_latitude | |
DELIVERYADDRESSLONGITUDE | >> | address3_longitude | |
DELIVERYADDRESSSTATE | = | address3_stateorprovince | |
DELIVERYADDRESSSTREET | = | address3_line1 | |
DELIVERYADDRESSZIPCODE | = | address3_postalcode | |
PRIMARYCONTACTEMAIL | = | emailaddress1 | |
PRIMARYCONTACTEMAILDESCRIPTION | = | msdyn_emailaddress1description | |
PRIMARYCONTACTFAX | = | fax | |
PRIMARYCONTACTFAXDESCRIPTION | = | msdyn_faxdescription | |
PRIMARYCONTACTFAXEXTENSION | = | msdyn_faxextension | |
IDENTIFICATIONNUMBER | = | msdyn_identificationnumber | |
PARTYCOUNTRY | = | msdyn_partycountry | |
PARTYSTATE | = | msdyn_partystateprovince | |
PRIMARYCONTACTFACEBOOK | = | msdyn_primaryfacebookid | |
PRIMARYCONTACTFACEBOOKDESCRIPTION | = | msdyn_primaryfacebookdescription | |
PRIMARYCONTACTLINKEDIN | = | msdyn_primaryinkedinid | |
PRIMARYCONTACTLINKEDINDESCRIPTION | = | msdyn_primarylinkedindescrption | |
PRIMARYCONTACTPHONE | = | telephone1 | |
PRIMARYCONTACTPHONEDESCRIPTION | = | msdyn_telephone1description | |
PRIMARYCONTACTPHONEEXTENSION | = | msdyn_telephone1extension | |
PRIMARYCONTACTTWITTER | = | msdyn_primarytwitterid | |
PRIMARYCONTACTTWITTERDESCRIPTION | = | msdyn_primarytwitteriddescription | |
PRIMARYCONTACTURL | = | websiteurl | |
PRIMARYCONTACTURLDESCRIPTION | = | msdyn_websiteurldescription | |
SALESCURRENCYCODE | = | transactioncurrencyid.isocurrencycode | |
SALESMEMO | = | description |
Name affixes to msdyn_nameaffixes
This template synchronizes data between Finance and Operations apps and Dataverse.
Finance and Operations field | Map type | Customer engagement field | Default value |
---|---|---|---|
AFFIX | = | msdyn_affix | |
TYPE | >< | msdyn_affixtype | |
DESCRIPTION | = | msdyn_description |
Payment day lines CDS V2 to msdyn_paymentdaylines
This template synchronizes data between Finance and Operations apps and Dataverse.
Finance and Operations field | Map type | Customer engagement field | Default value |
---|---|---|---|
NAME | = | msdyn_paymentday.msdyn_name | |
LINENUMBER | = | msdyn_linenumber | |
FREQUENCY | >< | msdyn_frequency | |
DAYOFWEEK | >< | msdyn_dayofweek | |
DAYOFMONTH | = | msdyn_dayofmonth |
Payment days CDS to msdyn_paymentdays
This template synchronizes data between Finance and Operations apps and Dataverse.
Finance and Operations field | Map type | Customer engagement field | Default value |
---|---|---|---|
NAME | = | msdyn_name | |
DESCRIPTION | = | msdyn_description |
Payment schedule lines to msdyn_paymentschedulelines
This template synchronizes data between Finance and Operations apps and Dataverse.
Finance and Operations field | Map type | Customer engagement field | Default value |
---|---|---|---|
PAYMENTSCHEDULENAME | = | msdyn_paymentschedule.msdyn_name | |
LINENUMBER | = | msdyn_linenumber | |
PERIODSAFTERDUEDATE | = | msdyn_periodsafterduedate | |
PERCENTORAMOUNT | >< | msdyn_percentoramount | |
PERCENTORAMOUNTVALUE | = | msdyn_percentoramountvalue |
Payment schedule to msdyn_paymentschedules
This template synchronizes data between Finance and Operations apps and Dataverse.
Finance and Operations field | Map type | Customer engagement field | Default value |
---|---|---|---|
NAME | = | msdyn_name | |
DESCRIPTION | = | msdyn_description | |
ALLOCATIONMETHOD | >< | msdyn_allocationmethod | |
PAYMENTFREQUENCYUNITS | >< | msdyn_paymentfrequencyunit | |
PAYMENTFREQUENCY | = | msdyn_paymentfrequency | |
NUMBEROFPAYMENTS | = | msdyn_numberofpayments | |
FIXEDPAYMENTAMOUNT | = | msdyn_fixedpaymentamount | |
MINIMUMPAYMENTAMOUNT | = | msdyn_minimumpaymentamount | |
SALESTAXALLOCATIONMETHOD | >< | msdyn_salestaxallocationmethod | |
NOTES | = | msdyn_note |
Terms of payment to msdyn_paymentterms
This template synchronizes data between Finance and Operations apps and Dataverse.
Finance and Operations field | Map type | Customer engagement field | Default value |
---|---|---|---|
DESCRIPTION | = | msdyn_description | |
NAME | = | msdyn_name | |
NUMBEROFMONTHS | = | msdyn_numberofmonth | |
CUTOFFDAYOFMONTH | = | msdyn_cutoffdayofmonth | |
ISCASHPAYMENT | >< | msdyn_iscashpayment | |
NUMBEROFDAYS | = | msdyn_days | |
ISCERTIFIEDCOMPANYCHECK | >< | msdyn_iscertifiedcompanycheck | |
ISDEFAULTPAYMENTTERM | >< | msdyn_isdefaultpaymentterm | |
CREDITCARDPAYMENTTYPE | >< | msdyn_creditcardpaymenttype | |
CREDITCARDCREDITCHECKTYPE | >< | msdyn_creditcardcreditchecktype | |
PAYMENTDAYNAME | = | msdyn_paymentdayname.msdyn_name | |
PAYMENTMETHODTYPE | >< | msdyn_paymentmethodtype | |
PAYMENTSCHEDULENAME | = | msdyn_paymentschedulename.msdyn_name |
posted on 2021-03-17 16:00 lingdanglfw 阅读(190) 评论(0) 编辑 收藏 举报