Plan · 16 Oct 2026

One chat, not two.
Fold support into the assistant.

Right now the app has two bubbles in the corner, two bots answering from the same docs, and no road between them. Customers who get stuck with the assistant have to find the other bubble and start over. This plan keeps Chatwoot as the staff inbox and makes the assistant the only thing a customer talks to.

What the last 30 days say

From prod: assistant tables and the Chatwoot database, read on 16 Oct.

455
messages people typed into the assistant
10
Chatwoot support chats opened (a few were our own QA)
0
ways for the assistant to hand someone to a person
0
phone users who can reach live support (Chatwoot never loads under 768px)

Where people already talk to us

Customers are already talking to the assistant. Support is a second door they mostly don't open.

Assistant messages / 30d
455
Assistant sessions / 30d
273
Support chats / 30d
10

Staff are quick once a chat reaches them: median first human reply ≈ 15 min over the last 60 days (15 chats). The gap is reach. The assistant is where people ask, and it can't pass them on.

What it looks like

Click through the flow. It reuses the real panel's header, composer, choice rows and colors. The only new piece is the team message, which has a person's name and avatar so nobody mistakes staff for the AI.

The same problem, two journeys

"My post didn't publish", a problem we see in support often.

Today
1
Asks the assistant

It reads the post, explains, but can't fix a missed post or reach anyone.

2
Notices the purple bubble

Desktop only. On a phone, the journey ends here.

3
Re-explains from scratch

The support bot can't see the assistant chat.

4
Support bot checks the account again

Same docs, a second copy of the same read tools.

5
Handoff to staff

Staff see the support chat, not what the assistant already tried.

6
Staff reply lands in Chatwoot

Only seen if they still have that bubble open.

6 steps, 2 bots, 1 retype, and it doesn't work on phones.
After
1
Asks the assistant

It checks the post and the connection, and explains.

2
Taps "Talk to the team"

Or the assistant offers it when it's stuck, after asking first.

3
Staff get the full picture in Chatwoot

Transcript, page, recent errors and verified account, plus the team agent's brief.

4
Reply shows up in the assistant

The badge counts it as unread, on desktop and phone.

4 steps, 1 conversation, no retyping, works on phones.

How it fits together

Chatwoot stays as the staff inbox, so handoff notes, emails, the team agent, /ask, /ticket and the admin sidebar all keep working. Only the customer side changes.

Today: two parallel stacks
Customer in app.thestacc.com Assistant (blue) Chatwoot bubble (purple) Sonnet + ~80 toolsdocs search · account reads Support bot (Haiku)docs again · 4 copied reads Staff in Chatwoot ✕ dead end, no route to staff
After: one door, staff behind it
Customer in app.thestacc.com (desktop + phone) Assistant: the only launcher One agent, one set of reads, one docs search+ talk to the team · support mode for everyone else handoff + transcript staff replies flow back Staff in Chatwoot (unchanged)team agent · /ask · /ticket · sidebar

Who can get help, today vs after

The assistant needs a project, editor role, a paid plan or trial, and quota left. Everyone it turns away only has the purple bubble today, and only on desktop.

WhoTodayAfter
Paid user on desktopTwo separate chatsAssistant, with a person one tap away
Paid user on a phoneAssistant only, no human at allSame as desktop
Out of assistant quotaAssistant refuses, has to find the bubblePanel switches to support mode, doesn't refuse
Unpaid or expired trialBubble only (desktop)Support mode in the same panel, any screen size
No project yet (fresh signup)Bubble only (desktop)Support mode, the moment they're most likely to be stuck
Logged-out visitor on thestacc.comChatwoot widgetUnchanged: widget stays on the marketing site

What we stop maintaining twice

Duplicates that go away

ThingTodayAfter
Account readsAssistant tools + 4 copied support tools1 set
Docs answersDocs search + whole docs file in the bot prompt1 path
Bot prompts~790-line assistant prompt + separate support prompt for app users1 for app users
Launcher layoutStacking constants in TS + CSS for two bubbles1 bubble
"Hide in editors"Two separate mechanisms1
Dead codeopenChatwoot, SupportModal (unused)deleted

Bugs we close for free

1
Shared-browser identity leak

Nothing resets Chatwoot on logout, so the next person in the same browser inherits the last user's support contact. Without the widget in the app, that goes away.

2
Context lost on handoff

Staff see the assistant transcript, not a fresh "hi, my post…".

3
Badge that lies

"9+" today means things needing attention. After, a reply from the team counts too, so a person answering isn't missed.

4
No phone support

The assistant already works full screen on phones, so support comes with it.

Who wins

Customers
  • One place to ask anything
  • Never retype the problem
  • A person's reply shows up where they already are
  • Works on phones
  • Stuck users without access still get help
Staff
  • Same Chatwoot inbox, no retraining
  • Every handoff arrives with transcript, page, errors and verified account
  • Team agent brief, /ask and /ticket keep working
  • More real handoffs, fewer cold "hi" chats
Engineering
  • One agent to improve instead of two
  • One set of account reads and docs search
  • One launcher in the layout
  • Fewer moving parts in the corner of every page

Roadmap

Each step ships on its own. Step 1 alone gives every assistant user a way to reach a person. Effort is my rough estimate.

Step 1 · Handoff from the assistant
~2 to 3 days
  • "Talk to the team" button in the panel, plus an assistant tool that asks before handing off
  • Backend opens a Chatwoot conversation for the verified user with the transcript, page and errors
  • Existing handoff note, email and team brief fire as they do now
Step 2 · Staff replies come back
~3 to 4 days
  • Chatwoot webhook on staff messages stores them in that assistant session as a "team" message
  • Shown in the panel, counted in the badge
  • Customer replies in that session go back to the same Chatwoot conversation
Step 3 · Remove the bubble in the app
~2 to 3 days
  • Support-only mode of the panel for users the assistant turns away, running the existing read-only support bot
  • Phones get it too
  • Widget stays on the marketing site for logged-out visitors
Step 4 · Delete the duplicates
~1 to 2 days
  • Drop the copied account reads and the second docs path
  • Single launcher position only
  • Remove the unused support modal and helper
d1d2d3d4d5d6d7d8d9d10 1 · Handoff
2 · Replies back
3 · Remove bubble
4 · Delete duplicates

About two working weeks end to end. Steps 2 and 3 can overlap once step 1 is live.

What could go wrong, and the guard

RiskGuard
The assistant hands off too eagerly and floods the inboxIt asks the customer first, at most one open handoff per session, and we watch the volume for a week
A staff reply arrives while the panel is closedStored server side and counted in the badge, plus the email Chatwoot already sends
The team agent's broad read access (SQL, PostHog, GitHub) gets near customer turnsIt stays staff-only, triggered from Chatwoot as today. The customer side only reaches the read-only support bot
Logged-out visitors lose supportThey don't. The widget stays on thestacc.com
Handoffs burn assistant quotaHandoffs and support-mode chats don't count toward it

Three calls for you

Should a handoff count against the assistant quota?

Charging people for asking a human feels wrong.

Recommend: no
Unpaid users and users without a project: support panel, or keep the bubble until step 3?

Fresh signups are the most likely to be stuck.

Recommend: panel
When should the assistant offer a person?

Only when asked, or also when it's stuck.

Recommend: both, ask first
Numbers: prod Supabase (assistant sessions and messages, last 30 days) and the Chatwoot database on support.thestacc.com (conversations; median first staff reply over the last 60 days), read 16 Oct 2026. Code facts: blogfronend, backendcommon and admin-dashboard on main. Effort figures are estimates, not measurements.