Dynamics 365 Automation

Dynamics 365 Automation: manage CRM contacts, accounts, leads, opportunities, sales orders, invoices, and cases via the Dynamics CRM Web API

16 stars

Best use case

Dynamics 365 Automation is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Dynamics 365 Automation: manage CRM contacts, accounts, leads, opportunities, sales orders, invoices, and cases via the Dynamics CRM Web API

Teams using Dynamics 365 Automation should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/dynamics-365-automation/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/development/dynamics-365-automation/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/dynamics-365-automation/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How Dynamics 365 Automation Compares

Feature / AgentDynamics 365 AutomationStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Dynamics 365 Automation: manage CRM contacts, accounts, leads, opportunities, sales orders, invoices, and cases via the Dynamics CRM Web API

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 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: "jane.smith@example.com"
  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: "bob.johnson@example.com"
  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)*

Related Skills

Excel Automation

16
from diegosouzapw/awesome-omni-skill

Excel Automation: create workbooks, manage worksheets, read/write cell data, and format spreadsheets via Microsoft Excel and Google Sheets integration

eodhd-apis-automation

16
from diegosouzapw/awesome-omni-skill

Automate Eodhd Apis tasks via Rube MCP (Composio). Always search tools first for current schemas.

dictionary-api-automation

16
from diegosouzapw/awesome-omni-skill

Automate Dictionary API tasks via Rube MCP (Composio). Always search tools first for current schemas.

currents-api-automation

16
from diegosouzapw/awesome-omni-skill

Automate Currents API tasks via Rube MCP (Composio). Always search tools first for current schemas.

countdown-api-automation

16
from diegosouzapw/awesome-omni-skill

Automate Countdown API tasks via Rube MCP (Composio). Always search tools first for current schemas.

convertapi-automation

16
from diegosouzapw/awesome-omni-skill

Automate Convertapi tasks via Rube MCP (Composio). Always search tools first for current schemas.

contentful-graphql-automation

16
from diegosouzapw/awesome-omni-skill

Automate Contentful Graphql tasks via Rube MCP (Composio). Always search tools first for current schemas.

cloudflare-api-key-automation

16
from diegosouzapw/awesome-omni-skill

Automate Cloudflare API tasks via Rube MCP (Composio). Always search tools first for current schemas.

Clockify Automation

16
from diegosouzapw/awesome-omni-skill

Automate time tracking workflows in Clockify -- create and manage time entries, workspaces, and users through natural language commands.

cdr-platform-automation

16
from diegosouzapw/awesome-omni-skill

Automate Cdr Platform tasks via Rube MCP (Composio). Always search tools first for current schemas.

callerapi-automation

16
from diegosouzapw/awesome-omni-skill

Automate Callerapi tasks via Rube MCP (Composio). Always search tools first for current schemas.

byteforms-automation

16
from diegosouzapw/awesome-omni-skill

Automate Byteforms tasks via Rube MCP (Composio). Always search tools first for current schemas.