CONNECT APP
Build with ProdPad
Developer Tools
- API key
MCP
Give your agent ProdPad tools
Every ProdPad 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 ProdPad 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": "prodpad",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Create Company:
const result = await mcp.callTool({
name: "prodpad-create-company",
arguments: {
name: "Name",
city: "City",
},
})# 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": "prodpad",
}
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 Company:
result = await session.call_tool("prodpad-create-company", {
"name": "Name",
"city": "City",
})API PROXY
Call the ProdPad API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the ProdPad API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.prodpad.com/v1/users",
})
// Any allowed ProdPad endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.prodpad.com/v1/users
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkucHJvZHBhZC5jb20vdjEvdXNlcnM?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run ProdPad actions from your backend
Connect a user's ProdPad account once, then run Create Company 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: "prodpad-create-company",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
prodpad: { authProvisionId: "apn_xxxxxxx" },
name: "Name",
city: "City",
},
})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="prodpad-create-company",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"prodpad": {"authProvisionId": "apn_xxxxxxx"},
"name": "Name",
"city": "City",
},
)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": "prodpad-create-company",
"configured_props": {
"prodpad": { "authProvisionId": "apn_xxxxxxx" },
"name": "Name",
"city": "City"
}
}'TOOLS
ProdPad actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Create Company
actionCreate a new company in the account. This is only available to accounts with an Advanced or higher subscription. If you try on an account without an advanced or higher subscription package it will return a 403. See the docs.Writev0.0.3 -
Create Contact
actionCreates a contact. See the docs.Writev0.0.2 -
Create Feedback
actionCreates feedback. See the documentation.Writev0.0.4 -
Create Idea
actionCreates an idea. See the docs.Writev0.0.3 -
Find Company
actionFinds a company. See the docs.Read-onlyv0.0.3 -
Find Contact
actionFinds a contact. See the docs.Read-onlyv0.0.2 -
Find Feedback
actionFinds a feedback. See the docs.Read-onlyv0.0.3 -
Find Idea
actionFinds an idea. See the docs.Read-onlyv0.0.2 -
Find or Create Company
actionFinds or creates a company. See the docs for find company and create company.Read-onlyv0.0.3 -
Find or Create Contact
actionFinds or creates a contact. See the docs for find contact and create contact.Read-onlyv0.0.2 -
Find or Create Feedback
actionFinds or creates a feedback. See the docs for find feedback and create feedback.Read-onlyv0.0.3 -
List Company ID Options
actionRetrieves available options for the Company ID field.Read-onlyv0.0.1 -
List Contact ID Options
actionRetrieves available options for the Contact ID field.Read-onlyv0.0.1 -
List Feedback ID Options
actionRetrieves available options for the Feedback ID field.Read-onlyv0.0.1 -
List Idea ID Options
actionRetrieves available options for the Idea ID field.Read-onlyv0.0.1 -
List Job Role ID Options
actionRetrieves available options for the Job Role ID field.Read-onlyv0.0.1 -
List Persona ID Options
actionRetrieves available options for the Persona ID field.Read-onlyv0.0.1 -
List Product ID Options
actionRetrieves available options for the Product ID field.Read-onlyv0.0.1 -
List Status ID Options
actionRetrieves available options for the Status ID field.Read-onlyv0.0.1 -
List Tag ID Options
actionRetrieves available options for the Tag ID field.Read-onlyv0.0.1 -
Update Company
actionUpdates a company. See the docs.Writev0.0.2 -
Update Contact
actionUpdates a contact. See the docs.Writev0.0.2 -
Update Feedback
actionUpdates a feedback. See the docs.Writev0.0.2 -
Update Idea Stage
actionUpdates the stage of an idea. See the docs.Writev0.0.2
EVENTS
ProdPad triggers
Event sources your backend can deploy for users and receive through a webhook.
-
New Company Created
triggerEmit new event when a new company is created. See the docs.v0.0.1 -
New Contact Created
triggerEmit new event when a new contact is created. See the docs.v0.0.1 -
New Feedback Created
triggerEmit new event when a new feedback is created. See the docs.v0.0.1 -
New Idea Created
triggerEmit new event when a new idea is created. See the docs.v0.0.1 -
New Idea Feedback Created
triggerEmit new event when a new feedback is created for an idea. [See the docs]https://app.swaggerhub.com/apis-docs/ProdPad/prodpad/1.0#/Ideas/GetIdeaFeedback).v0.0.1 -
New Persona Created
triggerEmit new event when a new persona is created. See the docs.v0.0.1 -
New Product Created
triggerEmit new event when a new product is created. See the docs.v0.0.1 -
New Pushed Idea
triggerEmit new event when an idea is pushed. See the docs.Instantv0.0.1 -
New Pushed User Story
triggerEmit new event when a user story is pushed. See the docs.Instantv0.0.1 -
New Tag Created
triggerEmit new event when a new tag is created. See the docs.v0.0.1 -
New User Story Created
triggerEmit new event when a new user story is created. See the docs.v0.0.1
- App slug
- prodpad
- Authentication
- API key
- Categories
- Developer Tools
- Actions
- 24
- Triggers
- 11
- API proxy
- Available