ChangelogBook a demoSign up

Roles

FieldContent
AudienceOrganization admins
PrerequisitesOrganization admin permissions, or membership in a group with access to Organization settings.

Overview

Hightouch uses role-based access control (RBAC) to define what actions users can take across workspaces and resources. The access model works like this:

  1. Users are people in your organization.
  2. Groups are the unit of access control — you manage permissions at the group level, not per user.
  3. A group gets access to a workspace by being assigned a role for that workspace.
  4. That role is either pre-built (a standard access level) or custom (fine-grained grants you configure).

New groups start with no workspace access. A user who isn't in any group — or whose group has no role assigned — can log in but can't see or do anything in a workspace.

This version of role management was introduced with Permissions V2. For older implementations, see the Access control (legacy) documentation.


How roles work

Hightouch's permissions system is built around data flow — who can see data and where it can be sent — rather than micromanaging every model or sync.

Access is based on sources and destinations

Every sync involves multiple resources. For example, syncing BigQuery → Salesforce includes:

  • The source (BigQuery)
  • The model built from BigQuery
  • The destination (Salesforce)
  • The sync that connects them

Rather than managing permissions for each model or sync, Hightouch groups access by source (where data comes from) and destination (where it goes). Models and syncs inherit permissions from these top-level resources.

To create or run a sync, users need permission for both the source and the destination. Having access to one side alone isn't enough.


Pre-built vs. custom roles

Every group needs a role before it can access a workspace. Hightouch offers two kinds:

  • Pre-built roles — Four standard access levels (Admin, Editor, Draft Editor, Viewer) that apply broadly across all resources in a workspace.
  • Custom roles — Fine-grained roles where you toggle individual grants per source, destination, product, or resource.

Start with pre-built roles. They cover the most common access patterns and make onboarding fast. Only switch to custom roles when a group needs exceptions — like access to specific sources but not others, or Customer Studio permissions without source-level access.

Use pre-built when...Use custom when...
A group should have one standard access level across a workspaceDifferent teams sharing a workspace need distinct permissions
You're onboarding and want to move fastYou need to restrict access to specific sources or destinations
Everyone in the group does roughly the same type of workYou use subsets, approval flows, or destination rules and need roles aligned to those controls
The group maps cleanly to Admin, Editor, Draft Editor, or ViewerMarketers need Customer Studio access without source-level permissions

A good rule of thumb: pre-built = "this whole group should have one standard level of access." Custom = "this group needs exceptions, scoped resources, or product-specific permissions."


Pre-built roles

Pre-built roles are ready-made access levels. They apply to all sources, destinations, Customer Studio parent models, Agents, and Events resources in a workspace.

There are four pre-built roles:

  • Workspace admin – Full access to all resources and settings. Can manage credentials, approve changes, and configure everything. Organization admins automatically inherit this role.
  • Workspace editor – Can create and edit most resources, create new sources and destinations, and trigger syncs. Cannot manage credentials or configure schema.
  • Workspace draft editor – Can create and edit drafts (where supported) and view data, but cannot trigger syncs, approve changes, or create new sources or destinations.
  • Workspace viewer – Read-only access. Cannot see row-level data or make changes.

Pre-built role permissions

The tables below show the default grants for each pre-built role. Viewer has no grants and is not shown.

General

PermissionAdminEditorDraft editor
Create new sources
Create new destinations

Source

PermissionAdminEditorDraft editor
View row-level data
Draft syncs & models
Approve syncs & models
Configure schema
Manage source

Destination

PermissionAdminEditorDraft editor
Trigger syncs
Draft syncs & models
Approve syncs & models
Manage destination

Customer Studio

Customer Studio does not have a "draft audience" concept. Approval flows do not apply to audience creation, but they may be required for audience syncs.
PermissionAdminEditorDraft editor
View parent model data
Create and edit audiences
Trigger audience syncs
Approve audience syncs

Agents

PermissionAdminEditorDraft editor
Access Agents
Configure Agents

Events

PermissionAdminEditorDraft editor
Create new event sources
Create new event warehouse destinations
Create new event streaming destinations
Create new event contracts
Create new event functions

Assign a pre-built role

Roles are assigned to user groups, not individual users.

  1. Go to Settings, then Organization, then Groups.
  2. Select or create a group.
  3. In the Workspaces tab, use the Role dropdown to assign a pre-built role.
  4. Save changes.

Role selection dropdown

The Access column shows a summary of the group's permissions for each workspace. It gives a helpful overview but doesn't display every grant or cover all resource types.

When to switch to custom roles

Pre-built roles work well for onboarding and teams with uniform access needs. Consider switching to a custom role when:

  • A team needs access to some sources or destinations but not others
  • Marketers should work only in Customer Studio without source-level permissions
  • You need to align roles with subsets, approval flows, or destination rules
  • You want to give an Events team access to event resources without full editor permissions

Custom roles

Custom roles let you define precise permissions for each team, workspace, or use case. Instead of applying a standard access level, you toggle individual grants across six tabs that mirror the custom role builder in the UI:

TabWhat it controls
GeneralWhether users can create new sources or destinations in the workspace.
SourcesHow users interact with connected data sources — view row-level data, manage credentials, create models.
DestinationsWhat users can do with destinations — create syncs, trigger sync runs, manage credentials.
Customer StudioAccess to parent models, audience creation, journey configuration, and journey publishing. Functions like source-level grants scoped to parent models.
AgentsAccess to the Agents, Ad Studio, and Lifecycle Studio sections, and whether users can modify Agents settings.
EventsWho can create and manage Event resources: sources, streaming destinations, warehouse destinations, contracts, and functions.

How to create or edit a custom role

  1. Go to Settings, then Organization, then Groups.
  2. Select or create a group.
  3. In the Workspaces tab, select Custom... from the Role dropdown.
  4. Save changes.

Custom role selection

  1. Click Edit custom role to open the configuration panel. You'll see the six tabs listed above.

Custom role configuration panel showing all six permission tabs

Changes save automatically when you click Save changes in the bottom-right corner.


Custom role grant reference

This section documents every individual grant you can configure when building a custom role. Each subsection corresponds to a tab in the custom role builder.

Jump to: General · Sources · Destinations · Customer Studio · Agents · Events · Subsets · Approval flows

General

Custom role General tab showing options to create new sources and destinations

GrantWhat it allows
Create new sourcesCreate data sources in the workspace and assign access permissions for other groups.
Create new destinationsCreate destinations in the workspace and assign access permissions for other groups.

Workspace-level resources — such as folders, extensions, custom storage, and API keys — can only be configured by workspace admins.

Source

Custom role Sources tab showing per-source grants

Source-level permissions are designed primarily for Reverse ETL use cases, where users need the flexibility to run custom SQL when pulling data from the source. If you're creating a role for marketers in Customer Studio, it's best to avoid enabling any source grants. Instead, use Customer Studio grants, which limit access to specific parent models and subsets, ensuring that marketers work within your pre-approved Customer Studio schema.

View source data

With this grant enabled, users can view row-level data from this source across the Hightouch app. This includes:

  • Previewing models
  • Viewing row-level data when testing rows during sync creation
  • Accessing row-level data in the debugger for historical sync runs

Primary keys and error messages are not classified as row-level data to preserve basic sync observability. If you choose not to assign this grant, avoid using columns with PII (like email or phone number) as primary keys, as these fields will be visible to all users across the app.

Configure models & syncs

When enabled, this grant allows users to:

  • Create, edit, or delete models that pull data from the source
  • Use these models for syncing (provided the user has permissions to sync data to destinations)

Users can only edit existing models if they can also edit all of the syncs that rely on that model.

Configure schema

Applicable only to workspaces with Customer Studio, this grant allows users to configure the schema layer for Customer Studio, including traits, destination rules, and subsets.

Manage source

With this grant enabled, users can edit the source configuration, which includes:

  • Updating connection details and credentials
  • Adjusting the sync engine choice
  • Setting source-level defaults for Warehouse Sync Logs

Destination

Custom role Destinations tab showing per-destination grants

GrantWhat it allows
Trigger syncsManually trigger sync runs. Does not allow editing schedules.
Configure syncsCreate, edit, or delete syncs to the destination and set their schedules. Does not allow manual triggering.
Manage destinationModify the destination's configuration, including connection details, credentials, and alert defaults.

Customer Studio

Custom role Customer Studio tab showing per-parent-model grants

These grants function similarly to source-level grants but are scoped to specific parent models within the Customer Studio schema.

View parent model data

Enabling this grant allows users to view row-level data from the parent model throughout the Hightouch app. This includes:

  • Previewing audiences to see row-level data for individual members
  • Viewing row-level data when testing rows during sync creation
  • Accessing row-level data in the debugger for historical sync runs

If a user has the Configure audiences & syncs grant but lacks the View parent model data grant, they can still preview audiences, but they'll be limited to aggregate counts and insights, without row-level data for each audience member.

Configure audiences & syncs

When enabled, this grant allows users to:

  • Create, edit, or delete audiences that pull data from the parent model
  • Use these audiences for syncing (provided the user has permissions to sync data to destinations)

Users can only edit existing audiences if they can also edit all of the syncs that rely on that audience.

Configure journeys

When enabled, this grant allows users to:

  • Create, edit, or delete journeys and journey templates.

Publish journeys

When enabled, this grant allows users to:

  • Launch, pause, or stop live journeys

Custom role Customer Studio tab showing grants for a specific parent model

Agents

Custom role Agents tab showing access and configuration grants

GrantWhat it allows
Access AgentsAccess the Agents, Ad Studio, and Lifecycle Studio sections. Without this grant, these sections are hidden.
Configure AgentsModify Agents settings, including context, brand, guardrails, and channels.

Events

Events permissions are organized into two layers: workspace-level creation grants that control who can create new Event resources, and per-resource grants that control what users can do with specific resources.

Events permissions require Permissions V2. If your workspace is still on the legacy RBAC system, Events resources are restricted to workspace admins only.

Creation grants

Custom role Events tab General sub-tab showing creation grants

The General sub-tab within Events controls which types of Event resources users can create. Each grant also allows the creator to assign access permissions to other groups.

GrantWhat it allows
Create new event sourcesCreate event sources and grant other groups permission to manage them.
Create new event warehouse destinationsCreate event warehouse destinations and grant other groups permission to manage them.
Create new event streaming destinationsCreate event streaming destinations and grant other groups permission to manage them.
Create new event contractsCreate event contracts for defining event schemas and data quality rules.
Create new event functionsCreate event transformation functions.

Per-resource grants

The remaining Events sub-tabs control what users can do with individual event resources. Available grants vary by resource type:

Resource typeCan editCan syncCan access dataCan run
Event sources
Streaming destinations
Warehouse destinations
Functions
Contracts
  • Can edit — Modify the resource's configuration.
  • Can sync — Create and manage syncs involving the resource.
  • Can access data — View live event data in the source debugger. Only available for event sources.
  • Can run — Trigger runs. Only available for warehouse destinations.

Custom role Events tab Sources sub-tab showing per-source grants

To create or manage an event sync, a user needs the relevant permissions on both the event source and the event destination. Having access to only one side is not sufficient.

Workspace admins and built-in workspace editors are automatically granted all Events creation permissions. Non-admin, non-editor groups default to no Events access until grants are explicitly configured.

Differences when subsets are enabled

Subsets let you divide a parent model into smaller, permissioned segments (e.g., by brand, region, or consent type).

They're configured in Customer Studio, then Governance, then Subset categories.

For example:

  • Your EU marketing team can only build audiences using EU data.
  • Your email marketing team can only use consented audiences.

When subsets are active, you'll see a separate set of checkboxes that let you apply earlier grants (like View parent model data and Configure audiences & syncs) to specific subsets. The behavior of these checkboxes varies based on whether the subset category is marked as "required."

Subset required toggle

  • If the subset category is required, the user will only be able to configure and use audiences within the selected subset values. (If no values are checked, the user will not be able to configure or use any audiences at all.)
  • If the subset category is not required, the user can configure and use audiences with the selected subset categories, or without subsets altogether.

Differences when approval flows are enabled

Approval flows add review steps before publishing model or sync changes.

They're enabled in Settings, then Workspace, then Configuration, then Require approvals.

Require approval flow toggle

When enabled, the Configure models & syncs grant splits into:

  • Draft models & syncs – Create or edit drafts (cannot delete published resources).
  • Approve models & syncs – Review and approve or deny drafts.

Together, these two grants provide the same functionality as the original Configure models & syncs grant.

Approval flows do not apply to audience creation in Customer Studio, as there is no concept of a draft audience. However, approval may be required to sync an audience to a destination.

The Draft and Approve grants are separate and do not overlap. To allow a user to publish changes without requiring approval, you need to assign both the Draft and Approve grants. (Under the hood, the user creates a draft and then immediately self-approves it.)

To approve a sync, a user needs the Approve grant for both the source and the destination.


Governance in context

RBAC defines who can act in a workspace, but it's only one part of Hightouch's governance framework. Roles control user access, but they don't enforce organization-wide policies like redacting PII or honoring consent requirements.

Hightouch provides complementary governance features that work alongside roles:

  • Destination rules – Control what types of data can be sent to specific destinations (for example, ensuring only consented users are synced to email marketing).
  • Subsets – Divide your total addressable customer base into smaller segments, which is especially useful in workspaces that span multiple brands or regions.
  • Approval flows – Add peer review for sync and model changes before publishing.
  • Staging environments – Test and validate syncs in a dedicated space before going live to reduce the risk of errors in production.

You can use these features independently or in combination. You don't need to enable every governance feature — especially when you're just getting started. Many are built for large enterprises with complex brand or compliance needs.

If you'd like help designing the right setup, — we're here to help.


FAQ

How do I prevent a user from seeing a resource?

In Hightouch, all resources in a workspace are intentionally visible to all workspace members; configuration details are not hidden. Access control determines who can create or modify resources, but it cannot make resources invisible. If you need to restrict visibility of sensitive resources for certain users, consider placing these resources in a separate workspace.

What happens if a user belongs to more than one group?

Users can belong to multiple groups within the same workspace, allowing them to inherit permissions from more than one role at a time.

This setup is common. When a user is part of multiple groups, they receive the combined permissions of all their group memberships, meaning that they can perform all actions permitted to members of any of those groups.

However, this does not allow them to "mix and match" permissions across groups. In other words, if one group can sync from source A to destination B, and another group can sync from source C to destination D, a user who belongs to both groups can sync from A to B and C to D — but not from A to D or C to B.

Ready to get started?

Jump right in or a book a demo. Your first destination is always free.

Book a demoSign upBook a demo

Need help?

Our team is relentlessly focused on your success. Don't hesitate to reach out!

Feature requests?

We'd love to hear your suggestions for integrations and other features.

Privacy PolicyTerms of Service

Last updated: May 20, 2026

On this page
Send feedback