Challenge
Knowledge-grounded answers per tenant
HazelJS
Agentic RAG over workspace corpora before the model speaks
Retrieval and grounding patterns keep replies tied to ingested knowledge instead of generic chat completions.
@hazeljs/ragZynli.AI
Live in production
A shipped SaaS product — RAG inbox, guided flows, billing, and real-time handoff — built by HumanBee AB as proof HazelJS packages run real workloads.
Built by HumanBee AB
Case study
Generic chatbots invent answers. Pure ticket queues drown agents. Zynli had to ground every reply in each workspace’s knowledge, escalate when confidence drops, and still feel like a real SaaS product — tenants, embeds, subscriptions — not a demo script.
The challenge
Each workspace owns its own policies, FAQs, and product docs. A shared model with no retrieval path drifts into confident fiction — unusable for support.
When retrieval is thin or intent is ambiguous, the visitor should reach a live agent with full conversation context — not restart in email.
KB, branding, embed allowlists, and billing are per workspace. One leaky shared index or shared billing edge case becomes a trust failure.
Order lookup, ticket creation, and HTTP actions must follow intent routes and structured inputs — free-form model guesses are not an integration layer.
Requirements
Zynli was scoped as a production multi-tenant support platform, not a single-tenant chatbot experiment.
How HazelJS solves it
Zynli uses HazelJS packages inside a TypeScript SaaS backend. That is the ecosystem proof path — not the Agent OS DNA / Skillgate teaching path (see Meridian for that).
Challenge
HazelJS
Agentic RAG over workspace corpora before the model speaks
Retrieval and grounding patterns keep replies tied to ingested knowledge instead of generic chat completions.
@hazeljs/ragChallenge
HazelJS
AI call surface for providers, prompts, and structured generation
Provider and generation plumbing stay in-package so product code focuses on support workflows, not SDK glue.
@hazeljs/aiChallenge
HazelJS
Memory primitives for durable conversational state
Turns, session context, and follow-ups need memory beyond a single request — especially across handoff.
@hazeljs/memoryChallenge
HazelJS
Queue-backed jobs for work that must not die with a request
Background and deferred work (ingest, notifications, retries) sit on queue patterns instead of ad-hoc fire-and-forget.
@hazeljs/queueChallenge
HazelJS
Payment integration patterns for plan-based workspaces
Workspace plans and billing hooks follow HazelJS payment patterns rather than a one-off Stripe wrapper.
@hazeljs/paymentChallenge
HazelJS
Core utilities and composition shared across the app
Cross-cutting primitives keep the multi-package stack coherent inside one Node/TypeScript product.
@hazeljs/coreArchitecture
The embed loads from CDN (or app origin), mounts an allowlisted iframe, and routes each message through knowledge and flows before any human sees the thread. Live agents join over Socket.IO with the same conversation context the bot already built.
01
Host site
embed.js · allowlist · tenant
02
Widget iframe
branding · identity · locale
03
RAG + flows
KB retrieve · intent tools
04
Confidence gate
answer · escalate · ticket
05
Agent inbox
Socket.IO · full context
What shipped
We publish implemented functionality — not invented ticket-deflection percentages, CSAT lifts, or revenue claims. Open the live product for current capabilities.
01
Visitors get KB-grounded answers first; low-confidence turns escalate to live agents with full context.
02
Intent routing runs order tracking, ticket creation, and custom HTTP actions.
03
Workspaces, subscriptions, embed domains, and branding — shipped as a product, not a demo repo.
04
@zynli/react-widget loads embed.js (CDN by default) with appUrl for the workspace origin.
HazelJS stack in production
Try the support widget on this site — it runs on the same HazelJS RAG stack as Zynli.
Zynli proves HazelJS packages in a SaaS product. For DNA, HITL, Skillgate, Gatekeeper, and local apply, clone Meridian — that is the Agent OS teaching path.
HumanBee × HazelJS
HumanBee ships production AI products on HazelJS. Consulting is optional — the framework stays open source.