Synchronise object attributes
Activation configuration
Once the Dynamics 365 destination is connected, you can create an activation to sync a DinMo audience into a Dataverse table (e.g. contacts, accounts, or a custom table).
1. Choose the target object
When creating an activation:
Select the Microsoft Dynamics 365 destination you created earlier.
Choose the target table in Dataverse, for example:
contactsaccountsleadsA custom table (e.g.
new_loyaltymember)
DinMo will display the list of available tables exposed by the Web API.
2. Primary key strategy – GUID only
DinMo uses the Dataverse GUID as the unique identifier for all activations.
For each target table:
contacts→ primary key:contactidaccounts→ primary key:accountidleads→ primary key:leadidCustom tables →
{logicalname}id(e.g.new_loyaltymemberid)
In your DinMo model, you must expose a column that contains this GUID:
Example for contacts:
contact_id(mapped tocontactid)Example for accounts:
account_id(mapped toaccountid)
Behaviour with GUIDs
If the GUID is present in the incoming record:
DinMo performs an update (PATCH) on the corresponding row in Dataverse.
If the GUID is empty or null:
By default, DinMo skips the record (no creation).
This keeps the behaviour deterministic and avoids accidental record creation.
Recommended workflow:
Use your initial Dynamics → warehouse ingestion to populate GUIDs.
Build DinMo models on top of that data and let DinMo update the existing records in Dynamics via the GUID.
(If later you want a “Create & update” mode, you can extend this behaviour to create new rows when the GUID is empty, then push the new GUIDs back to the warehouse via your ingestion jobs.)
3. Field mapping examples
For each activation, you configure field mappings between DinMo attributes and Dataverse columns.
Example – Contacts
Typical mapping from a DinMo “Customers” model to contacts:
contact_id
contactid
GUID primary key (required for updates)
email
emailaddress1
Main email address
phone
mobilephone
Mobile phone
first_name
firstname
First name
last_name
lastname
Last name
country
address1_country
Country
city
address1_city
City
postal_code
address1_postalcode
Postal code
lifetime_value
new_ltv
Custom decimal field for LTV
churn_risk_score
new_churnriskscore
Custom score field
segment_name
new_segment
Custom text field representing a segment
You can map any DinMo attribute to any writable Dataverse column, including custom fields.
Example – Accounts
Mapping from a DinMo “Companies” model to accounts:
account_id
accountid
GUID primary key
company_name
name
Account name
industry
industrycode or custom field
Industry sector
billing_country
address1_country
Billing country
billing_city
address1_city
Billing city
billing_postcode
address1_postalcode
Billing postcode
account_tier
new_customertier
Custom field for tiering
4. Sync behaviour
For each activation, DinMo will:
Resolve the GUID
Use the primary key field (
contactid,accountid, etc.) from your model.
Build a PATCH payload
Only the mapped fields are included in the payload.
Send updates in batches
Batched calls to the Dataverse Web API, handling throttling and transient errors.
Skip records without GUID
No creation is attempted if the primary key is empty.
You can control:
Activation frequency (e.g. hourly, daily).
Sync mode (Upsert, Insert or Update only - logic based on your DinMo model).
5. Recommended modelling
To make this integration clean and predictable:
Keep a dedicated field for the Dataverse GUID in your dimension tables, for example:
contact_id(GUID from Dynamics)account_id
Avoid overloading it with internal warehouse IDs.
Use that GUID consistently:
In your ingestion from Dynamics to the warehouse.
In your DinMo models and activations back to Dynamics.
This keeps Dynamics as the “source of truth” for identity, and DinMo as the decision and activation layer on top of it.
Last updated