Overview
The permission system determines agent access through multiple pathways:- Public agent flag
- Direct user-to-agent links
- Permission-based access
- Access control rules
- System requirements
Public Agents
Toggle Make this agent public in an agent’s Access Control tab to let every user call it — including non-authenticated users — regardless of permissions or rules. Use this for agents meant to be available to everyone (for example, a general help agent) instead of linking the agent to every permission. An inactive agent is never accessible, even when marked public.How Access Is Determined
The system evaluates checks in order. The first one that matches grants access. If none match, the request is rejected with a 403 Forbidden error.When the 403 Forbidden error is raised
Users see a Forbidden error when every check above fails:- They are not staff or superuser.
- The agent is not marked public (or the agent is inactive).
- None of the user’s permissions list the agent or set it as the default agent.
- The agent is not directly linked to the user.
- No access control rule that matches the user links to the agent.
Access Pathways Explained
Important: A user needs only ONE pathway to grant access. Pathways are evaluated with OR logic.
Permissions and User Types
Permissions (also called “user types”) group users with similar access needs. Each permission can be linked to multiple agents.Permission Configuration
How Permissions Work
- User Creation: User is assigned one or more permissions
- Agent Discovery: System compiles agents from all user’s permissions
- Display: User sees combined list of accessible agents
- Selection: Default agent is determined by permission priority
Default Agent Selection
When a user doesn’t explicitly select an agent, the system determines which agent to show using this logic:Priority Order
- Explicitly selected permission’s default agent
- Highest priority permission’s default agent
- First agent linked to highest priority permission
- First agent from user’s access rules
Configuring Permissions
Creating Permissions
- Navigate to Settings → User Management → Permissions tab
- Click Create Permission or edit existing
- Configure fields:
- Name and description
- Priority number (higher = selected first)
- Linked agents
- Default agent selection
- Click Save
Assigning Permissions to Users
- Navigate to Settings → User Management → Users tab
- Select the user to configure
- Go to the Permissions tab
- Add or remove permissions as needed
- Click Save
Direct Agent Links
For special cases, link users directly to agents without going through permissions.Use Cases
- Executive access to specific agents
- Testing access for QA users
- Temporary project-based access
Configuration
- Navigate to Settings → User Management → Users tab
- Select the user
- Go to the Direct Agents tab
- Add specific agents to grant direct access
- Click Save
Note: Direct links take precedence but don’t override permission-based default agent selection.
Access Control Rules
Access rules provide dynamic, attribute-based access. See Access Control Rules for detailed configuration.How Rules Interact with Permissions
Widget Permission Override
When embedding the widget on third-party sites, you can dynamically assign a permission to a user by passing theX-Widget-Permission header in widget requests:
Impersonation and Permissions
When using impersonation, the agent list updates to show only agents accessible to the selected permission.Impersonation Flow
- Select a permission to impersonate
- Agent list refreshes to show:
- Agents linked to the selected permission
- Agents from access rules applicable to that permission
- Direct-linked agents (if any)
API Reference
For programmatic access to permissions and user management, see:- Public API v1 Reference - Permission and user management
Best Practices
Permission Design
- Group by role: Create permissions matching organizational roles
- Use meaningful priorities: Higher priority for more common roles
- Set defaults thoughtfully: Default agent should serve most use cases
Access Management
- Prefer permissions over direct links: Easier to maintain at scale
- Use access rules for dynamic access: When access depends on user attributes
- Audit regularly: Review who has access to which agents
Troubleshooting Access
- Test with impersonation: Verify access before user complaints
- Check all pathways: A user might have access through unexpected paths
- Review rule conditions: Access rules can grant unexpected access
Troubleshooting
Issue: User can't see expected agent
Issue: User can't see expected agent
Problem: Agent doesn’t appear in user’s list.Solutions:
- Verify agent is active (not disabled)
- Check user’s permissions include the agent
- Review access rules that might exclude the agent
- Test with impersonation to see user’s view
Issue: Wrong default agent selected
Issue: Wrong default agent selected
Problem: User sees unexpected agent as default.Solutions:
- Check permission priorities (highest number wins)
- Verify default agent is set on the correct permission
- Ensure user doesn’t have higher-priority permissions
Issue: User sees too many agents
Issue: User sees too many agents
Problem: User has access to agents they shouldn’t see.Solutions:
- Audit user’s permissions for unnecessary links
- Review access rules for overly broad conditions
- Check for direct agent links
- Consider using more restrictive permissions
Issue: Access rule not granting access
Issue: Access rule not granting access
Problem: User matches rule but can’t access agent.Solutions:
- Verify rule condition syntax is correct
- Check rule is active (not disabled)
- Ensure agent is linked to the rule
- Test rule conditions with actual user attributes
Related Documentation
- Access Control Rules - Detailed rule configuration
- Access Control Examples - Common access patterns
- User Impersonation - Test permission configurations
- Agents - Agent configuration options
