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
Explain your business like you'd brief a new receptionist. Munshi answers every call in Hindi or English, books visits and tells you who needs a call back.
BusinessTypeScript · HTMLGitHub @anshvarshney1502Availability needs another checkOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
🎙️ Munshi (मुंशी) Hire a voice receptionist by explaining the job. Not by writing prompts. Build Arena Hackathon · Problem Statement 2: No-Code Voice AI Agent Builder (ElevenLabs) Team: DOT DOT COM (Ansh Varshney) Live Production: https://munshi-hackathon-prototype.vercel.app Out of every 100 incoming calls to small clinics, salons, and repair shops, 46 go unanswered. Dr. Mira Sharma runs a two-chair dental clinic in Indirapuram. When her hands are busy treating patients, the phone rings off the hook.Read the full README ↗
Build Arena Hackathon · Problem Statement 2: No-Code Voice AI Agent Builder (ElevenLabs)
Team: DOT DOT COM (Ansh Varshney)
Live Production: https://munshi-hackathon-prototype.vercel.app
Out of every 100 incoming calls to small clinics, salons, and repair shops, 46 go unanswered. Dr. Mira Sharma runs a two-chair dental clinic in Indirapuram. When her hands are busy treating patients, the phone rings off the hook.
She knows her front-desk operations inside and out, but she cannot code, and current voice agent builders demand complex system prompts, JSON schemas, API keys, and webhook pipelines.
Munshi solves this entirely. Instead of writing prompts or configuring nodes, the business owner explains the job out loud—exactly like briefing a new human employee. Munshi listens, compiles a structured rule card, runs the receptionist through a rigorous 24-run probabilistic Trial Day, allows her to coach mistakes in one plain sentence, and safeguards all tool calls through ArmorIQ intent-aware runtime governance before going live.
🗣️ EXPLAIN 📋 CHECK 🧪 TEST
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ Voice Interview / │ ─────▶ │ Structured Job Card │ ──▶ │ Trial Day: 8 Tests │
│ Plain-Text Starter │ │ (Zod Validated) │ │ × 3 Probabilistic │
└──────────────────────┘ └──────────────────────┘ └──────────┬───────────┘
│
▼
🚀 GO LIVE 🛡️ SECURE 🔧 COACH
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ Verified Merge │ ◀───── │ ArmorIQ Runtime │ ◀── │ Spoken One-Sentence │
│ 3/3 Pass Gate Only │ │ Sentry & Guardrails │ │ Fix + Auto-Test Gen │
└──────────────────────┘ └──────────────────────┘ └──────────────────────┘
A warm, human interface designed with a tailored palette (warm paper #FBF8F3, deep teal #0D7377, saffron #E8833A). Includes a real-time interactive phone simulator and a 60-second bilingual explainer video with synchronized English and Hindi narration tracks that preserve timestamp on switch.
| English Landing Experience | Native Hindi Experience (633 Translated Strings) |
|---|---|
| 60-Second Video Player (Dual Audio Stream) | Mobile-First Responsive Experience |
|---|---|
The owner taps the microphone and speaks naturally. Munshi's conversational interviewer asks 8 everyday questions (business name, hours, services, prices, booking rules, emergency hand-offs, what to never do, and what to say when unsure).
Gemini distills the voice transcript into a clear, structured Job Card. The owner can inspect approved prices, edit hours, or select a voice from the ElevenLabs library with one-click audio previews. No technical jargon, no raw prompts.
Before a single real customer calls, Munshi subjects the receptionist to Trial Day: 8 edge-case calls evaluated 3 times each (24 total runs) using the ElevenLabs Agent Testing API. In version 1, a caller asks for teeth whitening; since it wasn't on the price list, the receptionist hallucinates a price of ₹3,000. Trial Day catches it immediately.
The owner doesn't edit a 2,000-word prompt. She simply speaks or types one corrective sentence:
"If a price is not on the list, never guess. Say you will confirm and take a callback number."
Gemini analyzes the correction, updates the Job Card, and automatically synthesizes a permanent regression test. Munshi branches the ElevenLabs agent into Version 2.
Trial Day re-runs all tests against Version 2. All 8 situations pass 3 out of 3 (24/24 passed). The Go-Live gate unlocks, merging the branch to production and generating:
/talk/[clinicId])<elevenlabs-convai> web widget snippet| Version 2: 24/24 Tests Passed | Gated Go-Live Dashboard |
|---|---|
Munshi leverages the full depth of the ElevenLabs platform:
@elevenlabs/react, @elevenlabs/elevenlabs-js): Orchestrates conversational state machines with low-latency WebSockets.check-slots, book-slot, log-callback).POST /v1/convai/agent-testing/create and POST /v1/convai/agents/{id}/run-tests with repeat_count: 3 to evaluate next-reply accuracy, tool calls, and simulation mocks./branches) and atomic merges (/merge) guarantee that untested prompt changes never reach patients.Integrating ArmorIQ provides enterprise-grade safety and intent verification for our autonomous voice receptionist:
┌──────────────────────────────────────────────┐
│ ElevenLabs Voice Receptionist │
└──────────────────────┬───────────────────────┘
│ Tool Call: book_slot
▼
┌──────────────────────────────────────────────┐
│ 🛡️ ArmorIQ Runtime Sentry Layer │
├──────────────────────────────────────────────┤
│ 1. Intent Verification: Authorized action? │
│ 2. Parameter Sanitization: Valid datetime? │
│ 3. Guardrails: No hallucinated discounts │
│ 4. Prompt Injection & Jailbreak Defense │
└──────────────────────┬───────────────────────┘
│ Evaluated: ALLOW
▼
┌──────────────────────────────────────────────┐
│ MongoDB Atlas Verified Slot Booking │
└──────────────────────────────────────────────┘
book-slot, check-slots, log-callback) is executed on our database, ArmorIQ validates the agent's intent against the clinic's declared policy rules.book_slot returns a verified bk_ ID generated by MongoDB with atomic slot reservation.clinicId + start) stops race conditions across simultaneous callers.GET /v1/convai/conversation/get-signed-url).@react-three/fiber visualizer with real-time frequency analysis during active voice calls.src/lib/i18n.tsx) supporting 633 English and Hindi terms with zero external runtime overhead. ┌───────────────────────────────────────────┐
│ Client Browser / Mobile / Widget │
│ (Next.js 15, React 19, Three.js Orb) │
└─────────────────────┬─────────────────────┘
│ 1. Ephemeral Signed URL Request
▼
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ Munshi Core Engine │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ • Interview Coordinator • Rule & Prompt Compiler (compile.ts) │
│ • Zod Card Validator (jobcard.ts) • Test Pack Orchestrator (testpack.ts) │
│ • Speech-to-Text Pipeline (STT) • Versioning & Branch Manager (workflow.ts) │
└───────────────┬─────────────────────────┬───────────────────────────────┬──────────────┘
│ │ │
▼ ▼ ▼
┌──────────────────────┐ ┌──────────────────────┐ ┌────────────────────────────────┐
│ ElevenLabs Platform │ │ Google Gemini 2.5 │ │ 🛡️ ArmorIQ Security Sentry │
├──────────────────────┤ ├──────────────────────┤ ├────────────────────────────────┤
│ • Conversational AI │ │ • Job Card Analyzer │ │ • Intent-Aware Guardrails │
│ • Agent Testing Suite│ │ • Rule Synthesis │ │ • Tool Call Interception │
│ • Flash v2.5 TTS │ │ • Test Generation │ │ • Prompt Injection Defense │
│ • Scribe v2 STT │ │ • Sentiment Scoring │ │ • Audit Log & Provenance │
└───────────┬──────────┘ └──────────────────────┘ └───────────────┬────────────────┘
│ │
└─────────────────────────┬─────────────────────────────┘
▼ Verified Action
┌──────────────────────┐
│ MongoDB Atlas │
│ • Atomic Calendars │
│ • Call Logs │
│ • Booking Integrity │
└──────────────────────┘
Clone the repository:
git clone [email protected]:anshvarshney1502/prototype.git munshi
cd munshi
Install dependencies:
npm install
Configure Environment Variables:
Create a .env.local file in the root directory:
# Database
MONGODB_URI=mongodb+srv://<user>:<password>@cluster.mongodb.net/munshi?retryWrites=true&w=majority
# AI Providers
ELEVENLABS_API_KEY=your_elevenlabs_api_key
ELEVENLABS_WEBHOOK_SECRET=your_webhook_signing_secret
GEMINI_API_KEY=your_gemini_api_key
# Tool Security
TOOL_SECRET=your_internal_shared_secret_min_32_chars
# Public Base URL (for webhooks & tools)
PUBLIC_BASE_URL=https://your-deployment-domain.com
Run the Development Server:
npm run dev
Open http://localhost:3000 in your browser.
Run Production Build & Verification:
npm run build
npm run start
munshi/
├── docs/
│ └── images/ # High-resolution screenshots of the entire product flow
├── public/
│ ├── explainer/ # 60s English & Hindi MP4 explainer videos + poster
│ └── favicon.svg # Munshi brand icon
├── scripts/
│ ├── live-booking.ts # Live end-to-end booking verification test
│ ├── smoke-elevenlabs.ts # ElevenLabs Agent & Testing API connectivity test
│ ├── test-access.sh # Multi-tenant isolation and security test suite
│ ├── test-calendar.ts # MongoDB double-booking prevention test
│ └── test-rollback.ts # Instant branch rollback verification test
├── src/
│ ├── app/
│ │ ├── api/ # Next.js route handlers (clinics, versions, tools, runs, voices)
│ │ ├── c/[id]/ # Main workspace: Explain, Card, Practice, Fix, Go Live, Calls
│ │ ├── talk/[id]/ # Public customer-facing voice receptionist interface
│ │ ├── layout.tsx # Root layout with font optimization & i18n provider
│ │ └── page.tsx # Redesigned bilingual landing page
│ ├── components/
│ │ ├── landing/ # Landing hero, 60s dual-audio explainer player, practice demo
│ │ ├── workspace/ # Interview, JobCardStep, TrialDay, Coach, GoLive, Calls
│ │ ├── Builder.tsx # Start-from-scratch or starter selector
│ │ ├── Icons.tsx # Tailored SVG icon system
│ │ ├── Logo.tsx # Brand mark and wordmark
│ │ └── Orb.tsx # Three.js 3D audio-reactive orb visualizer
│ └── lib/
│ ├── calendar.ts # Slot calculation & atomic booking engine
│ ├── compile.ts # Job card to prompt compiler
│ ├── db.ts # MongoDB Atlas connection manager & schemas
│ ├── elevenlabs.ts # ElevenLabs SDK wrapper (Agents, Tests, Branches, Scribe)
│ ├── gemini.ts # Google Gemini extraction & synthesis pipeline
│ ├── i18n.tsx # Zero-overhead English & Hindi localization engine
│ └── jobcard.ts # Strict Zod schema for receptionist rule cards
└── vercel.json # Vercel deployment configuration
/explainer/munshi-en.mp4, /explainer/munshi-hi.mp4)Made with ❤️ for small business owners who deserve a receptionist that never sleeps.