Skip to main content

Team Management

This guide covers everything you need to know about managing your team in Zyphr — from inviting members to understanding the role hierarchy and controlling per-project access.

Role System Overview​

Zyphr uses a two-level role system:

  1. Account roles — determine what a user can do at the account level (billing, team management, account settings)
  2. Project roles — determine what a user can do within a specific project (API keys, messages, subscribers, webhooks)

These two levels work together to give you fine-grained control over who can access what.

Account Roles​

Account roles are assigned when a user is invited to the account and apply across the entire account.

RoleTeam ManagementBillingProjectsDelete Account
OwnerYesYesAll (Admin)Yes
AdminYesNoAll (Admin)No
Billing AdminNoYesNone (must be assigned)No
MemberNoNoNone (must be assigned)No

Owner​

Owners have complete control over the account. They can manage billing, invite and remove members (including other owners), access all projects, and delete the account.

  • Multiple owners are allowed
  • At least one owner must exist at all times
  • Only owners can promote other members to owner

Admin​

Admins can manage the team (invite, remove, change roles) and have automatic admin access to every project. They cannot manage billing or delete the account.

Billing Admin​

Billing Admins can view and manage the subscription, payment methods, and invoices. They have no inherent access to any project — they must be explicitly assigned to projects they need to access.

Member​

Members have no account-level privileges. They can only access projects they have been explicitly assigned to with a project role.

Project Roles​

Project roles control what a user can do within a specific project.

RoleView ResourcesCreate/Edit ResourcesManage SettingsManage MembersManage API Keys
AdminYesYesYesYesYes
DeveloperYesYesNoNoNo
ViewerYesNoNoNoNo

Admin​

Full control over the project. Can modify project settings, manage project members, create and revoke API keys, and perform all resource operations.

Developer​

Can create, read, update, and delete resources within the project — messages, subscribers, templates, webhooks, etc. Cannot change project settings, manage members, or manage API keys.

Viewer​

Read-only access. Can view all resources within the project but cannot create, modify, or delete anything.

Role Cascade​

Account-level roles automatically cascade into project access:

Account RoleAutomatic Project Access
OwnerAdmin on all projects
AdminAdmin on all projects
Billing AdminNone — must be explicitly assigned
MemberNone — must be explicitly assigned

This means:

  • You never need to manually assign Owners or Admins to projects — they always have full access
  • Members and Billing Admins see only the projects they have been explicitly added to
  • If a Member has not been assigned to any project, they will see an empty project list

Inviting Members​

Via Dashboard​

  1. Navigate to Account Settings > Team tab
  2. Click Invite Member
  3. Enter the email address
  4. Select an account role
  5. Click Send Invite

The invitee receives an email with a link to accept the invitation. If they do not already have a Zyphr account, they will be prompted to create one.

Via API​

curl -X POST https://api.zyphr.dev/v1/accounts/ACCOUNT_ID/members/invite \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "newdev@company.com",
"role": "member"
}'

Managing Pending Invitations​

From the Team tab, you can:

  • Resend — Send the invitation email again if it was lost or expired
  • Revoke — Cancel the invitation before it is accepted

Assigning Project Access​

After a Member or Billing Admin joins the account, assign them to specific projects:

Via Dashboard​

  1. Switch to the target project using the project switcher
  2. Navigate to Project Settings > Members tab
  3. Click Add Member
  4. Select the account member from the dropdown
  5. Choose a project role (Admin, Developer, or Viewer)
  6. Click Add

Via API​

curl -X POST https://api.zyphr.dev/v1/projects/PROJECT_ID/members \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"user_id": "usr_abc123",
"role": "developer"
}'

Changing Roles​

Changing Account Roles​

  1. Navigate to Account Settings > Team tab
  2. Find the member in the list
  3. Click the role dropdown and select a new role
  4. Confirm the change
warning

Changing a member from Owner or Admin to Member will remove their automatic access to all projects. They will only retain access to projects they were explicitly assigned to.

Changing Project Roles​

  1. Navigate to Project Settings > Members tab
  2. Find the member in the list
  3. Click the role dropdown and select a new role

Removing Members​

Removing from the Account​

Removing a member from the account revokes all of their access — account-level and all project assignments.

  1. Navigate to Account Settings > Team tab
  2. Click Remove next to the member
  3. Confirm the removal

Via API​

curl -X DELETE https://api.zyphr.dev/v1/accounts/ACCOUNT_ID/members/USER_ID \
-H "Authorization: Bearer YOUR_JWT_TOKEN"

Removing from a Project​

Removing a member from a project revokes only their access to that specific project. They remain a member of the account and retain access to other projects they are assigned to.

  1. Navigate to Project Settings > Members tab
  2. Click Remove next to the member
  3. Confirm the removal

Via API​

curl -X DELETE https://api.zyphr.dev/v1/projects/PROJECT_ID/members/USER_ID \
-H "Authorization: Bearer YOUR_JWT_TOKEN"

Team Size Limits​

The maximum number of team members depends on your plan:

PlanMax Team Members
Free1
Starter5
Pro25
Scale100
EnterpriseUnlimited

This limit counts all members across all roles (Owners, Admins, Billing Admins, and Members).

Best Practices​

Principle of Least Privilege​

Assign the minimum role needed for each team member:

  • Use Member for most developers — then assign specific project roles
  • Reserve Admin for team leads who need to manage the full account
  • Use Owner sparingly — only for people who need billing and account deletion access

Environment-Based Access​

Set up project roles based on environment sensitivity:

Team MemberProductionStagingDevelopment
CTO / LeadOwner (auto-Admin)Owner (auto-Admin)Owner (auto-Admin)
Senior DevAdminAdminAdmin
Junior DevViewerDeveloperDeveloper
QA EngineerViewerDeveloperViewer
FinanceBilling Admin (no project access)——

Regular Access Reviews​

Periodically review your team members and their roles:

  • Remove members who have left the organization
  • Downgrade roles for members who no longer need elevated access
  • Audit project assignments to ensure no one has unnecessary access

Next Steps​