HubSpot ACTION
Create CRM Object
Create a new CRM record (contact, company, deal, ticket, etc.). Pass property values as a JSON object in the
properties parameter. Use Search Properties to discover available fields for the object type, Get Properties to find valid enum values (e.g. lifecyclestage, dealstage), and List Pipelines and Stages to find valid pipeline/stage IDs for deals and tickets. Use List Owners to find valid hubspot_owner_id values. See the documentation- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's HubSpot account once, then configure and run Create CRM Object 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-create-crm-object",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
hubspot: { authProvisionId: "apn_xxxxxxx" },
objectType: "Object Type",
properties: "Properties",
},
})
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-create-crm-object",
"configured_props": {
"hubspot": { "authProvisionId": "apn_xxxxxxx" },
"objectType": "Object Type",
"properties": "Properties"
}
}'// 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-create-crm-object",
arguments: {
objectType: "Object Type",
properties: "Properties",
},
})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 |
|---|---|---|
objectType Object Type | string | The type of CRM object to create. Required |
properties Properties | string | JSON object of property name-value pairs for the new record. Example for a contact: {"firstname": "Jane", "lastname": "Doe", "email": "jane@example.com"}. Example for a deal: {"dealname": "Acme Contract", "amount": "50000", "pipeline": "default", "dealstage": "contractsent"}. All values must be strings. Use Search Properties and Get Properties to discover valid field names and values. Required |
associations Associations | string | Optional JSON array of associations to create alongside the new record. Each entry has to (object ID to associate with) and types (array of association type objects). Example: [{"to": {"id": "123"}, "types": [{"associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 1}]}]. Use Create Association for more control over associations after creation. 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
- hubspot-create-crm-object
- Version
- 0.0.8
- App
- HubSpot
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗