Jeffy + n8n: free text classification for your workflows

Oct 2026 · Community Node · Nico Brenner

n8n's built-in Text Classifier wraps an LLM call. It works until it doesn't: the model wraps output in markdown fences, returns an array instead of an object, or just drifts between runs. Eight separate forum threads report the same parsing failures

Jeffy takes a different approach. Logistic regression on frozen embeddings. No LLM, no prompt, no parsing. Same input always gives the same output. The Jeffy node brings 70 pretrained classifiers into n8n as a dropdown

15ms Per classification
70 Pretrained tasks
94.3% Banking77 acc
$0 Per API call

Example workflow: customer support router

Customer message comes in. Jeffy classifies it against 77 banking intents, then IF nodes route it. Account closure goes to the retention team, lost/stolen cards go to urgent support, everything else hits the general queue. Each path carries the original label and confidence score

Classified: 0 · Avg: —
Webhook
POST /support
Listening...
Jeffy
task: banking77
Ready
Switch
3 routes
Idle
#retention
—
#urgent
—
#general
—
Classification
Waiting for input...
Routing log

Try it live

This calls the real Jeffy API. Type a message, it classifies against banking77 (77 intent classes), then routes it the same way the n8n workflow does

Customer support router

The problem with n8n's built-in classifier

The built-in node sends your text to an LLM and parses the response as JSON. Here's what people run into

"Failed to parse LLM output": the model wraps its answer in ```markdown fences. Reported across GPT-4o, Claude, Llama, and Mistral. The workaround is a Code node that strips backticks before parsing
n8n Text ClassifierJeffy
Reliability JSON parse failures in production Deterministic, always valid JSON
Latency 500ms – 3s per item ~15ms local, ~300ms remote
Cost LLM API credits per call Free (self-hosted or playground)
API key Required (OpenAI, Anthropic, etc.) Optional, public playground works
Setup Configure LLM + write category descriptions Pick a task from the dropdown
Privacy Data sent to LLM provider Self-hostable, data stays local

Install in 3 steps

1
Install the community node
npm install n8n-nodes-jeffy
2
Add a Jeffy API credential
Default: playground.jeffyclassify.com (free, no key needed)
3
Drag the Jeffy node in, pick a task, connect
70 classifiers available from the dropdown

Download the workflow

Import this into n8n to get the customer support router from the demo above. Uses Manual Trigger + random sample messages so you can run it right away

customer-support-router.json GitHub

Self-host or use the playground

The community node defaults to playground.jeffyclassify.com, a free public instance with all 70 classifiers loaded. No API key, no signup

For production, self-host Jeffy on any machine with a CPU:

$ pip install jeffy-classify
$ jeffy serve --port 8400

Then point the n8n credential to http://localhost:8400. Your data never leaves your network

What's next

The node supports four operations: classify single text, batch classify, list available tasks, and health check. Batch sends an array in one request, useful for spreadsheet imports or email batches

If you're hitting reliability issues with the built-in Text Classifier, this is a drop-in replacement that won't surprise you at 3am

Try 70 classifiers live · Source on GitHub · Jeffy