CASE STUDY

We sealed SmallTalks' revenue leaks.

Turkey's largest English-speaking community was losing leads as it grew. We turned an Excel-run company into a software-run company.

SmallTalks platform
LIVE
01
30s

First response

02
0%

Lost leads

03
80%

Less manual work

THE SCALE

Not a community. An operation.

SmallTalks went from one city to six in six months. The system we built is the backbone under that growth — running live, used by 22 people daily, generating revenue right now.

6

CITIES

48

VENUES

94

ACTIVE EVENTS

22

STAFF

590

ACTIVE MEMBERS

1,051

CUSTOMER CARDS

4

CONNECTED APPS

65

MIGRATIONS

THE PROBLEM

Growth was cracking operations.

SmallTalks is a fast-growing community business. Hundreds of new inquiries every month — but the team couldn't keep up. WhatsApp messages sat unanswered for hours. Potential members went elsewhere.

Operations ran on hand-built files: Google Sheets, Trello, Padlet, Google Calendar, WhatsApp history. Every city kept its own notebook. Every moderator their own list. Every salesperson their own Excel.

The worst part: they couldn't even measure the losses. Cemil (the owner) spent days at month-end just reconciling revenue. Who showed up, how full events were, which moderator performed best — nobody could say.

4+hrs

Average first response time

~20%

Leads lost completely

100+hrs/mo

Spent on manual follow-up

AFTER INSTALL

One line of outcome.

No more Excel. WhatsApp history is not a data source. The Trello board is closed. All of it replaced by a single Supabase database and four connected apps.

30s

FIRST RESPONSE

0%

LOST LEADS

80%

LESS MANUAL WORK

796

Orders (Paratika)

266

Auto e-invoices (VisionPlus)

3,041

WhatsApp messages handled

1,166

Instagram DMs handled

570

AI bot conversations

572

Event attendances logged

116

Event photos uploaded

206

Moderator XP logs

ARCHITECTURE

Four apps. One database. One brain.

All connected to one Supabase Postgres instance. RLS across 5 role levels. 4 webhooks inbound, 16 crons internal. Bot, checkout, admin, mobile — all reading the same data.

ADMIN

Next.js 16

60+ sayfa / pages

CHECKOUT

Next.js 15

Multi-step + widget

MOBILE

Expo SDK 54

iOS + Android

MARKETING

Framer

SEO + landing

DATA SOURCES

WhatsApp
Meta Ads
Google Forms
E-mail
Website

DIGITAL BRAIN

AUTONOMOUS ACTIONS

Auto response & follow-up
CRM & pipeline update
Billing & membership action

TRANSFORMATION

Before and after.

BEFORE
AFTER
First response time
4+ hours
30 seconds — AI, personalized
Lost leads
~20%
0%
Manual workload
100+ hrs/mo
20 hrs/mo
Follow-up process
Manual, inconsistent
5-step automated cadence
Data source
Excel + WhatsApp + notes
Single Supabase, 65 migrations
Invoicing
Manual invoice cutting
VisionPlus SOAP, automated
Membership tracking
Google Sheets
Auto lifecycle + freezing
Event planning
Hours per week
Plan-week wizard, 5 minutes
Team focus
Repetitive admin
High-intent leads only

THE SYSTEM WE BUILT

Five layers. One flow.

The system automates every step from lead capture to win-back. Each layer is backed by real data.

01

AI First Response

Every inbound message gets a personalized reply within 30 seconds. Active 24/7.

3,041 WhatsApp + 1,166 Instagram DMs processed

02

Lead Qualification

AI pre-qualifies and routes leads. High-intent prospects surface first.

570 active bot conversations, 75 learning-loop questions

03

Comms Automation

Follow-ups across WhatsApp, email, and push flow automatically. Nobody falls through.

12 approved WP templates + 15 automation rules + 278 logs

04

CRM Pipeline

Every lead tracked in a central Kanban. Drag & drop, cadences, tasks, focus mode.

1,051 customer cards, 254 sales notes, 201 tasks

05

Recovery & Memory

Inactive customers auto-detected, no-show winback, activity log.

16 cron jobs, 491 system action logs, 551 notifications

ZOOM IN — #1

The AI chatbot engine.

A 2,342-line TypeScript decision engine that answers WhatsApp and Instagram on its own, orchestrating OpenAI GPT-4o-mini with an Anthropic Claude fallback.

59 knowledge base entries, 6 categories (general, events, membership, pricing, location, lessons)

5 conversation flows: membership freeze, event location, private lesson, membership info, event info

Intent classification → KB similarity → flow match → button response → GPT fallback

Low-confidence escalation: hands conversation to human, message surfaces in the Inbox

Learning loop: unanswered questions get logged, admin adds to KB, system grows itself

Cache + invalidation: KB updates propagate live in 30 seconds

LIVE DATA

2,342

lines of engine code

59

KB entries

570

active conversations

75

learning-loop questions

ZOOM IN — #2

Roles and RLS.

A 5-level permission hierarchy, enforced via Supabase RLS policies on every table. Even admins don't see financial data in every role.

Admin (100) — Cemil + Can: everything, including financials

Coordinator (80) — legacy role, now merged into admin

Salesperson (40) — CRM + inbox + campaigns + sales; never sees revenue charts

Moderator (60) — only their own events, their own students, venue CRUD, XP system

Member (10) — customer, sees own data through the mobile app

RLS policy example: events_insert → moderators can only insert rows where moderator_id = auth.uid()

ACCESS MATRIX

5

role levels

65+

tables with RLS

9

pre-computed views

3

security migrations (00062-65)

ZOOM IN — #3

The mobile app.

Built with Expo SDK 54 + React Native. Member wallet and moderator scanner in one binary, hitting the same Supabase data as the admin panel.

Member flow: onboarding → dashboard → event reservation → QR wallet → lesson calendar

Moderator flow: scanner → event check-in → vibe mood + level rating

Assignment screen: private-lesson homework visible in-app

Notifications: push + email, 551 live records

Auth: Supabase Auth email/password, JWT-based

Shipping: EAS Build for iOS + Android, preparing for store submission

APP STRUCTURE

6

auth screens

12

tab + detail screens

Expo

SDK 54

2

platforms (iOS + Android)

APP STORE

The same system, in the member's pocket.

Event discovery, QR check-in, streaks and goals — the screens we prepared for the App Store listing.

SmallTalks member app — App Store screen 1
SmallTalks member app — App Store screen 2
SmallTalks member app — App Store screen 3
SmallTalks member app — App Store screen 4
SmallTalks member app — App Store screen 5

ZOOM IN — #4

Payments + e-invoice stack.

Paratika production payments + VisionPlus SOAP e-invoice integration. When an order completes, membership opens automatically, an invoice is issued, a welcome message fires, and the email goes out — all in one chain.

Paratika 3D Secure: session token → callback → order update → trigger chain

Migration 00022: Order completed → membership auto-created

VisionPlus SOAP: XML builder + soap-client → invoice creation → PDF URL

Resend: React Email templates for order confirmation, welcome, receipt

WhatsApp: welcome template fires automatically

Success + failure callbacks, installments, coupon validation

COMPLETED FLOWS

796

Paratika orders

266

VisionPlus invoices

12

active coupon codes

100%

automated flow

THE OPERATOR'S VIEW

From ad to member, on one screen.

Every lead from a Meta ad lands in the system instantly, WhatsApp follow-up fires on its own, and it's tracked through to membership from one panel. The member sees the app; the operator sees the whole flow.

SmallTalks member app — home screen

Member sees

admin.smalltalks · Meta Ads Tracking
f

Meta Ads Tracking

Last 30 daysLIVE

Ad spend

₺48,200

Leads captured

590

Cost per lead

₺82

Converted to member

312

53% conversion

Campaign
Istanbul · Networking198 lead · ₺75Active
Izmir · Game Night132 lead · ₺71Active
Ankara · Meetup88 lead · ₺82Active
Bursa · Social74 lead · ₺82Paused
Antalya · Event61 lead · ₺97Active

Lead flow

New lead590
Contacted521
Quoted388
Became member312

WhatsApp follow-up fires automatically on every lead — the bot replies in 30 seconds, so nothing goes cold.

Operator sees

THE GALLERY

The screens the system runs on.

A designer didn't draw these. Every one of them is a live surface that 22 people open every day — Cemil reads revenue at month-end, moderators plan events, the bot answers customers in real time.

01 · DASHBOARD

The operations dashboard — revenue, leads, events, capacity.

Realtime6 stat cardsCity breakdown
02 · CRM PIPELINE

Drag & drop Kanban — New → Contacted → Quoted → Won.

1,051 customers@dnd-kitFilters
03 · WHATSAPP INBOX

Message center — bot and human side by side, claim system.

3,041 msgs12 templatesBot escalation
04 · AI ASSISTANT STUDIO

Knowledge base + conversation flows + test panel.

59 KB entries5 flowsLearning loop
05 · EVENT PLANNING

Plan-week wizard — city, venue, moderator, one flow.

94 events3 stepsGoogle Calendar sync
06 · REPORTS

Cohort, sales, loss, operational — 9 report pages.

Recharts9 reportsMonthly cron
07 · MODERATOR LEADERBOARD

XP system, rankings, performance dashboard.

206 XP logs9 modsGamification
08 · MOBILE WALLET

Member QR wallet — scanned by moderators at check-in.

ExpoiOS + AndroidRealtime
09 · INVOICES

VisionPlus e-invoice list + XML preview + PDF.

266 invoicesSOAP clientAuto re-send
10 · TEAM & ROLES

Team management + 5 roles + city assignments + venue CRUD.

22 staff5 rolesRLS

THE STACK

Modern stack, in production.

No piece is gratuitous. No piece is half-installed. All of it running in production right now.

Next.js 16

Admin panel (RSC + Server Actions)

Next.js 15

Customer checkout + widget

Expo SDK 54

iOS + Android mobile

Supabase

Postgres + Auth + Storage + Realtime

OpenAI GPT-4o

AI chatbot engine

Anthropic Claude

Chatbot fallback

WhatsApp Cloud API

Bot + message center

Instagram Graph API

DM inbox (6 city accounts)

Meta Lead Ads

Webhook lead capture

Paratika

3D Secure payments

VisionPlus

E-invoice SOAP service

Resend

Transactional email

Google Calendar

Event + lesson sync

Google Meet

Private lesson links

Google Forms

Universal lead polling

Google Contacts

Phone directory sync

TECHNICAL DEPTH

Operations as code.

Competitors don't publish these numbers because they don't build at this scale. We did. Now the same pieces can work for you.

65

Supabase migrations

RLS on every table

65+

tables

+ 9 pre-computed views

16

cron jobs

reminders, cadences, reports, retargeting

4

webhooks

WhatsApp, Instagram, Meta Leads, Google Forms

4

connected apps

admin, checkout, mobile, marketing

2,342

lines chatbot engine

TypeScript, OpenAI + Claude

59

knowledge base entries

6 categories, learning loop

15

active CRM rules

278 automation logs

9

report pages

sales, cohort, loss, operational

12

approved WP templates

city visuals + buttons

THE PROCESS

How we built it.

Transparency: here's how long each phase took and what we invested.

01

· 1 week

Revenue Check-up

We mapped SmallTalks' existing flow. Spoke to every city's moderator. Found the leaks and bottlenecks. Output was a prioritization report.

02

· 2 weeks

System Design

We designed a custom architecture. 4 apps, 5 role levels, 16 crons, 4 webhooks. Migration 00001 was the first schema. Scope locked with Cemil.

03

· 8 weeks

Phased Rollout

Phase 1 — Checkout + memberships + payments (2 weeks). Phase 2 — Admin CRM + WhatsApp inbox (3 weeks). Phase 3 — AI chatbot + cadences + reports (3 weeks). Each phase went live.

04

· Ongoing

Continuous Optimization

We keep improving against live data. Migration 65 shipped last month. The chatbot gets smarter every week. 4-6 new features a month.

LIVEin production · private login

One system. One panel.

Running right now.

It's running as you read this page. 22 people log in every day. Customers write on WhatsApp, the bot replies, orders fire, invoices cut. Not a demo.

YOUR TURN

Your business has the same leaks.

Start with a free Revenue Check-up. Open up your Excels, your WhatsApp history, your tools — we'll find the leaks together.