Generally, the call we get the Monday after a conference goes like this, a CSV of 600 badge scans, a sales team that wants to call everyone today, a marketing team that already pushed the list into HubSpot as marketing contacts, and a finance team that just noticed the next invoice is going to be roughly double. The list is not the problem. The first 48 hours of how that list gets handled is the problem. Event ops is where contact hygiene either compounds or rots, and the difference between the two is two fields, one rule, and a workflow you build before the booth opens, not after.
Why this matters now
Conference budgets are not getting smaller. SaaStr's own sponsor case study with Predictable Revenue made the point years ago and it has only sharpened, 327 badge scans yielded zero closed deals, while a tighter, qualified set of 67 scans closed two hundred thousand dollars in eight weeks (Collin Stewart, SaaStr, 2017). The pattern repeats every cycle. Volume of badge scans is not the input. Volume of correctly-tagged, correctly-subscribed, correctly-routed badge scans is the input. And in HubSpot specifically, the cost of getting that wrong is not just dirty data, the marketing-contact billing model means a sloppy import literally lands in the next invoice.
The two flows hiding inside one CSV
Every event list has two completely different use cases inside it, and most teams try to run them through one workflow. They are different in the data they need, the consent they require, and the team that owns the next action.
On the one hand, the marketing-eligible flow: people who consented to receive marketing communications, who go into the nurture program, who count against the marketing-contact tier. On the other hand, the sales-handoff flow, people the AE talked to at the booth, who get a personal follow-up, who do not need to be, and in most EU jurisdictions should not be, added to the marketing list on the basis of a badge scan alone.
These are two flows that share a CSV and nothing else. That's why a single combined import almost always disappoints. It averages two intents that should be doing different jobs.
Subscription status vs. marketing-contact status, where teams overpay
Two different fields, often confused. Subscription status is the GDPR-grade record of what a contact actually opted into. Marketing-contact status is the HubSpot billing flag that decides whether you pay for that record this month. Teams that conflate the two end up with one of two failure modes, every booth scan flipped to marketing contact (the bill problem), or every booth scan kept out of marketing contact and also out of the subscription record (the deliverability problem six months later, when nobody remembers who consented to what).
The rule we hold every event import to, import as non-marketing contacts, send a single-step subscription confirmation, and only flip to marketing-contact when the opt-in lands. Sales follow-up runs in parallel on a different property and does not need the subscription to fire.
Property design, campaign, source, medium, and the event-lead flag
The properties most teams reach for are the ones that come pre-built. The properties that actually make event reporting work are the ones you set up the week before the conference.
Original source vs. campaign
Original source is sticky and tells you how the contact first reached you. Campaign tells you which specific event scan or QR code they came in through. Do not overwrite original source on import, append the campaign association instead. Six months later, when the renewal cohort report runs, you want to know that the contact originated at GDC 2026 even if their second touch was a webinar.
Event-lead property
A separate boolean (or single-select) on the contact record, was this person a sales-handoff scan, a marketing-eligible scan, or both? This is the property the sales workflow keys off of. Subscription status is the property the marketing workflow keys off of. They never share a trigger. That's why the two flows can run in parallel without one polluting the other.
UTM-equivalent fields for the event
If your booth has a QR code, treat it like a campaign URL: source = event name, medium = booth, campaign = the specific session or activation. The reason is not aesthetic, it's that the same person scanning the same QR code at three different sessions should produce three associated touches, not one overwritten touch.
The follow-up cadence that gets read
The HBR research on online lead response time has held up for fifteen years, companies that respond fast convert better, and the curve is steeper than most teams want to believe (Oldroyd, McElheran, and Elkington, Harvard Business Review, March 2011). Events compress this further. The conference badge has a half-life of roughly four days; by day five, the contact has talked to your competitor, gone home, deleted the swag, and forgotten the conversation.
What works in practice for the sales-handoff flow: a personal email from the AE who actually talked to the person, sent within 48 hours, referencing one specific thing from the booth conversation, with a calendar link rather than a generic CTA. What does not work: the templated marketing nurture welcoming them to the brand. The marketing-eligible flow is a different animal, that one runs on the standard nurture, but only after the subscription confirmation has come back opted-in.
Pattern from the field
A B2B SaaS team in DACH at Series A came back from a major industry conference with about 800 badge scans and had already pushed them into HubSpot as marketing contacts on the flight home. The next billing cycle moved them up a tier. The nurture program triggered for everyone on the list, including the people who had specifically asked the AE not to add them to a mailing list. Two complaint emails landed in the first week.
The reset was straightforward but not fast. We rolled the import back to non-marketing contact status, segmented the list into the two flows based on the AE's notes, ran a fresh single-opt-in confirmation through the marketing-eligible cohort, and built the event-lead property the team should have built before the booth opened. Roughly 35% of the list opted into the subscription. The other 65% stayed in HubSpot as non-marketing contacts and as legitimate sales-handoff records, which is the correct outcome, not a failure mode. The next invoice came back to the prior tier.
Resolution, the playbook
For any team running an event in the next quarter, before the booth opens:
- Build the properties first. Event-lead status, campaign association, source/medium/campaign UTM-equivalents on the contact record. Do this the week before, not the Monday after.
- Import as non-marketing contacts. The CSV from the booth or from Luma or from the badge-scan vendor lands in HubSpot with marketing-contact status set to false. No exceptions, no special-casing the warm leads.
- Tag, then split. Run a single workflow that reads the CSV column or the AE's note and writes the event-lead property. From here, the sales-handoff and marketing-eligible flows diverge and never re-merge.
- Send a single-step subscription confirmation to the marketing-eligible cohort. One email, one ask, one link. Marketing-contact status flips only when the opt-in lands.
- Run the sales-handoff cadence in parallel. Personal email from the AE within 48 hours, calendar link, one specific reference to the booth conversation. This flow keys off the event-lead property, not subscription status.
- Schedule the 60-day hygiene pass. Anyone on the marketing-eligible list who has not engaged in 60 days gets a re-permission email or gets quietly demoted back to non-marketing-contact. The bill follows the engagement.
- Report on cohort, not on volume. The metric that matters is opportunities created from the event cohort within 90 days, not badge scans. Build that report before the conference, and the rest of the playbook self-enforces.
Two fields, one rule, no inflated invoice. The teams that ship steps one through seven before the booth opens are the teams that don't get the Monday-morning call.
Where Checkpoint comes in
Event ops is one of the recurring places in B2B SaaS marketing where the operational layer either compounds value or quietly burns it. The properties, the workflows, the consent records, the billing implications, they all sit inside HubSpot, and they all need to be wired before the conference, not patched after. Checkpoint runs this setup as part of our marketing operations work, including pre-event property design, post-event hygiene passes, and the reporting cohort that ties booth scans to closed revenue. If your team is heading into a conference cycle and the playbook above is not yet wired, talk to us before the next booth opens.
Sources
- Oldroyd, James B., Kristina McElheran, and David Elkington. "The Short Life of Online Sales Leads." Harvard Business Review, March 2011. hbr.org
- Stewart, Collin. "How to Make Serious Money Off a SaaStr Annual Sponsorship: A Predictable Revenue Case Study." SaaStr, 2017. saastr.com
