Jeffy + Activepieces: free text classification for your automations

Oct 2026 · Community Piece · Nico Brenner

Activepieces doesn't have a built-in text classifier. If you want to route messages by intent, detect sentiment, or categorize support tickets, you're building it yourself with an LLM step. That means writing a prompt, parsing JSON output, handling the cases where the model wraps its answer in markdown fences or returns something unexpected

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

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

What it does

You give it text. It tells you what category it belongs to. 70 pretrained classifiers cover common tasks: customer support routing (77 banking intents), sentiment analysis, topic classification, spam detection, emotion detection, and more

The piece has four actions:

ActionWhat it does
Classify Text Classify a single text against a pretrained task. Returns label, confidence, probabilities
Batch Classify Classify multiple texts in one request. Same output per text, faster than individual calls
List Classifiers List all available classification tasks on the server
Health Check Check if the Jeffy server is running and how many classifiers are loaded

Example: customer support routing

Customer message comes in via webhook. Jeffy classifies it against 77 banking intents. A Router step sends it to the right team: account closures go to retention, lost/stolen cards go to urgent support, everything else hits the general queue

Classified: 0 · Avg: —
Webhook
POST /support
Listening...
Jeffy
task: banking77
Ready
Router
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 workflow does

Customer support router

Why not just use an LLM step?

You can add a Code step or use the AI piece to classify text with an LLM. It works for prototyping. But in production, LLM-based classification has real downsides

LLM stepJeffy
Reliability Output format varies between runs 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 Write a prompt, parse the response Pick a task from the dropdown
Privacy Data sent to LLM provider Self-hostable, data stays local

Install in 3 steps

1
Install the piece on your Activepieces instance
Settings → Pieces → Install from npm: activepieces-piece-jeffy
2
Add a Jeffy connection
Default: playground.jeffyclassify.com (free, no key needed)
3
Add a Classify Text step, pick a task, connect
70 classifiers available from the dropdown
Self-hosted Activepieces? You can install the piece via the npm package activepieces-piece-jeffy or upload the tarball directly through the Activepieces API

Self-host or use the playground

The piece 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 connection to http://localhost:8400. Your data never leaves your network

What's next

If you need a classifier that doesn't exist yet, you can train your own with a few labeled examples. Jeffy trains in seconds on CPU, and you can export the model and load it on any Jeffy server

Try 70 classifiers live · Source on GitHub · npm · Jeffy

GitHub npm Playground