Appearance
Brand Service
Brand management is handled inside apps/app — there is no separate brand microservice. The brand routes live at apps/app/src/v1/brand/ and delegate to service functions in @ce-sdr/lib.
What is a Brand?
A Brand is the core multi-tenant unit. Each user can own multiple Brands. All business data — leads, campaigns, conversations, credits, sender accounts — is scoped to a Brand.
User (1) ──→ (N) UserProfile (1) ──→ (N) Brand
│
┌───────────────┼────────────────┐
▼ ▼ ▼
Leads (groups) Campaigns BrandInformation
│ │ │
Contacts CampaignSteps AI persona configBrand Information
Each Brand has a BrandInformation record that stores the AI persona configuration used when generating campaign messages:
| Field | Purpose |
|---|---|
personality | Writing tone (e.g., "professional", "casual") |
voice | Brand voice description |
audience | Target audience description |
idealClientProfile | ICP definition |
biggestChallenges | Pain points to address |
documentUrl | Reference document (e.g., company deck) |
emails | Registered sender email addresses |
socialAccounts | Linked social profiles |
API Endpoints
| Method | Path | Description |
|---|---|---|
POST | /v1/brand/ | Create a new brand |
GET | /v1/brand/ | List brands for the authenticated user |
GET | /v1/brand/:id | Get brand details |
PATCH | /v1/brand/:id | Update brand name/settings |
PUT | /v1/brand/:id/information | Update AI persona / brand information |
DELETE | /v1/brand/:id | Soft-delete a brand |
Full interactive reference: API Documentation