Automate Freemium Conversion with n8n Workflows
n8n freemium automation turns passive free users into paying customers by triggering personalized workflows on usage signals. Browse ready-to-deploy templates.
Free Users Don't Upgrade on Their Own
Most SaaS products convert fewer than 5% of free signups to paid. That's not a product quality problem. It's a timing problem.
Free users hit moments of genuine need — reaching an export ceiling mid-task, landing on a paywall for a feature they actually want — and if nothing reaches them during that window, they move on. The window is often under 48 hours.
n8n freemium automation closes that window. A workflow monitors usage signals continuously, scores each free user's conversion readiness, and dispatches the right message at the right moment. No expensive engagement platform. No manual triage of your free-user database. Just n8n watching the signals and acting on them.
Products with hard usage ceilings (exports, seats, API calls) see the highest lift from usage-triggered outreach. Feature-gated products, where free users hit a paywall mid-task, benefit most from real-time Webhook-based interception. Time-limited trials respond best to the batch daily scoring approach, which re-evaluates engagement every 24 hours.
What n8n Freemium Automation Handles
Every high-leverage touchpoint in the free-to-paid journey can be managed by an n8n workflow:
- Detect when a free user hits 80% of a usage ceiling and send a personalized upgrade nudge
- Score free accounts daily on feature adoption and route high-intent users to direct sales outreach
- Fire an in-app message the moment a user clicks a locked feature
- Re-engage dormant free accounts at day 14 and day 30 with different message variants
- Pause outreach sequences automatically when a user upgrades, preventing post-conversion harassment
- Notify the sales team in Slack when a high-value free account crosses enterprise eligibility signals
The Freemium Conversion Pipeline
The core pattern connects four stages:
Schedule / Webhook → HTTP Request (fetch usage) → Code (score intent) → Switch (route by tier) → Email / Slack / Intercom
A daily Schedule trigger handles the batch path. A Webhook trigger handles real-time feature-gate interceptions. Both funnel into the same scoring and routing logic.
1. Detect the Usage Signal
The Schedule trigger runs once per day, or once per hour for high-velocity products. An HTTP Request node (v4.2) calls your product API — typically a route like /api/v1/users?plan=free&limit=500 — and returns the current usage snapshot for each account.
One thing that catches builders early: the HTTP Request node's default timeout is 120 seconds. If your API is slow or your free-user list is large, paginate inside the workflow. A Code node with a simple cursor-based loop handles pagination cleanly, no external libraries needed. Don't try to fetch 10,000 users in a single call and expect it to be reliable.
For real-time interception, swap the Schedule trigger with a Webhook trigger. Your product emits a feature_gate_hit event when a user tries a locked feature. n8n receives it, confirms the user is on a free plan via a quick HTTP Request lookup, and fires the outreach within about 500 milliseconds. That's the highest-converting trigger because intent peaks exactly at the moment of friction.
2. Score Intent
A Code node (v2, jsCode param) computes a readiness score for each account. Here's a working example:
const score =
(item.json.exports_used / item.json.exports_limit) * 40 +
(item.json.logins_last_7_days >= 3 ? 30 : 0) +
(item.json.invited_teammate ? 20 : 0) +
(item.json.days_since_signup <= 14 ? 10 : 0);
return [{ json: { ...item.json, conversionScore: score } }];
This produces a 0–100 score. Users above 70 are high-intent. Users between 40 and 69 are warm. Below 40 is cold.
Don't skip the explicit return statement. Code node v2 expects return [{ json: ... }] — not the items.push() pattern from pre-1.0 Function node tutorials, which still circulates in older community threads. The failure is silent: the node logs as successful, but the downstream Switch node receives undefined for $json.conversionScore and routes every user to the default branch. You won't see it until you notice the outreach volumes look wrong.
Usage percentage is the strongest single signal for ceiling-based products. Login frequency matters most for feature-rich products where habit formation drives retention. An invited-teammate event carries the highest weight in collaborative tools — it's a proxy for organizational adoption, not personal preference. Score it accordingly: 20 points is reasonable; 30 pushes borderline accounts into the high-intent tier.
3. Route by Conversion Tier
A Switch node branches execution into three paths. High-intent (score ≥ 70): a Slack notification to the sales channel plus a personalized plain-text email from a real inbox, not a noreply address. Plain text outperforms HTML for high-intent segments — it lands in the primary tab, recipients reply to it, and it doesn't look like an automated blast. Warm (score 40–69): an automated upgrade email sequence, two emails, three days apart, subject lines tied to the specific limit or feature the user hit. Cold (score < 40): feature education drip, not an upgrade pitch.
Don't add a fourth "ignore" branch for low-scoring users. Route them to the education drip instead. Silent non-action is how free users forget the product exists.
4. Send the Right Message
For Slack, keep it specific: @here [CompanyName] just hit 95/100 exports with 3 logins this week — anyone on it?. Short, direct, enough context that the rep doesn't have to open five tabs.
For email, subject lines tied to the trigger outperform generic upgrade pitches by a meaningful margin in practice. "You're at 92 of your 100 exports" gets opened; "Upgrade your account" doesn't. In the workflow expression field, wrap template variable references in backtick strings — like {{exportsUsed}} — because n8n evaluates bare curly braces as JavaScript expressions at build time, not as template placeholders. This trips builders who copy the variable syntax from a non-MDX context.
5. Write Back and Stop Duplicates
This is where most builders cut corners. Costly.
A final HTTP Request node writes the outreach event to your database: timestamp, score at send time, and the branch taken. At the start of the next day's run, an IF node filters out any user whose lastOutreachAt is within the past 72 hours. Without this filter, a daily workflow messages the same high-intent user every day until they convert or unsubscribe, whichever happens first.
When a user upgrades, a separate Webhook trigger receives the subscription event from Stripe and writes a convertedAt flag. The freemium workflow checks this flag before scoring and skips converted accounts entirely. The Usage-Triggered Conversion Engine template includes this Stripe integration out of the box: the flag write, the upstream filter, and the deduplication logic are all pre-built.
Implementation Patterns
Usage-ceiling alert. A daily Schedule trigger polls usage. A Code node computes percentage used. An IF node fires when a user crosses 80% of their limit. One email, one direct upgrade link. No scoring, no branching — the trigger itself is unambiguous. High precision, almost zero false positives. Good starting point for products with a single dominant limit metric.
Feature-gate interception. A Webhook trigger receives feature_gate_hit events from your product. n8n confirms the user's plan via an HTTP Request, then fires an Intercom message through the REST API. The whole sequence runs in under a second. This is the highest-converting trigger for feature-gated products because the user's motivation peaks exactly at the moment of friction — don't wait until tomorrow's batch run.
Batch daily scoring. A Schedule trigger at 06:00 UTC fetches the full free-user list, scores every account, and routes only accounts that crossed a threshold since the previous run. The delta check: scoreToday - scoreYesterday > 15. This prevents messaging users whose score has been above 70 for three weeks; they've already been contacted, and contacting them again just burns the relationship.
n8n Nodes for Freemium Workflows
| Node | Purpose |
|---|---|
| Schedule Trigger | Daily or hourly batch scoring cadence |
| Webhook | Real-time feature-gate interception |
| HTTP Request v4.2 | Fetch usage data; write audit records |
| Code v2 | Compute conversion score (jsCode field) |
| Switch | Branch execution by score tier |
| IF | Filter recently-messaged and converted users |
| Gmail / Send Email | Personalized outreach from a real inbox |
| Slack | Sales team notification for high-intent accounts |
| Set | Annotate items before write-back |
Getting Started
- Stand up n8n (self-hosted Docker or n8n Cloud) and verify the Schedule trigger fires on your instance timezone. UTC offset drift catches teams who skip this step.
- Add credentials for your product API, Gmail, and Slack. If you're building the feature-gate interception path, add Intercom credentials too.
- Build and test the Code scoring node first against a static five-user JSON dataset. Don't connect the live API until the output looks correct across edge cases — fresh accounts with zero logins, accounts at exactly 100% usage, accounts that have already been converted.
- Run the full workflow with outreach nodes disabled for two days. Check the score distribution. If 90% of free users score above 70, the weights need recalibrating before you start messaging most of your free base.
- Enable outreach starting with only the high-intent path (score ≥ 70). Add warm-path messaging in week two once you've confirmed there aren't systematic scoring errors you've missed.
- Deploy the Freemium Retention Campaign template for a pre-built foundation: the Code scoring node, three routing branches, write-back logic, and the converted-user filter are all included.
Fitting Into the Broader Subscription Stack
Freemium conversion is the front end of the subscription lifecycle. The Smart Subscription Manager handles the back end: renewal nudges, downgrade detection, and MRR health summaries. The two workflows share the same database tables, so a converted free user hands off cleanly when their first renewal approaches.
For the post-conversion retention layer, the n8n SaaS subscription churn prevention guide covers at-risk detection, payment failure recovery, and win-back sequences in detail. If the scoring logic above feels too thin for your data set — richer signals, cohort-based thresholds, multi-model scoring — the n8n lead scoring automation guide goes deeper on scoring algorithms that transfer directly to freemium intent scoring.
The freemium conversion layer doesn't need to be complicated to work. A single workflow scoring 500 free users daily, routing 30 of them into personalized outreach, and blocking duplicate sends handles most of what products with a hard usage ceiling need. Build that first. Optimize later.
Browse freemium conversion and SaaS retention templates →Common questions
How does n8n automate freemium conversion?
What n8n nodes work best for usage-triggered upgrade flows?
Can n8n track free-tier usage limits and trigger paid upgrade emails?
Get the workflow templates this guide is built on
Import-ready n8n JSON, step-by-step setup, and tested end-to-end. One-time payment, own it forever.
Get 3 tested n8n templates, free
The full customer package for three real catalog templates — workflow JSON, step-by-step setup guide, credential checklist. Test-run on a live n8n instance like everything we sell. Plus new templates and automation guides in your inbox. No spam, unsubscribe anytime.
- 01Smart To-Do List ManagerPre-built n8n workflow template that automates productivity with OpenAI. Live in about 10 minutes.$14
- 02Email Follow-Up AutomatorPre-built n8n workflow template that automates crm with OpenAI. Live in about 15 minutes.$12
- 03Market Trend AnalyzerPre-built n8n workflow template that automates data processing with OpenAI. Live in about 10 minutes.$14
More automation guides

n8n WooCommerce Automation: A Copy-Paste Order-to-Slack Workflow
The WooCommerce integration page on most automation sites is a node reference: here are the operations, here are the fields, good luck. The blog guides are worse. They're "8 WooCommerce automation ide…

Build an n8n Abandoned Cart Recovery Sequence That Doesn't Double-Send
A customer fills a cart, reaches checkout, then a Slack ping pulls them away. The cart sits there. Most stores send one recovery email an hour later and call it a recovery system. It isn't. It's a sin…

Automate User Research with n8n: Recruit, Schedule, and Synthesize Interviews
User research breaks down at the logistics layer. Finding participants who match your target profile, getting them onto a calendar, tracking who confirmed and who no-showed, and then extracting someth…