Skip to content

Role-Based Access Control

Synapse uses six roles with granular permissions to control access across the dashboard and API. Roles are assigned per workspace -- a user can have different roles in different workspaces.


Roles

RoleDescriptionTypical User
OwnerFull access including billing, workspace deletion, and ownership transfer. One per workspace.Founder, account creator
AdminFull CRM access plus user management. No billing access.Engineering lead, CTO
DeveloperTechnical operations: flows, templates, segments, contacts (read-only), API keys, dev tools.Backend/frontend engineers
MarketingCampaign operations: flows, templates, segments, contacts (read-only), analytics with export.Marketing managers, CRM specialists
OperationsCustomer support: contact lookup, email history, analytics. Read-only on most resources.CS team, ops managers
ViewerRead-only analytics dashboard. No access to contacts or configuration.Executives, stakeholders

Permission Matrix

This table shows what each role can do across every feature area. Use it to determine which role to assign team members based on their responsibilities.

FeatureOwnerAdminDeveloperMarketingOperationsViewer
Dashboard (analytics)FullFullFullFullReadRead
Analytics exportYesYes--Yes----
Flows -- viewYesYesYesYes----
Flows -- create / edit / activateYesYesYesYes----
Templates -- viewYesYesYesYes----
Templates -- create / editYesYesYesYes----
Segments -- viewYesYesYesYes----
Segments -- create / editYesYesYesYes----
Contacts -- list / searchYesYesYesYesYes--
Contacts -- editYesYes--------
Email logs -- search / viewYesYesYesYesYes--
API keys -- viewYesYesYes------
API keys -- manageYesYesYes------
Team members -- viewYesYes--------
Team members -- manageYesYes--------
Sender domains -- viewYesYesYes------
Sender domains -- manageYesYes--------
System settingsYesYes--------
Dev toolsYesYesYes------
Billing / plan managementYes----------
Payment methodsYes----------
InvoicesYes----------
Delete workspaceYes----------
Transfer ownershipYes----------

Owner Role

The owner is the person who created the workspace. Each workspace has exactly one owner at any time.

Owner-Exclusive Capabilities

  • View and manage billing, payment methods, and invoices
  • Change the workspace plan (upgrade/downgrade)
  • Delete the workspace permanently
  • Transfer ownership to another team member
Note

The owner cannot be removed or downgraded. Ownership can only be transferred to another member via the Danger Zone settings.

The single-owner constraint is enforced at the database level. No application-level bug or API call can create a second owner in a workspace.


Owner vs Admin

The owner/admin split follows a common SaaS pattern: the person paying the bill has exclusive control over financial decisions, while admins control product features.

ConcernOwnerAdmin
All CRM featuresYesYes
Manage team membersYesYes
Manage API keysYesYes
System settingsYesYes
BillingYesNo
Delete workspaceYesNo
Transfer ownershipYesNo

API Enforcement

Permissions are enforced server-side on every API request. The dashboard hides UI elements based on the user's role, but this is cosmetic -- the API always re-validates permissions regardless of how the request was made.

If a user's role does not have permission for the requested operation, the API returns:

json
HTTP 403 Forbidden
{
"detail": "Insufficient permissions for this operation",
"code": "forbidden"
}

What This Means for Your Integration

  • API keys inherit the scope assigned at creation (data, reporting, management, full) -- they are not tied to a user's role. Scope enforcement is separate from RBAC.
  • JWT-authenticated requests (dashboard users calling the API) are subject to RBAC based on the user's role in the specified workspace.
  • Build your client to handle 403 responses gracefully. A user's role may change between requests if an admin modifies their permissions.