canonical: https://jentic.com/apis/hubspot.com/hubspot-crm-deal-splits

# HubSpot CRM Deal Splits

The HubSpot Deal Splits API attributes credit and revenue from a single deal across multiple HubSpot owners so commission and reporting can reflect collaborative selling. It exposes two batch endpoints - read and upsert - that operate on deal-split records keyed off the parent deal ID. This is the API to call when a deal closes and the rep, manager, or specialist all need percentage credit on the opportunity.

## For AI agents

Read and upsert HubSpot deal-split records to attribute deal credit across multiple owners via batch endpoints on /crm/v3/objects/deals/splits.

## Scope

Does not calculate commission payouts, run payroll, or manage quota plans - use for setting credit-percentage splits on HubSpot deals only.

## Capabilities

- Batch-read existing splits for a list of deals via POST /crm/v3/objects/deals/splits/batch/read
- Set or update splits for multiple deals in one call with POST /crm/v3/objects/deals/splits/batch/upsert
- Allocate fractional credit to each contributing owner on a closed deal
- Reset splits when deal ownership changes mid-cycle by upserting new percentages
- Reconcile commission reports by pulling all splits across a batch of deals

## Use cases

### Commission Allocation on Closed Deals

When deals close, attribute the right percentage of credit to each contributing owner so commissions match the team's collaborative selling model. The batch upsert endpoint accepts a list of deals with their owner and percentage allocations in a single call, which keeps a quarterly commission run within rate limits. Splits are stored on the deal, so downstream reports pick up the allocation automatically.

Example prompt: Call POST /crm/v3/objects/deals/splits/batch/upsert with deal 12345 split 70 percent to owner 100 and 30 percent to owner 200, then verify the 200 response.

### Mid-Cycle Owner Re-allocation

Re-allocate splits when a deal's team changes mid-pipeline - for example, when a Customer Success rep is added late in the cycle and needs partial credit. Upserting new splits replaces the prior allocation atomically for that deal, so reports never see partial states. Pair with a search to find affected deals first.

Example prompt: Upsert a new split for deal 67890 with 60 percent to AE owner 101, 30 percent to manager owner 102, and 10 percent to SE owner 103.

### Quarterly Commission Reconciliation

Pull splits in bulk for every deal closed in the quarter to reconcile against the commission system. The batch read endpoint returns split records for up to 100 deals at a time, including each owner ID and percentage. Combine with a deal search filtered to closedwon to walk the full closed-deal set quickly.

Example prompt: Batch-read splits for the 100 deals closed last quarter via POST /crm/v3/objects/deals/splits/batch/read, then sum percentages per owner ID.

### Agent-Driven Split Updates via Jentic

An AI agent reading commission rule changes from a spreadsheet updates HubSpot deal splits without an engineer wiring a new batch job. Through Jentic the agent searches for the upsert operation, loads the input schema, and executes it with the parsed allocations. The flow runs on a single Jentic credential without exposing the HubSpot key.

Example prompt: Use Jentic to search 'update HubSpot deal splits in batch', load the POST /crm/v3/objects/deals/splits/batch/upsert schema, and execute it with the parsed split rows.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /crm/v3/objects/deals/splits/batch/read | Batch-read splits for a list of deals |
| POST | /crm/v3/objects/deals/splits/batch/upsert | Batch-set or update splits across multiple deals |

## Key resources

- **Batch** — Batch read and upsert deal-split records keyed by parent deal ID

## Why Jentic

- **Setup:** Wiring the HubSpot Deal Splits API by hand means handling its OAuth 2.0 authorization-code flow or a private app token, targeting api.hubapi.com, and building the batch read and upsert payloads yourself. Through Jentic you install once, import HubSpot Deal Splits from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** HubSpot gates this API with per-object deal OAuth scopes, so you grant only the deal-split scopes your agent needs and you choose which operations it may call: you can allow reading existing splits while leaving batch upsert, which changes credit allocation, out of the allowed set unless you add it.
- **Credential handling:** 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.
- **Discovery method:** Agents search Jentic by intent such as 'split HubSpot deal credit across owners' or 'read deal splits', and Jentic returns the matching batch operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **HubSpot Deals** — Manage the parent deal records that splits attach to
- **HubSpot CRM Owners** — Look up the owner IDs needed to allocate splits
- **HubSpot CRM Properties** — Read or manage deal properties that drive split rules
- **Salesforce** — Salesforce OpportunityTeamMember provides equivalent revenue attribution

## FAQ

### What authentication does the HubSpot Deal Splits API use?

Deal Splits accepts OAuth 2.0 access tokens with the crm.objects.deals scope or HubSpot private app API keys passed in the private-app header. Through Jentic the token is held in your Jentic One instance and injected at execution time so it never enters the agent's context.

### Can I split a HubSpot deal across more than two owners?

Yes. The upsert payload accepts a list of owner-percentage pairs per deal, so you can allocate credit across three or more reps in one call. Percentages must sum to 100 for the deal.

### What are the rate limits for the HubSpot Deal Splits API?

Splits share HubSpot's account-wide limit - typically 100 requests per 10 seconds for OAuth apps and 190 per 10 seconds for private apps on paid tiers. Each batch call counts as one request, so use the batch endpoints for any commission run touching more than a handful of deals.

### How do I update splits on a deal through Jentic?

Run jentic.search('upsert HubSpot deal splits'), load the schema for POST /crm/v3/objects/deals/splits/batch/upsert, and execute it with the deal IDs and owner-percentage list. Jentic returns the upsert result as structured JSON for the next step in your workflow.

### Is there a single-record endpoint for one deal's splits?

No. Both endpoints are batch-only. To work with a single deal, send a batch request with one entry - HubSpot returns the same shape and the call counts as one request against your rate limit.

### Are deal splits available on every HubSpot tier?

Deal splits are a paid-tier feature in HubSpot Sales Hub. The API will return an authorization error on free or starter accounts that do not have the feature enabled. Confirm the tier before wiring up a commission integration.

### Can I limit what my agent is allowed to do with the HubSpot Deal Splits API?

Yes. Jentic One is self-hosted, so you set the rules that decide which deal-split operations your agent may call and which HubSpot credential it uses. This API has only two operations: batch-read splits and batch-upsert splits. You can let the agent read existing splits while withholding the batch upsert that changes credit allocation, and you grant only the deal OAuth scopes those allowed operations require.
