Apollo ACTION
Create or Update Contact
Creates a new contact or updates an existing one in your Apollo CRM. To create, omit
contactId and provide at least an email. To update, provide the contactId and any fields to change. Use Search Contacts to find existing contacts by name or email before updating. Use List Metadata (type contact_stages) to discover valid stage IDs. The accountId links this contact to a company — use Search Accounts to find the account ID. See the documentation- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Apollo account once, then configure and run Create or Update Contact 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: "apollo_io_oauth-create-or-update-contact",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
apollo_io_oauth: { authProvisionId: "apn_xxxxxxx" },
contactId: "Contact ID",
email: "Email",
},
})
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": "apollo_io_oauth-create-or-update-contact",
"configured_props": {
"apollo_io_oauth": { "authProvisionId": "apn_xxxxxxx" },
"contactId": "Contact ID",
"email": "Email"
}
}'// 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": "apollo_io_oauth",
},
},
},
)
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: "apollo_io_oauth-create-or-update-contact",
arguments: {
contactId: "Contact ID",
email: "Email",
},
})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 |
|---|---|---|
contactId Contact ID | string | The ID of an existing contact to update. Omit this to create a new contact. Optional |
email Email | string | Email address of the contact. Required when creating. Optional |
firstName First Name | string | First name of the contact. Optional |
lastName Last Name | string | Last name of the contact. Optional |
title Title | string | Job title of the contact. Example: "VP of Sales". Optional |
accountId Account ID | string | ID of the account (company) to link this contact to. Use Search Accounts to find account IDs. Optional |
websiteUrl Website URL | string | The organization website for Apollo to enrich data. Do NOT pass personal social media URLs. This is ignored if a valid email is provided. Optional |
labelNames Label Names | string[] | Tag names to apply to this contact. Example: ["VIP", "Decision Maker"]. Use List Metadata (type labels) to see existing labels. Optional |
contactStageId Contact Stage ID | string | The pipeline stage for this contact. Use List Metadata (type contact_stages) to discover valid stage IDs. Optional |
address Address | string | Full address string. Apollo will infer city, state, country, and timezone. Optional |
phone Phone | string | Direct dial phone number for this contact. 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
- apollo_io_oauth-create-or-update-contact
- Version
- 0.0.2
- App
- Apollo
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗