You built the HubSpot list. Filters look right. Row count is 847. Then nothing happens because nobody agreed how those contacts get from a list view to a dialed call with context and writeback. This guide is the missing middle: list hygiene, enrollment paths, and pacing before you scale outbound voice.
This is a tactical companion to the stale MQL reactivation playbook. That post covers the full Reactivation Loop (voice, SMS, brief, note). Here we go deep on Step 1 and the handoff into your voice layer.
Nudgy is not a dialer. It is a context layer on HubSpot: your list defines who, CRM fields define how the call opens, and structured writeback defines what sales sees afterward.
Who this guide is for
- HubSpot admins who own active lists, properties, and enrollment workflows.
- RevOps and sales ops translating segment strategy into dial-ready cohorts.
- SDR managers who need predictable list quality before reps or voice automation touch records.
- Demand gen leads handing off campaign-sourced lists with phone numbers and owner assignment.
What is list-driven outbound voice?
Definition
List-driven outbound voice means HubSpot decides who is eligible (active list or static segment), your team validates the cohort, then a voice motion dials each enrolled contact with CRM context and logs outcomes back to the contact timeline.
The list is the contract between marketing, RevOps, and sales. If filters are vague, voice amplifies the mess. If filters are tight and enrollment is explicit, voice becomes a repeatable pipeline step.
The list-to-voice enrollment path
Think in two layers. Enrollment (this article) gets contacts from HubSpot into a dial queue with clean data. Execution (Reactivation Loop) is what happens on and after the call.
List-driven outbound
From HubSpot list filters to enrolled voice calls
- 1
Segment
Define who belongs (lifecycle, recency, phone, consent).
- 2
List
HubSpot active list with filters your RevOps team can defend.
- 3
Validate
Export preview rows; fix empty owners and missing mobile.
- 4
Enroll
Sync cohort to voice motion (manual, daily sync, or workflow).
- 5
Voice
Outbound call with CRM context in the opener.
- 6
Writeback
SMS recap, rep brief, and HubSpot timeline note.
After enrollment, the post-call steps match the Reactivation Loop:
Playbook overview
Six steps from HubSpot list to rep-ready CRM record
- 1
List
Build a HubSpot active list (stale MQLs with phone numbers).
- 2
Context
Pull name, company, lifecycle, and campaign into the call script.
- 3
Voice
Outbound call with a clear goal: book a meeting or capture blockers.
- 4
Recap
Short SMS to the lead confirming what you discussed.
- 5
Brief
Internal email to the HubSpot owner with signals and next step.
- 6
Note
Timeline note (and optional properties) on the contact record.
Why HubSpot lists fail before the first dial
| Problem | Symptom | Fix |
|---|---|---|
| No phone hygiene | High no-answer rate | Require mobile or known direct line; exclude blanks |
| Stale owner | Briefs go to wrong rep | Filter hubspot_owner_id is known before enroll |
| Over-broad lifecycle | Calls to customers or partners | Exclude Customer, Evangelist, etc. |
| No consent trail | Legal pushback | Document basis per segment; honor opt-out properties |
| List never synced | Rep exports CSV manually once | Pick an enrollment path and automate |
Step 1: Active list vs static list
Use an active list when membership should change as HubSpot data updates (recency, lifecycle, activity). Use a static list when you want a frozen pilot cohort (10 to 50 contacts) and no surprise enrollments.
| List type | Best for | Watch out |
|---|---|---|
| Active list | Ongoing reactivation, rolling idle MQLs | Contacts can enter and exit daily; pace dials |
| Static list | First pilot, exec-approved batch | Manual refresh when you expand segment |
| Workflow on list membership | Auto-enroll when someone joins active list | Add suppression for recent calls |
First-time teams: start static, prove note quality, then move to active list + scheduled sync.
Step 2: Filter recipes that enroll cleanly
Copy one recipe, adjust dates to your SLA, and name the list so sales knows what they are getting.
Stale MQL reactivation (default)
Lifecycle stage is any of: Marketing Qualified Lead AND Last activity date is more than 30 days ago AND Phone number is known AND Mobile phone number is known (recommended) AND Marketing contact status is Marketing contact AND hubspot_owner_id is known AND NOT Lead status is any of: Unqualified, Bad timing AND NOT Associated deal exists in Open stage
Demo requested, no meeting held
Form submission on page contains: demo OR contact sales AND Meeting booked is unknown OR Meeting attended is No AND Last activity date is more than 7 days ago AND Phone number is known AND hubspot_owner_id is known
Webinar or event follow-up (14+ days idle)
Latest source contains: webinar OR event AND Last activity date is more than 14 days ago AND Lifecycle stage is any of: MQL, SQL AND Phone number is known AND NOT Customer lifecycle stage
For full motion design after the list exists, see the stale MQL playbook. For fresh form fills, use speed-to-lead (workflow trigger, not list enrollment).
Step 3: Pre-dial QA checklist
Export 20 random rows from the list before you enroll anyone. If more than two columns are empty on most rows, fix data first.
- Phone: mobile present or direct line; country code valid for your dialer region.
- Owner: every row has hubspot_owner_id; no orphaned contacts.
- Context: company, lifecycle, last activity, and at least one source or campaign field populated.
- Suppression: exclude opted out, customers, open deals, and anyone called in the last N days (custom property or list exclusion).
- Consent: segment has documented basis (inbound, event opt-in, etc.).
Preview export columns
firstname, lastname, company, lifecyclestage, phone, mobilephone, hubspot_owner_id, hs_lastmodifieddate, hs_analytics_source, hs_latest_source_data_1, notes_last_contacted
Pilot size: 10 to 50 contacts with mobile numbers. Learn connect rate and note quality before you enroll hundreds.
Step 4: Three enrollment paths into voice
| Path | How it works | When to use |
|---|---|---|
| Manual cohort | Export static list or select records; upload or approve batch in voice layer | First pilot, executive sign-off, legal review |
| Daily active list sync | Scheduled job pulls new list members since last run; dials with cap per day | Ongoing reactivation at steady pace |
| Workflow on list membership | HubSpot workflow: contact added to list → webhook or integration → voice queue | After QA passes; add 24h call suppression branch |
Example workflow branch (pseudo-logic):
Enrollment trigger: Added to list [Stale MQL Voice Pilot] IF nudgy_last_call_date is unknown OR more than 14 days ago AND Phone number is known THEN → Enroll in voice motion [Reactivation v1] ELSE → Do not enroll
Step 5: Property map for outbound openers
Map once per motion. The voice layer should never invent context HubSpot does not have.
| HubSpot property | Use in voice motion |
|---|---|
| firstname | Greeting |
| company | Account reference |
| lifecyclestage | Qualification framing |
| hs_lastmodifieddate / notes_last_contacted | Recency language |
| hs_analytics_source / latest source | Why they are in your world |
| hs_latest_source_data_1 | Campaign or content name |
| hubspot_owner_id | Brief routing and meeting offer |
| mobilephone (prefer) / phone | Dial path |
Step 6: Pacing, throttling, and the outbound motion
Dumping 800 contacts into a queue on Monday morning burns reputation and annoys sales. Cap daily enrollments and respect local calling windows.
- Daily cap: 25 to 100 dials/day for first two weeks, then scale with connect data.
- Retry policy: 2 to 3 attempts over 3 business days for no-answer; then exit or nurture.
- Time zones: filter or schedule by contact timezone when available.
- One motion per list: do not mix webinar follow-up and stale MQL scripts in the same queue.
Outbound motion template (list-sourced)
Opener: Reference company and how they engaged (campaign or content from HubSpot). Ask if now is still a good time to discuss [topic].
Discovery (max 2 questions): What prompted their interest? What would need to be true to take a next step this quarter?
Close: Book with HubSpot owner or capture blocker and follow-up date.
Guardrails: No pricing on the call. Honor opt-out immediately. Escalate legal or security to the rep.
Step 7: Writeback after the call
Enrollment gets you to the dial. Writeback is why RevOps approves the motion. Same pattern as every HubSpot playbook in this cluster: SMS recap, internal brief, timeline note.
SMS template
Sample HubSpot timeline note
[Nudgy list outbound | 2026-05-15] Outcome: Connected · Meeting interest: Medium Summary: Director of Ops at Northline Inc. On list "Stale MQL Voice Pilot". Still comparing vendors; wants HubSpot writeback demo before booking. Blocker: Traveling next week; asked for follow-up Thursday. Recommended next step: Owner sends writeback one-pager, books 20 min. List: Stale MQL reactivation · Last activity 41 days ago · Source: Webinar
Optional properties: nudgy_last_touch_date, nudgy_list_outbound_outcome. Start with notes only if you want the smallest writeback.
Metrics for list enrollment pilots
| Metric | What good looks like (pilot) |
|---|---|
| List QA pass rate | 90%+ rows have owner, phone, and one source field |
| Enrollment coverage | 100% of approved static cohort enrolled |
| Dial attempt rate | 90%+ of enrolled contacts attempted |
| Connect rate | Track mobile vs office; tune list filters |
| CRM note on connected calls | 100% |
| Meetings from pilot | At least one booked meeting per 15 to 25 connects |
List outbound vs workflow inbound vs full reactivation playbook
| This guide (list → voice) | Speed-to-lead | Stale MQL playbook | |
|---|---|---|---|
| Primary focus | Enrollment and list hygiene | First-hour inbound | End-to-end reactivation |
| Trigger | Active or static list | Form workflow | Active list + full loop |
| Best read when | You have a list, need dial ops | Demo form just fired | Starting reactivation program |
FAQ
Active list or static list for week one?
Static list. Freeze 10 to 50 contacts, run the full loop, review notes with sales, then automate with an active list.
How is this different from the stale MQL playbook?
The playbook is the full Reactivation Loop (voice through note). This article is the tactical layer: filters, QA, enrollment paths, and pacing before scale.
Can we enroll the same contact from two lists?
Avoid it. Use a global suppression property (last call date) or a master exclusion list so contacts do not get double-dialed.
Do we need HubSpot Operations Hub?
Helpful for advanced workflows and custom objects, but not required. Active lists, standard workflows, and exports are enough for most pilots.
What if our list has 10,000 rows?
Do not enroll all at once. Sample 50, tune filters, then roll out with daily caps and connect-rate monitoring.
How do we connect HubSpot to the voice layer?
Common patterns: workflow webhook, scheduled list sync, or approved CSV for pilots. Nudgy deployments often use n8n behind the scenes for routing and writeback.
When should we use workflow triggers instead of lists?
Fresh inbound (form submit) belongs on workflows. Idle CRM segments belong on lists. See speed-to-lead for the inbound case.
See list-driven outbound voice on your stack
Work email and mobile required. Short demo call plus recap, framed like a HubSpot list enrollment pilot.
Describe your list and segment. Nudgy will call you the way a list-enrolled outbound touch would run on your stack.