Pipedrive ACTION
Add Activity
Adds a new activity. Includes
more_activities_scheduled_in_context property in response's additional_data which indicates whether there are more undone activities scheduled with the same deal, person or organization (depending on the supplied data). See the Pipedrive API docs for Activities here. For info on adding an activity in Pipedrive- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Pipedrive account once, then configure and run Add Activity 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: "pipedrive-add-activity",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
pipedrive: { authProvisionId: "apn_xxxxxxx" },
subject: "Subject",
type: "Type",
},
})
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": "pipedrive-add-activity",
"configured_props": {
"pipedrive": { "authProvisionId": "apn_xxxxxxx" },
"subject": "Subject",
"type": "Type"
}
}'// 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": "pipedrive",
},
},
},
)
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: "pipedrive-add-activity",
arguments: {
subject: "Subject",
type: "Type",
},
})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 |
|---|---|---|
subject Subject | string | Subject of the activity Required |
type Type | string | Type of the activity. This is in correlation with the key_string parameter of ActivityTypes. Required Dynamic |
ownerId User ID | integer | ID of the user whom the activity will be assigned to. If omitted, the activity will be assigned to the authorized user. Optional Dynamic |
dealId Deal ID | string | ID of the deal this activity will be associated with Optional Dynamic |
leadId Lead ID | string | ID of the lead this activity will be associated with Optional Dynamic |
orgId Organization ID | integer | ID of the organization this activity will be associated with Optional Dynamic |
projectId Project ID | string | ID of the project this activity will be associated with Optional Dynamic |
dueDate Due Date | string | Due date of the activity. Format: YYYY-MM-DD Optional |
dueTime Due Time | string | Due time of the activity in UTC. Format: HH:MM Optional |
duration Duration | string | Duration of the activity. Format: HH:MM Optional |
busy Busy | boolean | Set the activity as 'Busy' or 'Free'. If the flag is set to true, your customers will not be able to book that time slot through any Scheduler links Optional |
done Done | boolean | Whether the activity is done or not. Optional |
location Location | object | The address of the activity. Pipedrive will automatically check if the location matches a geo-location on Google maps. Optional |
participants Participants | string[] | List of multiple persons (participants) this activity will be associated with. If omitted, single participant from person_id field is used. It requires a structure as follows: [{"person_id":1,"primary":true}] Optional Dynamic |
attendees Attendees | string[] | Attendees of the activity. This can be either your existing Pipedrive contacts or an external email address. It requires a structure as follows: [{"email":"mail@example.org"}] Optional Dynamic |
publicDescription Public Description | string | Additional details about the activity that will be synced to your external calendar. Unlike the note added to the activity, the description will be publicly visible to any guests added to the activity. Optional |
note Note | string | Note of the activity (HTML format) Optional |
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
- pipedrive-add-activity
- Version
- 0.1.26
- App
- Pipedrive
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗