Best Practices for Enforcing Entry Criteria into a Deal Stage

We’re currently in the process of optimizing how we use our CRM system, and as part of that, we’ve decided to replace our outdated sales pipeline with a new, improved one that includes updated deal stages.

The first deal stage in this new pipeline is called “Prospect”, and it has a set of entry criteria that are based primarily on company-level information, rather than deal-level data. The entry criteria include examples like:

  • Lead matches our ICP
  • Outreach owner is known
  • Buyer persona is identified.. Etc.

Since these criteria are tied to company data, I’m concerned that we don’t have a way to control whether the sales team is creating or moving deals into the Prospect stage without first ensuring these entry criteria are actually met.

So my question is:
Is there a smart or best-practice way to ensure that deals cannot be created or moved into the Prospect stage unless all entry criteria are fulfilled — especially when most of the necessary information lives on the company or contact record?
ChatGPT came up with this workflow solution: Create deal properties that act as checkboxes or confirmations that the data exists on company level. Also suggested that i could then use a second workflow for automate validation. (I’m not stoked about this solutions, as I anticipate it could lead to several future problems)

Any guidance or setup suggestions would be greatly appreciated!

Hi @NT_! There is NOT a way to ensure Company data is complete prior to creating a Deal.

However, you may consider auto-creating a Deal when all the Company data is complete!

So for example, the Company has the right ICP info, Outreach Owner = known, Buyer Persona is correct, and your team clicked a custom “Create Deal” company field… using a workflow, once all the criteria is met you can create a new Deal!

Check out this video to see how:


EmmaAtKiwi_1-1749646506032.gif

Hi Emma,

Thank you for taking the time to elaborate and for creating the helpful video—I really appreciate it.

I like the automation aspect, and we actually already have something similar set up that triggers a new deal whenever a new meeting is booked. However, that setup isn’t perfect.

I have a question regarding this approach: Wouldn’t it only work for companies that don’t already have an existing deal? I assume I’d need to use a filter to ensure there isn’t already an active deal, otherwise it could trigger multiple deals unnecessarily. And if that’s not the case, how would it handle companies with a closed lost deal? Would it immediately create a new deal after it’s been closed lost?
Hope it all makes sense :slightly_smiling_face:

Hey @NT_,
You’re absolutely right to be cautious here — implementing manual checkboxes or duplicated data logic from companies to deals can quickly lead to inconsistency, user error, and long-term maintenance overhead.
Here’s a smarter, more scalable way to approach this in HubSpot, given the limitation that workflows can’t directly enforce pipeline movement rules based on associated object properties (like company data affecting a deal stage change):

1. Define Your Entry Criteria (example for “Prospect” stage):
These are company or contact properties that must be true before a deal enters “Prospect”:

  • Company → ICP Match = Yes
  • Company → Outreach Owner is known
  • Contact → Persona is identified

2. Create a Workflow: “Validate Deal Entry to Prospect”
Type: Deal-based
Enrollment trigger:

  • Deal Stage = Prospect

In the workflow:

  • Use “Check Associated Records” (via filters or if/then branches) to inspect whether:
    • The associated company has ICP Match = Yes
    • The associated company has a known owner
    • The primary contact has a value for Buyer Persona

If the criteria are NOT met:

  • Set Deal Stage back to the previous one (e.g., “Pre-qualification” or whatever your stage is before “Prospect”)
  • Send internal notification to the deal owner: “This deal was moved to ‘Prospect’ but doesn’t meet entry criteria. Please update the associated company/contact record.”

Hope this helps!
Let me know if you have any questions.