Roles and Access Control
ActivityPulse uses a role-based access control (RBAC) model with four roles, organized in a hierarchy from highest to lowest privilege: Owner, Admin, Manager, and Viewer.
Role Hierarchy
Owner
↓
Admin
↓
Manager
↓
Viewer
A higher role always has all the permissions of lower roles (hierarchical). For example, an Admin can do everything a Manager can do, plus additional admin functions.
Owner
Full administrative control. Owners can:
- Perform all Admin and Manager actions
- Promote and demote Admins (change their role)
- Promote and demote Owners (only Owners can manage ownership)
- Delete the entire organization and all its data
When to use: The Owner role is the highest authority in the organization. Assign it to the person or group responsible for organizational decisions. An organization must have at least one Owner at all times.
Admin
Configuration and user management. Admins can:
- Perform all Manager and Viewer actions
- Create, edit, and delete teammates and their external ID mappings
- Create and manage teams
- Configure data sources (GitLab, Jira, Azure DevOps, etc.)
- Change LLM, sync, and email settings
- Add, invite, and remove users from the organization
- Promote and demote Managers and Viewers
- Link user accounts to their teammate profiles (Teammate column on the Users page)
When to use: Admins handle setup, configuration, and ongoing system management. Assign this role to people who set up integrations, manage team structure, and maintain organization settings.
Manager
Team management and team-scoped data access. Managers can:
- Perform all Viewer actions (see their own activity data and scoped team data)
- Manage a curated list of direct reports
- Configure which teams they can see (via “Manage Team Access”)
- Add or remove teammates as direct reports
- Access the “My Direct Reports” page for a dedicated team management view
- Configure their own email report settings
When to use: Assign the Manager role to team leads, engineering managers, or anyone who needs to track activity for specific team members. By default, a newly promoted Manager sees all teammates; Admins should configure team access to scope them appropriately.
Data visibility:
- By default, a Manager with no team assignments sees all teammates.
- If team assignments are configured, a Manager sees the union of:
- their own activity (via their teammate link, exactly like a Viewer),
- activity for teammates in their assigned teams, and
- activity for their direct reports — even when a report belongs to none of the assigned teams.
- The set is additive: narrowing a Manager’s team access never removes their own activity or their direct reports from view. When narrowing a Manager’s team access, review their direct reports list as well — reports added under a wider grant stay visible until they are removed from the list.
- Like a Viewer, a Manager must be linked to a teammate record for the “own activity” part, and direct reports also hang off the manager’s teammate record. An unlinked Manager with team assignments sees only the assigned teams’ activity.
Viewer
Self-only data access by default, optionally extended by team grants. Viewers can:
- See their own activity data (after being linked to a teammate record)
- Optionally see activity for teammates in teams an admin has granted them
- Configure their own email report settings
- View the dashboard, activities, and summaries within that scope
When to use: Assign the Viewer role to individual contributors, specialists, or anyone who should see only their own activity by default. Use the optional team grants when a Viewer needs visibility into a specific squad or focus area without taking on the broader management responsibilities of the Manager role.
Data visibility:
- By default, a Viewer with no team assignments sees only their own activity (after being linked to a teammate record).
- If team assignments are configured (via the row’s ⋮ menu → Manage team access on People → Users), the Viewer additionally sees activity for teammates in their assigned teams.
- The set is additive: a linked Viewer with team grants sees their own activity plus the granted teams’ teammates. Granting team access can only ever extend a Viewer’s view — it never removes their own activity from it.
- A Viewer with no link and no grants sees nothing (fail-closed).
Important: A Viewer must be linked to a teammate record to see their own activity. The link is established in one of two ways:
- Automatically whenever a teammate with the same email exists or is created — the link is created immediately at the relevant event (Add User, Invite, or Teammate creation) and the Teammate column on the Users page shows the linked name, including for pending invitations. The “Add teammate with the same email” checkbox on the Add User / Invite User dialogs (checked by default) covers the case where no matching teammate exists yet.
- Manually by an Admin via the row’s ⋮ menu → Manage teammate link — used for typos, aliases, second accounts, ambiguous email matches across multiple teammates, or to correct an existing link.
An unlinked Viewer with no team grants cannot access the dashboard or see any data.
Assigning and Changing Roles
Initial Assignment
When you invite a user, you select their role at invite time. The user receives an email with a link to set their password and join the organization.
Changing Roles
To change a user’s role:
- Go to Settings > Users
- Find the user in the table
- Click the role dropdown
- Select the new role
Important when demoting to Viewer:
If you demote a Manager to Viewer, their direct reports list is automatically deleted. Direct reports are a Manager concept — once a user becomes a Viewer, they no longer have the manager-oriented “My direct reports” preset or related views. Any existing user_team_access grants on the row can be preserved through the demotion dialog, since Viewers also honor team grants as an extension of their own activity view.
Hierarchy and Permission Examples
| Action | Owner | Admin | Manager | Viewer |
|---|---|---|---|---|
| See own activity | Yes | Yes | Yes (if linked) | Yes (if linked) |
| See direct reports’ activity | Yes | Yes | Yes | No |
| See team activity | Yes | Yes | Yes (if granted) | Yes (if granted) |
| Manage direct reports | Yes | Yes | Yes | No |
| Manage teammates | Yes | Yes | No | No |
| Manage teams | Yes | Yes | No | No |
| Configure data sources | Yes | Yes | No | No |
| Link users to teammates | Yes | Yes | No | No |
| Invite users | Yes | Yes | No | No |
| Change user roles | Yes | Yes | No | No |
| Manage organization settings | Yes | Yes | No | No |
| Delete organization | Yes | No | No | No |
Best Practices
- Principle of Least Privilege: Assign the lowest role that allows a user to do their job. Don’t make everyone an Admin.
- Designate Admins Carefully: Admins can change configuration and data source settings. Designate a small number of trusted people.
- Use Managers for Team Leads: If you want team leads to have visibility into their team’s activity without full admin access, use the Manager role.
- Check Viewer Links: After inviting Viewers, the Users page Teammate column shows their link state. Most Viewers are linked automatically; for users with no email match or an ambiguous match, use the row’s ⋮ menu → Manage teammate link.
- Monitor Team Access: Regularly audit Manager team assignments to ensure they’re scoped appropriately and not too broad. When narrowing a Manager’s team access, also review their direct reports list: direct reports remain visible to the Manager regardless of team assignments, so reports added under a wider grant keep their visibility until removed.