Platform Overview
Audience: All teams (sales, management, QA, support, engineering) · Where in app: Entry point — the admin web app at app.knockknockapp.ai · Plan availability: All plans
Knock Knock is an all-in-one website visitor engagement platform. It puts an embeddable widget on a customer's website that lets visitors start a live chat, audio call, video call, or talk to an AI voice agent without leaving the page. Every visit is recorded (via rrweb) so admins can watch sessions live or replay them later, and every conversation feeds a per-tenant identity graph so the AI remembers who returning visitors are. For sales/management: it is "live chat + AI agents + session replay + lead capture + CRM sync", sold per plan tier and white-labelable for agencies.
What it does
Admins use Knock Knock to:
- Engage visitors in real time — chat, video, audio.
- Let AI handle first contact — chatbots and voice agents trained on the company's knowledge base.
- Watch live sessions and replay recorded ones.
- Capture leads automatically from every conversation and form.
- Connect tools — Slack, HubSpot, GoHighLevel (GHL), Calendly, Google Calendar, Shopify, WooCommerce, Zapier.
- Manage a team with role-based permissions and working-hours availability.
- White-label the whole platform under an agency's brand.
How it works
A typical visitor session flows like this:
- Visitor lands on the customer's website. The widget script loads and assigns/recovers a
kk_user_session_id(localStorage stringuser_<timestamp>_<random>). - The widget starts an rrweb recording. Chunks stream to ms-sessions.
- The widget shows according to page rules, working hours, channel toggles, and any AI auto-trigger rule.
- Visitor clicks chat/call → routed to AI, a human, or AI→human handoff per company config.
- Session ends → recording finalizes → the analysis worker extracts page trips, clicks, scrolls, forms, friction, and intent → writes
session_analyses+visitor_profiles. - Conversations and extracted facts feed the identity graph so the next visit knows them.
- Bookings, contact info, lead score, and traffic source roll up into the dashboard and (where enabled) sync to the CRM.
The platform is six cooperating microservices:
| Service | Stack | Port | Storage | Role |
|---|---|---|---|---|
| backend | Express (Nodvel), Node 20 | 8888 | MongoDB, Redis | Tenant config, users, sessions metadata, bookings, lead scoring, CRM sync, billing, hosts legacy widget files |
| frontend | Vue 3 + Vite, TypeScript | 3020 | — | Admin web app — dashboard, sessions, chats, settings, identity graph, Nox knowledge portal |
| desktop | Vue 3 + Electron | — | — | Standalone app for team members; native notifications, popup call windows, white-labelable at build time |
| ms-ai | NestJS, TypeScript | 3000 | PostgreSQL + pgvector | Nox agent, knowledge base, embeddings, fact extraction, identity-graph resolution, ElevenLabs/Ultravox/OpenAI voice, scraping/PDF ingestion |
| ms-communication | Express (Nodvel) | 3009 | MongoDB, Redis, Firestore | Real-time chat, call lifecycle (Twilio/ElevenLabs/Ultravox bridges), socket.io fanout |
| ms-sessions | Express (Nodvel) | 3003 | MongoDB, S3 | rrweb chunk ingestion, recording finalize, analysis worker, visitor profile rollup, Knox read API |
See Architecture Overview and Cross-Service Communication for the engineering deep dive.
Configuration & options
The platform itself is not a single settings screen; configuration happens per module. The headline first-run touchpoints are:
| Area | Where | What it controls |
|---|---|---|
| Company profile | Settings → Organization | Name, website URL, industry (drives AI tone), timezone (drives working-hours math) |
| Widget install | Widget Setup | Script tag / GTM / platform plugin; status on companies.widget_installed |
| Channels | Widget Setup → Channels | Live chat / audio / video toggles (default all on) |
| Working hours | Settings → Working Hours | Per-day availability; outside hours = offline widget mode |
| AI agents | AI Features | Knowledge base, Chat Agent, Call Agent config |
| CRM | Settings → Integrations | HubSpot / GHL / Calendly / Google Calendar OAuth |
| Team | Settings → Team | Role-based invites |
See Quick Start for the full setup sequence.
Behaviors & edge cases
- The
kk_user_session_idis the single cross-visit anchor — there is no separatevisitor_id. If a visitor clears localStorage, their cross-visit history detaches until they re-identify. - Tenant isolation is enforced by
company_idon every tenant-scoped document; the identity graph is per-tenant isolated. - Service-to-service calls use a shared internal API key (
x-api-key/BACKEND_API_KEY/MS_AI_SECRET_TOKEN). Admin → backend uses JWT. The widget carries only an embeddedcompany_id, never a secret. ElevenLabs/Twilio/Ultravox secrets are server-side only. - After a subscription is cancelled, service continues through
expiry_date, then degrades: the widget still loads but AI features fall back to defaults and the identity graph stops assembling context (a subscription gate trips after a ~60s cache). See Help & Troubleshooting.
Plan & limits
| Item | Detail |
|---|---|
| Packages | Product tiers (Starter, Growth, Pro, etc.) — features + AI credits + add-on allowances. Exact tier names/quotas: verify with current package config. |
| AI credits | Monthly allotment per plan; add-ons top up. Voice calls consume credits fastest (~10x chat). |
| Add-ons | Extra AI credits, lead intelligence, live session views. |
| White-label | Agency-tier capability — widget footer, agency portal, desktop app build. |
Per-feature plan gating lives in each module's own page — treat plan-specific claims here as verify unless confirmed against the package configuration.
Technical implementation
- Owning services: split across all six — see the table above and the Service Map.
- Identity & join keys:
kk_user_session_id,company_id,person_id,(person_id, company_id),file_id. Detail in Identity Graph. - Realtime fabric:
socket.ioeverywhere with a Redis adapter; the frontend holdsmain_socket(backend), a recording uploader (ms-sessions), and chat/call channel (ms-communication). - Service deep dives: backend, frontend, desktop, ms-ai, ms-communication, ms-sessions, widget.