# Create Proposal — Offorte

> Create a new proposal in Offorte. See the documentation

- Key: `offorte-create-proposal`
- Type: Action (Write)
- Version: 0.0.2
- App: Offorte (`offorte`) — https://pipedream.com/apps/offorte.md
- This page (HTML): https://pipedream.com/apps/offorte/actions/create-proposal
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/offorte/actions/create-proposal/create-proposal.mjs

## Description

Create a new proposal in Offorte. [See the documentation](https://www.offorte.com/api-docs/api#tag/Proposals/operation/createProposal)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `accountUserId` | `string` | No | The ID of the user Options are loaded from the connected account. |
| `contactPeople` | `string[]` | No | 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. Options are loaded from the connected account. |
| `contactId` | `string` | Yes | The proposal is assigned to this main contact id Options are loaded from the connected account. |
| `proposalTemplateId` | `string` | Yes | The ID of the proposal template Options are loaded from the connected account. |
| `designTemplateId` | `string` | Yes | The ID of the design template Options are loaded from the connected account. |
| `name` | `string` | No | The name of the proposal |
| `priceTotal` | `string` | No | Proposal value as calculated by pricetables |
| `status` | `string` | Yes | The status of the proposal |
| `textTemplateId` | `string` | Yes | The ID of the text template Options are loaded from the connected account. |
| `content` | `string[]` | No | A list of content items of the proposal. See the documentation |
| `tags` | `string[]` | No | The tags of the contact Options are loaded from the connected account. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
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 accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_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"],
  },
})
```

**TypeScript**

```ts
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**

```bash
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"]
    }
  }'
```

---

- App: https://pipedream.com/apps/offorte.md · All apps: https://pipedream.com/apps
