> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# HubSpot: Merge Contact

> Merge two HubSpot contact records, combining the data from a secondary contact into a primary contact. Includes SDK V2 examples, schemas, and cost.

Merge two HubSpot contact records, combining the data from a secondary contact into a primary contact.

<Info>
  Tool ID: `hubspot_merge_contact`
</Info>

## Run this action

Use the TypeScript SDK for a single call. Put `ctx.tools.execute(...)` inside a Play when the call should be durable, scheduled, or run across a CSV.

```ts theme={null}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'hubspot_merge_contact',
  {
    "primary_object_id": "primary_object_123",
    "object_id_to_merge": "example"
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={null}
deepline tools execute hubspot_merge_contact --input '{
  "primary_object_id": "primary_object_123",
  "object_id_to_merge": "example"
}' --json
```

## Example response

The static output schema is not detailed enough to generate a reliable example. Use `deepline tools get hubspot_merge_contact --json` for the complete live contract.

## Input reference

Merge two HubSpot contact records. The secondary contact will be deleted and its data combined into the primary contact. HubSpot may create a new record ID; use the returned `data.id`. This operation cannot be undone.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.primary_object_id` | `string` | Yes | — | The ID of the primary contact record whose property values will win conflicts. In the HubSpot merge UI, this is the record on the right. HubSpot may create a new record ID during the merge; always use the returned `data.id` as the merged record ID. Minimum length: 1. |
| `payload.object_id_to_merge` | `string` | Yes | — | The ID of the secondary contact record that will be merged into the primary record. This record will be deleted. In the HubSpot merge UI, this is the record on the left. Minimum length: 1. |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Merge two HubSpot contact records. The secondary contact will be deleted and its data combined into the primary contact. HubSpot may create a new record ID; use the returned `data.id`. This operation cannot be undone.",
    "properties": {
      "primary_object_id": {
        "type": "string",
        "description": "The ID of the primary contact record whose property values will win conflicts. In the HubSpot merge UI, this is the record on the right. HubSpot may create a new record ID during the merge; always use the returned `data.id` as the merged record ID.",
        "minLength": 1
      },
      "object_id_to_merge": {
        "type": "string",
        "description": "The ID of the secondary contact record that will be merged into the primary record. This record will be deleted. In the HubSpot merge UI, this is the record on the left.",
        "minLength": 1
      }
    },
    "required": [
      "primary_object_id",
      "object_id_to_merge"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `record` | Yes | — | Provider response payload. |
| `result.meta` | `record` | No | — | Additional response metadata (status, paging). |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Standard tool result payload.",
    "properties": {
      "data": {
        "type": "object",
        "description": "Provider response payload.",
        "additionalProperties": {}
      },
      "meta": {
        "type": "object",
        "description": "Additional response metadata (status, paging).",
        "additionalProperties": {}
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.

## Related documentation

* [HubSpot provider guide](/docs/providers/hubspot/guide)
* [SDK V2 quickstart](/docs/sdk-v2/quickstart)
* [SDK reference](/docs/sdk-v2/sdk-reference)
* [Run tools across a CSV](/docs/sdk-v2/batch-csv)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.