HubSpot
live · conformance passing
Models the HubSpot CRM an agent actually calls: contacts, companies, deals, notes and tasks with string-typed properties, v4 associations in both directions, batch writes that can answer 207, a duplicate contact that names the record it collided with, and a search index that only catches up when the sandbox advances.
- Category
- CRM
- Sandbox key
- pat-na1-…
- Verified against
- hubspot-api-client 12.0.0, github.com/HubSpot/HubSpot-public-api-spec-collection v3+v4
- Replaces
- A shared HubSpot portal, or testing against production
Scenarios
Start a sandbox in one of these, or describe the state you want in a sentence and the seeder writes the records it implies.
Search index lagging
Contacts that exist and are not yet returned by search, so the create-then-search sequence fails until the sandbox is advanced.
CRM with a pipeline
Companies, the people at them, and deals spread across the stages of two real deal pipelines.
Paged contacts
More contacts than two pages hold, so paging.next.after traversal runs against the real page size.
Throttled
Every call the operator's token makes is rate limited.
Missing scope
A token that may read contacts and nothing else, so every other call is refused for missing scopes.
Duplicate contact
A contact whose email address a create will collide with, answered 409 naming the existing record.
Archived contact
A soft-deleted contact, so the 404-versus-archived=true branch runs.
What it models
Records your code can read, write and edit for the life of the sandbox. A route the twin does not model returns a provider-shaped refusal rather than a plausible response.
- contacts
- companies
- deals
- notes
- tasks
- associations
- properties
- pipelines
- stages
- owners
Verified in CI against
- pythonhubspot-api-client12.0.0
- openapigithub.com/HubSpot/HubSpot-public-api-spec-collectionv3+v4