---
name: "hubspot_update"
area: "hubspot"
title: "Change a HubSpot record"
price: "$0.001"
method: "POST"
url: "https://api.conecto.chat/v1/tools/hubspot_update"
mcp_server: "https://api.conecto.chat/mcp/hubspot"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/hubspot/hubspot_update"
---

# Change a HubSpot record (`hubspot_update`)

Changes a HubSpot record's properties; waits for the owner by default.

Change properties of a contact, company, deal or ticket in the company's HubSpot. On accounts with an owner it waits for the owner's approval by default, showing each property's value now and after. $0.001.

Price: $0.001 a call. A call that fails costs nothing.

## Use it when

A deal moves on, or a customer's details change.

## Say this to your agent

> Mark the Hotel Seeblick deal won at 18,400 euros.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `object` | string | yes | contacts, companies, deals or tickets. | `"contacts"`, `"companies"`, `"deals"`, `"tickets"` |  |
| `id` | string | yes | The record's HubSpot id. 1 to 40 characters, matches ^[0-9]+$. |  |  |
| `properties` | object | yes | HubSpot property names and values, like {"dealstage": "closedwon", "amount": 18400}. |  |  |

## Example

Written for Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff.

MCP: call `hubspot_update` on the MCP server `https://api.conecto.chat/mcp/hubspot` with these arguments:

```json
{
  "object": "deals",
  "id": "18734511204",
  "properties": {
    "dealstage": "closedwon",
    "amount": 18400
  }
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/hubspot_update \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"object": "deals", "id": "18734511204", "properties": {"dealstage": "closedwon", "amount": 18400}}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "hubspot_update",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.001",
  "balance_usd": "$19.75",
  "result": {
    "record": {
      "id": "18734511204",
      "object": "deals",
      "properties": {
        "dealstage": "closedwon",
        "amount": "18400"
      },
      "created_at": "2026-09-02T10:00:00Z",
      "updated_at": "2026-10-14T08:00:00Z"
    }
  }
}
```

`result`: record: id, object and the properties changed. Held calls answer approval_required first.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `not_connected` | 409 | HubSpot isn't connected yet. | Connect it with hubspot_connect. |
| `vendor_rejected` | 502 | HubSpot refused: the token is wrong, or the private app lacks the scope. | Add the scope the message names to the private app. |
| `not_found` | 404 | HubSpot has no record with that id. | Search first and use its id. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [hubspot_connect](https://conecto.chat/tools/hubspot/hubspot_connect.md): Connects the company's HubSpot through its own private app's token. Free.
- [hubspot_search](https://conecto.chat/tools/hubspot/hubspot_search.md): Contacts, companies, deals or tickets in HubSpot matching words. Free up to 1,000,000 reads a month.
- [hubspot_get](https://conecto.chat/tools/hubspot/hubspot_get.md): One HubSpot record by its id, with its usual properties or the ones named. Free up to 1,000,000 reads a month.
- [hubspot_create](https://conecto.chat/tools/hubspot/hubspot_create.md): Makes a contact, company, deal or ticket in HubSpot. $0.001 a call.
- [hubspot_add_note](https://conecto.chat/tools/hubspot/hubspot_add_note.md): Adds a note to a HubSpot record's timeline, where the team sees it. $0.001 a call.
- [hubspot_disconnect](https://conecto.chat/tools/hubspot/hubspot_disconnect.md): Forgets the private app's token; nothing in HubSpot changes. Free.
