8:00 Nudg3 — Automation Infrastructure
n8n Infrastructure

Sales Automation System

Seven n8n workflows connecting Attio CRM ↔ Smartlead. Every lead event triggers an automatic response. No manual campaign management required.

How it works: Attio is the source of truth. When any lifecycle attribute changes on a lead — trial starts, audit sent, reply received, subscription status shifts — Attio fires a webhook to n8n. n8n determines the right action, instructs Smartlead, and updates Attio. The rep only needs to set one attribute. Everything else is automatic.
The Seven Workflows ALWAYS ON
01
Attio → Smartlead: Push Leads
TRIGGER → sequence_status = active
Rep sets sequence_status = active on any lead in Attio
n8n reads geography + icp_type from the lead record
Looks up correct cold campaign from internal map
Enrolls lead in Smartlead with name + email
RESULT
Cold email sequence begins automatically. 16 geo/ICP combinations supported.
02
Smartlead → Attio: Feedback
TRIGGER → Smartlead email event webhook
EMAIL_REPLY — Sets reply_received, stops sequence, creates rep task
EMAIL_BOUNCE — Pauses Smartlead campaign, sets status = bounced
LEAD_UNSUBSCRIBED — Sets status = unsubscribed permanently
EMAIL_SENT — Updates last_email_sent date in Attio
RESULT
Attio reflects every email event in real time. Rep notified on reply with task.
03
Attio → Smartlead: Pause on Trial
TRIGGER → trial_status changes
Nudg3 platform sets trial_status = active in Attio
n8n fetches lead from Smartlead by email
Pauses every active campaign the lead is enrolled in
Sets sequence_status = Paused in Attio
RESULT
Cold/audit emails stop immediately when trial starts. Trial sequence then takes over.
04
Attio → Sequence Router
TRIGGER → lifecycle attribute changes
Monitors: trial_status, audit_sent, subscription_status, reply_received
Evaluates priority hierarchy to determine correct sequence
Pauses current Smartlead campaign (if active)
Enrolls lead in Trial / Post-Audit / Upgrade / Winback / At-Risk
RESULT
Lead always moves to the most contextually correct campaign. Zero manual routing.
05
Attio → Reply Router
TRIGGER → happynudgeon / unhappynudgeon set
Rep classifies reply using happynudgeon_1/2/3 or unhappynudgeon
nudge → pause current campaign → enroll in Happy Nudge 1/2/3
gone_cold / nurture → enroll in Nurture campaign
meeting_booked → pause Smartlead + update lead_stage in Attio
do_not_contact → pause all campaigns, permanently stop
RESULT
One attribute click by rep = full campaign transition executed automatically.
06
New Lead — Activation Reminder
TRIGGER → record.created in Attio
Any new People record created in Attio fires this workflow
Creates Attio task linked to the new lead record
Assigns task to the sales rep
Task: "Review lead — set sequence_status = active when ready"
RESULT
No lead enters the pipeline without a rep review. Every new contact gets a human check.
07
Churn Monitor — Daily Check
TRIGGER → Scheduled: every night at midnight SAST
SCHEDULED
Runs automatically every night at 00:00 SAST (no human trigger needed)
Queries Attio for all leads where subscription_status = active AND renewal_date is in the past
For each match: sets subscription_status = churned in Attio
Sequence Router automatically picks up the change and enrolls each churned lead in Winback
DATA DEPENDENCY
The Nudg3 platform must update renewal_date in Attio when a subscription renews. If not updated, the monitor will correctly identify the subscription as lapsed at the old date.
RESULT
Churned customers enter Winback automatically within hours of their renewal date passing. No manual review needed.
Rep Operations

Daily Workflow

What a rep actually does each day — and what the automation handles so they don't have to.

Design principle: The system handles all campaign logistics. The rep handles all human judgement. A reply comes in — the automation pauses the sequence and creates a task. The rep reads the reply, decides, sets one attribute. The system does the rest.
Full Daily Schedule — What Happens & Who Does It DAILY OPS
TIME
REP ACTIVITY
AUTOMATION RUNNING IN PARALLEL
TOOLS
Task Array 1
Open Attio — review overnight tasks.
Check for reply tasks created automatically overnight. Prioritise leads by reply quality. Flag any Tier 1 leads for immediate call.
AUTO Reply tasks already created
AUTO Sequences already paused on reply
AUTO Attio already updated with reply_date
Attio CRM
Gmail
Task Array 2
Qualify replies — set classification attribute.
Read each reply. Set happynudgeon_1, happynudgeon_2, happynudgeon_3, or unhappynudgeon as appropriate. This is the single action that triggers all downstream automation.
AUTO Campaign transition fires on attribute set
AUTO Lead enrolled in correct next sequence
AUTO Previous campaign paused automatically
Attio CRM
Reply Router fires
Task Array 3
Live outreach — Tier 1 leads only.
Call leads who replied with strong interest. Book discovery calls. Send LinkedIn messages to non-repliers in Tier 1 who are 7+ days into sequence. Reference specific audit findings.
AUTO Cold sequences firing to all enrolled leads
AUTO EMAIL_SENT updates Attio in real time
REP Calls and LinkedIn are manual
Phone
LinkedIn
Calendly
Task Array 4
New lead activation — review and approve.
Check Attio task list for new leads created overnight. Verify geography and icp_type are correctly set. Set sequence_status = active when ready to begin outreach.
AUTO Activation reminder task already waiting
AUTO Smartlead enrollment fires on status = active
REP Final human review before outreach starts
Attio CRM
Push Leads fires
Task Array 5
List building — next batch of leads.
LinkedIn Sales Navigator search. Export profiles. Upload to Lusha for email enrichment. Score Tier 1 / 2 / 3. Import enriched list into Attio with correct tags.
AUTO Reminder task fires on each new Attio record
REP Research, enrichment, and scoring are manual
Sales Navigator
Lusha
Attio import
Task Array 6
Trial and subscription pipeline review.
Review trial users approaching Day 10. Check platform usage data. Call high-intent trial users. Review any subscription changes flagged by the Sequence Router.
AUTO Trial sequence running automatically
AUTO Subscription changes already routed
REP Day 10 call is intentionally manual
Nudg3 platform
Attio
Phone
Task Array 7
Pipeline hygiene + reporting prep.
Move deals to correct Attio stages. Log all call outcomes. Review Smartlead deliverability scores. Check n8n execution log for any workflow errors requiring attention.
AUTO Churn Monitor runs at midnight
AUTO All sequences continue firing overnight
REP Pipeline stage updates are manual
Attio
Smartlead
n8n dashboard
Task Array 8
LinkedIn Prospecting.
Engage with high quality leads identified based on Agency or Enterprise ICP.
REP Lead Indentification and outreach
REP ongoing messaging and engagements
REP Calls
LinkedIn
What a Rep Never Has To Do (Automation Handles It) AUTOMATED
CAMPAIGN MANAGEMENT
✓ Pause sequence on reply
✓ Enroll lead in next campaign
✓ Pause old campaign before new one
✓ Stop bounced leads from receiving more email
✓ Remove unsubscribers permanently
CRM UPDATES
✓ Update last_email_sent on every send
✓ Set reply_received = true on reply
✓ Set reply_date automatically
✓ Update sequence_status after each transition
✓ Create reply task with rep assigned
LIFECYCLE ROUTING
✓ Move lead to trial sequence on trial start
✓ Move to post-audit on audit sent
✓ Route churned leads to winback
✓ Identify churned subscriptions nightly
✓ Protect terminal leads from re-enrollment
Lead Lifecycle

How Leads Move Through the System

Every path a lead can take from first entry into Attio through to all possible end states.

Path A — Cold Outreach → Reply → Nudge Classification MOST COMMON
01
REP ACTION
Lead added to Attio → Rep sets sequence_status = active
Rep verifies geography and icp_type are set. Sets sequence_status = active. Push Leads workflow fires immediately — lead enrolled in correct cold campaign.
WF 01 fires Rep sets 1 attribute
02
AUTOMATED
Cold sequence runs — Smartlead sends emails over 14 days
Each email sent → Smartlead fires EMAIL_SENT event → n8n updates last_email_sent in Attio. Rep sees live tracking without touching anything.
WF 02 updates Attio on every send Zero rep action
03
AUTOMATED
Lead replies → Sequence pauses → Rep task created
Smartlead fires EMAIL_REPLY → n8n updates Attio (reply_received = true, reply_date, sequence_status = stopped) → pauses Smartlead campaign → creates task assigned to rep: "Reply received — qualify within 24h".
WF 02 fires Task auto-created in Attio
04
REP ACTION
Rep reads reply → Sets happynudgeon_1 = nudge / meeting_booked / gone_cold
Rep reads the reply, makes a human judgement, sets the appropriate attribute. This single action triggers all downstream automation — campaign enrollment, Attio updates, everything.
Rep sets 1 attribute WF 05 fires
05
AUTOMATED — THREE POSSIBLE OUTCOMES
NUDGE SET
Old campaign paused → Enrolled in Happy Nudge 1/2/3 → sequence_status = active
MEETING BOOKED
Campaign paused → sequence_status = stopped → lead_stage = Meeting Booked
GONE COLD
Enrolled in Nurture campaign → sequence_status = active → long-term drip begins
Path B — Audit → Trial → Conversion PRODUCT-LED
01
REP OR PLATFORM ACTION
audit_sent = true set in Attio
When a free audit is sent, audit_sent is set to true. Sequence Router fires — detects audit_sent, pauses cold campaign, enrolls lead in Post-Audit sequence. sequence_status = active.
WF 04 fires
02
PLATFORM ACTION
trial_status = active set by Nudg3 platform
Two workflows fire simultaneously. Pause on Trial (WF 03) pauses the post-audit campaign in Smartlead and sets sequence_status = Paused. Sequence Router (WF 04) sees trial_status = active, enrolls in Trial campaign, sets sequence_status = active.
WF 03 pauses campaign WF 04 enrolls in Trial
03
PLATFORM ACTION — TWO OUTCOMES
trial_status = converted
Sequence Router immediately routes to Upgrade campaign. Does not wait for subscription_status update from platform.
trial_status = expired
Sequence Router routes to Winback campaign automatically. No rep action needed.
CRM Architecture

Attio Attribute Logic

Every automation-relevant attribute in Attio, what it does, and what fires when it changes.

sequence_status — The Master SignalCORE ATTRIBUTE
active
Enrolled in Smartlead. Emails firing.
Paused
Campaign paused. Trial has started.
stopped
Permanent stop. Reply, meeting, DNC, or disqualified.
completed
Manual use only. No automation reads this.
bounced
Auto-set on bounce. No further emails.
unsubscribed
Auto-set on opt-out. Permanent.
trial_status → What fires
WF 03 + WF 04
not_started
Default. No automation fires.
active
Pause on Trial pauses Smartlead. Sequence Router enrolls in Trial campaign.
converted
Sequence Router enrolls in Upgrade immediately — highest priority, beats subscription_status.
expired
Sequence Router enrolls in Winback campaign.
subscription_status → What fires
WF 04 + WF 07
not_subscribed
Default. No lifecycle automation fires.
active
Sequence Router enrolls in Upgrade campaign.
at_risk
Sequence Router enrolls in At-Risk retention campaign.
churned
Sequence Router enrolls in Winback. Also set by Churn Monitor nightly.
cancelled
Treated identically to churned — Winback campaign.
happynudgeon_1/2/3 → What fires
WF 05
nudge
Pause current campaign → enroll in Happy Nudge 1, 2, or 3 (matching level). sequence_status = active.
meeting_booked
Pause Smartlead campaign. Set sequence_status = stopped. Set lead_stage = Meeting Booked.
gone_cold
Enroll in Nurture campaign. sequence_status = active. Long-term drip begins.
unhappynudgeon → What fires
WF 05
nurture
Enroll in Nurture campaign. sequence_status = active.
disqualified
Set sequence_status = stopped. No Smartlead action. Lead removed from all automation permanently.
do_not_contact
Fetch all Smartlead campaigns → pause all. Set sequence_status = stopped. Highest-priority permanent stop.
Terminal state protection: If sequence_status is stopped, bounced, or unsubscribed — no workflow will re-enroll the lead, even if a rep accidentally sets a happynudgeon attribute. The Reply Router checks this before acting and exits silently.
Routing Logic

Sequence Priority Hierarchy

When multiple lifecycle conditions are present on a lead simultaneously, the Sequence Router follows this strict priority order — highest wins.

Why this matters: A lead can have trial_status = active AND audit_sent = true at the same time. The system needs a single answer for which campaign to use. The priority hierarchy ensures the most commercially important sequence always wins. Trial beats audit. Converted beats active subscription. Winback beats cold.
#
CONDITION
SEQUENCE
CAMPAIGN
WORKFLOW
1
trial_status = converted
Upgrade
Nudg3 — Upgrade (3008980). Fires immediately on conversion without waiting for subscription_status to update.
WF 04
2
trial_status = active
Trial
Nudg3 — Trial (3008975). WF 03 simultaneously pauses current Smartlead campaign.
WF 03 + 04
3
trial_status = expired
Winback
Nudg3 — Winback (3008976). Trial lapsed without conversion.
WF 04
4
subscription_status = active
Upgrade
Nudg3 — Upgrade (3008980). Customer on a paid plan — expand the account.
WF 04
5
subscription_status = at_risk
At-Risk
Nudg3 — At Risk (3039353). Retention focus. Different messaging from Winback.
WF 04
6
subscription_status = churned / cancelled
Winback
Nudg3 — Winback (3008976). Also triggered automatically by Churn Monitor (WF 07) nightly.
WF 04 + 07
7
audit_sent = true
Post-Audit
Nudg3 — Post-Audit (3008974). Pauses cold campaign, begins audit follow-up sequence.
WF 04
None of the above
Exit silently
Cold outreach is handled exclusively by WF 01 when sequence_status = active. The Sequence Router never assumes cold.
WF 01 only
Smartlead Campaigns — Full ReferenceALL CAMPAIGNS
COLD OUTREACH — 16 CAMPAIGNS
GEOGRAPHY
ICP
CAMPAIGN ID
${[ ['US','Agency','3008897'],['US','Enterprise','3008918'], ['UK','Agency','3008923'],['UK','Enterprise','3008925'], ['EU','Agency','3008928'],['EU','Enterprise','3008930'], ['AU','Agency','3008936'],['AU','Enterprise','3008938'], ['NZ','Agency','3008941'],['NZ','Enterprise','3008951'], ['AFR','Agency','3008954'],['AFR','Enterprise','3008958'], ['APAC','Agency','3008961'],['APAC','Enterprise','3008963'], ['ASIA','Agency','3008967'],['ASIA','Enterprise','3008971'], ].map((r,i) => `
${r[0]}
${r[1]}
${r[2]}
`).join('')}
LIFECYCLE CAMPAIGNS — 9 CAMPAIGNS
CAMPAIGN NAME
ID
${[ ['Nudg3 — Trial','3008975'], ['Nudg3 — Post-Audit','3008974'], ['Nudg3 — Upgrade','3008980'], ['Nudg3 — At Risk','3039353'], ['Nudg3 — Winback','3008976'], ['Nudg3 — Nurture','3035955'], ['Nudg3 — Happy Nudge 1','3037738'], ['Nudg3 — Happy Nudge 2','3037739'], ['Nudg3 — Happy Nudge 3','3037740'], ].map((r,i) => `
${r[0]}
${r[1]}
`).join('')}