home / skills / composiohq / awesome-claude-skills / dynamics365-automation
/dynamics365-automation
This skill automates Dynamics 365 CRM operations including creating and updating records across contacts, accounts, leads, opportunities, orders, invoices, and
npx playbooks add skill composiohq/awesome-claude-skills --skill dynamics365-automationReview the files below or copy the command above to add this skill to your agents.
---
name: Dynamics 365 Automation
description: "Dynamics 365 Automation: manage CRM contacts, accounts, leads, opportunities, sales orders, invoices, and cases via the Dynamics CRM Web API"
requires:
mcp: [rube]
---
# 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)*
This skill automates Microsoft Dynamics 365 CRM tasks so you can create, update, retrieve, and list leads, contacts, accounts, opportunities, sales orders, invoices, and support cases via the Dynamics CRM Web API. It connects through a Rube MCP server and exposes discrete tools for common CRM workflows to reduce manual entry and speed sales and support processes.
The skill uses toolkit actions that call the Dynamics 365 Web API through an active Rube MCP connection. Each tool maps to a CRM entity operation (create, update, get, list) and accepts Dynamics-specific parameters (GUID references, OData filters, and entity fields). Follow the required formats for GUIDs and entity reference strings to avoid API errors.
What connection is required to use these tools?
An active dynamics365 connection on the Rube MCP server (https://rube.app/mcp) is required before executing tools.
How should I format related entity references and GUIDs?
Use plain GUIDs without curly braces for IDs. When referencing related records, use the string format "/entityset(GUID)" (for example, "/accounts(00000000-0000-0000-0000-000000000000)").