Deploy Deal Registration in HubSpot
BuildVP of Partnerships says: "We need a partner deal registration pipeline in HubSpot by Friday." No template exists. You need to spec properties, pipeline stages, and validation rules — deploy them safely — and prove only intended changes landed.
The Prompt
VP of Partnerships: "We need a partner deal registration pipeline in HubSpot by Friday." No existing config. Need to build properties, pipeline stages, and validation rules from scratch — and prove it's safe to deploy. Plan: 1. Snapshot the current portal state (baseline) 2. Scaffold a pack with properties + pipeline config 3. Spec deal reg properties (partner name, reg date, status, deal value) 4. Spec pipeline stages (Submitted → Approved → Rejected → Expired) 5. Plan — show what will change, zero surprises 6. Apply — deploy to HubSpot 7. Compare snapshots — prove only intended changes landed 8. Drift check — prove idempotency (all components clean)
Infrastructure-as-Code for HubSpot
This isn't point-and-click — it's declarative CRM config.
Snapshot before. Plan the diff. Apply with --yes.
Compare after. Re-plan to prove idempotency.
The same loop Terraform uses for cloud infra — now applied to your HubSpot portal.
How Gremlin Handles This
Six steps from baseline snapshot to verified deployment.
Snapshot Baseline
Capture all properties, pipelines, and lists before any changes
Scaffold Pack
g-gremlin pack init creates the config directory with pack.yaml and property stubs
Spec Properties + Pipeline
Define deal reg properties, validation rules, and pipeline stages in YAML/JSON
Plan (Dry Run)
See exactly what will be created, updated, or deleted — before touching HubSpot
Apply
Deploy properties, validations, and pipeline stages to the live portal
Verify
Compare snapshots to prove only intended changes landed. Run drift check to confirm zero unintended changes
How Claude Code Executes It
I need to deploy a partner deal registration pipeline to HubSpot. Let me start by baselining the portal so I can prove exactly what changed.
g-gremlin hubspot snapshot --out ./snapshots/baseline
✓ Snapshot written. Counts: properties=804, pipelines=1, lists=0, workflows=0
Baseline captured. Now I'll scaffold the pack and define the deal registration config — properties, pipeline stages, and validation rules.
g-gremlin hubspot pack init partner_deal_reg
✓ Created partner_deal_reg/ with pack.yaml, properties.yaml stub, and destructive.yaml manifest
g-gremlin hubspot pack plan partner_deal_reg --json
✓ Plan: create 4 properties, create 1 group "partner_deal_reg", add 5 pipeline stages. No deletions.
g-gremlin hubspot pack apply partner_deal_reg --yes
✓ Applied. Artifacts written to partner_deal_reg/artifacts/20260127T180405Z/SUMMARY.md
g-gremlin hubspot drift partner_deal_reg --json
✓ Drift Report: all components clean. Total changes: 0. Pack is idempotent.
Done. Deal registration pipeline deployed. Snapshot verified. Drift check confirms zero unintended changes.
Results
vs hours of manual clicks, screenshots, and "did I miss a field?" anxiety
Roll back by reverting a commit. Replicate to a second portal by pointing at a different credential
Try This Workflow
Start with the quickstart guide, then deploy your own HubSpot config through code.