Skip to content

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