Offorte ACTION
Create Proposal
Create a new proposal in Offorte. See the documentation
- Action
- Writes data
- API key
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Offorte account once, then configure and run Create Proposal from your backend or agent.
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: "offorte-create-proposal",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
offorte: { authProvisionId: "apn_xxxxxxx" },
accountUserId: "Account User ID",
contactPeople: ["Contact People IDs"],
},
})
console.log(result)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": "offorte-create-proposal",
"configured_props": {
"offorte": { "authProvisionId": "apn_xxxxxxx" },
"accountUserId": "Account User ID",
"contactPeople": ["Contact People IDs"]
}
}'// 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": "offorte",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "offorte-create-proposal",
arguments: {
accountUserId: "Account User ID",
contactPeople: ["Contact People IDs"],
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
accountUserId Account User ID | string | The ID of the user Optional Dynamic |
contactPeople Contact People IDs | string[] | List with people who are going to receive the proposal. These are the contacts belonging to an organisation who are going to receive the proposal. Make sure they got an email filled in. Optional Dynamic |
contactId Contact ID | string | The proposal is assigned to this main contact id Required Dynamic |
proposalTemplateId Proposal Template ID | string | The ID of the proposal template Required Dynamic |
designTemplateId Design Template ID | string | The ID of the design template Required Dynamic |
name Name | string | The name of the proposal Optional |
priceTotal Price Total | string | Proposal value as calculated by pricetables Optional |
status Status | string | The status of the proposal Required |
textTemplateId Text Template ID | string | The ID of the text template Required Dynamic |
content Content | string[] | A list of content items of the proposal. See the documentation Optional |
tags Tags | string[] | The tags of the contact Optional Dynamic |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- offorte-create-proposal
- Version
- 0.0.2
- App
- Offorte
- Authentication
- API key
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗