Skip to content

Roles and permissions

Explanation
For:
Workspace admins
Needs permission:
team:managesensitive
In the app:
Settings, then Roles

ReputeCast gives you the role-based access control email marketing teams need: every member of a workspace has one role, and a role is a set of permissions such as campaigns:send. API keys and MCP agents hold permissions too, and never more than the member who created them.

  1. A role decides what a member can do. Each member has exactly one role per workspace. Four roles are built in: Owner, Admin, Editor and Viewer. They are read-only and get new permissions automatically when you upgrade.
  2. A permission includes its view permission. Giving campaigns:send also gives campaigns:view, and team:manage includes team:invite. The role editor shows these as “included by”.
  3. A scope narrows where a member works. A scope is set on the membership (when you invite or change a member), not on the role. A scoped member sees and acts only on the chosen lists, and picks only the chosen sender domains in the campaign composer. Their email, SMS, push and WhatsApp sends go only to those lists: the composer offers them no segments, and a send checks its audience against the scope of whoever sends it. They can’t download the whole-workspace export either. An empty scope means everything.
  4. Changes apply at once. Editing a role or a member’s role applies on their next request. API keys follow their creator: a key’s permissions are its own permissions, cut down to what its creator holds right now.
  5. Every decision is logged. Role changes, refused grants and denied actions on sensitive permissions are written to the audit log.
Settings › Roles: the four built-in roles marked read-only with Duplicate to customize, a custom Content Writer role with Edit, Duplicate and Delete, and the Compare roles matrix below.
Role What it is for
Owner Everything, including transferring ownership and deleting the workspace. At least one per workspace.
Admin Everything except transferring ownership and deleting the workspace.
Editor Creates and sends: campaigns, templates, automations, segments without SQL, forms, imports, website and products. No approving, exporting, deleting contacts, providers, team or keys.
Viewer Read-only. Never sees secrets.

Client workspaces of an agency add two more built-in roles, Client approver and Client viewer. The matrix lists which permission each built-in workspace role includes; every key is described in permissions and roles.

PermissionOwnerAdminEditorViewer
campaigns:viewincludedincludedincludedincluded
campaigns:editincludedincludedincludednot included
campaigns:sendincludedincludedincludednot included
campaigns:pauseincludedincludedincludednot included
campaigns:approveincludedincludednot includednot included
templates:viewincludedincludedincludedincluded
templates:editincludedincludedincludednot included
transactional:viewincludedincludedincludedincluded
transactional:editincludedincludedincludednot included
transactional:publishincludedincludedincludednot included
transactional:sendincludedincludednot includednot included
transactional:contentincludedincludednot includednot included
automations:viewincludedincludedincludedincluded
automations:editincludedincludedincludednot included
automations:publishincludedincludedincludednot included
subscribers:viewincludedincludedincludedincluded
subscribers:createincludedincludedincludednot included
subscribers:editincludedincludedincludednot included
subscribers:importincludedincludedincludednot included
subscribers:exportincludedincludednot includednot included
subscribers:deleteincludedincludednot includednot included
subscribers:verifyincludedincludednot includednot included
lists:manageincludedincludedincludednot included
segments:editincludedincludedincludednot included
segments:sqlincludedincludednot includednot included
forms:editincludedincludedincludednot included
reports:viewincludedincludedincludedincluded
reports:shareincludedincludedincludednot included
deliverability:viewincludedincludedincludedincluded
integrations:hostreputeincludedincludednot includednot included
providers:viewincludedincludedincludedincluded
providers:manageincludedincludednot includednot included
domains:manageincludedincludednot includednot included
team:viewincludedincludedincludedincluded
team:inviteincludedincludednot includednot included
team:manageincludedincludednot includednot included
apikeys:manageincludedincludednot includednot included
webhooks:manageincludedincludednot includednot included
mcp:manageincludedincludednot includednot included
integrations:viewincludedincludedincludedincluded
integrations:manageincludedincludednot includednot included
ai:useincludedincludedincludednot included
scoring:editincludedincludedincludednot included
placement:runincludedincludedincludednot included
placement:manageincludedincludednot includednot included
grow:viewincludedincludedincludedincluded
grow:editincludedincludedincludednot included
grow:reviewincludedincludedincludednot included
grow:connectincludedincludednot includednot included
earn:viewincludedincludedincludedincluded
earn:editincludedincludednot includednot included
earn:manageincludedincludednot includednot included
payments:manageincludedincludednot includednot included
sponsors:manageincludedincludedincludednot included
conversions:createincludedincludednot includednot included
website:viewincludedincludedincludedincluded
website:editincludedincludedincludednot included
website:publishincludedincludedincludednot included
website:manageincludedincludedincludednot included
products:viewincludedincludedincludedincluded
products:editincludedincludedincludednot included
products:publishincludedincludedincludednot included
orders:manageincludedincludedincludednot included
sms:sendincludedincludedincludednot included
push:sendincludedincludedincludednot included
whatsapp:sendincludedincludedincludednot included
audit:viewincludedincludedincludedincluded
workspace:manageincludedincludednot includednot included
workspace:transferincludednot includednot includednot included
workspace:deleteincludednot includednot includednot included

Choose Duplicate to customize on a built-in role, or New custom role, to start a custom role. In the editor, Start from Editor picks the Editor permissions you hold. There is no limit on the number of custom roles; names are up to 60 characters, unique, and can’t reuse a built-in name.

The role editor: name and description, permissions grouped by area with ⚑ on sensitive ones and included permissions checked and locked, and the Impact preview card on the right.

The Impact preview card updates after each change: how many members, API keys and MCP agents are affected, which sensitive permissions the role holds and what it means for approvals. When you save changes to a role that people hold, a dialog lists who loses or gains what before anything changes. A role that members or pending invitations still use can’t be deleted; move them to another role first.

Nobody can grant a permission they don’t hold: not to a role, a member, an invitation, an API key or an MCP agent.

  • Permissions you don’t hold are locked in the role editor, with the names of up to two people who can grant them.
  • Saving a role with a permission you lack answers 403 with the code escalation_denied.
  • You can only invite or assign a role whose permissions you all hold, and a scope within your own.
  • You can’t change, deactivate or remove a member whose role holds a permission you don’t, so an Admin can’t touch an Owner.
  • Only a transfer of ownership makes someone an Owner, and the new Owner needs two-factor authentication.

Sensitive permissions and two-factor authentication

Section titled “Sensitive permissions and two-factor authentication”

Permissions that send, approve, publish, export, delete contacts or manage providers, the team, keys and agents are sensitive (⚑). By default, the instance requires two-factor authentication for everyone who holds one in any workspace, with a 7-day grace period. Editors hold sensitive permissions such as campaigns:send, so they are covered by it.

When the grace period ends, the person can still sign in but can’t use the app or the API until they add an authenticator app or a passkey. Members who sign in with single sign-on are covered when their identity provider enforces two-factor. Instance admins choose the policy in Instance admin, then Authentication, then Two-factor enforcement.

Rule Permissions Why
People only integrations:manage, ai:use API keys and MCP agents can’t hold them.
No agents subscribers:verify, placement:run, placement:manage They send addresses or copies out, or reach seed mailboxes. Keys may hold them.
Owner only workspace:transfer, workspace:delete Only the built-in Owner role holds them; custom roles can’t.

When a page answers that your role can’t open it, choose Request access. ReputeCast suggests the smallest built-in role that has the missing permission and notifies everyone with team:manage. They grant it by changing your role on the Team page.

  • Create a custom role when a built-in role gives too much, for example writers who edit but must request approval to send.
  • Use a scope rather than a new role when people do the same work on different lists or brands.
  • Ask an instance admin to require two-factor authentication for everyone when every member should use a second factor.