7 n8n Workflows Every SaaS Needs (With Step-by-Step Setup)
You launched your SaaS. Users are signing up. Now what? You need automations that run in the background - welcoming users, handling failed payments, alerting you when things break, and keeping your tools in sync.
Most early-stage apps skip this entirely. The developer builds the core product and manually handles everything else. That works for your first 10 users. It falls apart at 100.
Here are 7 n8n workflows that every SaaS should have running from day one. Each one includes the trigger, the logic, and the nodes you need.

1. User Onboarding Sequence
Trigger: Webhook from your app when a user signs up.
What it does:
- Sends a welcome email immediately (via Resend, SendGrid, or Mailgun)
- Waits 24 hours, then sends a "getting started" email with tips
- Waits 3 days, checks if the user has completed onboarding steps
- If not, sends a nudge email with a link to the feature they haven't tried
- Adds the user to your CRM or Google Sheet for tracking
n8n nodes: Webhook → Send Email → Wait → HTTP Request (check user status) → IF → Send Email → Google Sheets
// Webhook payload from your Next.js app
// POST to your n8n webhook URL
const response = await fetch(process.env.N8N_WEBHOOK_URL!, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
event: 'user.signup',
user: {
id: user.id,
email: user.email,
name: user.name,
plan: 'free',
signupDate: new Date().toISOString(),
}
})
});The beauty of handling this in n8n instead of your codebase: you can change the email copy, timing, and logic without redeploying your app. Product iteration at the speed of drag-and-drop.
2. Payment Failure Recovery
Trigger: Stripe webhook for invoice.payment_failed.
What it does:
- Sends the customer a friendly email: "Your payment didn't go through"
- Includes a direct link to update their payment method
- Waits 3 days, checks if the invoice is still unpaid
- If still unpaid, sends a follow-up with urgency
- Posts to your team's Slack channel for visibility
- After 7 days, triggers account downgrade logic via your API
n8n nodes: Webhook (Stripe) → Code (parse event) → Send Email → Wait → Stripe (check invoice) → IF → Send Email → Slack → HTTP Request (downgrade)
This single workflow can recover 20-40% of failed payments. Without it, you silently lose revenue every month. Most solo-built apps don't handle dunning at all.

3. Daily Admin Summary
Trigger: Cron schedule (every day at 9 AM).
What it does:
- Queries your database for yesterday's signups, active users, and revenue
- Formats a clean summary
- Sends it to Slack or email
// n8n Code Node: Format the daily summary
const signups = $input.first().json.signups;
const revenue = $input.first().json.revenue;
const activeUsers = $input.first().json.activeUsers;
return [{
json: {
text: [
"📊 *Daily Summary*",
"",
`👥 New signups: ${signups}`,
`💰 Revenue: $${revenue.toFixed(2)}`,
`🟢 Active users: ${activeUsers}`,
"",
`📅 ${new Date().toLocaleDateString('en-US', {
weekday: 'long', month: 'long', day: 'numeric'
})}`
].join("\n")
}
}];Takes 10 minutes to set up. Saves you from checking dashboards every morning.
4. Churn Risk Alert
Trigger: Cron schedule (weekly) or webhook on user activity.
What it does:
- Queries users who haven't logged in for 7+ days
- Filters for paying customers only (free users churn is expected)
- Sends you a Slack notification with the list
- Optionally triggers a "we miss you" email to the user
Why it matters: By the time a user cancels, it's too late. This workflow catches them during the disengagement window, when a personal email or feature update can bring them back.
5. Error Monitoring to Slack
Trigger: Webhook from your error tracking service (Sentry, LogSnag) or directly from your app.
What it does:
- Receives error events from your application
- Filters out noise (ignores 404s, known non-critical errors)
- Groups similar errors to prevent alert fatigue
- Posts critical errors to Slack with context: user ID, URL, stack trace
- Creates a GitHub issue for new error types
// Send errors from your Next.js app to n8n
// In your global error handler or API middleware
export async function reportError(error: Error, context: object) {
await fetch(process.env.N8N_ERROR_WEBHOOK!, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
message: error.message,
stack: error.stack,
timestamp: new Date().toISOString(),
...context
})
}).catch(() => {}); // Don't let error reporting break the app
}6. New Feature Announcement
Trigger: Manual trigger or webhook when you publish a changelog entry.
What it does:
- Pulls the latest changelog entry from your CMS or database
- Formats it as an email newsletter
- Sends to all active users (or a segment)
- Posts to your social media accounts
- Updates your in-app notification banner
Instead of manually writing the same announcement in 4 places, you write it once and n8n distributes it everywhere.
7. AI-Powered Support Triage
Trigger: Webhook from your support form or help desk.
What it does:
- Receives incoming support tickets
- Uses Claude or GPT to classify the ticket: bug, feature request, billing, or general question
- Auto-responds to common questions using your knowledge base
- Routes complex tickets to the right person or Slack channel
- Logs everything to a spreadsheet for pattern analysis
// n8n AI Agent node configuration (conceptual)
// System prompt for ticket classification
const systemPrompt = `You are a support triage agent.
Classify each ticket into one of these categories:
- BUG: Something is broken
- FEATURE: User wants something new
- BILLING: Payment or subscription issue
- QUESTION: General how-to question
Respond with JSON: { "category": "...", "priority": "high|medium|low",
"suggestedResponse": "..." }`;This is where n8n's AI Agent node shines. You get an AI-powered support system without writing any backend code. The AI reads the ticket, classifies it, drafts a response, and routes it - all in a visual workflow.

Setting Up n8n for Your SaaS
The fastest way to get started:
- Self-host with Docker - spin up n8n on a $5 VPS (DigitalOcean, Hetzner, Railway). Takes 5 minutes.
- Add a webhook trigger - every workflow starts with a trigger. For SaaS, webhooks from your app are the most common.
- Start with workflow #1 (onboarding) - it's the easiest to build and gives you immediate value.
- Add workflows as you grow - you don't need all 7 on day one. Add them as your user count and complexity increase.
The Production Gap
Most early-stage SaaS apps have zero automation. The developer manually checks Stripe for failed payments, manually sends welcome emails (or doesn't), and has no idea when users are about to churn.
These 7 workflows are the difference between a side project and a real product. They run 24/7, they don't forget, and they scale with your user base. And with n8n, they cost you nothing beyond a cheap VPS.
Want to connect n8n directly to your Next.js app? Read the integration guide.
More blog posts