Make SQL a structural fact, not a judgment call
Ask five people in a company where MQL ends and SQL begins and you get five answers. That is not a culture problem and it will not be fixed by a workshop. It is a definition problem, and definitions are structural.
The usual definition is a vibe
Most lifecycle setups define SQL as something like "sales has accepted the lead" or "the lead is qualified and ready for outreach". Both are judgments. Nobody can look at a contact record and check either one. So the stage drifts, reporting on it becomes meaningless, and the funnel report everyone stares at each month is measuring opinion.
A definition you can check
A contact is SQL when an active Lead record exists for them at Working, Hot.
That is it. It is either true or it is not. You can look at the record and see. No two people can disagree about it, because there is nothing to have an opinion about.
The Lead object is what makes this work. It is a real record with its own status, separate from the contact, and it exists precisely to represent "someone is working this". Tying the stage to the record turns a judgment into a fact.
What the promotions look like
Each transition becomes an event with a trigger rather than a meeting.
Lead to MQL. A scoring threshold is met, or an engagement pattern is detected.
MQL to SQL. A Lead record is created or flipped to Working, Hot. Automatically on a hot signal, or by hand when an intake rep picks it up.
SQL to Opportunity. A meeting is booked and a Deal is created.
Opportunity to Customer. An Order syncs, or the Deal closes won.
Every one of those is checkable after the fact. That is the whole point.
One thing that catches people out
Forms cannot write to the Lead object. They can write to Contact, Company or Ticket, and that is the full list.
So the intake form populates Contact and Company, and a workflow creates the Lead record downstream when the record is worth working. If you have been trying to get a form to create a Lead and assuming you configured it wrong, you did not. It is not a supported target.
Keep SQL even when it feels thin
Plenty of businesses have no outbound team, and the MQL to SQL line looks like paperwork. Keep the stage anyway.
It preserves HubSpot's native funnel reporting, which is built around the full sequence, and it keeps the option open to add a dedicated intake or outbound person later without re-cutting your history. Only drop it if there is genuinely no motion behind it and keeping it has a cost you can name.
What this buys you
The month the definition becomes structural is the month the funnel report starts being worth reading. Not because the numbers improve, but because they finally mean the same thing to everyone looking at them.