Skip to main content
Lifetime license included with every purchase
n8n automationfreemium SaaStrial conversionusage triggers

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.

Nn8n Marketplace Team·June 10, 2026·9 min read

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.

When freemium automation lifts conversion most

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.

Choosing the right scoring signals

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.

Get the Freemium Retention Campaign template

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

NodePurpose
Schedule TriggerDaily or hourly batch scoring cadence
WebhookReal-time feature-gate interception
HTTP Request v4.2Fetch usage data; write audit records
Code v2Compute conversion score (jsCode field)
SwitchBranch execution by score tier
IFFilter recently-messaged and converted users
Gmail / Send EmailPersonalized outreach from a real inbox
SlackSales team notification for high-intent accounts
SetAnnotate items before write-back

Getting Started

  1. 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.
  2. Add credentials for your product API, Gmail, and Slack. If you're building the feature-gate interception path, add Intercom credentials too.
  3. 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.
  4. 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.
  5. 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.
  6. 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
FAQ

Common questions

How does n8n automate freemium conversion?
n8n polls your database or webhook events for usage signals, scores each free user's readiness with a Code node, then routes them into upgrade emails, Slack sales alerts, or in-app messages based on their intent tier. A Schedule trigger handles batch scoring; a Webhook trigger handles real-time feature-gate events.
What n8n nodes work best for usage-triggered upgrade flows?
The HTTP Request node (v4.2) fetches usage data from your product API. A Code node (v2, jsCode field) computes the intent score. A Switch node routes users by tier. Gmail or Send Email dispatches personalized outreach. Combine all four with a Schedule trigger for daily batch runs.
Can n8n track free-tier usage limits and trigger paid upgrade emails?
Yes. A Schedule trigger polls your API for users approaching their free-tier ceiling. A Code node computes the percentage used, and an IF node fires an upgrade email only when the threshold is crossed. A write-back HTTP Request records the send timestamp so the same user doesn't receive duplicate outreach the next day.
Stop reading. Start running.

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.

Free — $40 value

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