Ellipse Gradient for Header
Dynamics 365 Customer Insights logo

Dynamics 365 Customer Insights Integration Guide

Integrate unified customer profiles, segments, journeys, and engagement data through Customer Insights REST APIs, Dataverse, events, exports, and Microsoft Entra ID.

Dynamics 365 Customer Insights integration options at a glance

Dynamics 365 Customer Insights provides REST-based integration through Customer Insights - Data APIs and the Dataverse Web API. These interfaces support unified customer profiles, segments, measures, activities, Contacts, Accounts, Leads, and journey-related data. Selected Customer Insights - Journeys and Dataverse scenarios also support event or trigger-based processing, while batch, asynchronous, export, and Azure Data Lake Storage patterns support larger data movements. Dataverse file columns and supported ingestion paths cover selected file scenarios. Martini can authenticate with Microsoft Entra ID OAuth 2.0, orchestrate API calls and polling, transform JSON payloads, apply business rules, and expose reusable APIs for downstream systems.

Integration pointSupported by Dynamics 365 Customer Insights?Common use casesHow Martini supports it
REST APIsYesCustomer Insights - Data APIs provide access to unified customer profiles, segments, measures, activities, and related operations. The Dataverse Web API supports Customer Insights - Journeys and other Dataverse tables.Martini can consume the APIs, handle OAuth-authenticated requests, paginate through responses, map JSON, apply business rules, and expose normalized REST APIs.
AuthenticationYesMicrosoft Entra ID OAuth 2.0 is the standard authentication model for Dataverse Web API and related Microsoft cloud APIs. Dataverse roles and product permissions control authorization.Martini can store client credentials or certificates in secure configuration, request tokens for the correct resource, and use protected workflow API calls.
Bulk / async / batch APIsYesDataverse supports $batch operations, while Customer Insights ingestion, refresh, export, and some processing operations may complete asynchronously.Martini can submit batches or jobs, retain operation identifiers, poll status with controlled scheduling, and route failed operations to retry or exception workflows.
Webhooks / outbound callbacksLimitedSelected Customer Insights - Journeys and Dataverse scenarios provide event or trigger-based processing, but coverage is not universal across Customer Insights objects.Martini can receive supported webhook-style notifications or event calls, validate payloads, enrich identifiers through APIs, and protect downstream writes against duplicates.
File / attachment APIsLimitedDataverse supports file columns and related file operations. Customer Insights - Data also supports configured data-source and export workflows, but not a universal attachment API for every object.Martini can process supported file or export flows and distinguish Dataverse file columns from Customer Insights analytical exports.
Database / analytics accessLimitedCustomer Insights - Data supports export-oriented analytical patterns such as Azure Data Lake Storage, with related consumption through Microsoft analytical services. Direct access to managed internal databases is not the normal approach.Martini can orchestrate exports, retrieve or process approved export data, transform it, and load a target analytical platform; it should not assume direct product-database access.
SOAP APIsLegacyOlder Dynamics CRM and Dataverse integrations used SOAP Organization Service endpoints, but SOAP is not recommended for new Customer Insights implementations.Martini can consume SOAP services when a legacy endpoint is unavoidable, while new workflows should prefer the Dataverse Web API or product-specific REST APIs.

How Dynamics 365 Customer Insights exposes data and business events

Dynamics 365 Customer Insights REST APIs

Customer Insights - Data exposes REST APIs for unified customer profiles, segments, measures, activities, and related product operations. The Dataverse Web API provides OData v4 access to tables used by Customer Insights - Journeys and related Dynamics 365 applications.

Martini implementation pattern

Martini implementation pattern: Martini authenticates with Microsoft Entra ID, calls the appropriate Customer Insights or Dataverse endpoint, follows pagination links, maps JSON into a canonical model, and invokes downstream APIs or exposes a normalized Martini API.

Implementation sequence

Obtain an OAuth 2.0 access token for the target Microsoft resource
Call the Customer Insights - Data API or Dataverse Web API
Follow returned pagination or continuation links
Map the response into the canonical integration model
Apply validation, consent, and business rules
Upsert or publish the transformed result

Dataverse batch and asynchronous operations

Dataverse supports $batch requests, while Customer Insights ingestion, refresh, export, and some processing operations can be asynchronous. These operations require workflow logic beyond a single request and response.

Martini implementation pattern

Martini implementation pattern: Martini submits a batch or long-running operation, stores the operation identifier, polls status with bounded scheduling, and routes completed output to transformation and loading steps.

Implementation sequence

Submit the batch or asynchronous Customer Insights operation
Store the operation or job identifier
Poll status using a controlled schedule
Retrieve completed results or export data
Transform and load the output
Route failed or timed-out jobs to an error path

Customer Insights events and triggers

Customer Insights - Journeys and Dataverse support selected business-event and trigger-based scenarios, including external event triggers for some real-time journeys. Event coverage and delivery behavior vary by object and configuration.

Martini implementation pattern

Martini implementation pattern: Martini receives a supported notification, validates the event and its source, retrieves complete data when the payload is only an identifier, enriches it from other APIs, and applies duplicate protection before side effects.

Implementation sequence

Receive the supported event or trigger notification
Validate the event type, source, and required identifiers
Check the event or business key for prior processing
Retrieve complete customer or journey data when required
Enrich and map the event for the target system
Retry transient failures and record permanent exceptions

Customer Insights export and data lake flows

Customer Insights - Data supports export-oriented data movement, including configured Azure Data Lake Storage Gen2 scenarios. Export and refresh operations may not complete synchronously.

Martini implementation pattern

Martini implementation pattern: Martini starts or monitors the approved export process, waits for completion, retrieves the exported profiles, measures, segments, or activities, and loads a reporting or warehouse target.

Implementation sequence

Start or identify the configured Customer Insights export
Persist the export or refresh operation identifier
Poll until the operation completes or fails
Read the approved export destination
Transform data into the target analytical schema
Record the source watermark and load outcome

Dataverse file and data operations

Dataverse supports file columns and related file operations, while Customer Insights data-source ingestion and exports have their own supported file and storage paths. These mechanisms are not a universal attachment interface.

Martini implementation pattern

Martini implementation pattern: Martini identifies whether the payload is a Dataverse file column, a record attachment, or an analytical export, then routes it through the appropriate API or file-processing workflow.

Implementation sequence

Identify the file, attachment, or export type
Retrieve metadata and the source object identifier
Download or receive the supported file content
Validate format, size, and associated record
Transform or route the file to the target system
Record processing status without exposing sensitive content

Common Dynamics 365 Customer Insights integration patterns

Pattern 1: Synchronize unified profiles and segments

When to use this pattern

Use this pattern when Customer Insights - Data is the source for unified profiles, calculated measures, or segment memberships that must be reflected in a sales, marketing, or customer-service application.

Integration direction
Dynamics 365 Customer Insights
Martini
Salesforce
Example Mapping
Dynamics 365 Customer Insights FieldCanonical FieldTarget Field
profileIdcustomer.externalIdExternalCustomerId
profile.emailcustomer.emailEmail
segmentMembershipscustomer.audiencesCampaignMemberships
measures.lifetimeValuecustomer.lifetimeValueCustomerLifetimeValue
Martini implementation pattern

A Martini workflow retrieves profiles or segment data through the Customer Insights - Data API or an export, follows pagination, filters records by consent and eligibility, and maps the result to the target audience model. It uses an external customer identifier for idempotent upserts, records a high-water mark, and retries throttled or transient calls without repeating completed side effects.

Martini capabilities used
  • workflows
  • API consumption
  • data mapping
  • business rules
  • pagination handling
  • error handling

Pattern 2: Synchronize sales audiences with Customer Insights

When to use this pattern

Use this pattern when Contacts, Accounts, or Leads from Dataverse or Dynamics 365 Sales must become eligible audiences for Customer Insights - Journeys or Customer Insights - Data.

Integration direction
Dynamics 365 Sales
Martini
Dynamics 365 Customer Insights
Example Mapping
Dynamics 365 Customer Insights FieldCanonical FieldTarget Field
contactidcustomer.sourceIdsourceCustomerId
emailaddress1customer.emailemail
parentcustomeridcustomer.accountIdaccountId
statuscodecustomer.lifecycleStatusstatus
Martini implementation pattern

Martini consumes Dataverse records using $select, $filter, and continuation links, validates required fields and consent status, and transforms sales objects into the configured Customer Insights ingestion or audience shape. The workflow applies business-unit and eligibility rules, supports incremental retrieval, and isolates authorization or schema failures from retryable throttling.

Martini capabilities used
  • workflows
  • REST API consumption
  • JSON transformation
  • data mapping
  • validation
  • retry handling

Pattern 3: Orchestrate real-time journey events

When to use this pattern

Use this pattern for supported Customer Insights - Journeys or Dataverse events that need enrichment, routing, or action in another application or messaging endpoint.

Integration direction
Dynamics 365 Customer Insights
Martini
JMS Messaging
Example Mapping
Dynamics 365 Customer Insights FieldCanonical FieldTarget Field
eventIdevent.idmessage.eventId
contactIdcustomer.sourceIdmessage.customerId
eventTypeevent.typemessage.type
occurredOnevent.occurredAtmessage.timestamp
Martini implementation pattern

Martini receives the supported event, validates its event type and identifier, checks an idempotency store, and retrieves the full Contact, Account, profile, or interaction when the notification is incomplete. It enriches and routes the canonical event to a queue or downstream API, using bounded retries and a failure path for permanent business or authorization errors.

Martini capabilities used
  • workflow triggers
  • webhook consumption
  • API orchestration
  • data enrichment
  • business rules
  • duplicate protection
  • messaging

Pattern 4: Export customer insights to an analytical platform

When to use this pattern

Use this pattern when profiles, measures, segments, or activities must be loaded into Microsoft Fabric, Azure Synapse Analytics, Power BI dataflows, or another approved analytical destination.

Integration direction
Dynamics 365 Customer Insights
Martini
Azure Synapse Analytics
Example Mapping
Dynamics 365 Customer Insights FieldCanonical FieldTarget Field
profileIdcustomerProfileIdcustomer_profile_id
measure.valuemetricValuemetric_value
segmentIdaudienceIdsegment_id
lastRefreshsourceRefreshAtsource_refresh_at
Martini implementation pattern

Martini starts or monitors the configured Customer Insights export, polls asynchronous status, reads the approved export destination, and maps the source structures to warehouse or reporting tables. It stores operation IDs and watermarks, validates schema changes, and retries transient loads while keeping failed batches available for replay.

Martini capabilities used
  • scheduled workflows
  • asynchronous orchestration
  • file and export processing
  • data mapping
  • schema validation
  • monitoring
  • error handling

Applications commonly integrated with Dynamics 365 Customer Insights

Dynamics 365 Customer Insights commonly participates in Microsoft data and customer-engagement architectures, and it can also exchange selected customer, audience, sales, and analytical data with other enterprise platforms. Martini can mediate these exchanges when different systems require different APIs, schemas, security models, or processing schedules.

Application Scenario Direction Martini Pattern
Dynamics 365 Sales Synchronize Accounts, Contacts, Leads, customer profiles, qualification data, and engagement signals between sales and customer-insight processes. Dynamics 365 Sales → Martini → Dynamics 365 Customer Insights Consume Dataverse or Dynamics 365 APIs, normalize sales objects, apply consent and qualification rules, and upsert profiles or audiences. A reverse workflow can return segment membership and engagement data to Sales with stable identifiers and duplicate protection.
Dynamics 365 Customer Service Combine service cases, contacts, service interactions, and customer history with unified profiles and journey targeting. Dynamics 365 Customer Service → Martini → Dynamics 365 Customer Insights Retrieve permitted Dataverse tables, map service and customer identifiers to the Customer Insights model, and process incremental changes using timestamps or supported change tracking. Route authorization, validation, and throttling failures to controlled retry paths.
Power BI Analyze unified customer profiles, measures, segments, journey performance, and engagement data. Dynamics 365 Customer Insights → Martini → Power BI Coordinate a Customer Insights export or consume an approved export destination, transform profiles and measures into reporting structures, and deliver the result through the configured analytical ingestion path. Track asynchronous export status before loading downstream data.
Microsoft Fabric Consolidate Customer Insights exports with lakehouse and enterprise analytical data. Dynamics 365 Customer Insights → Martini → Microsoft Fabric Monitor export completion, retrieve data from the configured export destination, map it to Fabric ingestion structures, and preserve source identifiers and refresh timestamps for repeatable loads.
Azure Synapse Analytics Support enterprise reporting, customer analytics, segmentation, and data-science pipelines. Dynamics 365 Customer Insights → Martini → Azure Synapse Analytics Orchestrate Customer Insights or Dataverse export jobs, poll asynchronous operations, transform profiles, activities, and measures, and load curated datasets while recording operation IDs and high-water marks.
Salesforce Synchronize customer profiles, contacts, leads, sales activity, or audiences across Microsoft and Salesforce estates. Dynamics 365 Customer Insights → Martini → Salesforce Expose a normalized Martini API or schedule API-based synchronization, map Dataverse and Customer Insights identifiers to Salesforce fields, and use source IDs or external keys for idempotent upserts. Treat consent and segment exit semantics as explicit business rules.
SAP S/4HANA Enrich customer profiles with ERP customer, order, billing, or product information. SAP S/4HANA → Martini → Dynamics 365 Customer Insights Consume SAP APIs or approved files, validate customer and transaction data, transform it into the Customer Insights ingestion model, and coordinate refresh or export status. Separate transient transport failures from permanent validation errors.
Adobe Marketo Engage Coordinate marketing audiences, campaign participation, lead data, and engagement events across marketing platforms. Dynamics 365 Customer Insights → Martini → Adobe Marketo Engage Retrieve or receive audience and engagement data through the available platform APIs, map consent and campaign identifiers, apply eligibility rules, and synchronize only the required changes with retry and duplicate-event controls.

How to build a Dynamics 365 Customer Insights integration in Martini

Objective

Establish access to the relevant Customer Insights - Data API, Dataverse environment, export destination, or event endpoint without embedding environment-specific credentials or URLs in workflow logic.

Instructions in Martini

  • Configure the Dataverse environment URL and product API endpoints as environment values
  • Use Microsoft Entra ID OAuth 2.0 with the required application or delegated permissions
  • Store client secrets, certificates, and related credentials in secure configuration
  • Confirm Dataverse application-user, table, business-unit, and Customer Insights permissions

Objective

Select the mechanism that matches the data owner and latency requirement, recognizing that event coverage is selective and that exports or polling may be more appropriate for some Customer Insights objects.

Instructions in Martini

  • Use a REST API call for profiles, segments, measures, activities, or Dataverse tables
  • Use a supported event or trigger for selected journey and Dataverse scenarios
  • Use a scheduler for incremental synchronization, export monitoring, or status polling
  • Use an approved export or file path for large analytical data movement

Objective

Retrieve complete and correctly scoped source data while respecting pagination, continuation links, asynchronous jobs, and endpoint-specific query behavior.

Instructions in Martini

  • Use $select, $filter, $expand, and $orderby where appropriate for Dataverse queries
  • Follow returned continuation URLs rather than assuming page sizes
  • Persist operation identifiers for asynchronous refresh, export, and batch processes
  • Capture source IDs, timestamps, correlation IDs, and watermarks needed for replay

Objective

Coordinate calls, enrichment, conditional routing, and asynchronous processing in a maintainable Martini workflow rather than embedding all behavior in a one-off script.

Instructions in Martini

  • Separate authentication, retrieval, transformation, target writes, and exception handling into clear workflow stages
  • Retrieve related Accounts, Contacts, Leads, profiles, or interactions only when required
  • Route transient failures to bounded retry logic and permanent failures to an exception path
  • Use reusable Martini services or APIs for common customer and audience operations

Objective

Convert Customer Insights and Dataverse payloads into canonical and target-specific structures while preserving identifiers, consent information, and source semantics.

Instructions in Martini

  • Map unified profiles, segments, measures, activities, and journey data to the target model
  • Normalize timestamps, choice values, lookup references, and external identifiers
  • Preserve consent, suppression, opt-out, source, and effective-time fields
  • Validate required fields and reject malformed or incomplete payloads before writes

Objective

Apply business and privacy rules before creating audiences, triggering journeys, or updating customer-facing systems.

Instructions in Martini

  • Check consent, suppression, retention, and regional eligibility requirements
  • Use stable source IDs, alternate keys, event IDs, or operation IDs for idempotency
  • Define segment entry, exit, deletion, and late-arriving-data behavior explicitly
  • Prevent profile existence alone from being treated as permission to market

Common Dynamics 365 Customer Insights data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
Unified customer profilesRepresent customers after source integration and identity-resolution rules in Customer Insights - Data.Dynamics 365 Sales, Dynamics 365 Customer Service, Salesforce, Power BI, Microsoft FabricMartini retrieves profiles through supported APIs or export paths, maps source identifiers and consent fields, and applies idempotent upsert or analytical-load logic.
SegmentsDefine groups of unified customers for analysis, audience selection, and journey targeting.Dynamics 365 Customer Insights - Journeys, Dynamics 365 Sales, Adobe Marketo Engage, Power BIMartini synchronizes segment definitions or memberships where supported, maps entry and exit semantics, and prevents duplicate audience updates.
MeasuresProvide calculated customer-level metrics such as lifetime value, purchase frequency, or engagement indicators.Power BI, Microsoft Fabric, Azure Synapse Analytics, Dynamics 365 SalesMartini retrieves or processes measures, converts data types and metric names, and loads curated analytical or operational representations.
ActivitiesRepresent customer interactions or source events used in profile unification, analytics, and segmentation.Dynamics 365 Customer Insights - Data, Power BI, Microsoft Fabric, Azure Synapse AnalyticsMartini consumes activities through APIs or exports, normalizes timestamps and identifiers, and uses high-water marks or event IDs for incremental processing.
Customer journeysOrchestrate audience-based or trigger-based customer communication and engagement flows in Customer Insights - Journeys.Dynamics 365 Sales, Dynamics 365 Customer Service, downstream notification and marketing platformsMartini can exchange supported journey-related data through Dataverse APIs or event mechanisms, applying consent, eligibility, and retry rules.
Contacts and AccountsStore customer and organization information in Dataverse and provide audiences or recipients for journey scenarios.Dynamics 365 Sales, Dynamics 365 Customer Service, Salesforce, SAP S/4HANAMartini reads and upserts Dataverse objects through the Web API, follows continuation links, uses alternate or external keys, and respects table permissions.

Authentication and security considerations

Microsoft Entra ID authentication

Use Microsoft Entra ID OAuth 2.0 for Dataverse Web API and related Customer Insights API access. Server-to-server integrations commonly use application authentication with a client secret or certificate where supported.

Authorization is separate from authentication

The application or user must have access to the Dataverse environment, an appropriate Dataverse identity, security roles, table privileges, and any required Customer Insights product permissions.

Protect credentials and customer data

  • Store client secrets, certificates, tokens, and environment URLs in secure configuration.
  • Do not log access tokens, secrets, or unnecessary personal data.
  • Preserve consent, suppression, retention, and regional privacy indicators during synchronization.
  • Use least-privilege access for tables, columns, exports, and operations.

Operational considerations for Dynamics 365 Customer Insights integrations

API limits and pagination

Dataverse service-protection limits and endpoint-specific limits can produce throttling responses. Follow continuation links, honor Retry-After when supplied, use bounded concurrency, and apply exponential backoff for HTTP 429 and transient 5xx responses.

Incremental and idempotent processing

Use change tracking where supported, modified timestamps, export status, event IDs, or persisted high-water marks. Stable Dataverse row IDs, alternate keys, external customer IDs, and operation IDs help prevent duplicate Contacts, Accounts, Leads, audience updates, and notifications.

Asynchronous operations and schema changes

Customer Insights refreshes, exports, ingestion, and bulk operations may be asynchronous. Persist job identifiers and poll with controlled scheduling. Validate mappings against environment-specific tables, columns, relationships, choice values, solution changes, and API versions.

Event coverage and observability

Do not assume every object produces an event. Confirm delivery and retry semantics for each scenario, and record correlation IDs, request identifiers, operation IDs, endpoint names, and source IDs without exposing sensitive customer data.

Why use Martini instead of scripts or point-to-point integrations?

Coordinate more than one API call

Customer Insights integrations often combine Customer Insights - Data APIs, Dataverse Web API calls, journey events, exports, and downstream applications. Martini provides workflows for orchestration, enrichment, conditional routing, polling, and controlled retries.

Separate business rules from transport logic

Reusable workflows can centralize consent checks, audience eligibility, identifier matching, incremental synchronization, validation, and duplicate protection instead of scattering these rules across point-to-point scripts.

Build maintainable integration assets

Martini can map and transform JSON payloads, consume external REST APIs, receive supported webhooks, expose normalized APIs, and use secure environment configuration. This creates reusable integration behavior that can be monitored, tested, and deployed as enterprise assets.

Frequently asked questions

How can Dynamics 365 Customer Insights be integrated with enterprise systems?

Use Customer Insights - Data REST APIs for unified customer profiles, segments, measures, and activities; use the Dataverse Web API for Dataverse tables used by Customer Insights - Journeys and related Dynamics 365 applications; and use supported event, batch, asynchronous, file, and export mechanisms where appropriate. Microsoft Entra ID OAuth 2.0 provides authentication, while workflows can manage mapping, synchronization, polling, and error handling.

Can Martini integrate with Dynamics 365 Customer Insights?

Yes. Martini can consume the Customer Insights - Data REST APIs and Dataverse Web API, call Microsoft endpoints with Microsoft Entra ID OAuth 2.0, receive supported event or trigger notifications, orchestrate asynchronous exports, and expose APIs for downstream applications. No native Martini connector is documented in the supplied materials.

Do I need a connector to integrate Dynamics 365 Customer Insights with Martini?

No. A dedicated Dynamics 365 Customer Insights connector is not required. Martini can use the product's native Customer Insights and Dataverse REST APIs, supported event mechanisms, export paths, file operations, and Microsoft Entra ID authentication.

Is there any extra Lonti cost to integrate Dynamics 365 Customer Insights with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate Dynamics 365 Customer Insights. The integration is subject to the provisioned capacity of the Martini environment. Separate Microsoft, Azure, infrastructure, storage, or other third-party costs may apply according to licensing, usage, and deployment choices.

Which Dynamics 365 Customer Insights APIs or integration methods should be used?

Use Customer Insights - Data APIs for unified profiles, segments, measures, activities, and product-specific operations. Use the Dataverse Web API for Dataverse tables, including many Customer Insights - Journeys and Dynamics 365 records. Use batch, asynchronous, export, or file mechanisms for larger movements, and use legacy SOAP only when an existing dependency cannot be replaced.

Does Dynamics 365 Customer Insights provide webhooks or events for all objects?

No. Customer Insights - Journeys and Dataverse support selected business events and trigger-based scenarios, but coverage depends on the product area, object, operation, and configuration. Confirm the payload, delivery model, retry behavior, and whether the event contains a full record or only an identifier before designing a workflow.

How does Martini synchronize and transform Customer Insights data?

Martini can use scheduled or event-driven workflows to retrieve or receive profiles, segments, measures, activities, Contacts, Accounts, Leads, or journey data. It maps source payloads to a canonical and target model, applies consent and business rules, follows pagination or export status, and uses high-water marks, alternate keys, or external IDs for incremental and idempotent processing.

How does Martini handle errors, retries, duplicates, and API limits?

Martini workflows can separate authentication, authorization, validation, throttling, transient service failures, and permanent schema or business-rule errors. Implementations can honor Retry-After, use exponential backoff and bounded concurrency, persist event or operation IDs, and replay failed work without repeating completed side effects. Dataverse continuation links and asynchronous job status should be handled explicitly.