Hey devs! Want to build an AI agent that talks to your Microsoft Dynamics 365 instance in plain English?
In this post, I’ll show you how I built a full-stack backend agent that interprets natural language queries, securely connects to Dynamics 365, and performs real-time CRM operations.
Features
Natural language → Structured CRM actions
OpenAI-powered intent parsing
Dynamics 365 Web API integration
Full CRUD support
Azure AD OAuth 2.0 authentication
Tech Stack
Node.js 18+
TypeScript
Express
Axios
OpenAI API
Azure AD + MSAL
Azure Setup
Register an app in Azure AD
Add user_impersonation for Dynamics + User.Read for Graph
Save your client_id, tenant_id, and client_secret
Environment Variables (.env)
envCopyEditAZURE_CLIENT_ID=…
AZURE_CLIENT_SECRET=…
AZURE_TENANT_ID=…
DYNAMICS_URL=https://yourorg.crm.dynamics.com
OPENAI_API_KEY=…
Project Structure
arduinoCopyEditsrc/
├── services/
│ ├── authService.ts
│ ├── dynamicsService.ts
│ └── aiService.ts
├── controllers/
│ └── agentController.ts
├── config.ts
└── app.ts
Example Query
bashCopyEditcurl -X POST http://localhost:3000/api/agent/query
-H „Content-Type: application/json“
-d ‚{„query“: „Show me all contacts from Microsoft“}‘
Response:
jsonCopyEdit{
„success“: true,
„intent“: {
„action“: „get“,
„entity“: „contacts“,
…
},
„result“: {
„count“: 3,
„data“: […]
}
}
Extend It
Add support for leads, cases, custom entities
Redis caching layer
Frontend chatbot
Webhook handler for Dynamics events
Deploy It
You can deploy to:
Azure App Service
Docker
Render / Railway / Fly.io
Add observability with Azure Application Insights or LogRocket.
Resources
Microsoft Graph + CRM API Docs
OpenAI API
OAuth 2.0 for Dynamics
linkedin–demo here https://github.com/anshdeepsharma/AIonD365/compare/master…deep-prac
Final Thoughts
This is a solid base for building real AI agents that work with enterprise systems. Whether you’re automating support, sales ops, or reporting — AI + CRM is fire.