Deals
Create, read, update, delete, and search HubSpot deals with pipeline management
6 tools
Create Deal
POST /v1/tools/hubspot/createDeal
Create a new deal in HubSpot CRM. PREREQUISITE: Call hubspot_getProperties(object_type="deals") first to get valid property names, types, and enum options — do NOT guess property names. Call hubspot_getPipelines() to get valid pipeline and dealstage values. All property values must be strings (numbers and booleans are coerced automatically). Enumeration properties use internal value strings (not labels). Returns the created deal ID. Set id_only=false for the full deal object.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
values | object | required | Deal properties as key-value pairs. Keys are internal property names (from getProperties). All values are strings. Common properties: dealname (required), amount, dealstage (from getPipelines), pipeline (pipeline ID from getPipelines), closedate (YYYY-MM-DD or Unix ms), hubspot_owner_id. |
id_only | boolean | optional | Return only the deal ID (default: true). Set to false for full response. |
Flags
| Name | Type | Description |
|---|---|---|
id_only | boolean | Return only the deal ID (default: true). Set to false for full response. |
Request
curl -X POST https://api.syncello.io/v1/tools/hubspot/createDeal \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
-d '{
"values": "..."
}'Response
{
"id": "712300140003"
} Try It
Try it
Sign in to execute this tool
Sign InGet Deal
POST /v1/tools/hubspot/getDeal
Retrieve a HubSpot deal by its ID. Returns default properties: dealname, amount, dealstage, pipeline, closedate, hs_lastmodifieddate. Pass additional property names in the "properties" array to include more fields. Use hubspot_getProperties(object_type="deals") to discover available properties.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
deal_id | string | required | The HubSpot deal ID (from searchDeals, createDeal, or known ID). |
return_properties | array | optional | Additional property names to include beyond the defaults. Use hubspot_getProperties to discover available properties. |
Request
curl -X POST https://api.syncello.io/v1/tools/hubspot/getDeal \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
-d '{
"deal_id": "example"
}'Response
{
"id": "712300140003",
"properties": {
"amount": "15000",
"closedate": "2026-09-30T00:00:00Z",
"createdate": "2026-07-01T18:34:03.005Z",
"dealname": "Website Redesign Project",
"dealstage": "appointmentscheduled",
"hs_lastmodifieddate": "2026-07-01T18:34:05.707Z",
"hs_object_id": "712300140003",
"pipeline": "default"
},
"createdAt": "2026-07-01T18:34:03.005Z",
"updatedAt": "2026-07-01T18:34:05.707Z",
"archived": false
} Try It
Try it
Sign in to execute this tool
Sign InUpdate Deal
POST /v1/tools/hubspot/updateDeal
Update properties on an existing HubSpot deal. Only specified properties are changed — omitted properties remain unchanged. PREREQUISITE: Call hubspot_getProperties(object_type="deals") to get valid property names, types, and enum options. Call hubspot_getPipelines() for valid dealstage values. All property values must be strings (numbers and booleans are coerced automatically). Returns { id, updated: true } on success — call hubspot_getDeal to read back the updated values.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
deal_id | string | required | The HubSpot deal ID to update. |
values | object | required | Properties to update as key-value pairs. Keys are internal property names (from getProperties). Only specified properties are changed. Common: dealname, amount, dealstage, pipeline, closedate, hubspot_owner_id. |
Request
curl -X POST https://api.syncello.io/v1/tools/hubspot/updateDeal \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
-d '{
"deal_id": "example",
"values": "..."
}'Response
{
"id": "712300140003",
"updated": true
} Try It
Try it
Sign in to execute this tool
Sign InDelete Deal
POST /v1/tools/hubspot/deleteDeal
Delete a HubSpot deal by its ID. This moves the deal to the recycling bin (soft delete). Use hubspot_getDeal first to verify you have the correct deal. Returns confirmation with the deleted deal ID.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
deal_id | string | required | The HubSpot deal ID to delete (from searchDeals, getDeal, or known ID). |
Request
curl -X POST https://api.syncello.io/v1/tools/hubspot/deleteDeal \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
-d '{
"deal_id": "example"
}'Response
{
"deleted": true,
"dealId": "712300140003"
} Try It
Try it
Sign in to execute this tool
Sign InSearch Deals
POST /v1/tools/hubspot/searchDeals
Search HubSpot deals using filters, query text, or both. Supports property-based filtering with operators: EQ, NEQ, LT, LTE, GT, GTE, BETWEEN, IN, NOT_IN, HAS_PROPERTY, NOT_HAS_PROPERTY, CONTAINS_TOKEN, NOT_CONTAINS_TOKEN. Multiple filters in the same group are AND-combined. Multiple filterGroups are OR-combined. Use a simple "query" string for full-text search across default searchable properties. Returns up to 100 results per page with paging cursor. PREREQUISITE: Call hubspot_getProperties(object_type="deals") to get property names for filters.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
query | string | optional | Full-text search query. Searches across default searchable deal properties (dealname, etc.). |
filter_groups | array | optional | Array of filter groups (OR-combined). Each group has a "filters" array (AND-combined). Each filter: {propertyName: "dealstage", operator: "EQ", value: "closedwon"}. For BETWEEN: use highValue too. For IN/NOT_IN: use values array. |
sorts | array | optional | Array of sort objects: {propertyName: "amount", direction: "DESCENDING"}. Default direction: ASCENDING. |
return_properties | array | optional | Additional property names to include beyond the defaults (dealname, amount, dealstage, pipeline, closedate, hs_lastmodifieddate). |
limit | number | optional | Max results to return (default: 20, max: 100). |
after | string | optional | Pagination cursor from previous response for next page. |
Request
curl -X POST https://api.syncello.io/v1/tools/hubspot/searchDeals \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"Response
{
"total": 1,
"count": 1,
"results": [
{
"id": "712300140003",
"properties": {
"amount": "18000",
"closedate": "2026-09-30T00:00:00Z",
"createdate": "2026-07-01T18:34:03.005Z",
"dealname": "Website Redesign Project",
"dealstage": "qualifiedtobuy",
"hs_lastmodifieddate": "2026-07-01T18:34:55.122Z",
"hs_object_id": "712300140003",
"pipeline": "default"
}
}
]
} Try It
Try it
Sign in to execute this tool
Sign InGet Pipelines
POST /v1/tools/hubspot/getPipelines
Get all deal pipelines and their stages from HubSpot. Returns pipeline IDs, labels, and stages sorted by display order. Use this to get valid "pipeline" and "dealstage" values before creating or updating deals. Each stage has an id (used as dealstage value), label, and displayOrder.
Request
curl -X POST https://api.syncello.io/v1/tools/hubspot/getPipelines \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"Response
{
"pipelines": [
{
"id": "default",
"label": "Sales Pipeline",
"displayOrder": 0,
"stages": [
{
"id": "appointmentscheduled",
"label": "Appointment Scheduled",
"displayOrder": 0
},
{
"id": "qualifiedtobuy",
"label": "Qualified To Buy",
"displayOrder": 1
},
{
"id": "closedwon",
"label": "Closed Won",
"displayOrder": 5
}
]
}
]
} Try It
Try it
Sign in to execute this tool
Sign In