Skip to content

Microsoft Dynamics

Signals reads leads, contacts and status changes from Microsoft Dynamics on a schedule and sends the fields you mapped on to your ad platforms.

Dynamics offers two ways to authenticate. Client Credentials uses an Azure app registration, so expect to need someone with Azure access alongside you. OAuth needs only the domain name and a sign-in.

The Leads module is supported. It holds both the contact details destinations match on and the status that carries the outcome.

  • A Microsoft Dynamics account holding the records you intend to sync, in the module you intend to read: Leads. The fields you intend to map must already exist.
  • Administrator access to your Dynamics 365 environment, and to Microsoft Entra ID if you authenticate with client credentials. You need it to register the application and grant read access to the Leads module and its records.
  • A single-select field on the Leads module holding each lead’s stage, such as New, Contacted, Qualified, Won or Lost. Each value maps to a conversion event, so a lead left on a stale stage reports the wrong one.

In Studio, open Sources, find the CRM category, and click the MS Dynamics tile. Two authentication types are available, Client Credentials and OAuth. Choose one before entering anything.

Client Credentials. Enter the five values below, then click Validate Credentials.

FieldWhere to find it
Dynamics Domain NameThe domain of your Dynamics 365 account, visible in the browser address bar once you are signed in.
Web API EndpointIn Microsoft Power Apps, open Settings, then Developer Resources.
Application Client IDIn Microsoft Entra ID, open App Registrations and create or open a registration.
Client SecretGenerated on that registration. Copy the Value field, not the secret ID, and note that Azure shows it once.
Tenant IDAlso called the Directory ID, shown on the same registration.

OAuth. Enter the Dynamics Domain Name only, then sign in from that screen. Nothing else is asked for, because the sign-in supplies the rest.

Select the Integration Type based on where the data needs to be sent. The options are Offline Events, Audience, Meta CAPI CRM, Google Leads, TikTok Leads, Snapchat Leads and LinkedIn Leads. The choice decides which fields you are asked to map and which destinations the connection can feed, so settle it first. Then choose the Leads module and give the instance a name.

Map your Microsoft Dynamics fields onto the schema Signals expects. Each field is a dropdown of your own fields, so nothing has to be renamed in the CRM. What you are asked to map depends on the integration type.

GroupFields
ConfigurationEvent name, event time, last modified date, lead lifecycle stage.
Personal informationEmail, phone, first name, last name, city, state, country, postcode, gender, date of birth, Facebook click ID, Google click ID, OpenAI identifier, source URL.
ProductTotal value, currency, product type, name, category, ID, brand, price, quantity, transaction ID, number of items.

Click Test Connection before finishing. It checks both that the credentials still work and that the mapped fields actually contain data, so a mapping pointed at an empty field fails here rather than silently later.

One instance is configured for one integration type. To feed a different integration type, configure it on a new instance from the Manage existing instance table. To change an existing one, open it from the Manage existing instance table, click the edit option in the menu to the top right, update the fields and click Finish.

Only the fields you map are read. Personal identifiers are normalized and SHA-256 hashed before they are sent to any destination.

Email, phone, name and location are what destinations match on. Value, currency and product fields describe the conversion rather than the person, so they do not affect match rates.

  • If you map a platform lead ID such as the Meta Lead ID, keep that field as text. A numeric field truncates long IDs, which is the most common cause of lead conversions never matching.
  • Record the client secret expiry date when you create it. An expired secret stops the connection and nothing warns you beforehand.
  • Ensure the module holds personal information such as email address and phone number. Destinations weight these highest, so records without them match at a much lower rate.
  • Maintaining consistent formatting in Microsoft Dynamics helps match rates: email addresses in lowercase, phone numbers in E.164 format, and no trailing spaces.

Syncing stopped with no configuration change. The Azure client secret has probably expired. Generate a new one and re-validate.

Match rates are low. Map more identifiers and fix formatting at source. A hash only matches if both sides normalized the value the same way.