CONNECT APP
Build with Odoo
Integrated enterprise application platform for ERP and CRM.
Business Management
- API key
MCP
Give your agent Odoo tools
Every Odoo action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Odoo account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "odoo",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Create Record:
const result = await mcp.callTool({
name: "odoo-create-record",
arguments: {
modelName: "Model Name",
fieldsToSet: "Fields to Set",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "odoo",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Create Record:
result = await session.call_tool("odoo-create-record", {
"modelName": "Model Name",
"fieldsToSet": "Fields to Set",
})SDK
Run Odoo actions from your backend
Connect a user's Odoo account once, then run Create Record on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "odoo-create-record",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
odoo: { authProvisionId: "apn_xxxxxxx" },
modelName: "Model Name",
fieldsToSet: "Fields to Set",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="odoo-create-record",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"odoo": {"authProvisionId": "apn_xxxxxxx"},
"modelName": "Model Name",
"fieldsToSet": "Fields to Set",
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "odoo-create-record",
"configured_props": {
"odoo": { "authProvisionId": "apn_xxxxxxx" },
"modelName": "Model Name",
"fieldsToSet": "Fields to Set"
}
}'TOOLS
Odoo actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Create Record
actionCreate a new record in Odoo. See the documentationWritev1.0.1 -
Delete Record
actionDelete a record from Odoo. See the documentationWritev0.0.1 -
Get Records
actionGet records by ID from Odoo. See the documentationRead-onlyv0.0.1 -
List Models
actionList all models in Odoo. See the documentationRead-onlyv0.0.1 -
List Record Fields
actionList record fields for a given Odoo model. Use this to discover available fields and select specific attributes (likestring,type, andhelp). Gotchas: this action calls Odoo’sfields_getendpoint, so returned fields depend on your Odoo access rights. See the documentationRead-onlyv1.0.2 -
Search and Read Records
actionSearch and read records from Odoo. See the documentationRead-onlyv1.0.2 -
Update Record
actionUpdate an existing record in Odoo. See the documentationWritev1.0.1
MULTI-APP
Use Odoo with other popular apps
Most products don't stop at one integration. Pair Odoo with the other apps your users rely on, and ship use cases that span both.
- App slug
- odoo
- Authentication
- API key
- Categories
- Business Management
- Actions
- 7
- Triggers
- 1
- API proxy
- Not available