🏢 Multi-Workspace Management
Agencies can create separate workspaces for each client, keeping data fully isolated while managing everything from a single account. Each workspace is a complete, self-contained environment with its own social accounts, content, analytics, and team.
Workspace Model
Every workspace in UniPulse is defined by the following:
| Field | Description |
|---|---|
| name | The workspace display name (e.g., "Acme Corp") |
| slug | Unique URL-friendly identifier (e.g., acme-corp) |
| logoUrl | Workspace logo — shown in the sidebar and reports |
| primaryColor | Brand color used throughout the workspace UI |
| plan | The subscription plan attached to this workspace (see Pricing & Plans) |
| customDomain | Optional custom domain (e.g., social.acmecorp.com) — requires White Label |
| isPersonal | true for individual workspaces, false for agency/client workspaces |
| defaultLanguage | Default language for AI-generated content and replies |
| settings | JSON field for workspace-level configuration overrides |
Creating a Workspace
- Click the workspace switcher in the top-left corner of the navigation
- Click New Workspace
- Enter the client's brand name, upload their logo, and set the primary color
- Choose a subscription plan (or use your agency plan's workspace allocation)
- Invite team members with appropriate Roles
API: POST /workspaces — programmatically create workspaces for automation.
Switching Between Workspaces
Use the workspace switcher dropdown to jump between client workspaces instantly. Your role and permissions may differ per workspace — you might be an Owner on one and an Editor on another.
Workspace Isolation
Each workspace is a fully isolated environment. Nothing is shared between workspaces:
| Resource | Isolated Per Workspace |
|---|---|
| Social accounts | Each workspace connects its own Facebook, Instagram, TikTok accounts |
| Content & posts | Scheduled posts, drafts, and published content |
| Analytics data | All metrics, reports, and dashboards |
| Brand voice settings | AI tone, style, and personality configuration |
| Audience data | Audience nodes, interactions, segments, and tags |
| Conversations | ICE threads, messages, bot config, and escalation rules |
| Billing | Optional per-workspace billing and usage tracking |
| Team members | Each workspace has its own member list and role assignments |
Workspace isolation is enforced at the data layer. Every database query is scoped to the current workspace, and cross-workspace data access is architecturally impossible. This is critical for agency clients who need assurance that their data is private.
Team Management
Each workspace maintains its own team via WorkspaceMember records:
| Field | Description |
|---|---|
| role | OWNER, ADMIN, EDITOR, VIEWER, or CLIENT (see Roles & Permissions) |
Invite members with POST /:workspaceId/members or from Settings > Team in the UI. Members receive a WorkspaceInvitation with:
| Field | Description |
|---|---|
| Invitee's email address | |
| role | The role they'll receive upon accepting |
| token | Unique invitation token |
| invitedBy | Who sent the invitation |
| expiresAt | Invitation expiration timestamp |
| acceptedAt | When the invitation was accepted (null if pending) |
Agency Dashboard
The agency dashboard provides a bird's-eye view across all workspaces:
- Client overview — Key metrics per workspace at a glance
- Activity feed — Recent actions across all workspaces
- Usage tracking — Posts scheduled, AI credits used, and plan limits per workspace
- Quick navigation — Jump into any workspace with one click
- Aggregate reporting — Roll up metrics across clients for agency-level insights
API Endpoints
| Method | Endpoint | Purpose |
|---|---|---|
POST | /workspaces | Create a new workspace |
GET | /workspaces | List all workspaces you have access to |
GET | /workspaces/:id | Get workspace details |
PUT | /workspaces/:id | Update workspace settings |
DELETE | /workspaces/:id | Delete a workspace (Owner only) |
GET | /workspaces/:id/members | List workspace members |
POST | /workspaces/:id/members | Invite a new member |
PUT | /workspaces/:id/members/:userId | Update a member's role |
DELETE | /workspaces/:id/members/:userId | Remove a member |
Related Pages
- Roles & Permissions — Configure who can do what in each workspace
- Client Reports — Generate branded reports per workspace
- White Label — Custom branding and domains for client workspaces
- Pricing & Plans — Workspace limits per plan tier