Dynamics 365 Automation
Scannednpx machina-cli add skill ComposioHQ/awesome-claude-skills/dynamics365-automation --openclawDynamics 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
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 leadDYNAMICS365_DYNAMICSCRM_UPDATE_LEAD-- Update an existing leadDYNAMICS365_DYNAMICSCRM_GET_A_LEAD-- Retrieve a lead by GUIDDYNAMICS365_DYNAMICSCRM_GET_ALL_LEADS-- List/filter all leads
Key Parameters for DYNAMICS365_DYNAMICSCRM_CREATE_LEAD:
firstname-- First name of the leadlastname-- Last name of the leademailaddress1-- Primary email addresstelephone1-- Primary phone numbercompanyname-- Associated company namesubject-- 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 namedescription-- Description of the accountrevenue-- 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 nameemailaddress1-- Primary emailtelephone1-- Primary phonemobilephone-- Mobile phonejobtitle-- Job titleaddress1_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 opportunityDYNAMICS365_DYNAMICSCRM_UPDATE_OPPORTUNITY-- Update an existing opportunity
Key Parameters for DYNAMICS365_DYNAMICSCRM_CREATE_OPPORTUNITY:
name(required) -- Opportunity titledescription-- Brief descriptionestimatedvalue-- Anticipated revenue (number)estimatedclosedate-- Expected close date inYYYY-MM-DDformatcustomer_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 opportunityopportunityratingcode-- 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 orderDYNAMICS365_DYNAMICSCRM_UPDATE_SALES_ORDER-- Update an existing sales orderDYNAMICS365_DYNAMICSCRM_CREATE_INVOICE-- Create a new invoice
Key Parameters for DYNAMICS365_DYNAMICSCRM_CREATE_SALES_ORDER:
name-- Sales order namedescription-- Descriptionaccount_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 ordername-- Updated namediscountamount-- Updated discountfreightamount-- Updated shipping cost
Key Parameters for DYNAMICS365_DYNAMICSCRM_CREATE_INVOICE:
name-- Invoice name/number, e.g.,"Invoice #12345"description-- Invoice descriptionaccount_id-- Related account referencecurrency_id-- Currency referenceprice_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 casedescription-- Detailed descriptionprioritycode-- 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
Source
git clone https://github.com/ComposioHQ/awesome-claude-skills/blob/master/composio-skills/dynamics365-automation/SKILL.mdView on GitHub Overview
Automates core Dynamics 365 CRM operations—creating, updating, and retrieving records such as leads, accounts, contacts, opportunities, sales orders, invoices, and cases. Using the Dynamics CRM Web API, it enables consistent data workflows, faster onboarding, and better pipeline visibility. It integrates through the Rube MCP server's dynamics365 toolkit for automated CRM processes.
How This Skill Works
The skill exposes tools like DYNAMICS365_DYNAMICSCRM_CREATE_LEAD, DYNAMICS365_DYNAMICSCRM_UPDATE_LEAD, DYNAMICS365_DYNAMICSCRM_GET_A_LEAD, DYNAMICS365_DYNAMICSCRM_GET_ALL_LEADS, and similarly for accounts, contacts, and opportunities. You must establish an active connection to the Dynamics365 toolkit on the Rube MCP server (https://rube.app/mcp) before executing any tools. Create and update records by passing fields such as firstname, lastname, emailaddress1, and related IDs (customer_account_id, customer_contact_id) as specified in the Core Workflows.
When to Use It
- When onboarding new leads from web forms or campaigns and creating a lead record.
- When updating existing leads, accounts, contacts, or opportunities to reflect new information or status changes.
- When creating and organizing account records for new customers and partners with details like revenue and credit status.
- When creating opportunities linked to specific accounts and contacts to track pipeline and close dates.
- When retrieving or filtering multiple leads or opportunities for reporting or follow-up tasks.
Quick Start
- Step 1: Ensure an active connection for the dynamics365 toolkit on the RUBE MCP server at https://rube.app/mcp.
- Step 2: Choose a tool such as DYNAMICS365_DYNAMICSCRM_CREATE_LEAD and provide required fields (firstname, lastname, emailaddress1, companyname, subject).
- Step 3: Run the tool, review the response, and optionally fetch records with DYNAMICS365_DYNAMICSCRM_GET_ALL_LEADS to verify results.
Best Practices
- Ensure an active Rube MCP connection and the dynamics365 toolkit before running any tools.
- Validate related GUIDs (customer_account_id and customer_contact_id) when creating opportunities (no curly braces).
- Use OData filters (filter), field selection (select), and sorting (orderby) to efficiently query leads with GET_ALL_LEADS.
- Minimize API calls by only sending necessary fields for each operation and batching updates where possible.
- Implement robust error handling and logging to trace tool results and re-run failed operations.
Example Use Cases
- Example 1: Create a new lead from a web form with firstname, lastname, emailaddress1, companyname, and subject using DYNAMICS365_DYNAMICSCRM_CREATE_LEAD.
- Example 2: Create an account for a new customer with name, description, revenue, and creditonhold status via DYNAMICS365_DYNAMICSCRM_CREATE_ACCOUNT.
- Example 3: Create a contact with full address fields (address1_city, address1_stateorprovince, etc.) using DYNAMICS365_DYNAMICSCRM_CREATE_CONTACT.
- Example 4: Create an opportunity linked to an account and a contact with name, description, estimatedvalue, and estimatedclosedate using DYNAMICS365_DYNAMICSCRM_CREATE_OPPORTUNITY.
- Example 5: Retrieve all leads with a filter like contains(fullname,'John') and select specific fields with GET_ALL_LEADS.