1. Open the inbox
The inbox lives at https://app.churchlinker.com/admin/support. You'll only see it in the platform admin sidebar if you have a PlatformAdmin row. There are three buckets:
- Open — every thread that still needs a reply, whether assigned or not. This is the default view.
- Mine — open threads you've picked up (assignedAdminId is you).
- Resolved — historical record of everything closed or archived. Last 50 only.
The page re-polls every 8 seconds so new threads appear without needing a refresh. Unread threads carry an indigo dot.
2. Go online for live chat
Click “Go online” in the top right of /admin/support. The button turns green. The instant you do this, visitors on churchlinker.com and admins inside the dashboard see a green “agent online now” dot next to the “Talk to a human” button on the chat widgets — which makes them much more likely to click it.
Heartbeat: while the inbox tab is open, we ping presence once a minute and reset your TTL to 90 seconds. Close the tab and you lapse offline automatically inside 90 seconds — no need to remember to click “Go offline”. You can also click it manually if you need to step away with the tab still open.
Multiple online staff: totally fine. Both will see new threads land. Whoever replies first auto-claims the thread (see step 4). Use the “Mine” bucket to keep track of your own ongoing chats.
3. Reading a thread row
Each row in the inbox tells you at a glance:
- Indigo dot = unread (someone else replied, or it's brand new).
- “Visitor” chip (sky blue) = a marketing-site visitor. Carries their email so you can email-reply too if needed.
- “Tenant” chip (violet) = a signed-in church admin. The church name appears in amber so you know which tenant.
- Monospace path (indigo) = the page they started the chat from (e.g. /pricing). Useful for context.
- Status pill (right-hand side) = OPEN, RESPONDED, RESOLVED or ARCHIVED.
4. Reply to a thread
Click any row to open the thread page. The transcript renders chronologically with the visitor on the left and your replies on the right. Type into the composer and press Enter (Shift+Enter for a new line) or click the send arrow.
Auto-claim: if the thread was unassigned, your first reply automatically sets you as the assigned admin. From that point it shows under your “Mine” bucket. If another staff member needs to take over, they can just reply too — the assignment doesn't lock them out.
Polling: the thread page polls every 4 seconds for new messages. Visitor replies appear in the transcript without needing a refresh.
5. Mark as resolved
Once the question is answered, click “Mark resolved” at the bottom. The thread moves into the Resolved bucket and the visitor sees the chat as “closed” but can still send a new message (which re-opens it as OPEN).
Don't close the tab without resolving— leaving threads in RESPONDED forever clutters the Open bucket for everyone else.
6. Archive (for spam / abuse)
Use “Archive” when the thread isn't a real conversation — spam, test messages, an accidental click. Archived threads are hidden from the Open bucket and the visitor gets a “this conversation has been closed” error if they try to extend it. Archive is reversible — click “Re-open” on the thread page if you change your mind.
7. What you can't see
From the support thread you have the transcript, the visitor's first name + email + IP + user-agent, and the page they started from. You do NOT have access to the tenant's member records, donations or any other tenant-side content unless you separately impersonate (which goes through the existing PlatformAdmin impersonation flow and is itself audit-logged).
8. Response-time expectations
We've promised customers in the public FAQ and in the chat widget:
- Live-chat (you're online): typical reply inside 30 seconds.
- Leave-a-message (you're offline): reply within one UK working day.
- Grow plan and above: priority queue, 4 working hours UK business hours.
If you go online for support and don't intend to stay reactive for at least a few minutes, please toggle offline first — a green dot with no reply within a minute is the worst possible visitor experience.
9. Edge cases & gotchas
- Email reply forwarding: the new-thread alert email has “Reply-To” set to the visitor's email, so hitting reply in your mail client sends them an email directly. That email won't land in the support thread though — for the thread to record the exchange, paste your reply into the chat composer.
- Visitor uses two devices: the viewToken lives in localStorage on the device where they started. If they switch devices they'll see a fresh chat widget (no transcript). The original thread still exists in your inbox.
- Rate limit: visitors are capped at 5 new threads per IP per hour and 60 messages per thread per hour. If a real customer hits the limit, raise it in
src/app/api/public/support/threads/route.ts.
Customer-facing version of this page: /docs/live-support. Safe to link customers to.