Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the CRM Associations, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with CRM Associations API.
Create a single association between two CRM objects
Create or remove associations in batches across object pairs
List all associated records of one object type from another
Apply or archive specific association labels in batch
GET STARTED
For Agents
Create, read, and remove associations between any pair of HubSpot CRM objects, including labelled and default associations. Useful for agents wiring records together as part of CRM automation.
Use for: Associate a HubSpot contact with a deal, Find all deals associated with a given company, Batch-create associations between contacts and a marketing list of deals, Remove a specific association label between two CRM objects
Not supported: Does not define new association types, mutate the underlying CRM records, or manage CRM properties - use for creating and removing links between existing CRM records only.
The HubSpot CRM Associations v4 API manages links between CRM objects - for example connecting a contact to a deal, a deal to a company, or any object pair allowed by the portal's association schema. It supports single and batch create, read, archive, and label operations, plus default association shortcuts and a high-usage report endpoint. This is the right surface for any workflow that mutates or reads relationships between standard or custom CRM objects.
Create a default association without specifying a label
Run a high-usage report against association quotas for a user
Archive an association by object IDs
Patterns agents use CRM Associations API for, with concrete tasks.
★ Wiring Imported Records Together
After importing contacts, deals, and companies in bulk, run a batch association pass to connect each deal to its primary contact and parent company. The v4 batch create endpoint accepts pairs of object IDs across a from-type and to-type, suitable for high-volume migration workflows.
POST /crm/v4/associations/{fromObjectType}/{toObjectType}/batch/create with deal-to-company pairs after a migration import completes.
Relationship Audit
Audit which contacts are associated with which deals to surface stale or missing associations. The v4 batch read endpoint returns associations for a list of source IDs in one call, suitable for pulling associations into a data warehouse for analysis.
POST /crm/v4/associations/{fromObjectType}/{toObjectType}/batch/read with a list of deal IDs and toObjectType=contact.
Custom Label Maintenance
Apply specific association labels - for example `Primary Contact` or `Decision Maker` - across many record pairs at once, and remove them as relationships change. The v4 API has dedicated batch endpoints for label create and label archive on top of the basic association.
POST /crm/v4/associations/{fromObjectType}/{toObjectType}/batch/labels/archive with object pairs whose labels should be removed.
Agent-Driven Relationship Mutations
Let an AI ops agent maintain HubSpot associations as part of a wider CRM hygiene workflow through Jentic. The agent invokes association operations by intent without writing HubSpot client code, and the credential never enters the agent's reasoning context.
Use Jentic search 'associate a HubSpot contact with a deal', load the PUT /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId} schema, and execute with the contact and deal IDs.
10 endpoints — the hubspot crm associations v4 api manages links between crm objects - for example connecting a contact to a deal, a deal to a company, or any object pair allowed by the portal's association schema.
METHOD
PATH
DESCRIPTION
/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}
Create an association between two records
/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}
Delete an association
/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}
List associations from one object to a target type
/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/create
Batch create associations
/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/read
Batch read associations
/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/archive
Batch archive associations
/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/labels/archive
Batch remove specific labels
/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}
Create an association between two records
/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}
Delete an association
/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}
List associations from one object to a target type
/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/create
Batch create associations
/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/read
Batch read associations
Three things that make agents converge on Jentic-routed access.
Credential isolation
Your HubSpot OAuth token or private app token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'associate a contact with a deal' or 'list deals on a company', and Jentic returns the matching CRM Associations operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Time to first call
Alternatives and complements available in the Jentic catalogue.
Specific to using CRM Associations API through Jentic.
What authentication does the HubSpot CRM Associations API use?
OAuth 2.0 authorization code flow or a private app token in either the `private-app` or `private-app-legacy` header. Through Jentic the credential is held encrypted in the vault and the agent only ever receives a scoped execution token.
Can I associate a contact with a deal in one call?
Yes. PUT /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId} creates an association in a single request, and the v4 batch create endpoint covers higher-volume scenarios.
What are the rate limits for the Associations API?
Standard HubSpot CRM API limits apply - about 100 requests per 10 seconds per OAuth app and daily caps on most paid tiers. Use the v4 batch endpoints to keep request volume low when wiring large datasets together.
How do I batch-link records through Jentic?
Search Jentic for `batch associate HubSpot records`, load the schema for POST /crm/v4/associations/{fromObjectType}/{toObjectType}/batch/create, and execute with the object pair list. Install with `pip install jentic` and authenticate using `JENTIC_AGENT_API_KEY`.
Does this API expose association labels as well as raw links?
Yes. The v4 API has dedicated label endpoints - POST /crm/v4/associations/{fromObjectType}/{toObjectType}/batch/labels/archive and the batch label create endpoint - plus default-association helpers at PUT /crm/v4/objects/.../associations/default/.
Can I limit what my agent is allowed to do with the HubSpot CRM Associations API?
Yes. Because you run Jentic One yourself, your own rules decide which HubSpot CRM Associations operations your agent may call and which stored credential it uses. This API puts the record IDs in the URL path (/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}), so a rule can pin the agent to reading or creating links for a specific record. You choose the allowed operations, so removing a link or batch archiving labels is not available to the agent unless you grant it.
/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/archive
Batch archive associations
/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/labels/archive
Batch remove specific labels