How it works
What this workflow does
Give sales operations a weekly list of open HubSpot deals that need attention, then let a designated reviewer approve close-date changes when that option is enabled. The workflow runs on a schedule, reads only the configured pipeline and open stages, and emails the findings. It never assigns owners or changes stages.
The workflow imports inactive with dryRun: true and updateApprovedDates: false. Run with sample data builds the report from fictional deals without calling HubSpot or Gmail.
This is a pipeline-maintenance layer within the Revenue Operations Intelligence architecture and the AI Revenue Operating System blueprint.
Find and explain the issues
Build review report flags missing close dates, past close dates, missing owners, and records not updated within staleDays. Only missing or past close dates are eligible for the optional date update; owner and activity findings are handled in HubSpot.
The HubSpot search is limited to 100 deals. If the response is paginated or reports more than 100 matches, the workflow stops instead of sending an incomplete review. Narrow the open stage IDs if that happens.
Approval is explicit and rechecked
When updateApprovedDates is true and at least one deal is eligible, the reviewer receives a Gmail form instead of a plain report. The form accepts one DEAL_ID=YYYY-MM-DD entry per line. Dates must be real, between today and one year ahead, and limited to eligible deal IDs from the report.
Before writing, the workflow re-reads each deal and compares its pipeline, stage, and close date with the review snapshot. Deals that changed are skipped. A final HubSpot batch response must confirm every update before the workflow reports the updated and skipped IDs. The approval form expires after two days.
Validation scope
The supplied report confirms the isolated n8n 2.47.4 import, inactive state, and sample path. It also covers structural checks, truncation refusal, eligible-date filtering, and changed-deal skipping. Live HubSpot authentication, scheduled runs, the Gmail response form, and CRM writes require a staging test with your accounts.
How to use
Before you start
- A current n8n instance.
- A HubSpot private app token with deal read access. Add deal write access only when you enable approved close-date updates.
- A Gmail OAuth credential for the report, approval form, and results email.
- The internal HubSpot pipeline ID and open stage IDs you want reviewed.
- A named reviewer and a test pipeline for staging.
1. Import and run the sample
Download the complete package, extract the ZIP, and read the full setup guide. Import hubspot-pipeline-hygiene.n8n.json and keep it inactive.
Open Run with sample data and choose Test workflow. Build review report should flag two sample deals; the closed sample deal must stay outside the review scope.
2. Configure HubSpot
Create a Header Auth credential with Authorization: Bearer <HubSpot private app token> and select it on Search open HubSpot deals, Read approved deals again, and Apply approved close dates. Start with crm.objects.deals.read. Add crm.objects.deals.write only when you are ready to test approved date changes.
In Setup, set pipelineId, openStageIds, reviewerEmail, and staleDays. Copy the internal stage IDs from your HubSpot pipeline rather than the visible labels. Set the workflow timezone for the Monday 08:00 schedule.
3. Connect Gmail and test report-only mode
Select the Gmail OAuth credential on Email report only, Request approved dates, and Email review results. Keep updateApprovedDates false for the first staging run. Set dryRun to false and use a test pipeline or temporarily shorten the schedule interval to see the live report path.
The supplied test payloads include a mock HubSpot response, a form submission, and a closed deal ID that must be rejected. Confirm that the report respects the pipeline and open stage filters and that a response over 100 deals stops the run.
4. Enable approved date changes
Set updateApprovedDates to true only after report-only mode is accepted. Confirm the configured reviewer can reach the n8n response form. Keep the form link private; it expires after two days. Submit only dates between today and one year ahead.
Test one eligible date, a closed deal ID, an unrelated deal ID, malformed lines, a date in the past, and a deal whose stage or close date changes while the form is pending. Only eligible, valid, unchanged deals may reach the batch update. Review the results email for updated and skipped IDs.
5. Operate the review
The template uses rules and limits writes to close dates. Assign owners and handle other findings directly in HubSpot. The final read and write are separate HubSpot calls, so schedule the update window to reduce simultaneous edits to the same fields. Keep the workflow inactive until the staging checks pass.
Related automations
Use the HubSpot Weekly Sales Pipeline Digest for scoped reporting and the HubSpot Intelligent Lead Routing & Response System for inbound ownership. Keep record cleanup separate with the HubSpot Duplicate Detection & Approved Merge System. Read the Revenue Operations Intelligence blueprint for the wider operating model.