Everything ObieChat does

The deep dive on every feature.

A long-form list of what ObieChat actually does, what it doesn't, and where each feature surfaces in the product. Every feature below is unlocked on the free plan — the difference between Free and Paid is credit volume, not gated functionality.

Bahasa Malaysia natively — never confused with Indonesian

10 languages, native quality

ObieChat detects the visitor's language from their browser locale and first message, then replies in kind. Ten languages ship in v1:

  • Malaysia / SEA: English, Bahasa Malaysia, Bahasa Indonesia, Simplified Chinese, Tamil.
  • Global: Spanish (LatAm + Spain), Brazilian Portuguese, French, German, Arabic.

What makes it different: the system prompt explicitly steers the bot to Malaysian Malay vocabulary — sesuai not cocok, boleh not bisa, bisnes not bisnis — so it never drifts to Indonesian when you've enabled Malay. Arabic visitors get a fully right-to-left widget layout (dir="rtl").

What it doesn't do (yet): Japanese, Korean, Vietnamese, Thai, Hindi, Russian — the underlying AI can speak them, but the widget chrome strings aren't translated yet. The bot will still reply in those languages if a visitor types in them; the UI buttons (Send, Close, etc.) just stay in English.

The bot tells you what to add. You click Approve. Repeat weekly.

Self-learning knowledge loop

Most chatbot products are set-and-forget: you spend an hour on day one writing FAQs, then never touch them again. Six months later your bot is stale, customers get vague replies, and you can't tell why. ObieChat flips that.

Every week, the platform scans the conversations where the bot couldn't confidently answer (it used hedge phrases like "I'm not sure" or "let me check", or the visitor gave a thumbs-down). It clusters the questions into topics and drafts a candidate FAQ Q+A for each — in your tenant's primary language, grounded in your existing knowledge tone so the voice matches.

Monday morning the owner sees:

East Malaysia shipping — asked 4×, 👎 2
Q: Do you deliver outside KL / Selangor?
A: Yes — nationwide via Pos Laju. East Malaysia 3–5 days; West 1–2 days.
[ Approve ] [ Edit ] [ Dismiss ]

One click and the FAQ joins your knowledge base. The very next chat starts answering Sabah delivery questions confidently.

Why it matters: five minutes a week, your bot gets measurably smarter — from your real customers' actual language, not your best guesses on day one. This is the single feature owners cite most when they say ObieChat earned the subscription back.

How clustering avoids noise: a max of 5 clusters per week, and the AI explicitly skips topics already covered by your existing FAQs. Actionable, not overwhelming.

Your phone IS the live-chat console

Phone push + 1-tap live takeover

Install ObieChat as a Progressive Web App on your phone (Add to Home Screen on Android Chrome; same on iOS 16.4+). Allow notifications once and Web Push fires through VAPID anytime a hot lead lands — even when the PWA is closed.

Tap the notification → conversation opens → click Take over → AI steps back, you reply in the chat. Visitor sees a green Live badge and your reply in real-time. Hand back to the AI with one click when you're done.

Push is triggered on hot conversations (escalation score ≥ 60 — visitor asks for a quote, drops a phone, etc.). For lukewarm chats, the lead lands in your email + console without buzzing your phone.

Live-view extras: the conversation list shows a presence dot for each visitor — you don't reply to ghosts. When you take over but want help drafting, a Suggest an AI reply button generates a draft (1 credit) you edit before sending.

Triage 20 leads in 2 minutes instead of 20

AI lead scoring + suggested reply

Every captured lead gets a 5-second AI pass: a 1-5 heat score (the 🔥 emoji count on each row), a one-line summary of what they want, and a draft first reply you can copy-paste into WhatsApp.

Heat scores are based on signal strength: explicit pricing asks (high), specific service mentions (mid), generic curiosity (low). Lukewarm leads get scored too — they just don't trigger PWA push.

Runs efficiently in the background — included in your credits with no extra charge per scored lead.

Visitor taps, your channel opens with context pre-filled

Visitor hand-off — 6 channels

After the bot chat, visitors see a brand-coloured pill — your preferred channel — pre-filled with the conversation context. One tap opens THEIR app to message you direct.

Channels supported (all phone-number-deep-linkable):

  • WhatsApp (default) — wa.me/<your-phone>
  • SMS / iMessagesms:+<your-phone>
  • Telegramhttps://t.me/+<your-phone>
  • Signalhttps://signal.me/#p/+<your-phone>
  • Viberviber://chat?number=<your-phone>
  • Phone calltel:+<your-phone>

Important: the bot does NOT send messages from itself to you. The visitor initiates the hand-off — they tap the button, their app opens, and they send you the pre-filled message. Owner-side notifications go via PWA push + email (see Phone push + 1-tap live takeover).

Channels that need a username instead of a phone number (LINE, KakaoTalk, WeChat, Facebook Messenger) aren't supported in v1 — those would need a separate per-tenant ID field.

A plumber sees the leak. A tailor sees the fabric.

Vision Q&A — visitors can share photos

Visitors attach up to 4 photos per message (JPEG, PNG, WebP, GIF — 5 MB each). The bot reads the images alongside your knowledge and answers using both.

What it's great at: clear photos of common objects — plumbing parts, fabrics, food, products on shelves, screen errors, document layouts.

What drops accuracy: blurry shots, low light, unusual angles. The bot is told to ask for a clearer photo when uncertain rather than guess.

Cost: image-bearing messages cost 2 credits (vs 1 for text-only). The image stays in the lead transcript so you have full context when you follow up.

Three pills break the ice for first-time visitors

Smart starter questions

When a visitor opens the chat panel with empty history, the widget shows up to three clickable starter questions — e.g. What are your pricing tiers?, Do you serve KL?, What are your hours?. Visitors who tap a starter convert ~30-50% better than those who type from scratch.

Three modes for managing them, all from /console/knowledge:

  • Auto-generated on first knowledge save (and re-generated by a daily cron sweep if your starters array ever ends up empty with a populated knowledge doc).
  • Manually edited — type your own three questions (each up to 80 characters). Empty inputs are skipped, so you can show 1, 2, or 3 pills.
  • Disabled entirely via the master toggle if you prefer a minimal "ask me anything" feel.

Paste a URL, get a structured knowledge draft in ~5 minutes

Knowledge from website scan

Instead of typing out services / pricing / FAQs by hand, point ObieChat at your existing website. We crawl up to 20 pages, prioritising paths that look like services, pricing, FAQ, about, or contact. Our AI extracts a structured draft into the right schema fields — you review and save.

What gets extracted: service names + summaries, pricing tier names + amounts, FAQ Q&A pairs, contact phone / email / address from the homepage.

What we skip: blog posts (too much noise), image content (use Vision Q&A for visitor uploads), PDFs, pages behind a login, query-string variations of the same page.

Cost: a single scan extracts at ~$0.01-0.015 per page — about $0.30 worst-case at 20 pages. This is on us, not your credits. Re-scan anytime to pick up site changes.

Visitor picks a slot without leaving the chat

Inline booking — Cal.com / Calendly

Set a public Cal.com or Calendly URL in Settings → Booking. When a visitor asks to book, the bot ends its reply with a magic <<BOOKING>> token that the widget detects and replaces with an inline iframe of the calendar.

The visitor picks a slot, the booking confirmation is emailed by the calendar provider directly (not by ObieChat). The visitor never leaves your site.

What we don't support yet: tracking the booked-vs-cancelled outcome server-side. The booking event fires from the calendar provider's side, and the Cal.com webhook integration is a future add.

See where visitors drop off before they ever message

Pre-chat funnel analytics (opt-in)

Default OFF for privacy. When you opt in (Settings → Analytics → Full-funnel), the widget fires two events:

  • Loaded — widget JS booted on the page (visitor saw the bubble).
  • Opened — visitor clicked the bubble (engagement intent).

The downstream stages — Messaged and Captured — are derived from the existing conversations + leads tables (no extra event capture needed). The funnel card at /console/insights shows all four stages with conversion percentages.

Privacy: events store only tenant ID, session ID, event type, and timestamp. No IP, no user agent, no page URL, no PII. Send-Beacon survives instant tab-close (so bounce visitors are still counted).

A 60-second summary every morning at 08:00 your time

Morning email digest

Every morning at 08:00 in your configured timezone (default Asia/Kuala_Lumpur), the platform sends a short email summary of yesterday's activity to your Lead email address:

  • Conversation count + breakdown (bot-handled vs you taking-over).
  • New leads, grouped by AI heat score (🔥 1-5).
  • The top three questions visitors asked, with AI-summarised phrasing so you can spot themes.
  • Knowledge-gap detection — questions the bot couldn't answer well from your current knowledge doc.

How to opt out: the digest is on by default; turn it off in Settings → Notifications if you don't want a morning email. Reception is best-effort — if Resend rejects (e.g. your lead_email bounces), the digest is marked as "tried" in the DB and skipped on the next tick to avoid retry storms. Replace your lead_emailwith a confirmed deliverable inbox if you stop seeing them.

Cost: a fraction of a cent per tenant per day in background AI calls — included; no credits charged.

Push every lead to Zapier / Make / n8n / your CRM

Webhook integration

Set an outbound webhook URL in Settings → Integrations. Every qualified lead is POSTed as a JSON payload (lead data + transcript) with an x-obiechat-signature header (HMAC-SHA256 of the body, key auto-generated on first save).

From there: Zapier / Make / n8n can fan-out to any CRM, your custom backend can verify the signature and insert, or a Google Sheet can append the row.

Reliability: we retry on 5xx and timeouts up to 3 times with exponential backoff. After that, the failure is logged and surfaced in the console for manual replay.

RLS at the DB layer, not just app-level scoping

Security + privacy by default

Tenant data is isolated by Postgres Row-Level Security policies — every tenant-scoped table (tenants, knowledge, leads, messages, widget_events, etc.) refuses cross-tenant reads even from a privileged app role. The application sets a per-transaction app.current_tenant_id session variable; RLS gates every read and write against it. Defence in depth on top of app-level query scoping.

Auth: Auth.js JWT, bcrypt password hash with cost 12, session-version bump invalidates all existing JWTs (the "Sign out everywhere" feature).

PDPA / GDPR: full JSON archive export from Settings → Data export (every tenant-owned row + transcript + credit ledger). Right-to-be-forgotten requests processed within 7 days. Default lead retention is 12 months; image uploads expire after 90.

Origin enforcement: the widget only loads on tenant-configured allowedOrigins. Pasting your snippet on someone else's site doesn't work — the widget refuses to render.

Every feature on this page is unlocked on the free plan.

The difference between Free and Paid is how much you can use per month — not what you can use. Start free and you'll have access to every capability above on day one.