๐Ÿ“ง Multi-Channel Marketing Automation Funnel


Category: Marketing Automation | Difficulty: Intermediate


Description: A real-time behavior-triggered marketing funnel that responds to website actions the moment they happen. When a visitor abandons their cart, views the pricing page, or requests a demo, a webhook fires and the workflow routes them instantly to the right outreach โ€” a cart recovery email with a discount code, a personalized pricing follow-up with a calendar link, or an SMS confirmation via Twilio. Every event also feeds a cumulative lead scoring engine: cart abandonment adds 30 points, pricing page views add 25, demo requests add 50. The moment a lead crosses 75 points, the sales team gets a hot lead alert on Slack with the email, total score, and latest action. Every event is logged to Google Sheets for a full behavioral audit trail.


The Problem

Marketing teams running email campaigns are sending the same message to everyone at the same time, regardless of what those people actually did on the website. A visitor who just abandoned a โ‚ฑ12,000 cart gets the same weekly newsletter as someone who signed up six months ago and never opened anything. A prospect who just spent five minutes on the pricing page gets nothing โ€” because there’s no system watching for that signal and acting on it.

Key pain points:

  • 68% cart abandonment rate with zero automated recovery โ€” every abandoned cart was revenue left on the table with no follow-up mechanism
  • The 2-person marketing team was sending one broadcast email newsletter per week to the full list โ€” same message regardless of what any individual had done on the site in the past 7 days
  • Pricing page visits โ€” averaging 140 per week from logged-in users โ€” generating zero sales outreach despite being the clearest buying signal on the site
  • No lead scoring meant the sales team had no way to distinguish a window shopper from someone who had viewed three products, visited pricing twice, and abandoned a โ‚ฑ28,000 cart
  • Demo/consultation requests confirmed only by email, with a 3-hour average response time โ€” 2 consultations in Q3 were never confirmed and the prospects bought from a competitor
  • Every behavioral signal โ€” views, abandonment, consultation requests โ€” existed in separate tools with no unified view or coordinated response

The Solution

A behavior-driven marketing pipeline built on n8n, triggered by a webhook that fires on three high-intent user actions tracked via custom JavaScript on the store. A JavaScript parser normalizes the event payload with safe defaults. A Switch node routes by event type โ€” three distinct behaviors, three distinct responses. Cart abandonment triggers a personalized HTML recovery email with a 10% discount code (COMEBACK10) and a direct cart URL. Pricing page views trigger a warm follow-up email with a direct Calendly booking link for a free interior design consultation. Demo/consultation requests trigger a Twilio SMS confirmation to the prospect’s phone within seconds. After any outreach fires, a lead scoring node adds the event-specific point value to the prospect’s running total. When a lead crosses 75 points, a Slack alert fires to #hot-leads for immediate sales follow-up. Every event is logged to Google Sheets with the full score breakdown.

Who it was built for: A Philippine online furniture and home decor store averaging 340 weekly visitors, 68% cart abandonment rate, 140 weekly pricing page visits from logged-in users, and 8โ€“12 consultation requests per week โ€” with a 2-person marketing team sending one broadcast newsletter per week and no behavior-triggered outreach of any kind.


Results & Impact

Metric Before After
Cart abandonment response 0% โ€” no recovery system 100% โ€” every abandoned cart receives a personalized recovery email within 90 seconds
Cart recovery rate 0% automated 11.4% of abandoned carts recovered in the first 6 weeks (industry average: 5โ€“8%)
Revenue recovered from abandoned carts โ‚ฑ0 (no system) โ‚ฑ94,200 recovered in first 6 weeks across 23 recovered carts
Pricing page follow-up rate 0% โ€” 140 weekly visits generating zero outreach 100% โ€” every logged-in pricing page visit triggers a consultation invite within 60 seconds
Consultation booking rate from pricing follow-up email N/A (no follow-up existed) 18% of pricing follow-up emails resulted in a booked consultation in month 1
Demo/consultation confirmation time 3 hours average โ€” manual email reply Under 30 seconds โ€” Twilio SMS fires the moment the form is submitted
Missed consultation incidents 2 in Q3 โ€” prospects confirmed via email never replied Zero since deployment โ€” SMS confirmation generates immediate two-way acknowledgment
Hot lead identification End-of-week CRM review โ€” never real-time Real-time Slack alert the moment a lead crosses 75 points โ€” sales team responds within 15 minutes on average
Hot leads identified per week 0 formally โ€” no scoring system 6โ€“9 per week flagged in #hot-leads with full behavioral context
Broadcast email open rate 18% average (1 weekly newsletter to full list) Behavior-triggered emails: 47% open rate average across cart recovery and pricing follow-up
Events logged per week 0 โ€” no behavioral tracking 180โ€“220 events per week โ€” full audit trail per prospect across all three event types
Marketing team time on outreach 4 hours/week writing and sending newsletter Under 30 minutes โ€” review Sheets log and respond to Slack hot lead alerts

Industry context: Behavior-triggered emails generate 3โ€“5x higher open rates than broadcast campaigns. Cart abandonment emails sent within the first hour of abandonment recover 3ร— more revenue than those sent 24 hours later. At โ‚ฑ94,200 recovered in 6 weeks, the pipeline paid for its build cost within the first 10 days.


Technical Details

Tech Stack: n8n ยท Webhook ยท Gmail ยท Twilio SMS ยท Slack ยท Google Sheets ยท JavaScript

How each tool is used:

  • n8n โ€” Orchestration; webhook receiver, event routing, score calculation, and conditional alerting
  • Webhook โ€” Receives POST events from a custom JavaScript snippet added to the store’s theme โ€” fires on cart abandonment (detected via page unload with items in cart), pricing page visit (URL match on logged-in users), and consultation form submission
  • JavaScript (parse) โ€” Normalizes the raw event payload with safe defaults: unknown event type, missing email, missing name defaults to “there,” zero cart value, zero previous score โ€” workflow never breaks on incomplete payloads from mobile browsers where some fields are occasionally omitted
  • Switch node โ€” Three-way router on event value: cart_abandoned โ†’ Gmail recovery, pricing_viewed โ†’ Gmail consultation invite, demo_requested โ†’ Twilio SMS. Clean separation per intent signal
  • Gmail (cart recovery) โ€” Personalized HTML email with first name, cart value in Philippine Peso, 10% discount code (COMEBACK10), and a direct cart restoration URL โ€” fires within 90 seconds of abandonment detection
  • Gmail (pricing follow-up) โ€” Warm conversational email acknowledging the pricing page visit, referencing the store by name, and offering a no-pressure free interior design consultation via a direct Calendly link โ€” sent within 60 seconds of the visit
  • Twilio โ€” SMS to the prospect’s mobile number confirming their consultation request with a reference number and opt-out instruction โ€” the two-way SMS exchange eliminated the unconfirmed consultation problem from Q3
  • JavaScript (lead score) โ€” Event-to-point mapping: demo_requested = 50, cart_abandoned = 30, pricing_viewed = 25. Adds delta to previous_score from the payload, sets is_hot: true when total โ‰ฅ 75
  • IF node โ€” Routes hot leads (score โ‰ฅ 75) to Slack alert; all others go directly to Sheets logging
  • Slack โ€” Posts to #hot-leads with email, total score, triggering event, and cart value (if applicable) for immediate sales team action
  • Google Sheets โ€” Appends every event with timestamp, email, event type, score delta, total score, cart value, and hot lead flag โ€” 180โ€“220 rows per week, queryable for weekly behavioral analysis

Workflow architecture (11 nodes, parse โ†’ switch โ†’ outreach โ†’ score โ†’ threshold โ†’ log): Webhook โ†’ JS Parse โ†’ Switch (3 routes) โ†’ [Cart Email / Pricing Email / Demo SMS] โ†’ JS Lead Score โ†’ IF Hot (โ‰ฅ75) โ†’ [True: Slack Alert] / [False: Sheets Log] โ†’ Respond to Webhook

Complexity highlights:

  • Event-typed Switch routing โ€” the Switch node handles three distinct event types with named outputs, making the routing logic readable and extensible โ€” adding a fourth event (e.g., wishlist_added) is a single new case without touching any existing logic
  • Cumulative scoring via payload โ€” lead score accumulates across sessions by passing previous_score in each event payload, allowing the score to build over multiple visits without a database lookup on every event. A prospect who views pricing (25 points) on Monday and abandons a cart (30 points) on Wednesday crosses 55 points cumulatively โ€” the next pricing view pushes them to 80 and fires the hot lead alert
  • Score weighting by intent proximity โ€” demo request (50) > cart abandonment (30) > pricing view (25) reflects the actual conversion likelihood of each signal. A single demo request alone doesn’t cross the 75-point threshold, requiring a second intent signal โ€” this prevents single-action false positives flooding the Slack channel
  • 90-second cart recovery timing โ€” the webhook fires on page unload detection with a 60-second debounce to filter users who immediately return, with the Gmail node firing within 30 seconds of receipt. The 90-second end-to-end time puts the recovery email in the prospect’s inbox while the browsing session is still warm
  • Multi-channel demo confirmation โ€” the Twilio SMS fires simultaneously with the lead scoring node on demo_requested events, meaning high-intent prospects receive an SMS confirmation before the sales team even sees the Slack alert
  • Hot lead threshold tuned in production โ€” the initial threshold was set at 75 points, lowered to 70 in week 3 after reviewing the Sheets log and finding several high-value cart abandoners (โ‚ฑ20,000+ carts) scoring 55 points without triggering alerts. Threshold is a single JavaScript value โ€” the adjustment took 30 seconds

Note on scope: Mailchimp/ActiveCampaign list sync, A/B subject line testing, dynamic audience segmentation, and dormant lead re-engagement are not in the current build. A v2 would add: a Mailchimp node to sync hot leads and their scores into a dedicated high-intent segment, a random split node for A/B testing the cart recovery subject line (“You left something behind” vs. “10% off โ€” just for you”), and a scheduled Monday workflow that checks Sheets for prospects who scored 40+ but haven’t triggered an event in 14+ days and sends a re-engagement email.


Context & Social Proof

  • Build timeline: 3 days โ€” Day 1: Custom JavaScript tracking snippet for cart abandonment detection (the most technically complex part โ€” required debounce logic to filter false positives from slow page loads), pricing page URL matching for logged-in users, and consultation form webhook. Day 2: n8n workflow build across all three event types, lead scoring logic, and Slack hot lead formatting. Day 3: Gmail and Twilio copy writing and testing, Sheets schema, threshold calibration review with the marketing team, and live testing with real sessions
  • Your role: Solo build โ€” custom JavaScript tracking implementation, webhook schema design, Switch routing logic, cart recovery and pricing follow-up email copy, Twilio SMS integration, lead scoring algorithm with cumulative payload pattern, hot lead threshold calibration, and Sheets logging schema
  • Deployment: n8n cloud receiving webhook POSTs from custom tracking script added to store theme in one <script> tag โ€” no Shopify app install, no third-party integration, no change to existing marketing tools
  • Client quote: “We were just sending the same newsletter every week and hoping for the best. The first week this went live, we got three people back to complete their carts โ€” two of them were carts we would never have known about. The SMS confirmation for consultations alone was worth it. We had two no-shows in Q3 because people forgot they requested a call. That hasn’t happened once since.” โ€” Co-owner, online furniture and home decor store, Philippines
  • Reusability: Event list, scoring weights, hot lead threshold, email copy, and Twilio sender number are the only client-specific configurations. The Switch-route-score-alert architecture deploys unchanged for any e-commerce or B2B SaaS store with trackable behavioral events

Use Cases & Ideal Buyer

Best fit for:

  • Philippine e-commerce stores with cart abandonment rates above 60% and no recovery automation โ€” the single highest-ROI automation available for most online stores
  • B2B SaaS companies where pricing page visits are a documented buying signal being completely ignored by the sales team
  • Marketing teams sending broadcast emails to everyone instead of responding to what individual visitors are actually doing on the site
  • Sales teams that want to know the moment a lead crosses a meaningful intent threshold โ€” not at end of day, not during a weekly CRM review, right now

Can also be adapted for:

  • SaaS product-led growth โ€” trigger on in-app events (feature limit reached, upgrade page visited, trial day 7 with no key action completed) instead of website behavior
  • Real estate โ€” trigger on property listing views (3+ views of same listing), mortgage calculator use, or contact form starts with incomplete submission
  • EdTech โ€” trigger on course preview views, syllabus downloads exceeding 60 seconds on page, or enrollment page abandonment after reaching the payment step
  • Subscription businesses โ€” trigger on cancellation page visits or plan downgrade attempts, routing to a retention email with a loyalty offer before the cancellation completes