Dynamics 365 for AI agents

Dynamics 365 is Microsoft's suite combining CRM and ERP apps for managing sales, marketing, customer service, and operations, used by mid-size and enterprise businesses running on Microsoft's stack. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.

CRMOAuth 2.0MCP + RESTdynamics.microsoft.com
AUDIT LOG · DYNAMICS 365POLICY: acme-support
09:41:07 · claude · u_8f2read
dynamics_365.get_all_invoices_action
Get all invoices action✓ allowed · 212ms
09:41:09 · claude · u_8f2write
dynamics_365.dynamicscrm_get_a_lead
Dynamicscrm get a lead✓ approved · approved by user
EVERY DYNAMICS 365 CALL, ON THE RECORD
01 · USE CASES

What agents do in Dynamics 365.

01

Create a new lead

Create a lead record once a new prospect is identified from an inbound inquiry.

02

Check an opportunity's details

Get an opportunity's stage and value to prep for a pipeline review.

03

Approve before updating a sales order

Route a sales order update through approval, since it can change what a customer is billed.

02 · ACTIONS

16 Dynamics 365 actions, graded by risk.

Every Dynamics 365 action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.

read

1

Look things up. Allowed by default.

  • dynamics_365.get_all_invoices_action
    Get all invoices action

write

15

Create and change things. Allow, or ask the user first.

  • dynamics_365.dynamicscrm_get_a_lead
    Dynamicscrm get a lead
  • dynamics_365.dynamicscrm_create_case
    Create Case
  • dynamics_365.dynamicscrm_create_lead
    Create Lead
  • dynamics_365.dynamicscrm_update_case
    Update Case
  • dynamics_365.dynamicscrm_update_lead
    Update Lead
  • dynamics_365.dynamicscrm_get_a_invoice
    Dynamicscrm get a invoice
  • dynamics_365.dynamicscrm_get_all_leads
    Dynamicscrm get all leads
  • dynamics_365.dynamicscrm_create_account
    Create Account
  • dynamics_365.dynamicscrm_create_contact
    Create Contact
  • dynamics_365.dynamicscrm_create_invoice
    Create Invoice
  • dynamics_365.dynamicscrm_update_invoice
    Update Invoice
  • dynamics_365.dynamicscrm_create_opportunity
    Create Opportunity
  • dynamics_365.dynamicscrm_create_sales_order
    Create Sales Order
  • dynamics_365.dynamicscrm_update_opportunity
    Update Opportunity
  • dynamics_365.dynamicscrm_update_sales_order
    Update Sales Order

destructive

0

Delete, cancel or archive. Ask first, or deny outright.

  • No destructive actions.
03 · HOW IT WORKS

Dynamics 365 in three steps.

  1. 01Your users connect Dynamics 365They sign in to Dynamics 365 on Arc0 Connect, under your brand, and approve the access you ask for.
  2. 02You set the rulesReads run, and writes like “dynamicscrm get a lead” can wait for the user to approve.
  3. 03Any agent can actYour agent calls Dynamics 365 through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
POLICY.TS
await arc0.policies.set('dynamics_365', {
  read: 'allow',
  write: 'ask',        // dynamicscrm_get_a_lead
  destructive: 'deny',  
})

# Claude Code: the same connection, one URL
$ claude mcp add --transport http arc0 \
    https://mcp.arc0.ai/u/u_8f2
04 · AUTH AND DATA

How Dynamics 365 connects.

Users sign in to Dynamics 365 on Arc0 Connect and approve the scopes you request. Build with Arc0’s Dynamics 365 OAuth app, or bring your own so the Dynamics 365 consent screen names you. Tokens refresh automatically, and you can export them whenever you want.

The same Dynamics 365 connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →

AUTH
OAuth 2.0
CREDENTIALS
Per-tenant encrypted vault
MODEL SEES
Results only, never credentials
AUDIT LOG
Every call, on every plan
05 · WORKS WITH

Use Dynamics 365 from any agent.

Claude
ChatGPT
Cursor
Codex
VS Code
OpenAI Agents SDK
Claude Agent SDK
Vercel AI SDK
Mastra
LangGraph
07 · FAQ

Dynamics 365 and Arc0, answered.

Q01

Can I use Dynamics 365 with Claude, ChatGPT or Cursor?

Yes. Connect Dynamics 365 to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the Dynamics 365 actions you allow.

Q02

How do users connect Dynamics 365?

Users sign in to Dynamics 365 on Arc0 Connect and approve the scopes you request. Build with Arc0’s Dynamics 365 OAuth app, or bring your own so the Dynamics 365 consent screen names you. Tokens refresh automatically, and you can export them whenever you want.

Q03

Which Dynamics 365 actions can my agent take?

16 in total: 1 read, 15 write and 0 destructive, such as “dynamicscrm get a lead”. Your policies decide which of them each agent may call.

Q04

Can I make my agent read-only in Dynamics 365?

Yes. Allow read actions and deny writes in the Dynamics 365 policy. Your agent can still look things up, and any write it attempts is blocked and logged.

Q05

Can my own backend call Dynamics 365 too?

Yes. The same Dynamics 365 connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.

Get started

Plug Dynamics 365 into your agent.

Your users connect Dynamics 365 once, under your brand. Your agent gets 16 actions behind your policies, with every call on the record.

Free to build · MCP + REST · Audit log on every plan