HubSpot
RealGreen statuses to HubSpot lifecycle stages: the mapping that makes reporting true
By Marketing 180 Team · February 4, 2025 · 5 min read
How should RealGreen statuses map to HubSpot lifecycle stages? We map them like this: a new inquiry is a Lead, a contact in your service area with a real property is a Marketing Qualified Lead, a priced quote makes them a Sales Qualified Lead, an actively worked quote is an Opportunity, and a sold program makes them a Customer. Canceled customers stay at Customer lifecycle stage with a synced status property carrying the truth, because HubSpot's lifecycle field was never designed to move backwards. Get this mapping wrong, or leave stages unset, which is what most portals do, and every funnel report, conversion rate, and attribution number HubSpot produces is fiction. This post is the mapping, the automation that maintains it, and the two places lawn care reality refuses to fit HubSpot's model.
Why does bad stage data poison every report?
Lifecycle stage is the backbone HubSpot's reporting hangs on: funnel conversion, source performance, time-in-stage, marketing attribution. When stages are unset or wrong, those reports do not error out; they confidently report nonsense. Illustrative example: a company takes 900 inquiries a season, quotes 500, and sells 210. With stages maintained, HubSpot shows a 42% quote-to-close rate and can break it out by lead source, which is how you discover that, say, LSA leads close 15 points better than Facebook leads and rebalance budget accordingly. With stages unmaintained, the same portal reports 900 leads, a handful of accidental customers, and a conversion rate under 3%, and an owner glancing at that dashboard concludes marketing is broken when only the bookkeeping is. Plug in your own numbers; the distortion pattern is universal. Wrong data wearing a chart is worse than no data. The insidious part is that the distortion is stable: the reports are wrong the same way every month, so they feel consistent, and consistency reads as truth.
The mapping, stage by stage
- Subscriber: newsletter signups and content downloads who have not asked for anything priced. Most lawn care portals barely use it; fine.
- Lead: a new inquiry from any source: form, call, LSA, referral. They exist and have contact info.
- Marketing Qualified Lead: in your service area, real property, not a duplicate or a job-seeker. Cheap to verify, worth verifying.
- Sales Qualified Lead: a quote has been produced. In program lawn care the quote IS qualification; do not overthink this.
- Opportunity: the quote is being actively worked: follow-up running, deal open. This is the stage your pipeline reports care about.
- Customer: sold. Set the moment RealGreen says so via the nightly sync, not when someone remembers.
- Evangelist: optional; some shops use it for referral-program members. Harmless either way.
Automating the moves from synced status
Stages must be moved by machinery, not memory. Three workflows do almost all of it. First: on form submission or lead capture, set Lead, and set MQL once a service-area check passes. Second: when the synced RealGreen data shows a quote created, set SQL and open a deal; when follow-up sequences engage, Opportunity. Third, the one that matters most: when rg_customer_status flips to active on the nightly sync, set Customer and close the deal as won. That last workflow is why the sync architecture matters so much: RealGreen is where the sale actually becomes real, so RealGreen must be what promotes the contact, or your Customer count drifts from your route count within a month. The property-level details of what the sync writes are in our field-mapping guide. Resist manual stage edits entirely; give the office a saved view instead of edit rights if you must. Any stage a human can set by hand is a stage the automation can no longer be trusted to have set.
Where lawn care reality does not fit
The canceled customer
HubSpot's lifecycle model assumes progress in one direction and has no former-customer stage. Do not fight it by dragging cancels back to Lead; that destroys your historical funnel data. Leave lifecycle at Customer forever and let the synced rg_customer_status property carry active versus canceled. Every list and workflow that targets cancels filters on the property, not the stage. When a canceled customer returns, nothing needs to move; status flips back to active and history stays intact. The win-back campaigns themselves, and when to run them, are covered in our win-back timing post.
The household with two buyers
Spouses sharing an address can sit at different stages: she filled out the form, he took the sales call. Pick a primary contact per household in the sync and let stages live there; chasing perfect per-person stages in a household business is effort with no report that benefits. The exception is commercial, where per-contact stages on a company record genuinely matter.
What true stages buy you
Once stages track reality, three things unlock. Funnel reporting by source becomes trustworthy enough to move budget with, which connects directly to the source-code discipline covered in tracking which marketing books jobs in RealGreen. Workflow targeting gets cleaner: welcome series enroll Customers, quote-chase sequences enroll Opportunities, and nobody gets both. And your future reporting stack, whether HubSpot dashboards or a done-for-you reporting layer, inherits a funnel that means something. Stage data compounds: every month it is right, the year-over-year comparisons get more valuable, which is also the honest argument for fixing this early rather than someday. And because we can connect RealGreen to pretty much any platform with an API, a Zapier connection, or a native connection, the same status-driven discipline holds whatever CRM ends up on top. It also makes the monthly sold-count reconciliation quick: one filtered view checked against one RealGreen report, five minutes, done.
The takeaway: lifecycle stages are the grammar of every HubSpot report, and in a RealGreen shop the grammar only holds if the nightly sync conjugates it: quote sets SQL, RealGreen's sold status sets Customer, and cancels live in a status property, never a backwards stage move. Wire those three rules and your dashboards start telling the truth.
Fix your stages this week
- Write the mapping table for your shop: each lifecycle stage, its lawn-care meaning, and the exact trigger that sets it.
- Build the three stage-move workflows: capture sets Lead/MQL, quote sets SQL, synced sold status sets Customer.
- Backfill existing contacts in bulk from synced status: actives and cancels to Customer, open quotes to Opportunity.
- Create the canceled-customer saved filter on rg_customer_status and repoint any list or workflow that guessed at stage instead.
- Put the funnel-by-source report on the owner's dashboard and sanity-check it against RealGreen monthly until the two agree on sold counts.
Keep reading
Ready to turn it around?
Get a free marketing snapshot. We'll show you exactly where you stand and what it would take to win.