"Update an existing deal in HubSpot CRM. Load when user says 'update deal', 'edit deal', 'change deal stage', 'move deal', 'close deal'. Requires deal ID."
Update HubSpot Deal
Specialized skill for updating deals in HubSpot CRM.
Pre-Flight Check
Before running, execute config check:
python 00-system/skills/hubspot/hubspot-master/scripts/check_hubspot_config.py --json
If ai_action is not proceed_with_operation, follow hubspot-connect setup guide.
Usage
Required Parameters
--id- Deal ID (required)
Optional Parameters (at least one required)
--name- New deal name--amount- New deal value--stage- New deal stage--closedate- New close date (YYYY-MM-DD)
Examples
Update stage (move deal):
python 00-system/skills/hubspot/hubspot-master/scripts/update_deal.py \
--id 5840795376 \
--stage "closedwon" \
--json
Update amount:
python 00-system/skills/hubspot/hubspot-master/scripts/update_deal.py \
--id 5840795376 \
--amount 75000 \
--json
Close deal as won:
python 00-system/skills/hubspot/hubspot-master/scripts/update_deal.py \
--id 5840795376 \
--stage "closedwon" \
--closedate "2025-12-13" \
--json
Common Deal Stages
| Stage ID | Name |
|---|---|
| appointmentscheduled | Appointment Scheduled |
| qualifiedtobuy | Qualified to Buy |
| presentationscheduled | Presentation Scheduled |
| decisionmakerboughtin | Decision Maker Bought In |
| contractsent | Contract Sent |
| closedwon | Closed Won |
| closedlost | Closed Lost |
Finding Deal ID
If user says "close the Acme deal", first search:
python 00-system/skills/hubspot/hubspot-master/scripts/search_deals.py --name "Acme" --json
Then use the returned ID for the update.
Output Format
{
"id": "5840795376",
"properties": {
"dealname": "Acme Corp - Enterprise",
"amount": "75000",
"dealstage": "closedwon",
"hs_lastmodifieddate": "2025-12-13T10:30:00Z"
}
}
Display Format
✅ Deal updated!
ID: 5840795376
Name: Acme Corp - Enterprise
Updated fields:
- stage: Closed Won
- amount: $75,000
Error Handling
| Error | Solution |
|---|---|
| 401 | Invalid token - re-run setup |
| 403 | Missing crm.objects.deals.write scope |
| 404 | Deal not found - check ID |
| 400 | Invalid stage ID |
| 429 | Rate limited - wait and retry |
Related Skills
hubspot-search-deals- Find deal IDhubspot-list-deals- List all dealshubspot-create-deal- Create new deal
You Might Also Like
Related Skills

gog
Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
openclaw
orpc-contract-first
Guide for implementing oRPC contract-first API patterns in Dify frontend. Triggers when creating new API contracts, adding service endpoints, integrating TanStack Query with typed contracts, or migrating legacy service calls to oRPC. Use for all API layer work in web/contract and web/service directories.
langgenius

