Dynamics365

Learn how to use Dynamics365 with Composio

Overview

SLUG: DYNAMICS365

Description

Dynamics 365 from Microsoft combines CRM, ERP, and productivity apps to streamline sales, marketing, customer service, and operations in one integrated platform

Authentication Details

client_id
stringRequired
client_secret
stringRequired
oauth_redirect_uri
stringDefaults to https://backend.composio.dev/api/v1/auth-apps/add
scopes
stringDefaults to https://{{subdomain}}.api.crm.dynamics.com/user_impersonation,offline_access
bearer_token
string
subdomain
stringRequired

Connecting to Dynamics365

Create an auth config

Use the dashboard to create an auth config for the Dynamics365 toolkit. This allows you to connect multiple Dynamics365 accounts to Composio for agents to use.

1

Select App

Navigate to Dynamics365.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Dynamics365 Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using OAuth2

1from composio import Composio
2
3# Replace these with your actual values
4dynamics365_auth_config_id = "ac_YOUR_DYNAMICS365_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/application
6
7composio = Composio()
8
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 connection_request = composio.connected_accounts.initiate(
12 user_id=user_id,
13 auth_config_id=auth_config_id,
14 )
15
16 print(
17 f"Visit this URL to authenticate Dynamics365: {connection_request.redirect_url}"
18 )
19
20 # This will wait for the auth flow to be completed
21 connection_request.wait_for_connection(timeout=15)
22 return connection_request.id
23
24
25connection_id = authenticate_toolkit(user_id, dynamics365_auth_config_id)
26
27# You can also verify the connection status using:
28connected_account = composio.connected_accounts.get(connection_id)
29print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Dynamics365 toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["DYNAMICS365"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Create Account

Description

Creates a new account entity record in dynamics crm using the web api.

Action Parameters

accountcategorycode
integerDefaults to 1
creditonhold
boolean
description
string
name
string
revenue
number
user_id
stringDefaults to me

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Case

Description

Creates a new case (incident) entity record in dynamics crm using the web api.

Action Parameters

caseorigincode
integer
customerid_account
string
description
string
prioritycode
integerDefaults to 1
title
string
user_id
stringDefaults to me

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Contact

Description

Creates a new contact entity record in dynamics crm using the web api.

Action Parameters

address1_city
string
address1_country
string
address1_postalcode
string
address1_stateorprovince
string
emailaddress1
string
firstname
string
jobtitle
string
lastname
string
mobilephone
string
telephone1
string
user_id
stringDefaults to me

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Invoice

Description

Creates a new invoice entity record in dynamics crm using the web api.

Action Parameters

account_id
string
currency_id
string
description
string
name
string
price_level_id
string
user_id
stringDefaults to me

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Lead

Description

Creates a new lead entity record in dynamics crm using the web api.

Action Parameters

companyname
string
emailaddress1
string
firstname
string
lastname
string
subject
string
telephone1
string
user_id
stringDefaults to me

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Opportunity

Description

Creates a new opportunity entity record in dynamics crm using the web api.

Action Parameters

customer_account
string
description
string
estimatedclosedate
string
estimatedvalue
number
name
string
user_id
stringDefaults to me

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Sales Order

Description

Creates a new sales order entity record in dynamics crm using the web api.

Action Parameters

account_id
string
currency_id
string
description
string
name
string
price_level_id
string
user_id
stringDefaults to me

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Dynamicscrm get all leads

Description

Dynamicscrm get all leads

Action Parameters

filter
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Dynamicscrm get a invoice

Description

Dynamicscrm get a invoice

Action Parameters

invoice_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Dynamicscrm get a lead

Description

Dynamicscrm get a lead

Action Parameters

lead_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Case

Description

Updates an existing case (incident) entity record in dynamics crm using the web api.

Action Parameters

case_id
stringRequired
description
string
prioritycode
integerDefaults to 1
statuscode
integerDefaults to 1
title
string
user_id
stringDefaults to me

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Invoice

Description

Updates an existing invoice entity record in dynamics crm using the web api.

Action Parameters

description
string
duedate
string
invoice_id
stringRequired
name
string
totalamount
number
user_id
stringDefaults to me

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Lead

Description

Updates an existing lead entity record in dynamics crm using the web api.

Action Parameters

companyname
string
emailaddress1
string
firstname
string
lastname
string
lead_id
stringRequired
subject
string
telephone1
string
user_id
stringDefaults to me

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Opportunity

Description

Updates an existing opportunity entity record in dynamics crm using the web api.

Action Parameters

description
string
estimatedclosedate
string
estimatedvalue
number
name
string
opportunity_id
stringRequired
opportunityratingcode
integer
salesstagecode
integer
user_id
stringDefaults to me

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Sales Order

Description

Updates an existing sales order entity record in dynamics crm using the web api.

Action Parameters

description
string
discountamount
number
freightamount
number
name
string
salesorder_id
stringRequired
user_id
stringDefaults to me

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get all invoices action

Description

Get all invoices action

Action Parameters

filter
string

Action Response

data
objectRequired
error
string
successful
booleanRequired