Skip to main content

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:

  1. Visitor lands on the customer's website. The widget script loads and assigns/recovers a kk_user_session_id (localStorage string user_<timestamp>_<random>).
  2. The widget starts an rrweb recording. Chunks stream to ms-sessions.
  3. The widget shows according to page rules, working hours, channel toggles, and any AI auto-trigger rule.
  4. Visitor clicks chat/call → routed to AI, a human, or AI→human handoff per company config.
  5. Session ends → recording finalizes → the analysis worker extracts page trips, clicks, scrolls, forms, friction, and intent → writes session_analyses + visitor_profiles.
  6. Conversations and extracted facts feed the identity graph so the next visit knows them.
  7. 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:

ServiceStackPortStorageRole
backendExpress (Nodvel), Node 208888MongoDB, RedisTenant config, users, sessions metadata, bookings, lead scoring, CRM sync, billing, hosts legacy widget files
frontendVue 3 + Vite, TypeScript3020Admin web app — dashboard, sessions, chats, settings, identity graph, Nox knowledge portal
desktopVue 3 + ElectronStandalone app for team members; native notifications, popup call windows, white-labelable at build time
ms-aiNestJS, TypeScript3000PostgreSQL + pgvectorNox agent, knowledge base, embeddings, fact extraction, identity-graph resolution, ElevenLabs/Ultravox/OpenAI voice, scraping/PDF ingestion
ms-communicationExpress (Nodvel)3009MongoDB, Redis, FirestoreReal-time chat, call lifecycle (Twilio/ElevenLabs/Ultravox bridges), socket.io fanout
ms-sessionsExpress (Nodvel)3003MongoDB, S3rrweb 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:

AreaWhereWhat it controls
Company profileSettings → OrganizationName, website URL, industry (drives AI tone), timezone (drives working-hours math)
Widget installWidget SetupScript tag / GTM / platform plugin; status on companies.widget_installed
ChannelsWidget Setup → ChannelsLive chat / audio / video toggles (default all on)
Working hoursSettings → Working HoursPer-day availability; outside hours = offline widget mode
AI agentsAI FeaturesKnowledge base, Chat Agent, Call Agent config
CRMSettings → IntegrationsHubSpot / GHL / Calendly / Google Calendar OAuth
TeamSettings → TeamRole-based invites

See Quick Start for the full setup sequence.

Behaviors & edge cases

  • The kk_user_session_id is the single cross-visit anchor — there is no separate visitor_id. If a visitor clears localStorage, their cross-visit history detaches until they re-identify.
  • Tenant isolation is enforced by company_id on 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 embedded company_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

ItemDetail
PackagesProduct tiers (Starter, Growth, Pro, etc.) — features + AI credits + add-on allowances. Exact tier names/quotas: verify with current package config.
AI creditsMonthly allotment per plan; add-ons top up. Voice calls consume credits fastest (~10x chat).
Add-onsExtra AI credits, lead intelligence, live session views.
White-labelAgency-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.io everywhere with a Redis adapter; the frontend holds main_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.