Hello community!
I’m trying to set up HubSpot properly and have encountered an issue I don’t know how to overcome. I need your help.
In common practice, a certain contact can change its lifecycle stages forward and backward.
For instance, today a contact can be an SQL, but after conducting a demo, we decide that we can’t convert it into an opportunity for some reason.
It means that we still want to work with this contact and get back to him in the future.
If I change the contact’s stage to a Lead or to an MQL, HubSpot will not count that this lead was at an SQL stage (the “became a sales qualified lead” date will be cleared automatically).
So, I didn’t see that contact among SQL during a certain period of time.
How to solve this?
A contact typically can change stages like the following: Lead → MQL → SQL → MQL…
But as soon as you downgrade the stage, HubSpot doesn’t memorize the previous stage.
I would be more than grateful for any tips and advice.
Hi @AZlotko,
HubSpot expects contacts to only go forward in lifecycle stages, never backward. While this may be unintuitive at first, it’s best to think as the lifecycle stage as how far a contact has gotten, not where they currently are.
If you want to pick up contact at a later time or disqualify them, it’s best to do so in a “Disqualification reason” contact property. This property could be a dropdown containing values like “Not ICP”, “Bad timing”, “Wrong contact person” etc. This allows you to filter for reasons easily and to re-engage them later, should you want to. It also lets you exclude these contacts from reports when needed.
This also means that reports on how many MQLs, SQLs etc you generated in a given time frame will stay correct over time - and not auto-clean as you work through contacts. By moving contacts backwards, you would inevitably skew how many MQLs or SQLs you generated in a month. The numbers would lower themselves over time, as you disqualify contacts and move them back - making it look like you generated fewer MQLs or SQLs.
Again, this might seem unintuitive, but if you embrace it, you’ll have a much easier time when creating reports.
Best regards!
Thanks for the quick answer. Frankly speaking, I don’t understand why HubSpot decided to implement lifecycle stages this way.
@AZlotko Have you tried using "date entered LIFECYCLE STAGE’ "in your reporting instead? Pretty sure when you move a contact backwards it does not erase the value in this property.
It erases. You can verify this simply by using filters. Try experimenting with a contact record. First, change the stage to ‘Sales Qualified Lead’ and save. Then, change the stage to ‘Marketing Qualified Lead’ and save. Next, try to filter records by the date it entered the ‘Sales Qualified Lead’ stage. You will not find this contact in the list.
I’m perplexed because I’m having the issue where it is showing up in my report when I don’t want it to in the old funnel report builder, but in the new beta funnel builder it does not appear. Example:
I have a contact currently in SQL. I move it back to MQL. In the old funnel builder, the contact appears as converting from MQL to SQL. In the beta funnel builder the contact does not appear as converting (which is actually what I want, I don’t want it to show as converting).
Hi @karstenkoehler
In the settings, under the Data Management, in the Deals object, and in the Pipeline tab, and in the Pipeline Rules section, there is an option to allow deals to go backwards or forward.
Would that be a fix?
Hi! this may be something that has changed since HubSpot has implemented the newer Lifecycle stage calculated properties, but I thought that even if a contact’s lifecycle stage moves backwards, say from MQL to Lead, they’re still included in the funnel report as an MQL for that time period…
I know HubSpot’s general best practice is to not move a contact backwards in the Lifecycle stages, but I’m trying to figure out if that’s changed now with the new calculated properties? They don’t reset so you don’t lose the date that someone entered a stage previously. Do you have any thoughts on that?
Jumping in here since we’ve implemented lifecycle + lead tracking systems for dozens of clients, and this topic keeps resurfacing.
The core issue — losing lifecycle history when downgrading a stage — is one reason we advise never using Lifecycle Stage to reflect the current status. Instead:
- Lifecycle should reflect the furthest point a contact has reached
- Lead Object (or Lead Status if you don’t have Sales Hub Pro) should reflect the current engagement state
For example, if a contact becomes an SQL but doesn’t convert, we don’t move them backward. Instead, we use the Lead Object to mark them as Nurture or Disqualified, depending on why they’re not moving forward. That way, Lifecycle Stage reporting (e.g., “How many SQLs in Q2?”) remains accurate, without historical data being overwritten.
We also use a property like Disqualified Reason (e.g., “Bad Timing”, “Not ICP”) so reps can document why a lead didn’t progress. When timing improves, we can reassign the lead with a new Lead record — all without messing with lifecycle reporting.
This setup keeps your pipeline cleaner, gives sales better context, and avoids the messy lifecycle regressions that wreck reporting dashboards.
Hope that helps clarify! Would love to hear how others handle this.