Skip to content
← All work

Team product · Motkan Labs

Brainfast

No-code AI agents for every channel

Role
Full-Stack AI Engineer
When
2025 — 2026
Brainfast agent editor with a live chat widget preview

Overview

A multi-tenant SaaS where businesses build branded AI agents trained on their own documents, sites and FAQs. The agents answer customers, book appointments and take actions on web chat, WhatsApp, Instagram, Messenger, Slack, Discord and voice — and hand off to a human when needed.

Brainfast is built by the Motkan Labs team. Below is the work I owned end to end.

What I built

  1. 01

    Live human takeover — a staff WebSocket channel and a Live chats inbox. When a customer asks for a person, the bot goes quiet and staff claim the conversation and reply on any channel, including the web widget.

  2. 02

    An escalation learning loop — staff answers become reviewed FAQ entries, and a vector-similarity guard stops the agent from escalating questions the knowledge base can already answer.

  3. 03

    Monetization — a hard/soft paywall switch enforced server-side, a 7-day card-required Stripe trial with card-fingerprint abuse protection, and lifecycle emails driven by webhooks and scheduled jobs.

  4. 04

    Server-side Meta Conversions API tracking with event deduplication, behind a GDPR consent gate (Google Consent Mode v2) in both the app and the landing site.

  5. 05

    The billing migration from DodoPayments to Stripe, with a scripted cutover and a grace period for existing subscribers.

  6. 06

    A standalone Instagram Login channel with encrypted long-lived tokens and a daily refresh job, plus usage-based entitlements, feature flags and model credit tracking.

Highlights

Making purchase events actually fire

Stripe sends subscription.updated before invoice.paid, so trial conversions were never reported. I identified the conversion invoice from Stripe's own data — its period starts exactly at trial_end — and clamped event times to Meta's ±7-day window, where out-of-range events are dropped silently.

One waiting room instead of two systems

Escalation tickets and live chats were separate, disconnected flows. I reused the escalation itself as the waiting room, added a claim step that upgrades it into a live chat, and pushed alerts over WebSockets so no customer waits unseen.

Screens

Chat logs list and conversation transcript
Chat logs, leads and memories
Google, Slack, Discord and WhatsApp integration cards
Channel and tool integrations
Knowledge base file upload
Knowledge base
Next projectClipaf →