How to Build n8n Employee Wellness Automation with AI Risk Scoring
Build n8n employee wellness automation that scores check-in responses with AI, alerts HR on Slack when burnout risk shows, and logs every entry to Sheets.
Two people resign in the same month, both citing burnout. Nothing in the 1:1 notes flagged it. Nothing in their Slack activity looked off. The signals were there, in the throwaway comments, the slipping sleep, the "I'm fine" that wasn't. But nobody was reading them, because reading 200 weekly check-ins by hand is a job no one has time for.
That gap is what n8n employee wellness automation closes. A check-in form feeds an AI that scores each response for risk, HR gets a Slack ping the moment something looks serious, and every entry lands in a sheet for trend reporting. The point isn't surveillance. It's catching the quiet decline before the resignation letter.
Scan n8n's HR template library and you'll find 238 workflows for recruitment, onboarding, leave, and payroll. n8n employee wellness automation with AI risk scoring? Not there. Teams build this one from scratch or not at all.
What you can automate
The job is reading signals across a whole team without a person manually triaging every response. Workflows in this space typically cover:
- Weekly mood and stress check-ins: a short form, scored automatically
- Burnout risk flagging: AI reads free-text answers, not just numbers
- HR alerts on concerning responses: a Slack ping with context, same hour
- Absence and workload pattern tracking: log it all, watch the trend line
- Anonymous pulse surveys: aggregate sentiment without exposing individuals
- Post-incident wellness follow-ups: trigger a check-in after a tough sprint
Each one runs the same loop: collect, assess, alert if needed, log always. That loop is the backbone of any n8n employee wellness automation worth running.
The n8n employee wellness automation pipeline
Form/Trigger (check-in) → Set (normalize) → OpenAI (risk assessment)
→ Code (parse JSON) → IF (high risk?)
├── yes → Slack alert to HR → Sheets log
└── no → Sheets log
The AI sits in the middle, but the IF node is what makes it useful. A risk score nobody routes on is just a number in a log. The routing turns it into a timely nudge for a human.
1. Collect the check-in
A Google Forms submission (via sheet polling) or a manual trigger feeds the workflow. Fields are simple: stress level, mood, sleep hours, a free-text "anything on your mind?" box. That last field carries most of the signal, and it's exactly the part a numeric rule can't read.
2. Normalize the response
An n8n-nodes-base.set v3.4 node flattens the incoming shape into predictable fields like stressLevel, mood, sleepHours, and comment. Forms rename fields when you edit them; normalizing here means a renamed question doesn't silently break the prompt downstream.
3. Score the risk with AI
The @n8n/n8n-nodes-langchain.openAi v2.1 node takes the normalized response and a prompt that asks for a structured risk read. The output lands at $json.output[0].content[0].text. Prompt it to return JSON, not prose:
Assess this employee wellness check-in. Return JSON:
{ "riskLevel": "low|medium|high", "reason": "<one sentence>" }
Weigh free-text comments heavily — a low stress rating with a
comment like "just exhausted lately" is not low risk.
The model catches the mismatch between what someone rates and what they write. That's the whole reason the AI layer exists.
4. Parse before you route
A n8n-nodes-base.code v2 node with jsCode parses the model's JSON string into real fields. Skip this and the IF node tries to read a property off a string and silently takes the wrong branch. The n8n community forum is full of AI workflows that "worked in testing" and failed in production for exactly this reason.
const text = $input.first().json.output[0].content[0].text;
const parsed = JSON.parse(text);
return [{ json: { ...$('Set').first().json, ...parsed } }];
5. Alert and log
The n8n-nodes-base.if v2 node checks riskLevel. High-risk responses fire a Slack message to HR with the reason and the original comment. Every response, flagged or not, appends to Google Sheets. The full log is what lets HR spot the slow slide a single week wouldn't reveal.
Never auto-act on a wellness flag. The workflow's job ends at the Slack ping. A high-risk score is a prompt for a person to start a caring conversation, not a trigger to schedule a meeting or notify a manager automatically. Cross that line and you've built surveillance, not support.
Why keyword rules aren't enough for n8n employee wellness automation
An opinionated take: a wellness workflow built on numeric thresholds alone is theater. It'll catch the employee who rates their stress a 9, and that person was already going to tell you. The ones you actually need to find are the high-functioning maskers, the ones rating everything a calm 6 next to a comment box that quietly says "honestly running on empty." A rule looking for the word "stress" sails right past that. The AI read of free-text is the entire value, and it's the part the rules-only tutorials skip.
There's a trade-off worth naming. Every check-in is an OpenAI call, so cost scales with headcount and frequency. A 200-person weekly check-in is 800 calls a month. Batch where you can, and don't run the AI on responses that are blank.
Implementation patterns
Pattern 1: Config-driven thresholds and channels
Hold the alert channel, the risk levels that trigger a ping, and the prompt's tone in an n8n-nodes-base.set v3.4 Config node. Reference them downstream:
{{ $('Config').first().json.alertChannel }}
HR can move alerts from a private channel to a DM, or raise the bar from medium to high, without touching the workflow's wiring.
Pattern 2: Anonymized aggregate reporting
For pulse surveys, strip names in the normalize step and log only the scores and team. The Sheets log becomes a trend dashboard (average risk by team, week over week) with no individual exposed. You get the org-level signal without the privacy cost.
Pattern 3: Scheduled dispatch
Pair the ingest workflow with a scheduleTrigger v1.2 that emails the check-in link every Monday. No link, no responses. The dispatch half is what keeps the data flowing instead of trickling in once and dying.
n8n nodes you'll use most
| Node | Purpose |
|---|---|
n8n-nodes-base.googleSheets | Poll for new check-ins and append every response |
n8n-nodes-base.set v3.4 | Normalize fields and hold Config values |
@n8n/n8n-nodes-langchain.openAi v2.1 | Score wellness risk from the full response |
n8n-nodes-base.code v2 | Parse the model's JSON before routing |
n8n-nodes-base.if v2 | Route high-risk responses to HR |
n8n-nodes-base.slack | Alert HR with the reason and original comment |
n8n-nodes-base.scheduleTrigger v1.2 | Dispatch the weekly check-in link |
Getting started with n8n employee wellness automation
- Decide what you're measuring. Three or four fields, not twelve. Short forms get answered.
- Be transparent. Tell the team what's collected and that a human reads every flag.
- Build the form and wire the sheet-polling trigger.
- Add the normalize Set node so renamed fields don't break the prompt.
- Write the OpenAI prompt to return JSON, and add the parse Code node right after.
- Route on
riskLevelwith the IF node; alert HR on Slack. - Append every response to Sheets, flagged or not.
If building the AI assessment and Slack routing from scratch sounds like a week you don't have, the Employee Wellness Monitor ships it configured.
Browse the HR templates →The Employee Wellness Monitor ships this end-to-end. It ingests check-ins from Google Forms or manual input, normalizes stress, mood, sleep, and absence data, scores risk with the @n8n/n8n-nodes-langchain.openAi v2.1 node, alerts HR on Slack when a concern is flagged, and logs every check-in to Google Sheets regardless of flag status. It's part of The Complete n8n Templates Bundle, a one-time lifetime license to the whole catalog (plus every template added later) if you run more than one of these automations.
Wellness sits inside a wider HR automation picture. The same collect-assess-route shape powers the rest of the people-ops stack, from n8n employee onboarding workflows to the broader patterns in n8n HR automation. Start with the check-in. It's the smallest workflow with the highest stakes, and the one that tells you something about your team you couldn't see before. The resignation you prevent is worth more than the hour you spend building it.
See the VA Hiring Workflow Simplifier →Common questions
How do you detect employee burnout risk automatically in n8n?
Is automating wellness check-ins ethical or invasive?
Where does the AI risk score come out in the OpenAI node?
Can the workflow run without OpenAI?
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. Built through the same live-instance release process as 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

How to Build n8n Decision Support Automation with AI Frameworks
A founder spends a week circling a pricing decision. Not because the information's missing. It's all there. The hold-up is that there's no process to run it through. The pros and cons live in three ha…

How to Build n8n Approval Workflow Automation That Auto-Approves and Escalates
A finance lead approves the same refunds every morning. Under $100, customer in good standing, clear reason. Approved, approved, approved. The decision was never hard. It just never got automated, so…

n8n Shift Scheduling Automation: Fill a Gap Without the Phone Tree
A nurse calls in sick at 5am. The scheduler spends the next two hours texting people one at a time, hoping someone sees it before the shift starts, and missing labour-rule checks under the pressure. T…