Skip to main content

For admins

Microsoft Dynamics 365 Customer Insights Journeys integration

Better Email syncs a finished Campaign to Customer Insights - Journeys as an email, with its personalization, sender and compliance settings filled in, ready to use in a journey.

How the integration works​

What a sync creates. One email per Campaign and Destination, named after the Campaign. The first sync creates it as a draft; every later sync updates the same email. It carries:

  • the subject line and preview text;
  • a placeholder definition for every recipient field and condition, so Journeys resolves the personalization and dynamic content;
  • on the first sync only, the sender, compliance profile, purpose and topic set on the Destination.

What it doesn't touch. Better Email doesn't create journeys, segments or send schedules, and doesn't file the email in a folder. Images stay on Better Email's image CDN and aren't copied into the Journeys asset library.

What it reads. The column definitions of your audience table, never its records, and the definitions of the triggers that can start a journey. The brand profiles, senders and compliance records for the Destination's email settings picker. The placeholder definitions already on the email, so bindings made in the designer survive a sync. With performance data on, the journeys that use the email and its aggregate insights. No contact data leaves Dynamics.

Ownership. The Application User creates the email, so it owns the record. Who else can edit it depends on your security roles.

Environments. An integration connects to one Dataverse environment. For separate dev, test and production environments, create one integration per environment and sync the Campaign to each. Each environment gets its own email.

Set up​

1. Create the Application User​

  1. In Microsoft Entra, register a single-tenant app for Better Email and create a client secret. Copy the Application (client) ID, the Directory (tenant) ID and the secret value.
  2. In Power Platform admin center, open the Journeys environment, go to Settings › Users + permissions › Application users, and add an application user for that app.
  3. Give it a security role. Marketing Manager - Business is the simple option. For a custom role, grant what the features you use need:
Used forPrivileges
Syncing CampaignsCreate, Read, Write and Append on msdynmkt_email
Recipient field syncRead on the audience table: contact, lead or msdynci_customerprofile
Trigger fieldsRead on msdynmkt_eventmetadata, customapi and customapirequestparameter
Journeys email settingsRead and Append To on msdynmkt_brandprofile, msdynmkt_brandsender, msdynmkt_compliancesettings4, msdynmkt_purpose and msdynmkt_topic
Performance dataRead on msdynmkt_email, msdynmkt_journey and msdynmkt_journeydependency, and permission to run msdynmkt_ChartWidgetDataCustomAction and msdynmkt_ListWidgetDataCustomAction

2. Create the integration in Better Email​

  1. Go to Integrations, create an integration and choose Microsoft Dynamics 365 Customer Insights Journeys.
  2. Enter the Organization URL, Tenant ID, Client ID and Client Secret. Dataverse API Version defaults to v9.2.
  3. Choose the Audience your journeys address: Contact, Lead or Customer profile (Customer Insights - Data). See Choose the audience.
  4. Optional: turn on Sync recipient fields and Sync performance data.
  5. Enable and save the integration.

There is no OAuth popup; Better Email requests its own tokens with the client secret. Saving creates a default Destination.

3. Set the Journeys email settings on each Destination​

Journeys won't send an email without a sender, a compliance profile and a purpose. Set them on the Destination and new emails arrive with them:

  1. On the integration's Destinations tab, open a Destination.
  2. Under Journeys email settings, click Fetch from Journeys.
  3. Pick a Sender, a Compliance profile and a Purpose, and optionally a Topic, then save.

Profile and purpose go together: with only a profile chosen, neither is set. The settings apply when the first sync creates the email, so a later change in the Journeys designer stays. For several brands or senders, add one Destination per combination. The Destination also holds the Default subject and Default preheader under Delivery defaults, and, under Access, who may sync to it.

Changing the integration's Organization URL or Tenant ID clears these settings on every Destination, because they are records in the old environment.

Sync a Campaign​

On the Campaign's Review tab, click Sync to <integration name>. Review the new email in the Journeys designer and mark it Ready to send.

Subject and preheader. The Campaign's subject line and preheader go to the email's subject and Preview text. Without a subject, the sync uses the Destination's Default subject, then the Campaign name. Without a preheader, it uses the Default preheader, or leaves Preview text as it is.

Syncing again. Each sync through the same Destination updates the same email. A sync through another Destination creates a separate email. Each sync replaces the content and sets the email's name back to the Campaign name, so make changes in Better Email, not in the designer. Personalization bound in the designer stays for every name the email still uses; see Advanced: Journeys tokens.

Live emails. You can sync an email that is Ready to send and used in a live journey. It stays Ready to send, and live journeys send the new version after a minute or two.

More on this integration​

Troubleshooting​

  • Sync fails with an authentication error. Check that the organization URL is the right environment, that tenant ID, client ID and secret come from the same app registration, and that the secret hasn't expired.
  • Sync fails with a permission error. Check the Application User's role against the privileges table.
  • Fetch from Journeys lists no senders. Only active senders with a from address appear. Add one under Settings › Brand profiles in Journeys.
  • "The binding attribute is invalid or does not exist". A recipient field's ESP field name isn't a column of the audience table. See Fields added by hand.
  • A journey rejects the email's personalization. The integration's Audience doesn't match the journey's audience. See Choose the audience.
  • A trigger field is empty in sent emails. The journey starts with a different trigger than the Campaign's Journey trigger. Use the email in a journey started by that trigger. See Trigger fields.
  • Journeys warns about missing footer tokens. See Footer tokens.