AI agent skill
Dynamics 365 Automation
Dynamics 365 Automation: manage CRM contacts, accounts, leads, opportunities, sales orders, invoices, and cases via the Dynamics CRM Web API
·
When to use this skill
Use Dynamics 365 Automation when an AI agent needs a reusable SKILL.md workflow for this job: Dynamics 365 Automation: manage CRM contacts, accounts, leads, opportunities, sales orders, invoices, and cases via the Dynamics CRM Web API
When not to use it
Skip Dynamics 365 Automation when the task is outside the productivity category, or when a more specific skill in this directory already covers the same workflow with clearer triggers.
How to install
- Personal install: create ~/.claude/skills/dynamics-365-automation/SKILL.md (and any bundled scripts) so Claude Code, Claude Desktop, and compatible agents can load it in every project.
- Project install: commit the same folder at .claude/skills/dynamics-365-automation/ so teammates get the skill with the repo.
- Restart the agent session after copying files so it re-scans the skills directory, then ask for the task in words that match the skill description.
What this skill does
# Dynamics 365 Automation
Automate Microsoft Dynamics 365 CRM operations including creating and updating contacts, accounts, leads, opportunities, sales orders, invoices, and support cases.
**Toolkit docs:** [composio.dev/toolkits/dynamics365](https://composio.dev/toolkits/dynamics365)
---
## Setup
This skill requires the **Rube MCP server** connected at `https://rube.app/mcp`.
Before executing any tools, ensure an active connection exists for the `dynamics365` toolkit. If no connection is active, initiate one via `RUBE_MANAGE_CONNECTIONS`.
---
## Core Workflows
### 1. Manage Leads
Create, update, retrieve, and list lead records.
**Tools:** - `DYNAMICS365_DYNAMICSCRM_CREATE_LEAD` -- Create a new lead - `DYNAMICS365_DYNAMICSCRM_UPDATE_LEAD` -- Update an existing lead - `DYNAMICS365_DYNAMICSCRM_GET_A_LEAD` -- Retrieve a lead by GUID - `DYNAMICS365_DYNAMICSCRM_GET_ALL_LEADS` -- List/filter all leads
**Key Parameters for `DYNAMICS365_DYNAMICSCRM_CREATE_LEAD`:** - `firstname` -- First name of the lead - `lastname` -- Last name of the lead - `emailaddress1` -- Primary email address - `telephone1` -- Primary phone number - `companyname` -- Associated company name - `subject` -- Brief title/description
**Key Parameters for `DYNAMICS365_DYNAMICSCRM_GET_ALL_LEADS`:** - `filter` -- OData filter, e.g., `"contains(fullname,'John')"` - `select` -- Fields to return, e.g., `"fullname,emailaddress1"` - `orderby` -- Sort expression, e.g., `"createdon desc"` - `top` -- Max number of results
**Example:** ``` Tool: DYNAMICS365_DYNAMICSCRM_CREATE_LEAD Arguments: firstname: "Jane" lastname: "Smith" emailaddress1: "[email protected]" companyname: "Acme Corp" subject: "Interested in Enterprise plan" ```
---
### 2. Manage Accounts
Create and organize account (company) records in the CRM.
**Tool:** `DYNAMICS365_DYNAMICSCRM_CREATE_ACCOUNT`
**Key Parameters:** - `name` -- Account/company name - `description` -- Description of the account - `revenue` -- Revenue amount (number) - `accountcategorycode` -- Category code (integer, default: 1) - `creditonhold` -- Whether account is on credit hold (boolean)
**Example:** ``` Tool: DYNAMICS365_DYNAMICSCRM_CREATE_ACCOUNT Arguments: name: "Contoso Ltd" description: "Strategic partner for cloud services" revenue: 5000000 creditonhold: false ```
---
### 3. Manage Contacts
Create detailed contact records with address and phone information.
**Tool:** `DYNAMICS365_DYNAMICSCRM_CREATE_CONTACT`
**Key Parameters:** - `firstname`, `lastname` -- Contact name - `emailaddress1` -- Primary email - `telephone1` -- Primary phone - `mobilephone` -- Mobile phone - `jobtitle` -- Job title - `address1_city`, `address1_stateorprovince`, `address1_postalcode`, `address1_country` -- Address fields
**Example:** ``` Tool: DYNAMICS365_DYNAMICSCRM_CREATE_CONTACT Arguments: firstname: "Bob" lastname: "Johnson" emailaddress1: "[email protected]" jobtitle: "VP of Engineering" address1_city: "Seattle" address1_stateorprovince: "WA" ```
---
### 4. Manage Opportunities
Create and update sales opportunities with estimated values and close dates.
**Tools:** - `DYNAMICS365_DYNAMICSCRM_CREATE_OPPORTUNITY` -- Create a new opportunity - `DYNAMICS365_DYNAMICSCRM_UPDATE_OPPORTUNITY` -- Update an existing opportunity
**Key Parameters for `DYNAMICS365_DYNAMICSCRM_CREATE_OPPORTUNITY`:** - `name` (required) -- Opportunity title - `description` -- Brief description - `estimatedvalue` -- Anticipated revenue (number) - `estimatedclosedate` -- Expected close date in `YYYY-MM-DD` format - `customer_account_id` -- GUID of the related account (no curly braces) - `customer_contact_id` -- GUID of the related contact (no curly braces)
**Key Parameters for `DYNAMICS365_DYNAMICSCRM_UPDATE_OPPORTUNITY`:** - `opportunity_id` (required) -- GUID of the opportunity - `opportunityratingcode` -- 1 (Cold), 2 (Warm), 3 (Hot) - `salesstagecode` -- 1 (Qualify), 2 (Develop), 3 (Propose)
**Example:** ``` Tool: DYNAMICS365_DYNAMICSCRM_CREATE_OPPORTUNITY Arguments: name: "Enterprise Cloud Migration" estimatedvalue: 250000 estimatedclosedate: "2026-06-30" description: "Full cloud migration project for Contoso" ```
---
### 5. Manage Sales Orders and Invoices
Create and update sales orders; generate invoices for billing.
**Tools:** - `DYNAMICS365_DYNAMICSCRM_CREATE_SALES_ORDER` -- Create a new sales order - `DYNAMICS365_DYNAMICSCRM_UPDATE_SALES_ORDER` -- Update an existing sales order - `DYNAMICS365_DYNAMICSCRM_CREATE_INVOICE` -- Create a new invoice
**Key Parameters for `DYNAMICS365_DYNAMICSCRM_CREATE_SALES_ORDER`:** - `name` -- Sales order name - `description` -- Description - `account_id` -- Reference to account, format: `"/accounts(GUID)"` - `currency_id` -- Currency reference, format: `"/transactioncurrencies(GUID)"` - `price_level_id` -- Price list reference, format: `"/pricelevels(GUID)"`
**Key Parameters for `DYNAMICS365_DYNAMICSCRM_UPDATE_SALES_ORDER`:** - `salesorder_id` (required) -- GUID of the sales order - `name` -- Updated name - `discountamount` -- Updated discount - `freightamount` -- Updated shipping cost
**Key Parameters for `DYNAMICS365_DYNAMICSCRM_CREATE_INVOICE`:** - `name` -- Invoice name/number, e.g., `"Invoice #12345"` - `description` -- Invoice description - `account_id` -- Related account reference - `currency_id` -- Currency reference - `price_level_id` -- Price list reference
---
### 6. Create Support Cases
Create incident/case records for customer support tracking.
**Tool:** `DYNAMICS365_DYNAMICSCRM_CREATE_CASE`
**Key Parameters:** - `title` -- Subject/title of the case - `description` -- Detailed description - `prioritycode` -- 1 (Low), 2 (Normal), 3 (High) - `caseorigincode` -- 1 (Phone), 2 (Email), 3 (Web) - `account_id` -- Related account, format: `"/accounts(GUID)"` - `contact_id` -- Related contact, format: `"/contacts(GUID)"`
**Example:** ``` Tool: DYNAMICS365_DYNAMICSCRM_CREATE_CASE Arguments: title: "Login issue reported by customer" description: "Customer unable to access portal since Feb 10" prioritycode: 3 caseorigincode: 2 ```
---
## Known Pitfalls
| Pitfall | Detail | |---------|--------| | **GUID format** | All entity IDs are GUIDs (e.g., `"00000000-0000-0000-0000-000000000000"`). Do not include curly braces for opportunity/contact references. | | **Reference format** | Related entity references use the format `"/entityset(GUID)"` (e.g., `"/accounts(abc-123)"`). Missing the leading slash or parentheses causes errors. | | **OData filter syntax** | Use Dynamics 365 OData syntax for `filter` (e.g., `contains(fullname,'John')`). Incorrect syntax returns empty or error responses. | | **user_id default** | Most tools default `user_id` to `"me"` for the authenticated user. Override only when acting on behalf of another user. | | **Required fields** | `CREATE_OPPORTUNITY` requires `name`. Other create tools have no strict required fields but will create empty records without data. |
---
## Quick Reference
| Tool Slug | Description | |-----------|-------------| | `DYNAMICS365_DYNAMICSCRM_CREATE_LEAD` | Create a new lead record | | `DYNAMICS365_DYNAMICSCRM_UPDATE_LEAD` | Update an existing lead | | `DYNAMICS365_DYNAMICSCRM_GET_A_LEAD` | Retrieve a lead by GUID | | `DYNAMICS365_DYNAMICSCRM_GET_ALL_LEADS` | List/filter all leads | | `DYNAMICS365_DYNAMICSCRM_CREATE_ACCOUNT` | Create a new account | | `DYNAMICS365_DYNAMICSCRM_CREATE_CONTACT` | Create a new contact | | `DYNAMICS365_DYNAMICSCRM_CREATE_OPPORTUNITY` | Create a new opportunity | | `DYNAMICS365_DYNAMICSCRM_UPDATE_OPPORTUNITY` | Update an existing opportunity | | `DYNAMICS365_DYNAMICSCRM_CREATE_SALES_ORDER` | Create a new sales order | | `DYNAMICS365_DYNAMICSCRM_UPDATE_SALES_ORDER` | Update an existing sales order | | `DYNAMICS365_DYNAMICSCRM_CREATE_INVOICE` | Create a new invoice | | `DYNAMICS365_DYNAMICSCRM_CREATE_CASE` | Create a support case/incident |
---
*Powered by [Composio](https://composio.dev)*
Intended uses
- Use Dynamics 365 Automation when this documented workflow matches the task.
Related skills
Related skills in this directory, for comparison before you install another skill.
productivity
21risk Automation
Automate 21risk tasks via Rube MCP (Composio). Always search tools first for current schemas.
productivity
2chat Automation
Automate 2chat tasks via Rube MCP (Composio). Always search tools first for current schemas.
productivity
Ably Automation
Automate Ably tasks via Rube MCP (Composio). Always search tools first for current schemas.
productivity
Abstract Automation
Automate Abstract tasks via Rube MCP (Composio). Always search tools first for current schemas.