Connect Microsoft Dynamics 365 to Retell AI with OAuth: find your Dataverse environment URL, sign in with Microsoft, and verify the connection works.
Connecting Microsoft Dynamics 365 takes your environment URL and a Microsoft sign-in. One connection covers both contact sync and agent functions: your agents work your Contacts, Tasks, and Notes live, and Retell keeps the records current. This page covers what you need on the Microsoft side and how to connect.
Connect Dynamics 365 when it’s your system of record and you want your agents working from it without anyone copying data between tools. It’s the right choice when you want to:
Call or text people who already exist in Dynamics. Contacts sync into Retell automatically, so your agent greets callers by name and knows their details instead of asking.
Keep Dynamics current without manual data entry. Analysis results from each conversation write back to fields on the Contact record.
Give your team call history where they already work. Each call lands on the Contact’s timeline as a completed Phone Call activity; each chat lands as a Task.
Your agents can also look up and manage Contacts, Tasks, and Notes through integration tools.For example, a home-services company syncs its Dynamics Contacts into Retell. Its outbound reminder agent greets each customer by name, confirms tomorrow’s appointment window, writes the confirmed time back to the Contact, and the call lands on the timeline as a completed Phone Call activity.
A Dynamics 365 environment on Dataverse (Retell talks to its Web API, /api/data/v9.2).
A Microsoft work account with access to that environment, holding a security role that can read and write Contacts, Tasks, Phone Calls, and Notes.
Retell acts as whoever signs in, so tasks and activities it creates are attributed to that account. Use a dedicated integration user rather than a person’s account, so the connection doesn’t break when someone changes roles or leaves.
Retell needs the environment’s Dataverse URL, which looks like https://your-org.crm.dynamics.com (the region segment varies, for example crm4 or crm11).
The easiest place to read it is your browser’s address bar while you’re using the Dynamics app — everything up to and including .dynamics.com.
Admins can also find it in the Power Platform admin center under Environments, as the environment’s Environment URL.
Reading the environment URL from the browser's address bar.
Enter just the origin, with no path after .dynamics.com.
In the Retell Dashboard, open Integrations, select the Available tab, find Microsoft Dynamics 365, and click Connect (Add Account if a connection already exists).
2
Enter the environment URL and sign in
Fill in the fields:
Field
Value
Connection name
Alias for this connection; prefilled with Microsoft Dynamics 365 - OAuth.
Dynamics environment URL
The URL from Step 1, for example https://your-org.crm.dynamics.com.
The Microsoft Dynamics 365 connection dialog: environment URL, then an OAuth sign-in.
Click Connect (Add Account if a connection already exists). A Microsoft sign-in window opens; sign in with the integration account and accept the requested access. Retell stores a refresh token, so nobody has to sign in again.
If your organization restricts which apps users may consent to, Microsoft shows an approval-required message instead of the consent screen. A Microsoft Entra admin then has to grant consent for Retell before the connection can complete.
3
Verify it worked
Retell tests the connection by calling the environment’s WhoAmI endpoint as the signed-in user. On success the connection appears on the Connected tab and the dialog offers Set up contact sync — see Dynamics 365 contact sync to import your Contacts, or start using agent functions right away.
The sign-in completes but the connection test fails
The signed-in account can authenticate against Microsoft without having access to the environment you entered. Confirm the account can open that environment in a browser, and that the URL is the environment’s own Dataverse origin with nothing after .dynamics.com.
Sign-in ends on an approval-required message
Your organization requires admin consent for new apps. Ask a Microsoft Entra admin to grant consent for Retell, then connect again. Separately, Power Platform admins can restrict which client apps may access a specific environment — if consent is granted but calls are still refused, check the environment’s app access controls in the Power Platform admin center.
The connection errored after working for a while
Retell flags a connection as errored when Microsoft rejects the stored token — typically because the integration account’s password was reset, the account was disabled, or an admin revoked the app’s access. Open the connection’s settings and click Reconnect to sign in again with a working account.
Everything Retell creates is owned by the account that signed in when connecting. That’s why a dedicated integration user is worth setting up: the timeline then reads “Retell integration” rather than a teammate’s name.
Can I connect more than one environment?
Yes, add one connection per environment. Only one CRM connection in your workspace can drive contact sync at a time, across every provider — the Contact sync toggle in a connection’s settings decides which one. Integration tools work on every connection.
Import your Dynamics Contacts, write analysis results back, and log calls on the Contact’s timeline.
Dynamics 365 agent functions
Look up callers, update Contacts, and create Tasks and Notes mid-conversation.
Integrations overview
See every provider Retell connects to and how integration tools work.
CRM integrations
How contact sync, analysis mapping, and activity logging work across CRM providers.
Was this page helpful?
⌘I
{"docsConfig":{"theme":"almond","$schema":"https://mintlify.com/docs.json","name":"Retell AI","description":"Explore Retell AI docs to learn how to build, test, deploy, and optimize AI voice agents with APIs, integrations, conversation flows, and production-ready tools.","colors":{"primary":"#606A78","light":"#F5F5FA","dark":"#172131"},"logo":{"light":"https://mintcdn.com/retellai/-E9UettTBfBiCBBS/images/docs-light.png?fit=max\u0026auto=format\u0026n=-E9UettTBfBiCBBS\u0026q=85\u0026s=64eb26a2d3cc9a67ee3ea0bfe086dd14","dark":"https://mintcdn.com/retellai/-E9UettTBfBiCBBS/images/docs-dark.png?fit=max\u0026auto=format\u0026n=-E9UettTBfBiCBBS\u0026q=85\u0026s=08472a0c78599498b85d23348d7826f6"},"favicon":"https://mintcdn.com/retellai/TsBk7Stx4694-7p1/logo/favicon-light.ico?fit=max\u0026auto=format\u0026n=TsBk7Stx4694-7p1\u0026q=85\u0026s=4e90f4db5e89b5ec7fe249a4844c2d97","api":{"openapi":["openapi-final.yaml"],"playground":{"display":"interactive"},"mdx":{"auth":{"method":"bearer"},"server":"https://api.retellai.com"}},"navbar":{"links":[{"icon":"message-circle-question-mark","href":"https://docs.retellai.com/general/support","label":"Support"},{"icon":"chart-line","href":"https://status.retellai.com/","label":"Status"},{"icon":"book","href":"https://www.retellai.com/changelog","label":"Changelog"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.retellai.com"}},"footer":{"socials":{"x":"https://x.com/retellai","linkedin":"https://www.linkedin.com/company/98828489","github":"https://github.com/RetellAI","instagram":"https://www.instagram.com/retell_ai","youtube":"https://www.youtube.com/@retellai"}},"fonts":{"family":"Inter"},"icons":{"library":"lucide"},"styling":{"codeblocks":"dark","latex":true},"integrations":{"mixpanel":{"projectToken":"c8676d3561adb5eefc366aa2a66725bc"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor"],"display":"header"},"interaction":{"drilldown":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"retellai","hasAudioNarration":false,"actualSubdomain":"retellai","customDomains":["docs.retellai.com"],"gitSource":{"type":"github","owner":"retellai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":false,"issues":false,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af2aac63b41a2b6d04a0322","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Guides","count":214},{"language":"default","tag":"API Reference","count":107},{"language":"default","tag":"Build","count":68},{"language":"default","tag":"Deploy","count":35},{"language":"default","tag":"Integrations","count":30},{"language":"default","tag":"Conversation flow agents","count":24},{"language":"default","tag":"Deprecations","count":24},{"language":"default","tag":"Detailed Deprecation Guide","count":23},{"language":"default","tag":"CRM","count":21},{"language":"default","tag":"Monitor","count":17}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instinct-self-updating-docs","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@media (min-width: 1024px){#navbar .flex-1:has(>[data-slot=\"context-menu-trigger\"]),#navbar .flex-1:has(>a>.nav-logo){flex:none!important;width:15rem}#navbar .ustify-end:has(.nav-tabs),#navbar .justify-end:has(.nav-tabs){justify-content:space-between!important;margin-left:0!important}#navbar .flex:has(>.ustify-end),#navbar .flex:has(>.justify-end){flex:1!important}#navbar .nav-tabs{white-space:nowrap}}article{max-width:48rem!important}.max-w-prose{max-width:48rem!important}.max-w-xl{max-width:48rem!important}video.scroll-play{cursor:zoom-in}.video-zoom-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:4vmin;background:rgba(0, 0, 0, 0.8);backdrop-filter:blur(2px);cursor:zoom-out}.video-zoom-media{max-width:92vw;max-height:92vh;width:auto;height:auto;border-radius:12px;box-shadow:0 10px 40px rgba(0, 0, 0, 0.5);cursor:default}.video-zoom-close{position:fixed;top:16px;right:20px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;border-radius:999px;background:rgba(255, 255, 255, 0.15);color:#fff;font-size:24px;line-height:1;cursor:pointer}.video-zoom-close:hover{background:rgba(255, 255, 255, 0.3)}.ui-btn{background-color:#f4f5f7!important;color:#1f2328!important;border:1px solid #d0d5dd!important;border-bottom-width:2px!important;border-radius:6px!important;padding:0.1em 0.42em!important}html.dark .ui-btn,[data-theme=\"dark\"] .ui-btn{background-color:#21252d!important;color:#e6e8eb!important;border-color:#3a4048!important}img[src$=\"/images/icons/wss-badge.svg\"]{width:auto!important;height:15px!important}a[aria-current=\"page\"] img[src$=\"/images/icons/wss-badge.svg\"]{content:url(\"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2227%22 height=%2215%22 viewBox=%220 0 27 15%22 role=%22img%22 aria-label=%22WSS%22%3E %3Crect width=%2227%22 height=%2215%22 rx=%224%22 fill=%22%23F54A00%22/%3E %3Ctext x=%2213.5%22 y=%2210.7%22 text-anchor=%22middle%22 font-family=%22ui-sans-serif, system-ui, -apple-system, Segoe UI, Inter, Helvetica, Arial, sans-serif%22 font-size=%228.8%22 font-weight=%22700%22 fill=%22%23FFFFFF%22%3EWSS%3C/text%3E %3C/svg%3E\")}"}],"page":{"pagePath":"integrations/microsoft-dynamics","slug":"/integrations/microsoft-dynamics","pageMetadata":{"title":"Connect Dynamics 365","sidebarTitle":"Connect","description":"Connect Microsoft Dynamics 365 to Retell AI with OAuth: find your Dataverse environment URL, sign in with Microsoft, and verify the connection works.","keywords":["Dynamics 365 integration","Microsoft Dynamics CRM","Dataverse integration","Dynamics environment URL","connect Dynamics 365","AI assistant Dynamics 365"],"og:title":"Connect Dynamics 365 to Retell — OAuth setup","og:description":"Find your Dynamics environment URL, sign in with Microsoft, and connect Dynamics 365 to Retell AI for contact sync and integration tools.","href":"/integrations/microsoft-dynamics"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Connect Microsoft Dynamics 365 to Retell AI with OAuth: find your Dataverse environment URL, sign in with Microsoft, and verify the connection works.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,Frame,Heading,Note,OptimizedImage,Step,Steps,Table}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Connecting Microsoft Dynamics 365 takes your environment URL and a Microsoft sign-in. One connection covers both `,_jsx(_components.a,{href:`/integrations/microsoft-dynamics-contact-sync`,children:`contact sync`}),` and `,_jsx(_components.a,{href:`/integrations/microsoft-dynamics-functions`,children:`agent functions`}),`: your agents work your Contacts, Tasks, and Notes live, and Retell keeps the records current. This page covers what you need on the Microsoft side and how to connect.`]}),`\n`,_jsx(Heading,{level:`2`,id:`when-to-use-it`,children:`When to use it`}),`\n`,_jsx(_components.p,{children:`Connect Dynamics 365 when it’s your system of record and you want your agents working from it without anyone copying data between tools. It’s the right choice when you want to:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Call or text people who already exist in Dynamics.`}),` Contacts sync into Retell automatically, so your agent greets callers by name and knows their details instead of asking.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Keep Dynamics current without manual data entry.`}),` Analysis results from each conversation write back to fields on the Contact record.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Give your team call history where they already work.`}),` Each call lands on the Contact’s timeline as a completed Phone Call activity; each chat lands as a Task.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Your agents can also look up and manage Contacts, Tasks, and Notes through `,_jsx(_components.a,{href:`/integrations/microsoft-dynamics-functions#available-tools`,children:`integration tools`}),`.`]}),`\n`,_jsx(_components.p,{children:`For example, a home-services company syncs its Dynamics Contacts into Retell. Its outbound reminder agent greets each customer by name, confirms tomorrow’s appointment window, writes the confirmed time back to the Contact, and the call lands on the timeline as a completed Phone Call activity.`}),`\n`,_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A Dynamics 365 environment on Dataverse (Retell talks to its Web API, `,_jsx(_components.code,{children:`/api/data/v9.2`}),`).`]}),`\n`,_jsxs(_components.li,{children:[`A Microsoft work account with access to that environment, holding a security role that can read and write `,_jsx(_components.strong,{children:`Contacts`}),`, `,_jsx(_components.strong,{children:`Tasks`}),`, `,_jsx(_components.strong,{children:`Phone Calls`}),`, and `,_jsx(_components.strong,{children:`Notes`}),`.`]}),`\n`,_jsx(_components.li,{children:`Retell acts as whoever signs in, so tasks and activities it creates are attributed to that account. Use a dedicated integration user rather than a person’s account, so the connection doesn’t break when someone changes roles or leaves.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`step-1-find-your-environment-url`,children:`Step 1: Find your environment URL`}),`\n`,_jsxs(_components.p,{children:[`Retell needs the environment’s Dataverse URL, which looks like `,_jsx(_components.code,{children:`https://your-org.crm.dynamics.com`}),` (the region segment varies, for example `,_jsx(_components.code,{children:`crm4`}),` or `,_jsx(_components.code,{children:`crm11`}),`).`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The easiest place to read it is your browser’s address bar while you’re using the Dynamics app — everything up to and including `,_jsx(_components.code,{children:`.dynamics.com`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Admins can also find it in the `,_jsx(_components.strong,{children:`Power Platform admin center`}),` under `,_jsx(_components.strong,{children:`Environments`}),`, as the environment’s `,_jsx(_components.strong,{children:`Environment URL`}),`.`]}),`\n`]}),`\n`,_jsx(Frame,{caption:`Reading the environment URL from the browser's address bar.`,children:_jsx(`div`,{style:{aspectRatio:`16 / 9`,width:`100%`,background:`rgba(128,128,128,0.15)`,display:`flex`,alignItems:`center`,justifyContent:`center`,borderRadius:`8px`,overflow:`hidden`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/retellai/eQ17pyeTZnmNJIsQ/images/integration/microsoft-dynamics-environment-url.png?fit=max\u0026auto=format\u0026n=eQ17pyeTZnmNJIsQ\u0026q=85\u0026s=5be5f9d0e1448a2caf5c0af8e0f147e9`,alt:`A Dynamics 365 Customer Service Hub dashboard open in a browser. The address bar is highlighted with a blue ring, showing an environment URL ending in .crm.dynamics.com with the organization's subdomain redacted. The dashboard's case data is also redacted.`,style:{maxWidth:`100%`,maxHeight:`100%`,objectFit:`contain`},\"data-og-width\":`1792`,width:`1792`,\"data-og-height\":`986`,height:`986`,\"data-path\":`images/integration/microsoft-dynamics-environment-url.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/retellai/eQ17pyeTZnmNJIsQ/images/integration/microsoft-dynamics-environment-url.png?w=280\u0026fit=max\u0026auto=format\u0026n=eQ17pyeTZnmNJIsQ\u0026q=85\u0026s=6a779197042957c6b53aee62bd6ec47a 280w, https://mintcdn.com/retellai/eQ17pyeTZnmNJIsQ/images/integration/microsoft-dynamics-environment-url.png?w=560\u0026fit=max\u0026auto=format\u0026n=eQ17pyeTZnmNJIsQ\u0026q=85\u0026s=b752f3b32bbec6ff0190aa5e953fa862 560w, https://mintcdn.com/retellai/eQ17pyeTZnmNJIsQ/images/integration/microsoft-dynamics-environment-url.png?w=840\u0026fit=max\u0026auto=format\u0026n=eQ17pyeTZnmNJIsQ\u0026q=85\u0026s=45c6a72c23bd7872a131a4f1c00e13a4 840w, https://mintcdn.com/retellai/eQ17pyeTZnmNJIsQ/images/integration/microsoft-dynamics-environment-url.png?w=1100\u0026fit=max\u0026auto=format\u0026n=eQ17pyeTZnmNJIsQ\u0026q=85\u0026s=539279055d8916b0f93d58d84f29ef20 1100w, https://mintcdn.com/retellai/eQ17pyeTZnmNJIsQ/images/integration/microsoft-dynamics-environment-url.png?w=1650\u0026fit=max\u0026auto=format\u0026n=eQ17pyeTZnmNJIsQ\u0026q=85\u0026s=27235d4d2c979ce60f58d3d7134871bf 1650w, https://mintcdn.com/retellai/eQ17pyeTZnmNJIsQ/images/integration/microsoft-dynamics-environment-url.png?w=2500\u0026fit=max\u0026auto=format\u0026n=eQ17pyeTZnmNJIsQ\u0026q=85\u0026s=d431f0fd939ff05709223cdd25d5e328 2500w`})})}),`\n`,_jsxs(_components.p,{children:[`Enter just the origin, with no path after `,_jsx(_components.code,{children:`.dynamics.com`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`step-2-connect-dynamics-365-in-retell`,children:`Step 2: Connect Dynamics 365 in Retell`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Add the connection`,children:_jsxs(_components.p,{children:[`In the Retell Dashboard, open `,_jsx(_components.strong,{children:`Integrations`}),`, select the `,_jsx(_components.strong,{children:`Available`}),` tab, find `,_jsx(_components.strong,{children:`Microsoft Dynamics 365`}),`, and click `,_jsx(_components.strong,{children:`Connect`}),` (`,_jsx(_components.strong,{children:`Add Account`}),` if a connection already exists).`]})}),_jsxs(Step,{title:`Enter the environment URL and sign in`,children:[_jsx(_components.p,{children:`Fill in the fields:`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Value`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Connection name`})}),_jsxs(_components.td,{children:[`Alias for this connection; prefilled with `,_jsx(_components.code,{children:`Microsoft Dynamics 365 - OAuth`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Dynamics environment URL`})}),_jsxs(_components.td,{children:[`The URL from Step 1, for example `,_jsx(_components.code,{children:`https://your-org.crm.dynamics.com`}),`.`]})]})]})]}),_jsx(Frame,{caption:`The Microsoft Dynamics 365 connection dialog: environment URL, then an OAuth sign-in.`,children:_jsx(`div`,{style:{aspectRatio:`16 / 9`,width:`100%`,background:`rgba(128,128,128,0.15)`,display:`flex`,alignItems:`center`,justifyContent:`center`,borderRadius:`8px`,overflow:`hidden`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/retellai/eQ17pyeTZnmNJIsQ/images/integration/microsoft-dynamics-connect-dialog.png?fit=max\u0026auto=format\u0026n=eQ17pyeTZnmNJIsQ\u0026q=85\u0026s=d8a6aab28e1f50b06ff8d0905f057add`,alt:`Retell's Microsoft Dynamics 365 connection dialog on its Connect tab, with a Functions tab beside it. It has a Connection name field prefilled with Microsoft Dynamics 365 - OAuth and a Dynamics environment URL field with the placeholder https://your-org.crm.dynamics.com, above a Need help finding your credentials link and Cancel and Add Account buttons.`,style:{maxWidth:`100%`,maxHeight:`100%`,objectFit:`contain`},\"data-og-width\":`1202`,width:`1202`,\"data-og-height\":`1002`,height:`1002`,\"data-path\":`images/integration/microsoft-dynamics-connect-dialog.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/retellai/eQ17pyeTZnmNJIsQ/images/integration/microsoft-dynamics-connect-dialog.png?w=280\u0026fit=max\u0026auto=format\u0026n=eQ17pyeTZnmNJIsQ\u0026q=85\u0026s=7295f3863d530e28506338fc4394bc56 280w, https://mintcdn.com/retellai/eQ17pyeTZnmNJIsQ/images/integration/microsoft-dynamics-connect-dialog.png?w=560\u0026fit=max\u0026auto=format\u0026n=eQ17pyeTZnmNJIsQ\u0026q=85\u0026s=c7224069ebd692bd2c1baee2f4d101dd 560w, https://mintcdn.com/retellai/eQ17pyeTZnmNJIsQ/images/integration/microsoft-dynamics-connect-dialog.png?w=840\u0026fit=max\u0026auto=format\u0026n=eQ17pyeTZnmNJIsQ\u0026q=85\u0026s=023d17f340a57b040349c4c43687c8f3 840w, https://mintcdn.com/retellai/eQ17pyeTZnmNJIsQ/images/integration/microsoft-dynamics-connect-dialog.png?w=1100\u0026fit=max\u0026auto=format\u0026n=eQ17pyeTZnmNJIsQ\u0026q=85\u0026s=5f56d16d61f3ba9a02c970cbcee8b0c9 1100w, https://mintcdn.com/retellai/eQ17pyeTZnmNJIsQ/images/integration/microsoft-dynamics-connect-dialog.png?w=1650\u0026fit=max\u0026auto=format\u0026n=eQ17pyeTZnmNJIsQ\u0026q=85\u0026s=9b518b09b9817dff9242fb511cc20868 1650w, https://mintcdn.com/retellai/eQ17pyeTZnmNJIsQ/images/integration/microsoft-dynamics-connect-dialog.png?w=2500\u0026fit=max\u0026auto=format\u0026n=eQ17pyeTZnmNJIsQ\u0026q=85\u0026s=39c553e308d125a5ca3ba5350b4e4306 2500w`})})}),_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Connect`}),` (`,_jsx(_components.strong,{children:`Add Account`}),` if a connection already exists). A Microsoft sign-in window opens; sign in with the integration account and accept the requested access. Retell stores a refresh token, so nobody has to sign in again.`]}),_jsx(Note,{children:_jsx(_components.p,{children:`If your organization restricts which apps users may consent to, Microsoft shows an approval-required message instead of the consent screen. A Microsoft Entra admin then has to grant consent for Retell before the connection can complete.`})})]}),_jsx(Step,{title:`Verify it worked`,children:_jsxs(_components.p,{children:[`Retell tests the connection by calling the environment’s WhoAmI endpoint as the signed-in user. On success the connection appears on the `,_jsx(_components.strong,{children:`Connected`}),` tab and the dialog offers `,_jsx(_components.strong,{children:`Set up contact sync`}),` — see `,_jsx(_components.a,{href:`/integrations/microsoft-dynamics-contact-sync`,children:`Dynamics 365 contact sync`}),` to import your Contacts, or start using `,_jsx(_components.a,{href:`/integrations/microsoft-dynamics-functions`,children:`agent functions`}),` right away.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`The sign-in completes but the connection test fails`,id:`the-sign-in-completes-but-the-connection-test-fails`,children:_jsxs(_components.p,{children:[`The signed-in account can authenticate against Microsoft without having access to the environment you entered. Confirm the account can open that environment in a browser, and that the URL is the environment’s own Dataverse origin with nothing after `,_jsx(_components.code,{children:`.dynamics.com`}),`.`]})}),_jsx(Accordion,{title:`Sign-in ends on an approval-required message`,id:`sign-in-ends-on-an-approval-required-message`,children:_jsx(_components.p,{children:`Your organization requires admin consent for new apps. Ask a Microsoft Entra admin to grant consent for Retell, then connect again. Separately, Power Platform admins can restrict which client apps may access a specific environment — if consent is granted but calls are still refused, check the environment’s app access controls in the Power Platform admin center.`})}),_jsx(Accordion,{title:`The connection errored after working for a while`,id:`the-connection-errored-after-working-for-a-while`,children:_jsxs(_components.p,{children:[`Retell flags a connection as errored when Microsoft rejects the stored token — typically because the integration account’s password was reset, the account was disabled, or an admin revoked the app’s access. Open the connection’s settings and click `,_jsx(_components.strong,{children:`Reconnect`}),` to sign in again with a working account.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`faq`,children:`FAQ`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Who do the logged activities belong to?`,id:`who-do-the-logged-activities-belong-to`,children:_jsx(_components.p,{children:`Everything Retell creates is owned by the account that signed in when connecting. That’s why a dedicated integration user is worth setting up: the timeline then reads “Retell integration” rather than a teammate’s name.`})}),_jsx(Accordion,{title:`Can I connect more than one environment?`,id:`can-i-connect-more-than-one-environment`,children:_jsxs(_components.p,{children:[`Yes, add one connection per environment. Only one CRM connection in your workspace can drive `,_jsx(_components.a,{href:`/integrations/microsoft-dynamics-contact-sync`,children:`contact sync`}),` at a time, across every provider — the `,_jsx(_components.strong,{children:`Contact sync`}),` toggle in a connection’s settings decides which one. Integration tools work on every connection.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next steps`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Dynamics 365 contact sync`,icon:`rotate`,href:`/integrations/microsoft-dynamics-contact-sync`,children:_jsx(_components.p,{children:`Import your Dynamics Contacts, write analysis results back, and log calls on the Contact’s timeline.`})}),_jsx(Card,{title:`Dynamics 365 agent functions`,icon:`wrench`,href:`/integrations/microsoft-dynamics-functions`,children:_jsx(_components.p,{children:`Look up callers, update Contacts, and create Tasks and Notes mid-conversation.`})}),_jsx(Card,{title:`Integrations overview`,icon:`plug`,href:`/integrations/overview`,children:_jsx(_components.p,{children:`See every provider Retell connects to and how integration tools work.`})}),_jsx(Card,{title:`CRM integrations`,icon:`database`,href:`/integrations/crm-overview`,children:_jsx(_components.p,{children:`How contact sync, analysis mapping, and activity logging work across CRM providers.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Connect Dynamics 365","sidebarTitle":"Connect","description":"Connect Microsoft Dynamics 365 to Retell AI with OAuth: find your Dataverse environment URL, sign in with Microsoft, and verify the connection works.","keywords":["Dynamics 365 integration","Microsoft Dynamics CRM","Dataverse integration","Dynamics environment URL","connect Dynamics 365","AI assistant Dynamics 365"],"og:title":"Connect Dynamics 365 to Retell — OAuth setup","og:description":"Find your Dynamics environment URL, sign in with Microsoft, and connect Dynamics 365 to Retell AI for contact sync and integration tools.","href":"/integrations/microsoft-dynamics"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"When to use it","slug":"when-to-use-it","depth":2,"children":[]},{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"Step 1: Find your environment URL","slug":"step-1-find-your-environment-url","depth":2,"children":[]},{"title":"Step 2: Connect Dynamics 365 in Retell","slug":"step-2-connect-dynamics-365-in-retell","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]},{"title":"FAQ","slug":"faq","depth":2,"children":[]},{"title":"Next steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/retellai/e3fe5c9b64f9e274/scroll-play-videos.js"],"subdomain":"retellai","siteName":"Retell AI","title":"Connect Dynamics 365 to Retell — OAuth setup","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-21T21:51:24.861Z","originalFileLocation":"integrations/microsoft-dynamics.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Connect Microsoft Dynamics 365 to Retell AI with OAuth: find your Dataverse environment URL, sign in with Microsoft, and verify the connection works.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Retell AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Connect Dynamics 365 to Retell — OAuth setup\">\u003cmeta data-mint-head property=\"og:description\" content=\"Find your Dynamics environment URL, sign in with Microsoft, and connect Dynamics 365 to Retell AI for contact sync and integration tools.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Retell AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.retellai.com/integrations/microsoft-dynamics\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://retellai.mintlify.site/_mintlify/api/og/v2?division=Microsoft+Dynamics+365\u0026amp;title=Connect+Dynamics+365\u0026amp;description=Connect+Microsoft+Dynamics+365+to+Retell+AI+with+OAuth%3A+find+your+Dataverse+environment+URL%2C+sign+in+with+Microsoft%2C+and+verify+the+connection+works.\u0026amp;theme=2259d4172d4ae0cc61d9b63d\u0026amp;signature=a41d75f5253df0fedb9c865d30a8e506f01c849265c773308321a5a8adacdbda\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Connect Dynamics 365 to Retell — OAuth setup\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Find your Dynamics environment URL, sign in with Microsoft, and connect Dynamics 365 to Retell AI for contact sync and integration tools.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://retellai.mintlify.site/_mintlify/api/og/v2?division=Microsoft+Dynamics+365\u0026amp;title=Connect+Dynamics+365\u0026amp;description=Connect+Microsoft+Dynamics+365+to+Retell+AI+with+OAuth%3A+find+your+Dataverse+environment+URL%2C+sign+in+with+Microsoft%2C+and+verify+the+connection+works.\u0026amp;theme=2259d4172d4ae0cc61d9b63d\u0026amp;signature=a41d75f5253df0fedb9c865d30a8e506f01c849265c773308321a5a8adacdbda\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Retell AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#606A78\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.retellai.com/integrations/microsoft-dynamics\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/integrations/microsoft-dynamics.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.retellai.com/#organization\",\"name\":\"Retell AI\",\"url\":\"https://docs.retellai.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/retellai/-E9UettTBfBiCBBS/images/docs-light.png?fit=max\u0026auto=format\u0026n=-E9UettTBfBiCBBS\u0026q=85\u0026s=64eb26a2d3cc9a67ee3ea0bfe086dd14\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.retellai.com#website\",\"name\":\"Retell AI\",\"url\":\"https://docs.retellai.com\",\"publisher\":{\"@id\":\"https://docs.retellai.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.retellai.com/integrations/microsoft-dynamics#webpage\",\"url\":\"https://docs.retellai.com/integrations/microsoft-dynamics\",\"name\":\"Connect Dynamics 365\",\"description\":\"Connect Microsoft Dynamics 365 to Retell AI with OAuth: find your Dataverse environment URL, sign in with Microsoft, and verify the connection works.\",\"dateModified\":\"2026-08-21T21:51:24.861Z\",\"isPartOf\":{\"@id\":\"https://docs.retellai.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.retellai.com/integrations/microsoft-dynamics#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.retellai.com/integrations/microsoft-dynamics#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Integrations\",\"item\":\"https://docs.retellai.com/integrations/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CRM\",\"item\":\"https://docs.retellai.com/integrations/crm-overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Connect Dynamics 365\",\"item\":\"https://docs.retellai.com/integrations/microsoft-dynamics\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.retellai.com/integrations/microsoft-dynamics#article\",\"headline\":\"Connect Dynamics 365\",\"name\":\"Connect Dynamics 365\",\"description\":\"Connect Microsoft Dynamics 365 to Retell AI with OAuth: find your Dataverse environment URL, sign in with Microsoft, and verify the connection works.\",\"url\":\"https://docs.retellai.com/integrations/microsoft-dynamics\",\"mainEntityOfPage\":{\"@id\":\"https://docs.retellai.com/integrations/microsoft-dynamics#webpage\"},\"dateModified\":\"2026-08-21T21:51:24.861Z\",\"keywords\":\"Dynamics 365 integration, Microsoft Dynamics CRM, Dataverse integration, Dynamics environment URL, connect Dynamics 365, AI assistant Dynamics 365\",\"publisher\":{\"@id\":\"https://docs.retellai.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.retellai.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Retell AI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Retell AI","nav":{"global":null,"tabs":[{"tab":"Guides","icon":"book","groups":[{"group":" ","pages":[{"title":"Introduction to Retell","href":"/general/introduction"},{"title":"Build your first phone agent in 15 minutes","href":"/get-started/quick-start"}]},{"group":"Conductor (AI Assistant)","icon":"https://mintlify.s3.us-west-1.amazonaws.com/retellai/images/conductor/conductor-icon.svg","pages":[{"title":"Retell AI Conductor overview","sidebarTitle":"Overview","href":"/conductor/overview"},{"group":"Functionality","pages":[{"title":"Build and refine agents","href":"/conductor/build-and-refine"},{"title":"Test and improve agents","href":"/conductor/test-and-improve"},{"title":"Inspect knowledge bases","href":"/conductor/knowledge-base"},{"title":"Review calls and chats","href":"/conductor/call-and-chat-history"},{"title":"Build analytics dashboards","href":"/conductor/analytics-dashboards"},{"title":"Review QA results","href":"/conductor/ai-qa"},{"title":"Review contacts","href":"/conductor/contacts"}]},{"title":"Pricing","href":"/conductor/usage-and-billing"}]},{"group":"Build","icon":"bot","pages":[{"title":"Build a Retell agent: configuration overview","href":"/build/overview"},{"title":"Single prompt vs. conversation flow","href":"/build/choose-agent-type"},{"title":"General prompting principles","href":"/build/prompt-engineering-guide"},{"group":"Single prompt agents","pages":[{"title":"Single prompt best practices","href":"/build/single-multi-prompt/write-single-prompt"},{"title":"Configure basic settings","href":"/build/single-multi-prompt/configure-basic-settings"},{"group":"Functions","pages":[{"title":"Function calling for single and multi-prompt agents","href":"/build/single-multi-prompt/function-calling"},{"title":"End call","href":"/build/single-multi-prompt/end-call"},{"title":"Transfer call tool (single \u0026 multi-prompt agents)","href":"/build/single-multi-prompt/transfer-call"},{"title":"Send SMS","href":"/build/single-multi-prompt/send-sms"},{"title":"Press digit (IVR navigation)","href":"/build/single-multi-prompt/press-digit"},{"title":"Integrate any system with custom function","href":"/build/single-multi-prompt/custom-function"},{"title":"Integration tools","href":"/build/single-multi-prompt/integration-tools"},{"title":"Code tool: run JavaScript in a Retell agent","href":"/build/single-multi-prompt/code-tool"},{"title":"Extract Dynamic Variables","href":"/build/single-multi-prompt/extract-dv"},{"title":"Agent Transfer tool: hand a call to another AI agent","href":"/build/single-multi-prompt/transfer-agent"},{"title":"MCP tools for single and multi-prompt agents","href":"/build/single-multi-prompt/mcp"}]}]},{"group":"Conversation flow agents","pages":[{"title":"Conversation flow agents: structured voice AI call control","href":"/build/conversation-flow/overview"},{"title":"Conversation flow best practices","href":"/build/conversation-flow/best-practices"},{"title":"Configure global settings","href":"/build/conversation-flow/global-setting"},{"group":"Nodes","pages":[{"title":"Nodes and edges","href":"/build/conversation-flow/node"},{"title":"Subagent node","href":"/build/conversation-flow/subagent-node"},{"title":"Conversation node","href":"/build/conversation-flow/conversation-node"},{"group":"Function Node","pages":[{"title":"Call a function from a conversation flow node","href":"/build/conversation-flow/function-node"},{"title":"Custom function in conversation flow","href":"/build/conversation-flow/custom-function"},{"title":"Integration tools in conversation flow","href":"/build/conversation-flow/integration-tools"}]},{"title":"Code node: run JavaScript in a conversation flow","href":"/build/conversation-flow/code-node"},{"title":"Call transfer node in conversation flow","href":"/build/conversation-flow/call-transfer-node"},{"title":"Press Digit Node","href":"/build/conversation-flow/press-digit-node"},{"title":"End node","href":"/build/conversation-flow/end-node"},{"title":"Logic Split Node","href":"/build/conversation-flow/logic-split-node"},{"title":"SMS Node","href":"/build/conversation-flow/sms-node"},{"title":"Extract Dynamic Variable Node","href":"/build/conversation-flow/extract-dv-node"},{"title":"Agent Transfer Node","href":"/build/conversation-flow/transfer-agent-node"},{"title":"MCP node in conversation flow","href":"/build/conversation-flow/mcp-node"}]},{"title":"Transition conditions","href":"/build/conversation-flow/transition-condition"},{"title":"Reusable subflows for conversation flow agents","href":"/build/conversation-flow/components"},{"title":"Flex Mode: dynamic conversation flow execution","href":"/build/conversation-flow/flex-mode"},{"group":"Advanced features","pages":[{"title":"Global Node","href":"/build/conversation-flow/global-node"},{"title":"Finetune Examples","href":"/build/conversation-flow/finetune-examples"}]},{"title":"Debug guide","href":"/build/conversation-flow/debug-guide"}]},{"group":"Multi-prompt agents (legacy)","pages":[{"title":"Multi-prompt agents","href":"/build/single-multi-prompt/write-multi-prompt"}]},{"title":"Create chat agent","href":"/build/create-chat-agent"},{"title":"Agent workflow","href":"/agent/agent-workflow"},{"title":"Set language for your agent","href":"/agent/language"},{"title":"Configure a multilingual agent","href":"/agent/multilingual"},{"title":"Supported languages by provider","href":"/build/language-support"},{"group":"Understand user speech better","pages":[{"title":"Speech recognition providers","href":"/build/asr-providers"},{"title":"Transcription modes","href":"/build/transcription-mode"},{"title":"Handle background speech \u0026 noise","href":"/build/handle-background-noise"}]},{"group":"Generate better responses from LLM","pages":[{"title":"Agent Handbook","href":"/build/agent-handbook"},{"title":"Conversational Mode","href":"/build/conversational-mode"},{"title":"Pronunciation examples","href":"/build/prompt-situation-guide"},{"title":"LLM settings","href":"/build/llm-options"},{"title":"GPT Live voice model","href":"/build/gpt-live"}]},{"group":"Customize the synthesized speech","pages":[{"title":"Platform voices","href":"/build/platform-voices"},{"title":"Choose a custom provider","href":"/build/voice"},{"title":"Expressive Mode: add emotion and emphasis to agent speech","href":"/build/expressive-mode"},{"title":"Add custom pronunciation","href":"/build/add-pronunciation"},{"title":"Make the agent stay silent","href":"/build/no-response"},{"title":"Speech controls","href":"/build/speech-controls"},{"title":"Set up TTS fallback","href":"/build/tts-fallback"}]},{"group":"Integrate telephony features","pages":[{"title":"Handle voicemail and IVR","href":"/build/handle-voicemail"},{"title":"Capture DTMF input from user","href":"/build/user-dtmf"},{"title":"Set \u0026 parse custom SIP headers","href":"/build/telephony/sip-headers"}]},{"group":"Provide context to the agent","pages":[{"title":"Knowledge base setup and retrieval tuning","href":"/build/knowledge-base"},{"title":"Dynamic variables","href":"/build/dynamic-variables"}]},{"title":"Guardrails","href":"/build/guardrails"},{"title":"Do-not-call requests","href":"/build/do-not-call"}]},{"group":"Test","icon":"flask-conical","pages":[{"title":"Testing overview","href":"/test/test-overview"},{"group":"LLM Playground","pages":[{"title":"Manually test your agent","href":"/test/llm-playground"},{"title":"Debug your agent response","href":"/test/llm-playground-debug"}]},{"group":"LLM Simulation Testing","pages":[{"title":"Automatically test your agent","href":"/test/llm-simulation-testing"},{"title":"Batch test your agent","href":"/test/batch-test-simulation"}]},{"group":"Audio Testing","pages":[{"title":"Web call testing","href":"/test/test-web"},{"title":"Phone call testing","href":"/test/test-phone"}]},{"title":"Testing with Conductor","icon":"https://mintlify.s3.us-west-1.amazonaws.com/retellai/images/conductor/conductor-icon.svg","href":"/test/testing-with-conductor"},{"title":"Testing pricing","href":"/test/testing-pricing"}]},{"group":"Deploy","icon":"phone","pages":[{"title":"Purchase phone number","href":"/deploy/purchase-number"},{"title":"A/B Testing","href":"/deploy/ab-testing"},{"group":"Connect to custom telephony providers via SIP","pages":[{"title":"Connect Retell voice agents to custom telephony","href":"/deploy/custom-telephony"},{"group":"Connect via SIP trunking","pages":[{"title":"Connect a Twilio number to Retell with elastic SIP trunking","sidebarTitle":"Twilio","href":"/deploy/twilio"},{"title":"Telnyx","href":"/deploy/telnyx"},{"title":"Vonage","href":"/deploy/vonage"}]},{"group":"Connect to CCaaS","pages":[{"title":"Avaya","href":"/deploy/avaya"},{"title":"Connect Genesys Cloud to Retell","href":"/deploy/genesys"},{"title":"Connect Five9 to Retell","href":"/deploy/five9"},{"title":"Amazon Connect","href":"/deploy/amazon-connect"}]}]},{"group":"Make \u0026 receive phone calls","pages":[{"title":"Make outbound calls","href":"/deploy/outbound-call"},{"group":"Inbound calls","pages":[{"title":"Receive calls","href":"/deploy/inbound-call"},{"title":"Inbound call \u0026 SMS webhook","href":"/features/inbound-call-webhook"}]},{"title":"International calling","href":"/deploy/international-call"}]},{"title":"Implement chat with create chat completion","href":"/deploy/create-chat-completion"},{"title":"Website widget","href":"/deploy/chat-widget"},{"group":"Send \u0026 receive SMS","pages":[{"title":"Enable SMS","href":"/deploy/enable-sms"},{"title":"SMS campaign application","href":"/deploy/sms-campaign-application"}]},{"title":"Agent versions and tags","href":"/agent/version"},{"title":"Compare agent versions","href":"/agent/version-comparison"},{"title":"Create and schedule batch calls","href":"/deploy/make-batch-call"},{"group":"Dialer","pages":[{"title":"Outbound call campaigns","sidebarTitle":"Overview","href":"/dialer/overview"},{"title":"Choose contacts","href":"/dialer/contacts"},{"title":"Compliance checks","href":"/dialer/compliance-checks"},{"title":"Build a sequence","href":"/dialer/sequences"},{"title":"Caller ID and pacing","href":"/dialer/phone-numbers"}]},{"group":"Increase call pickup rate","pages":[{"title":"Spam likely overview","href":"/build/telephony/call_efficiency_overview"},{"title":"Add a business profile","href":"/build/telephony/business-profile"},{"title":"Apply for verified phone number","href":"/build/telephony/verified-phone"},{"title":"Apply for branded call","href":"/build/telephony/branded-call"},{"title":"Handle application rejection","href":"/build/telephony/branded-call-rejection"},{"title":"Stop caller ID service","href":"/build/telephony/delete-service"}]},{"title":"Make a web call","href":"/deploy/web-call"},{"title":"Web calls in native apps","href":"/deploy/native-web-call"},{"title":"Understand concurrency \u0026 limits","href":"/deploy/concurrency"}]},{"group":"Data","icon":"database","pages":[{"title":"Call \u0026 chat history","href":"/features/session-history"},{"title":"Contacts","href":"/features/contacts"},{"title":"Contact memory","href":"/features/contact-memory"}]},{"group":"Monitor","icon":"square-activity","pages":[{"title":"Monitor live calls","href":"/features/live-monitoring"},{"title":"Analytics dashboard","href":"/features/analytics-dashboard"},{"title":"Alert rules for call and chat metrics","href":"/features/alerting-overview"},{"group":"Register \u0026 handle webhooks","pages":[{"group":"Call Event Webhook","pages":[{"title":"Retell webhooks overview","href":"/features/webhook-overview"},{"title":"Register and set up a Retell webhook","href":"/features/register-webhook"}]},{"title":"Secure the webhook","href":"/features/secure-webhook"}]},{"group":"Post Call Extraction","pages":[{"title":"Post Call Extraction overview and categories","href":"/features/post-call-analysis-overview"},{"title":"Define the information you want to extract","href":"/features/post-call-analysis-create"},{"title":"Consume the analysis data","href":"/features/post-call-analysis-consumption"},{"title":"Rerun Post Call/Chat Extraction","href":"/features/rerun-call-analysis"}]},{"group":"AI Quality Assurance","pages":[{"title":"Automatically evaluate call quality with AI QA","sidebarTitle":"AI Quality Assurance","href":"/ai-qa/overview"},{"group":"Create QA","pages":[{"title":"Access AI QA","href":"/ai-qa/get-started"},{"title":"Define a QA cohort","href":"/ai-qa/create-cohort"},{"title":"Define resolution criteria","href":"/ai-qa/define-resolution-criteria"}]},{"title":"View QA results","href":"/ai-qa/view-qa-results"},{"title":"AI QA metrics","href":"/ai-qa/terminologies"},{"title":"Address metric issues","href":"/ai-qa/address-metric-issues"}]}]},{"group":"Reliability \u0026 Debugging","icon":"bug","pages":[{"title":"Reliability Overview","href":"/reliability/reliability-overview"},{"group":"Latency","pages":[{"title":"Check estimated latency","href":"/reliability/check-estimated-latency"},{"title":"Check actual latency","href":"/reliability/check-actual-latency"},{"title":"Troubleshoot high latency","href":"/reliability/troubleshoot-latency"}]},{"group":"Fix agent behaviors","pages":[{"title":"Transcription accuracy","href":"/reliability/wrong-transcript"},{"title":"Debug wrong response","href":"/reliability/wrong-response"}]},{"group":"Debug phone call issues","pages":[{"title":"Debug call transfer failure","href":"/reliability/call-performance"},{"title":"Debug call disconnection","href":"/reliability/debug-call-disconnect"},{"title":"Debug outbound connection issues","href":"/reliability/debug-outbound-call"},{"title":"Debug SIP calls using PCAP file","href":"/reliability/debug-calls-pcap"}]},{"title":"Agent paused or banned","href":"/reliability/agent-paused"},{"title":"Prevent abuse","href":"/reliability/prevent-abuse"},{"title":"Fraud Protection","href":"/reliability/fraud-protection"}]},{"group":"Accounts and Workspace","icon":"circle-user-round","pages":[{"title":"Create and manage Retell workspaces","href":"/accounts/workspace"},{"title":"Manage your Retell AI account","href":"/accounts/account"},{"title":"Use your business email","href":"/accounts/business-email"},{"title":"Access Control","href":"/accounts/access-control"},{"title":"KYC Verification","href":"/accounts/kyc"},{"group":"Billing","pages":[{"title":"Retell AI billing: credits, auto recharge, and invoices","href":"/accounts/billing"},{"title":"Exceptions to Our Per-Minute Pricing","href":"/accounts/billing-exceptions"},{"title":"Add payment methods","href":"/accounts/add-payment"},{"title":"Handle failed payments","href":"/accounts/fail-payment"}]},{"group":"Keys","pages":[{"title":"API Key Overview","href":"/accounts/api-keys-overview"},{"title":"Manage API keys and permission scopes","href":"/accounts/manage-api-keys"},{"title":"Public keys","href":"/accounts/public-keys"}]},{"group":"Privacy and Compliance","pages":[{"title":"Data Storage Settings","href":"/accounts/privacy-disable"},{"title":"Data Retention Policy","href":"/accounts/data-retention"},{"title":"Opt in to secure URL","href":"/accounts/signed-secure-url"},{"title":"Security and compliance","href":"/general/compliance"}]}]},{"group":"Integrations","icon":"unplug","pages":[{"title":"Connect CRMs, calendars, and knowledge sources to Retell","sidebarTitle":"Integrations overview","href":"/integrations/overview"},{"group":"CRM","pages":[{"title":"CRM integrations","href":"/integrations/crm-overview"},{"title":"CRM data mappings","href":"/integrations/crm-mappings"},{"group":"HubSpot","pages":[{"title":"Connect HubSpot","sidebarTitle":"Connect","href":"/integrations/hubspot"},{"title":"HubSpot contact sync","sidebarTitle":"Contact sync","href":"/integrations/hubspot-contact-sync"},{"title":"HubSpot agent functions","sidebarTitle":"Agent functions","href":"/integrations/hubspot-functions"}]},{"group":"Salesforce","pages":[{"title":"Connect Salesforce","sidebarTitle":"Connect","href":"/integrations/salesforce"},{"title":"Salesforce contact sync","sidebarTitle":"Contact sync","href":"/integrations/salesforce-contact-sync"},{"title":"Salesforce agent functions","sidebarTitle":"Agent functions","description":"Salesforce tools for Retell AI agents: identify callers, read opportunities and cases, create contacts, leads, and tasks, run SOQL queries, and update records.","href":"/integrations/salesforce-functions"}]},{"group":"Microsoft Dynamics 365","pages":[{"title":"Connect Dynamics 365","sidebarTitle":"Connect","href":"/integrations/microsoft-dynamics"},{"title":"Dynamics 365 contact sync","sidebarTitle":"Contact sync","description":"Sync Microsoft Dynamics 365 Contacts with Retell AI: field mappings, Post Call Extraction write-back, and calls logged as Phone Call activities.","href":"/integrations/microsoft-dynamics-contact-sync"},{"title":"Dynamics 365 agent functions","sidebarTitle":"Agent functions","href":"/integrations/microsoft-dynamics-functions"}]},{"group":"GoHighLevel","pages":[{"title":"Connect GoHighLevel","sidebarTitle":"Connect","href":"/integrations/gohighlevel"},{"title":"GoHighLevel contact sync","sidebarTitle":"Contact sync","href":"/integrations/gohighlevel-contact-sync"},{"title":"GoHighLevel agent functions","sidebarTitle":"Agent functions","href":"/integrations/gohighlevel-functions"}]},{"group":"Zoho CRM","pages":[{"title":"Connect Zoho CRM","sidebarTitle":"Connect","href":"/integrations/zoho"},{"title":"Zoho contact sync","sidebarTitle":"Contact sync","href":"/integrations/zoho-contact-sync"},{"title":"Zoho agent functions","sidebarTitle":"Agent functions","href":"/integrations/zoho-functions"}]}]},{"group":"Helpdesk","pages":[{"group":"Zendesk","pages":[{"title":"Connect Zendesk","sidebarTitle":"Connect","href":"/integrations/zendesk"},{"title":"Zendesk agent functions","sidebarTitle":"Agent functions","href":"/integrations/zendesk-functions"}]}]},{"group":"Knowledge Base","pages":[{"group":"Google Drive","pages":[{"title":"Connect Google Drive","sidebarTitle":"Connect","href":"/integrations/google-drive"},{"title":"Google Drive knowledge base sync","sidebarTitle":"Knowledge base sync","href":"/integrations/google-drive-knowledge-base"}]},{"group":"Microsoft OneDrive","pages":[{"title":"Connect OneDrive","sidebarTitle":"Connect","href":"/integrations/microsoft-onedrive"},{"title":"OneDrive knowledge base sync","sidebarTitle":"Knowledge base sync","href":"/integrations/microsoft-onedrive-knowledge-base"}]},{"group":"Notion","pages":[{"title":"Connect Notion","sidebarTitle":"Connect","href":"/integrations/notion"},{"title":"Notion knowledge base sync","sidebarTitle":"Knowledge base sync","href":"/integrations/notion-knowledge-base"}]}]},{"group":"Calendar","pages":[{"group":"GoHighLevel","pages":[{"title":"GoHighLevel agent functions","sidebarTitle":"Agent functions","href":"/integrations/gohighlevel-functions"}]},{"group":"Calendly","pages":[{"title":"Connect Calendly","sidebarTitle":"Connect","href":"/integrations/calendly"},{"title":"Calendly agent functions","sidebarTitle":"Agent functions","href":"/integrations/calendly-functions"}]},{"group":"Cal.com","pages":[{"title":"Connect Cal.com","sidebarTitle":"Connect","href":"/integrations/cal-com"},{"title":"Cal.com agent functions","sidebarTitle":"Agent functions","href":"/integrations/cal-com-functions"}]}]}]},{"group":"Marketplace","icon":"store","pages":[{"title":"Trigger Retell calls from HubSpot workflows","href":"/integrations/hubspot-marketplace"},{"title":"Trigger Retell calls from Zoho CRM workflows","href":"/integrations/zoho-marketplace"},{"title":"Trigger Retell calls from Slack","href":"/integrations/slack-marketplace"},{"title":"Trigger Retell calls from Notion","href":"/integrations/notion-marketplace"},{"title":"Trigger Retell calls from Google Sheets","href":"/integrations/google-sheets-marketplace"}]},{"group":"Other Topics","pages":[{"group":"Custom LLM","pages":[{"title":"Custom LLM overview","href":"/integrate-llm/overview"},{"title":"Set up a custom LLM WebSocket server for your Retell agent","href":"/integrate-llm/setup-websocket-server"},{"title":"Connect your LLM","href":"/integrate-llm/integrate-llm"},{"title":"Add function calling","href":"/integrate-llm/integrate-function-calling"},{"title":"Troubleshooting","href":"/integrate-llm/troubleshooting"},{"title":"Best practices","href":"/integrate-llm/llm-best-practice"}]},{"title":"Audio Basics","href":"/knowledge/audio-basics"}]}]},{"tab":"API Reference","icon":"code-xml","pages":[{"title":"API Reference","href":"/api-references/overview"}]},{"tab":"SDK","icon":"package","pages":[{"title":"SDK","href":"/get-started/sdk"}]},{"tab":"MCP","icon":"plug-zap","pages":[{"title":"MCP","href":"/get-started/mcp-server"}]},{"tab":"CLI","icon":"terminal","pages":[{"title":"CLI","href":"/get-started/cli"}]},{"tab":"Deprecations","icon":"book-alert","pages":[{"title":"Deprecations","href":"/deprecation-notice/overview"}]}]},"basePath":"","title":"Connect Dynamics 365 to Retell — OAuth setup","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-5Xwp92K7.js","DynamicMarkdown-BoyYAA8K.js","zoom-image-lightbox-DkE6VzSN.js","lightbox-handle-r17bVUz3.js"]}