Client Backoffice
The Client Backoffice is a React-based management platform for Rose-powered websites. It lets client teams monitor engagement, review conversations, manage AI content, and configure agent behavior — all from a single interface.
Overview
flowchart LR
subgraph Analytics [Analytics and Monitoring]
direction TB
Dashboard["Dashboard
Metrics, conversion rates,
engagement highlights"]
Visitors["Visitors
Activity timeline,
enrichment data"]
Accounts["Accounts
Company-level
aggregation"]
Conversations["Conversations
Transcripts, quality
scores, filtering"]
Topics["Topics
Frequency charts,
keyword extraction"]
end
subgraph Management [Content and Configuration]
direction TB
AISections["AI Sections
Create and edit content
blocks for the agent"]
Agents["Agents
Toggle agents,
view status"]
Settings["Settings
Schema-driven config
with feature toggles"]
Knowledge["Knowledge
FAQs, documents,
website corpus, lookups"]
end
subgraph Support [Support]
direction TB
Tickets["Support Tickets
Report chatbot issues
and general requests"]
end
subgraph Admin [Admin Only]
direction TB
Integrations["Integrations
HubSpot OAuth,
sync management"]
Clients["Clients
Organizations
and domains"]
Users["Users
Access control,
domain assignments"]
end
style Analytics fill:#d4edda,stroke:#28a745
style Management fill:#fff3cd,stroke:#d4a017
style Support fill:#d6eaf8,stroke:#2e86c1
style Admin fill:#e8daef,stroke:#7d3c98
| Area |
Pages |
Description |
| Analytics |
Dashboard, Visitors, Accounts, Conversations, Topics |
Monitor engagement metrics, review transcripts, track company-level activity, analyze conversation topics |
| Content |
AI Sections, Agents, Knowledge |
Manage content blocks, agent state, FAQs, documents, website corpus, and lookups |
| Configuration |
Settings |
Schema-driven config editor (global + website agent), feature toggles, JSON export for admins |
| Support |
Support Tickets |
Report chatbot issues and general requests, tracked in Linear |
| Admin |
Integrations, Clients, Users |
HubSpot sync, client/domain management, user access control |
Architecture
flowchart TB
UI["Client Backoffice UI
React + TypeScript + Vite"]
UI -->|RLS-protected reads/writes| Supabase["Supabase client
Direct tables + RPC functions"]
UI -->|Authenticated privileged calls| Admin["Admin API
Backoffice BFF"]
UI -->|OAuth and CRM operations| Integrations["Integrations API"]
Supabase --> ProductDB[("Supabase product data
analytics · config · content")]
Admin -->|Private service-to-service OIDC| Knowledge["Knowledge API
Workflow owner"]
Knowledge <--> WorkflowDB[("Supabase knowledge.*
operations · items · snapshots")]
Knowledge --> Tasks["Cloud Tasks
discovery · scrape · clean"]
Tasks --> Worker["Knowledge content worker"]
Worker --> Artifacts[("GCS rose-scraping")]
Worker -. fenced callback .-> Knowledge
Knowledge --> Loader["Document loader job"]
Loader --> RAG[("MongoDB + Neo4j
LightRAG stores")]
Integrations --> HubSpot["HubSpot and external integrations"]
style UI fill:#e8daef,stroke:#7d3c98
style Supabase fill:#d4edda,stroke:#28a745
style Admin fill:#fff3cd,stroke:#d4a017
style Knowledge fill:#fff3cd,stroke:#d4a017
style Integrations fill:#d6eaf8,stroke:#2e86c1
Direct Supabase access remains the normal path for domain-scoped analytics,
configuration, and content data. The Admin API handles privileged operations
and is the only browser-facing caller of the private Knowledge API. The
Knowledge API records durable state before dispatching external work; workers
write artifacts and report results but never become independent workflow owners.
Local Development Users
The Supabase seed (supabase/seed.sql) creates two backoffice users for local development. After running supabase db reset, you can log in with these credentials:
| Email |
Password |
Role |
Domain Access |
admin@admin.com |
admin |
Admin |
All domains |
user@user.com |
user |
Regular user |
abtasty.com only |
The admin user has full access to all domains and can manage users. The regular user is restricted to abtasty.com data only, useful for testing the domain-scoped RLS policies.
Documentation