Skip to content

Roles & Permissions

Horizon uses role-based access control (RBAC) to determine what each user can see and do across the platform. Every user is assigned exactly one role within the organization. Roles define a set of permissions that govern access to features, data, and administrative actions.

Horizon ships with four built-in roles that cover common organizational structures:

The Owner role has unrestricted access to every feature and setting. Each organization has exactly one Owner. The Owner is the only role that can:

  • Delete the organization.
  • Transfer ownership to another user.
  • Modify billing and subscription settings.

Admins have full access to the platform except for the destructive organization-level actions reserved for the Owner. Admins can:

  • Manage all users, including inviting, deactivating, and role assignment.
  • Configure all settings (organization, connections, API keys, notifications).
  • Create, edit, deploy, and delete agents and apps.
  • View all departments and their resources.
  • Manage partner access and API keys.

Managers have broad access scoped to their assigned departments. They can:

  • Manage users within their department (invite, assign roles up to Manager).
  • Create and configure agents and apps within their department.
  • View and manage connections assigned to their department.
  • Approve agent actions that require human oversight within their department.
  • View department-level billing and usage data.

Managers cannot access organization-wide settings, billing, or resources in departments they are not assigned to.

Members have the most limited built-in role. They can:

  • Interact with agents deployed in their department (start conversations, review outputs).
  • View their own activity history and profile.
  • Customize personal notification preferences.
  • View (but not modify) department settings, connections, and agent configurations.

Members cannot create or deploy agents, manage users, or access settings.

The following table summarizes key permissions across built-in roles:

PermissionOwnerAdminManagerMember
Organization settingsFullFullViewView
User managementFullFullDepartmentNone
Role managementFullFullNoneNone
ConnectionsFullFullDepartmentView
Agent creationFullFullDepartmentNone
Agent interactionFullFullFullFull
Deployed appsFullFullDepartmentView
API keysFullFullOwn keysOwn keys
Billing & subscriptionsFullViewNoneNone
Partner managementFullFullViewNone
Notifications configFullFullDepartmentPersonal
Audit logsFullFullDepartmentNone

If the built-in roles do not fit your organization’s needs, you can create custom roles with fine-grained permission control.

  1. Navigate to Settings > Roles.
  2. Click Create Custom Role.
  3. Enter a name and description for the role.
  4. Select a base role to start from (this pre-fills permissions that you can then adjust).
  5. Configure permissions for each section (see below).
  6. Click Save Role.

Custom roles allow you to set permissions at the section level. Each section supports up to four permission levels:

LevelDescription
NoneThe user cannot see or access this section.
ViewThe user can view data but cannot make changes.
EditThe user can view and modify resources within this section.
FullThe user can view, modify, create, and delete resources, and manage section-specific settings.

Sections that support granular permissions include:

  • Organization Settings — general organization configuration.
  • User Management — inviting, editing, and deactivating users.
  • Connections — managing third-party integrations.
  • Agents & Apps — creating, configuring, and deploying AI agents and apps.
  • Departments — viewing and managing department resources.
  • API Keys — creating and revoking API keys.
  • Billing — viewing and managing wallets, subscriptions, and invoices.
  • Partners — managing partner organizations and shared access.
  • Notifications — configuring organization-wide notification settings.
  • Store — installing and publishing apps, agents, and skills.
  • Audit Logs — viewing organization activity logs.

For custom roles, you can optionally restrict access to specific departments. When department scoping is enabled:

  • The user only sees resources (agents, apps, connections) assigned to their scoped departments.
  • Their edit and management permissions apply only within those departments.
  • Organization-level resources (settings, billing) are governed by the section-level permission, not the department scope.

To assign or change a user’s role:

  1. Navigate to Settings > Users.
  2. Click on the user.
  3. In the Role dropdown, select the new role.
  4. If the role supports department scoping, select the applicable departments.
  5. Click Save.

Role changes take effect immediately. If the user is currently signed in, their permissions update on the next page load or API call without requiring a sign-out.

  • Editing — changes to a custom role’s permissions affect all users currently assigned that role. The update propagates immediately.
  • Deleting — you cannot delete a custom role that has users assigned to it. Reassign those users to a different role first, then delete the custom role.

Built-in roles (Owner, Admin, Manager, Member) cannot be edited or deleted.

Roles also govern API access. When a user creates an API key, the key inherits the user’s role permissions. API calls made with that key are subject to the same RBAC rules as the user’s interactive session.

For service-to-service integrations where no user context exists, use organization-level API keys created by an Admin or Owner. These keys can be scoped independently of user roles. See API Reference > Authentication for details.