CRED × Microsoft Dynamics 365 — sync, enrichment, troubleshooting
Last updated: June 9, 2026
Audience: CRED customers using Microsoft Dynamics 365 Sales as their CRM.
Purpose: Cover the day-one operational questions for Dynamics — sync cadence, manual triggers, enrichment vs sync, troubleshooting fields that fail to pass over, and where to find action logs.
Read this first: CRED × CRM — How the integration works in the CRED UI. That article covers the cross-CRM concepts. This one covers Dynamics-specific behaviour.
Quick answers
Question | Short answer | Section |
|---|---|---|
How often does CRED sync with Dynamics? | Continuous incremental sync via OData filtered on | |
How do I trigger a manual sync (Dynamics → CRED, CRED → Dynamics)? | Per-record buttons, list bulk actions, or a full re-sync from Settings. | |
Why doesn't "Sync with Dynamics" enrich at the same time? | Sync moves data; enrichment uses credits. Use auto-enrich on create or a workflow with Enrich → Sync to Dynamics. | |
Mapped fields not passing over — how to troubleshoot? | Walk the seven-reason checklist. Dynamics-specific gotchas: privilege model, business rules, picklist option-set values, multi-currency. | |
Where are the action logs? | Record Activity tab, Sync Log, Workflow Run Log, Audit Log — each row shows the Dynamics error code and the OData entity ID. |
1. What CRED syncs from Dynamics 365
CRED supports 13 entity types on Dynamics 365 Sales. Most read-only entities are coming online incrementally as we expand bidirectional support.
Dynamics entity | CRED entity | Direction |
|---|---|---|
| RemoteUser | Read-only |
| Account | Two-way |
| Contact | Two-way |
| Opportunity | Two-way |
| OpportunityPipeline | Read-only |
| OpportunityStage | Read-only |
| Campaign | Read-only |
| CampaignMember | Read-only |
| Task | Read-only |
| Note | Read-only |
| Lead | Read-only |
| Read-only | |
| CustomEntity (metadata) | Read-only |
Bidirectional today: Account, Contact, Opportunity. Other entities are read-only into CRED for now — if you need write-back on Tasks, Leads, or Notes, please file a request with your CSM.
Sandbox vs Production: Both are supported. Datacenter region (NA, EU, UK, Asia, etc.) is auto-detected from your Dynamics environment URL.
Pipelines: Dynamics models pipelines as Business Process Flows (BPFs). CRED reads them via the workflow entity plus a synthetic salesstage pipeline derived from the picklist values on opportunity. So even orgs without BPFs see a usable pipeline in CRED.
2. When and how often CRED syncs with Dynamics
Initial sync
Triggered immediately after OAuth completes. CRED runs DATA_SYNC_READ for each entity type in tier order. Tier 0 entities (Users, Accounts, Contacts, custom entity metadata) start immediately with a 4-minute stagger. Subsequent tiers are dispatched automatically as each Phase-2 ingestion completes.
For large orgs (1M+ accounts) the initial sync can run for several hours. Progress is in Settings → Integrations → Microsoft Dynamics → Sync log.
Ongoing incremental sync
OData queries filter by
modifiedon gethe last sync timestamp.A new pass is queued shortly after the previous one finishes — new and modified records typically arrive in CRED within a few minutes.
Deletions in Dynamics surface via OData change-tracking when enabled. If you need deletions tracked, ask your Dynamics admin to enable change tracking on the relevant entities (Setup → Customizations).
If a read task hangs > 15 min it auto-restarts. Failed Phase-2 records retry after 4h.
Rate-limit awareness — Dynamics is the strictest of the three CRMs
Dynamics 365 enforces per-user service protection limits:
60 requests / minute per user
10,000 requests / 5 minutes per user
52 concurrent requests per user
Plus a per-license daily entitlement (10k for Professional, 100k for Enterprise)
Because limits are per user, having a dedicated CRED Integration User in Dynamics avoids contention with day-to-day CRM users. CRED watches the x-ms-ratelimit-burst-remaining-xrm-requests response header and slows down before hitting the ceiling. On a 429 we honour Retry-After and resume.
3. How to trigger a manual sync
Dynamics → CRED (pull)
Scope | How | What happens |
|---|---|---|
One record | Open in CRED → 3-dot menu → Refresh from Dynamics | Single OData GET by |
List / collection | List menu → Sync → Pull from Dynamics | Targeted OData reads of every record |
Whole org | Settings → Integrations → Microsoft Dynamics → Run full sync | Heavy. Re-reads every entity type |
CRED → Dynamics (push)
Scope | How | What happens |
|---|---|---|
One record | Record header → Sync with Dynamics | Creates the Account / Contact / Opportunity in Dynamics if it doesn't exist; updates if it does. Returns the Dynamics URL on success |
Bulk | List → select rows → Bulk actions → Sync to Dynamics | Schedules a write per record; uses OData |
Workflow | Add a Sync to CRM step | Every record entering the step is written to Dynamics |
Currently the supported write targets are Account, Contact, and Opportunity. Other entities are read-only into CRED.
4. Sync vs Enrichment with Dynamics
"Sync with Dynamics" pushes the record's current CRED values to Dynamics. It does not run the CRED enrichment waterfall and does not consume credits. To combine them:
Manual two-step: click Enrich, wait for fields to populate, then click Sync with Dynamics.
Workflow: Workflows → trigger on list / signal / create → Enrich → Sync to CRM (Dynamics).
Auto-enrich on create: Settings → Integrations → Microsoft Dynamics → Enrichment → toggle Auto-enrich on create.
See the cross-CRM article for the full rationale on why these are kept separate.
5. Mapped fields not passing over — Dynamics-specific troubleshooting
Walk the seven-reason cross-CRM checklist first. Dynamics-specific blockers:
Dynamics error | Meaning | Fix |
|---|---|---|
| Connected user's security role does not grant write access on the entity or field. | Add the missing privilege to the security role, or pick a different connected user. |
| The record was deleted in Dynamics or the GUID is invalid. | Resync; if persistent, the local CRED record's |
| 52 in-flight requests for the connected user. | CRED auto-throttles; if it persists, another integration is competing on the same user account — switch CRED to a dedicated user. |
| A Dynamics duplicate-detection rule fired. | Either widen the duplicate rule, or rely on CRED to update instead of create (which it does when an external ID is already linked). |
| Access token expired and refresh failed. | Reconnect Dynamics from Settings. |
| Service protection limit hit (60/min, 10k/5min, or daily entitlement). | CRED waits the indicated time and retries. If chronic, upgrade Dynamics license or raise entitlement. |
| An entity field marked Business Required is missing on create. | Map that field in CRED, or set a default in Dynamics. |
| A Dynamics business rule rejected the value. | Audit business rules: Setup → Customizations → [Entity] → Business Rules. Adjust the rule or pre-coerce the value via a workflow. |
Picklist value mismatch (silent) | You're pushing a string into an option set field; Dynamics requires the integer option value. | Re-sync the option set metadata (Settings → Integrations → Microsoft Dynamics → Refresh fields). CRED then maps strings ↔ ints automatically. |
Privilege model — the most common Dynamics blocker
Dynamics security is layered: business unit → security role → field-level security profile. CRED writes as the connected user. If that user's security role lacks Write on the entity, the entire write fails. If the role has Write on the entity but a Field Security Profile blocks a specific field, only that field fails.
Recommended setup:
Create a dedicated "CRED Integration User" (a non-interactive application user is fine; we support both).
Assign a security role with Organization-level Read/Write/Create on Account, Contact, Opportunity, and any custom entities you want to sync.
If you use Field Security Profiles, add the integration user to the relevant profiles for any "secured" fields you want CRED to write.
Connect CRED as that user.
Business rules & plugins
Business rules and Dynamics plugins fire on every write. Failures from plugins typically come back as generic 0x80040224 server errors with the plugin name in the inner exception. The Sync Log surfaces the inner exception — if you see "plugin" in the error, audit Setup → Customizations → Plug-in Assemblies.
Multi-currency
If your Dynamics org has multiple currencies, every Opportunity has a transactioncurrencyid. CRED preserves the source currency and converts to the connection's default currency for display.
6. Action logs
Same four locations as every CRM. Dynamics specifics:
Record Activity tab in CRED shows the Dynamics GUID for every sync attempt — copy it into your Dynamics URL (
.../main.aspx?etn=account&id={guid}) to jump to the record.Each error log entry includes the Dynamics
errorCode(e.g.0x80040216) and the inner exception message.Dynamics-side, Audit History on each record (must be enabled per entity in customisations) shows who changed what. CRED writes appear as the connected user.
If a sync repeatedly hits
0x80040265, your connected user is competing with another app on the same login — switch CRED to a dedicated user.
7. Dynamics integration limits and known constraints
Limit | Value | Note |
|---|---|---|
Service protection — per user / minute | 60 | CRED self-throttles below this |
Service protection — per user / 5 min | 10,000 | Includes all apps on that user |
Concurrent requests / user | 52 | Why a dedicated integration user is recommended |
Daily entitlement — Professional | 10,000 | Per user, per 24h |
Daily entitlement — Enterprise | 100,000 | Per user, per 24h. Add-on capacity available |
OData | 1,000 changes | Used for bulk writes |
OData page size (max) | 5,000 records | CRED defaults to 500 for finer-grained progress |
Field metadata cache | 1 hour | Click Refresh fields after schema changes |
Things that look like a sync bug but aren't
Write-back is currently limited to Account / Contact / Opportunity. Tasks, Leads, Notes, Emails are read-only into CRED today.
Business Process Flows: CRED reads the BPF stage but doesn't advance the BPF when an Opportunity stage changes. Stage advancement still happens in Dynamics.
Synthetic
salesstagepipeline: Orgs without explicit BPFs see a built-in pipeline derived from thesalesstagecodeoption set. This is a CRED convention, not a Dynamics object — it doesn't appear in Dynamics.Activity entities (task, email, phonecall) are polymorphic in Dynamics. CRED currently maps the regarding link to Account/Contact/Opportunity only.
8. Reference — CRED-side technical detail
Library:
dynamics-web-api(TypeScript)API version: 9.2 (OData v4)
Auth: OAuth 2.0 via Microsoft Entra ID (Azure AD). Tokens refreshed before every call (Microsoft's recommended pattern)
Datacenter regions: North America, Europe, UK, Asia, Australia, Japan, India, Canada, GCC, GCC High — auto-detected from the environment URL