Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Deal handoffs from the CS inbox, onboarded by agents.
BusinessTypeScript · CSSGitHub @dupenodiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
AI agents that onboard a new customer for NovaCRM's customer success team: from the sales rep's deal email to a Rocketlane project and a Slack channel, with a phone call to the rep to confirm the plan.
• Problem statement: the original assignment.
• Requirements analysis: how I understood the problem, my assumptions and decisions, and what I'd change for production.
When a sales rep closes a deal, they email the customer success inbox. The email doesn't say which plan the customer bought, so the system has to find out.Read the full README ↗AI agents that onboard a new customer for NovaCRM's customer success team: from the sales rep's deal email to a Rocketlane project and a Slack channel, with a phone call to the rep to confirm the plan.
Live app: https://novacrm-handoff.vercel.app
Demo recording: Rocketlane FDE.mp4
When a sales rep closes a deal, they email the customer success inbox. The email doesn't say which plan the customer bought, so the system has to find out.
You can watch every step of every deal in the web app, with the reason the agent gave for each action. The plans are just the templates in Rocketlane, so adding a template there adds a plan option on the call.
apps/web Next.js app: UI, API routes, agents
apps/web/supabase/schema.sql Database tables (novacrm_*)
pnpm install
cp .env.example .env # fill it in
pnpm dev # http://localhost:3100
Run apps/web/supabase/schema.sql once in the Supabase SQL editor on a fresh project.
/ Overview: the pipeline, deals that need attention, and every email the inbox watcher has read/deals/[id] One onboarding as a thread: the AE's email, then each agent's steps, results and outcome/settings Inbox watching and integrations (Gmail, Rocketlane, Slack via Composio; Sarvam and OpenRouter keys)PUBLIC_APP_URL, then Settings → Turn on live watching. Composio's Gmail trigger posts each new message to /api/webhooks/composio.Either way, a handoff email creates a deal and starts the agents in the background, so closing the tab doesn't stop a run.
pnpm test # all tests, once
pnpm --filter @novacrm/web test:watch
51 Vitest tests in apps/web/test/, offline and in under a second. They run the real inbox, workflow, agent runtime, tools and Sarvam call logic. Only the edges are replaced (test/support/):
| File | Covers |
|---|---|
happy-path.test.ts | Enterprise email → parse → call offering Rocketlane's templates → Enterprise project → personalised channel, welcome, customer email; every step logged. Template accuracy for Enterprise (dedicated CSM), Growth (pooled) and Mid Market (a template no code knows about) |
validation.test.ts | Missing customer, contact or contact email: collected on the call, never emailed; an email spelled with spaces is cleaned; a detail not given or malformed stops for a person; no AE phone stops without a call |
edge-cases.test.ts | No answer (redial, then stop), unclear answer, hedged answer, dropped call, busy line; Rocketlane down (retry, stop, recover); existing open project; similar-but-different company; a plan that wasn't offered; options matched exactly; only offered templates count; taken Slack name |
entity-resolution.test.ts | customerKey; one deal per customer across repeat handoffs, name variants and contact email; the same message seen twice |