Prove that the deal sits in the stage that the person authorised. A created deal is not a deal in the right stage. HubSpot sets the stage from the create request, so another stage is a wrong value.
| Fact | Value |
|---|---|
| Contract id | hubspot.deal.in_stage |
| Version | 1.0.0 |
| Hash | 66980b7c32bb3412 |
| Completion level | in_stage |
| Publisher | Built and signed by Provely. |
| Certification | Provisional |
| Skill | HubSpot CRM API 0.1.0 |
| Valid for provider API versions | 2026-03 |
What is the intent?
Create the deal in the pipeline stage that I name.
What is the subject and the action?
| Member | Value |
|---|---|
| Subject type | hubspot.deal |
| Canonical effect | crm.deal_create |
| Provider operation | POST /crm/objects/2026-03/deals |
| Idempotency | none, retry is not safe |
Which false successes give CONTRADICTED?
- duplicate side effect
- pre existing state
- wrong amount
- wrong subject
The signed contract states the exact conditions, the evidence and the timing. The runtime reads them. The page states the promise.
Where do these rules come from?
hubspot.openapi#/components/schemas/Deal/properties/properties: hubspot.openapi, retrieved 2026-09-08hubspot.docs.deals#deals/the-identifier-of-a-stage-and-of-a-pipeline: hubspot.docs.deals, retrieved 2026-09-08hubspot.docs.deals#deals/the-properties-of-a-deal: hubspot.docs.deals, retrieved 2026-09-08hubspot.docs.deals#deals/the-states-of-a-deal: hubspot.docs.deals, retrieved 2026-09-08hubspot.openapi#/components/schemas/Deal/properties/id: hubspot.openapi, retrieved 2026-09-08hubspot.openapi#/paths/~1crm~1objects~12026-03~1deals~1{dealId}/get/responses/200: hubspot.openapi, retrieved 2026-09-08hubspot.openapi#/components/schemas/Deal/properties/createdAt: hubspot.openapi, retrieved 2026-09-08hubspot.events#/events/deal.creation: hubspot.events, retrieved 2026-09-08hubspot.docs.webhooks#webhooks/subscription-types: hubspot.docs.webhooks, retrieved 2026-09-08
Can hubspot.deal.in_stage return VERIFIED from the action response alone?
No. The action response is E1, and an acknowledgement is never terminal success. The contract needs evidence of level E2 or higher from HubSpot CRM API.
What happens after the timeout?
The verdict is UNVERIFIABLE. The operation goes to a person for review.