All guides
HubSpotDeals

How to Bulk Update Deal Stages in HubSpot

By SearchReplace··9 min read

Deals in HubSpot live in pipelines, and each pipeline has its own set of stages. When you restructure a pipeline — adding, removing, or renaming stages — you need to move existing deals accordingly. When a sales campaign wraps up and a batch of deals need to be closed, you need to update them. When an integration creates deals in the wrong stage, you need to fix them.

Unlike contact properties where you can freely set any value, deal stages are tied to specific pipelines and have their own behaviors around probability, required fields, and close dates. Bulk updating deal stages requires understanding these mechanics to avoid unintended side effects.

How deal stages work in HubSpot

Every deal belongs to exactly one pipeline, and every pipeline defines its own set of stages. A deal's "Deal stage" property holds the internal ID of its current stage — not the display name you see in the UI.

For example, a deal in the "Sales Pipeline" might have a stage with:

  • Display name: "Proposal Sent"
  • Internal ID: presentationscheduled (HubSpot's default) or a custom ID like 123456

This distinction matters for bulk updates. If you're using CSV imports or API calls, you need to use the internal ID, not the display name.

Finding internal stage IDs: Go to Settings > Objects > Deals > Pipelines and Stages. Click on a pipeline, then click on a stage. The internal ID appears in the URL or in the stage details. Alternatively, you can use the HubSpot API to list all pipelines and their stages.

Key behaviors to know before bulk updating

Win probability

Each deal stage has an associated win probability (0-100%). Moving a deal to a different stage changes its probability, which affects forecasting reports. If you move 200 deals from "Negotiation" (80% probability) to "Qualification" (20% probability), your forecast drops significantly. Make sure your leadership team knows this is coming.

Required properties

Pipelines can have required properties for specific stages — properties that must be filled in before a deal can move to that stage. If you try to move a deal to a stage that requires a "Competitor" property and that deal doesn't have one, the update may fail silently or with an error depending on your update method.

Check your pipeline settings for required properties before running bulk stage changes.

Close date behavior

When a deal moves to a "Closed Won" or "Closed Lost" stage, HubSpot sets the close date to the current date (if the close date is in the future or not set). If you're moving deals to a closed stage in bulk, be aware that all of them will get today's date as the close date unless you explicitly set a different date.

Deal stage history

HubSpot tracks the history of stage changes for each deal. Moving a deal from Stage A directly to Stage C means it never "passed through" Stage B — the deal stage history reflects the jump. For funnel reporting (time in stage, conversion rates between stages), this can create anomalies. If stage-by-stage funnel metrics matter to your team, consider whether a bulk jump across stages will distort your reports.

Method 1: Kanban board drag-and-drop

For very small batches, you can drag deals between stages on the board view. This is only practical for a handful of deals and offers no multi-select capability.

Method 2: Inline bulk edit in list view

Switch from the board view to the list (table) view for deals.

  1. Go to Sales > Deals and switch to the Table view
  2. Filter deals by the current stage, pipeline, or other criteria
  3. Select deals using checkboxes (use "Select all" for the entire filtered list)
  4. Click Edit in the toolbar
  5. Select Deal stage from the property dropdown
  6. Choose the new stage
  7. Click Update

Important: The stage dropdown will only show stages from the pipeline that the selected deals belong to. If you've selected deals from multiple pipelines, the edit may not work as expected. Filter to one pipeline at a time.

Limitations: No preview, no rollback. Required property checks may prevent some deals from updating.

Method 3: Workflows

Deal-based workflows can update stages based on triggers and conditions.

Common setup:

  1. Create a deal-based workflow
  2. Enrollment trigger: "Deal stage is [current stage]" AND any additional criteria (date created, deal amount, deal owner, etc.)
  3. Action: "Set property value" > Deal stage > [new stage]
  4. Enable "Enroll existing deals" if you want to process deals that already match

Use cases for workflows:

  • Auto-closing stale deals. "If deal stage is Proposal Sent AND last activity date is more than 90 days ago, move to Closed Lost." This automates pipeline hygiene.
  • Stage progression based on task completion. "If deal has property 'Contract Signed' set to Yes, move to Closed Won."
  • Pipeline migration. When retiring an old pipeline and moving deals to a new one, workflows can automate the stage mapping.

Watch out for: Workflow actions for deal stages require you to specify the pipeline. If you're moving deals to a different pipeline, you need to update both the Pipeline property and the Deal Stage property. Update the pipeline first, then set the stage — the stage must belong to the target pipeline.

Method 4: CSV import

Importing a CSV lets you update deal stages in bulk with per-deal control.

  1. Export the deals you want to update (include Record ID and current deal stage)
  2. In the spreadsheet, replace the deal stage values with the new internal stage IDs
  3. Import the CSV, mapping the Record ID column to match existing records and the stage column to "Deal stage"

Critical details:

  • The deal stage value must be the internal ID, not the display label
  • If you're moving deals to a new pipeline, include the pipeline ID column as well
  • If the target stage has required properties, those properties must be populated in the CSV or already on the deal record

Method 5: Search and replace for stage text references

While deal stage itself is an internal ID, there are scenarios where you need to update text references to deal stages across your CRM. For example:

  • Notes and descriptions that reference a stage name: "Move to Negotiation once pricing is approved"
  • Custom text properties that store stage-related information
  • Email templates or snippets that mention stage names

If you rename a stage from "Demo Scheduled" to "Discovery Call," the stage property itself updates in HubSpot's settings. But any text that referenced the old stage name in deal notes, custom properties, or associated records still says "Demo Scheduled."

SearchReplace handles this well. Here's what updating deal name references looks like:

Search across deal properties (or contact/company properties) for the old stage name and replace with the new one. This catches the text references that HubSpot's stage rename doesn't update.

Pipeline restructuring: a complete walkthrough

The most complex bulk deal stage scenario is restructuring an entire pipeline. Here's how to handle it safely.

Scenario: You're consolidating from three stages (Qualification, Needs Analysis, Value Proposition) into two (Discovery, Solution Design).

Step 1: Plan the mapping

Old StageNew StageLogic
QualificationDiscoveryDirect mapping
Needs AnalysisDiscoveryMerge with Qualification
Value PropositionSolution DesignDirect mapping

Step 2: Create the new stages

In Settings > Deals > Pipelines, add the new stages to your pipeline. Don't remove the old ones yet — deals are still in them.

Step 3: Move the deals

Using bulk edit, workflows, or import, move deals from each old stage to the corresponding new stage. Work one old stage at a time:

  1. Filter deals by "Qualification" stage, select all, bulk edit to "Discovery"
  2. Filter deals by "Needs Analysis" stage, select all, bulk edit to "Discovery"
  3. Filter deals by "Value Proposition" stage, select all, bulk edit to "Solution Design"

Step 4: Verify the migration

Check that no deals remain in the old stages. Go to the board view and confirm the old stage columns are empty.

Step 5: Remove the old stages

Once all deals have been moved, delete the old stages from the pipeline settings. If you try to delete a stage that still has deals, HubSpot will ask you to move those deals first.

Step 6: Update deal stage references

Search for text references to the old stage names across deal notes, custom properties, and related records. Update them to reflect the new names.

Dealing with "Closed" stages

Moving deals to "Closed Won" or "Closed Lost" in bulk requires extra care.

Closed Won deals affect revenue reporting. Before bulk-closing deals as won, verify:

  • Deal amounts are correct
  • Close dates are what you want (or set them explicitly)
  • Associated contacts will have their lifecycle stages updated to "Customer" (if you have lifecycle sync enabled)
  • Any "Closed Won" workflow triggers will fire for all these deals

Closed Lost deals should have a "Closed Lost Reason" if your pipeline uses that property. Set the reason before (or during) the stage change to keep your loss analysis data intact.

Post-update checks

After any bulk deal stage update:

  1. Pipeline value. Check your pipeline's total value and stage-by-stage breakdown. Do the numbers make sense?
  2. Forecast. If you use HubSpot's forecasting tools, verify the forecast reflects the changes correctly.
  3. Deal stage reports. Check funnel reports and stage duration reports for anomalies.
  4. Workflows. Confirm that any workflows triggered by stage changes fired as expected (or didn't fire unexpectedly).
  5. Close dates. If you moved deals to closed stages, verify the close dates are correct.
  6. Required properties. Check for any deals that might have failed to update due to missing required fields.

Pipeline restructuring and bulk deal stage changes are some of the highest-stakes bulk operations in HubSpot. They directly affect revenue forecasting, sales processes, and management reporting. Take the time to plan the mapping, verify with previews where possible, and check the results thoroughly.

Related HubSpot guides for planning, previewing, and validating the next step.

Still editing HubSpot records one by one?

Start with 100 free applied records — no credit card required.