{"slug": "show-hn-free-text-classification-piece-for-activepieces", "title": "Show HN: Free text classification piece for Activepieces", "summary": "Nico Brenner released a free community piece for Activepieces that adds 70 pretrained text classifiers to the workflow automation platform, using logistic regression on frozen embeddings instead of an LLM step. The Jeffy piece offers four actions — Classify Text, Batch Classify, List Classifiers and Health Check — and defaults to the free public instance at playground.jeffyclassify.com with no API key or signup, or can be self-hosted via `pip install jeffy-classify` and `jeffy serve --port 8400`. Brenner claims the approach is deterministic and returns valid JSON every run, at roughly 15ms locally and 300ms remotely versus 500ms to 3s per item for an LLM step, with 77 banking intents among the pretrained tasks for support-ticket routing.", "body_md": "Oct 2026 · Community Piece · Nico Brenner\n\nActivepieces 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\n\nJeffy 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\n\nYou 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\n\nThe piece has four actions:\n\n| Action | What it does | \n|---|---|\n| **Classify Text** | Classify a single text against a pretrained task. Returns label, confidence, probabilities | \n| **Batch Classify** | Classify multiple texts in one request. Same output per text, faster than individual calls | \n| **List Classifiers** | List all available classification tasks on the server | \n| **Health Check** | Check if the Jeffy server is running and how many classifiers are loaded | \n\nCustomer 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\n\n```\nWaiting for input...\n```\n\n  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\n\nYou 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\n\n|  | LLM step | Jeffy | \n|---|---|---|\n| Reliability | Output format varies between runs | Deterministic, always valid JSON | \n| Latency | 500ms – 3s per item | ~15ms local, ~300ms remote | \n| Cost | LLM API credits per call | Free (self-hosted or playground) | \n| API key | Required (OpenAI, Anthropic, etc.) | Optional, public playground works | \n| Setup | Write a prompt, parse the response | Pick a task from the dropdown | \n| Privacy | Data sent to LLM provider | Self-hostable, data stays local | \n\n`activepieces-piece-jeffy`\n`playground.jeffyclassify.com` (free, no key needed)\n  The piece defaults to `playground.jeffyclassify.com`, a free public instance with all 70 classifiers loaded. No API key, no signup\n\nFor production, self-host Jeffy on any machine with a CPU:\n\n``` bash\n$ pip install jeffy-classify\n$ jeffy serve --port 8400\n```\n\n  Then point the connection to `http://localhost:8400`. Your data never leaves your network\n\nIf 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", "url": "https://wpnews.pro/news/show-hn-free-text-classification-piece-for-activepieces", "canonical_source": "https://jeffyclassify.com/blog/activepieces-jeffy/", "published_at": "2026-10-20 02:26:41+00:00", "updated_at": "2026-10-20 02:45:27.321364+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "machine-learning", "natural-language-processing", "ai-products"], "entities": ["Activepieces", "Nico Brenner", "Jeffy", "playground.jeffyclassify.com", "banking77"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-free-text-classification-piece-for-activepieces", "markdown": "https://wpnews.pro/news/show-hn-free-text-classification-piece-for-activepieces.md", "text": "https://wpnews.pro/news/show-hn-free-text-classification-piece-for-activepieces.txt", "jsonld": "https://wpnews.pro/news/show-hn-free-text-classification-piece-for-activepieces.jsonld"}}