ai
Founder / Full-Stack Engineer · Ongoing

SoutFlow AI

Multi-tenant SaaS AI receptionist that talks to customers by voice and text across website, phone, and WhatsApp — booking appointments, answering from a knowledge base, taking orders, and escalating to humans.

AI
Voice
NestJS
Next.js
LiveKit
OpenAI Realtime

Project overview

SoutFlow AI is a multi-tenant SaaS platform that gives businesses an AI receptionist that talks to their customers by voice and text across every channel — website widget, phone calls, and WhatsApp — and takes real actions: booking appointments, answering questions from the business's own knowledge base, taking orders, and escalating to humans.

Businesses configure everything from a self-service dashboard: their services, working hours, AI voice and personality, languages, branding, and knowledge base. It supports English and Arabic end to end, including Arabic dialect control for the voice.

Core capabilities

One agent brain across channels — configured per business, grounded in their data, and ready for human takeover.

Real-time voice AI

Speech-to-speech conversations that listen and speak directly — not a clunky transcribe-then-reply pipeline.

  • Powered by the OpenAI Realtime API with natural interruption handling, semantic voice-activity detection, and noise gating
  • Dual voice transports: a custom WebSocket audio pipeline, and WebRTC rooms via LiveKit with a distributed agent-worker fleet
  • Phone calls via Twilio (media streams over WebSocket, G.711 audio) and bring-your-own PBX/SIP trunking through the LiveKit SIP edge
  • Stereo call recording, live transcripts, and automatic graceful call ending after a completed booking or goodbye

Multi-channel text AI

The same agent brain runs over text across every customer touchpoint.

  • Embeddable website chat widget
  • WhatsApp via the official Meta Cloud API and QR-based pairing
  • One conversation store and analytics pipeline across all channels

Appointment scheduling engine

Real availability computation the AI can check and act on mid-conversation.

  • Weekly operating hours, breaks, schedule exceptions, minimum notice, slot intervals, and capacity
  • Per-business IANA timezones
  • Live availability checks with alternatives, booking, rescheduling, cancellation, and reminder scheduling

Knowledge base with RAG

Answers grounded in the business’s own documents instead of hallucinations.

  • Upload PDF, DOCX, TXT, and CSV files or ingest URLs — documents are chunked, embedded, and stored in Postgres with pgvector
  • Hybrid retrieval (vector similarity + full-text search with reciprocal rank fusion)
  • Feeds an answer_question tool the AI calls mid-call from the business’s real documents

Business customization

Self-service configuration for persona, branding, languages, and business model.

  • Per-business AI persona: custom instructions, greeting, voice selection, speech speed, language preferences, and Arabic accent/dialect control
  • Multiple business models on one platform — appointments, e-commerce (product catalog with AI-assisted CSV/Excel import), restaurant, and customer support — with system prompt and tool set switching by type
  • White-label branding (colors, logo) on the dashboard and embedded widget, plus GDPR tooling with a data-erasure queue

Operations and teamwork

Human operators, automation, analytics, and platform administration.

  • Human handoff: operators can take over any live AI conversation — including barging into an active phone call — from the dashboard
  • Staff roles and invitations, multi-business accounts, and real-time dashboard notifications (Socket.IO + web push)
  • Sentiment analysis, CSAT/NPS collection during conversations, and an analytics dashboard (call volume, minutes, outcomes, feedback aggregates)
  • Visual automation builder ("Flows"): drag-and-drop React Flow graphs triggered by domain events, with HTTP requests, branching, waits, and context steps executed by a BullMQ-backed interpreter
  • Super-admin panel with platform-wide feature flags, plan limits, and per-account overrides; subscription billing via Stripe

Tech stack

End-to-end stack from realtime voice workers to the embeddable widget.

Backend

Node.js
TypeScript
NestJS
PostgreSQL + pgvector
TypeORM
Redis
BullMQ
Socket.IO

AI

OpenAI Realtime API
GPT-4o family
Whisper
Embeddings-based RAG

Voice / telephony

LiveKit (WebRTC + SIP + Egress)
Twilio Voice media streams
Custom WebSocket audio pipeline

Messaging

WhatsApp Meta Cloud API
Baileys

Frontend

Next.js
React
Tailwind CSS
i18next (EN/AR)
React Flow

Widget

Framework-free TypeScript embed (voice + text)

Infra

Docker
AWS ECS (Fargate)
Agent-worker service
ECR
GitHub Actions CI/CD (OIDC)
S3
Stripe

Engineering highlights

Notes for a technical audience on how the system is built.

Real-time bidirectional audio streaming with echo suppression, audio gating, and turn-taking logic tuned for natural phone-like conversation.

A channel-agnostic agent core: the same business config, tools, and conversation store drive voice and text across widget, phone, and WhatsApp.

Multi-tenant architecture with per-business isolation, membership guards, and staff-level access control.

Horizontally scaled voice workers coordinated over a Redis command bus so takeover/barge-in commands reach whichever node owns the live session.

Try it live

This isn't a video demo — the widget in the corner of this page is a real SoutFlow AI agent for a fictional software consultancy, BrightStack. Click it and book an appointment with your voice, ask about services and pricing, or try it in Arabic.

Look for the floating launcher in the bottom-right corner of this page.