HubSpot ACTION
Get Contact
Get a single contact from HubSpot by its id, with a default set of contact properties. Add Additional properties to retrieve to include more (use Get Properties for
contacts). Look up the id with Search CRM by email if you only have an address. Example: Object ID 123, Additional properties ["jobtitle"]. Returns the contact record. See the documentation- Action
- Read only
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's HubSpot account once, then configure and run Get 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: "hubspot-get-contact",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
hubspot: { authProvisionId: "apn_xxxxxxx" },
objectId: "Contact ID",
additionalProperties: ["Additional properties to retrieve"],
},
})
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": "hubspot-get-contact",
"configured_props": {
"hubspot": { "authProvisionId": "apn_xxxxxxx" },
"objectId": "Contact ID",
"additionalProperties": ["Additional properties to retrieve"]
}
}'// 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": "hubspot",
},
},
},
)
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: "hubspot-get-contact",
arguments: {
objectId: "Contact ID",
additionalProperties: ["Additional properties to retrieve"],
},
})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 |
|---|---|---|
objectId Contact ID | string | Hubspot's internal ID for the contact Required Dynamic |
additionalProperties Additional properties to retrieve | string[] | An array of HubSpot internal property names to return in addition to the default set for this object type — e.g. ["custom_field", "lifecyclestage"]. Use Get Properties to discover the valid internal names a given object type offers. 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
- hubspot-get-contact
- Version
- 0.1.1
- App
- HubSpot
- Authentication
- OAuth
- Read-only
- Yes
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗