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:

  1. Select the Microsoft Dynamics 365 destination you created earlier.

  2. Choose the target table in Dataverse, for example:

    • contacts

    • accounts

    • leads

    • A 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: contactid

  • accounts → primary key: accountid

  • leads → primary key: leadid

  • Custom 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 to contactid)

  • Example for accounts: account_id (mapped to accountid)

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:

DinMo attribute
Dynamics 365 column
Description

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:

DinMo attribute
Dynamics 365 column
Description

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:

  1. Resolve the GUID

    • Use the primary key field (contactid, accountid, etc.) from your model.

  2. Build a PATCH payload

    • Only the mapped fields are included in the payload.

  3. Send updates in batches

    • Batched calls to the Dataverse Web API, handling throttling and transient errors.

  4. 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).

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