Skip to main content

Roles & Permissions That Actually Make Sense

What you’ll get out of this

  • Smart permission levels that give people access to what they need, not everything
  • Role-based security that keeps your data safe without being annoying
  • Easy team management that doesn’t require a security clearance to understand
  • Audit trails that show who did what, when, and why
Stop giving everyone admin access because you can’t figure out the permissions. Set up roles that actually work for your business.

Role Hierarchy

Standard Roles

Owner
  • Full administrative access to the team
  • Can manage billing and subscriptions
  • Can invite and remove team members
  • Access to all CRM features and data
  • Can modify security settings and policies
Manager
  • Team configuration and user management
  • Access to team analytics and reports
  • Can manage customer data and orders
  • Cannot modify billing or subscription settings
  • Can assign roles to staff members
Staff
  • Limited access to assigned functionality
  • Can view and edit assigned customers
  • Cannot access team management features
  • Read-only access to reports
  • Cannot modify system settings
Guest
  • Read-only access to specific data
  • Cannot modify any records
  • Limited to assigned customer accounts
  • No access to sensitive information
  • Temporary or contractor access

Custom Roles

// Create a custom role
const customRole = await crm.roles.create({
  name: "Sales Representative",
  description: "Customer-facing sales team member",
  permissions: [
    "customers.read",
    "customers.write", 
    "orders.read",
    "orders.write",
    "products.read",
    "quotes.write"
  ],
  restrictions: {
    customerAccess: "assigned", // only assigned customers
    dataExport: false,
    bulkOperations: false
  }
});

Permission System

Permission Categories

Customer Management
  • customers.read - View customer information
  • customers.write - Create and modify customers
  • customers.delete - Delete customer records
  • customers.export - Export customer data
  • customers.import - Import customer data
Order Processing
  • orders.read - View order information
  • orders.write - Create and modify orders
  • orders.process - Process and fulfill orders
  • orders.refund - Process refunds and returns
  • orders.cancel - Cancel pending orders
Payment Handling
  • payments.read - View payment information
  • payments.process - Process payments
  • payments.refund - Issue refunds
  • payments.reconcile - Reconcile payment records
  • payments.export - Export payment data
Product Management
  • products.read - View product catalog
  • products.write - Create and modify products
  • products.delete - Remove products
  • products.pricing - Manage pricing and discounts
  • products.inventory - Manage inventory levels
Reporting & Analytics
  • reports.read - View standard reports
  • reports.create - Create custom reports
  • analytics.read - Access analytics dashboards
  • analytics.export - Export analytics data
  • analytics.advanced - Access advanced analytics
Administration
  • team.read - View team information
  • team.write - Manage team members
  • roles.read - View role assignments
  • roles.write - Manage roles and permissions
  • settings.write - Modify system settings

Permission Modifiers

Data Scope
  • all - Access to all records
  • assigned - Only assigned records
  • department - Department-level access
  • team - Team-level access
Operation Scope
  • read - View-only access
  • write - Create and modify access
  • delete - Deletion privileges
  • export - Data export capabilities

Access Control Rules

Data Filtering

  • Record-Level Security: Filter data based on user permissions
  • Field-Level Security: Hide sensitive fields from unauthorized users
  • Dynamic Filtering: Real-time permission-based data filtering
  • Inheritance Rules: Permission inheritance from parent records

Operation Restrictions

  • Bulk Operations: Restrict mass data operations
  • Data Export: Control data export capabilities
  • API Access: Limit API endpoint access
  • Time-Based Access: Restrict access to specific time periods

Security Policies

  • Password Requirements: Enforce password complexity
  • Session Management: Control session duration and limits
  • IP Restrictions: Limit access by IP address
  • Device Management: Control access by device type

Role Management

Creating Roles

// Define a custom role with specific permissions
const role = await crm.roles.create({
  name: "Customer Service Rep",
  description: "Customer service team member",
  permissions: [
    "customers.read",
    "customers.write",
    "orders.read", 
    "orders.process",
    "tickets.read",
    "tickets.write"
  ],
  dataScope: {
    customers: "assigned",
    orders: "department",
    tickets: "all"
  },
  restrictions: {
    bulkOperations: false,
    dataExport: true,
    maxCustomers: 500
  }
});

Role Assignment

  • Direct Assignment: Assign roles directly to users
  • Group Assignment: Assign roles to user groups
  • Temporary Roles: Time-limited role assignments
  • Conditional Roles: Role activation based on conditions

Role Inheritance

  • Hierarchical Roles: Roles inherit from parent roles
  • Permission Stacking: Combine multiple roles per user
  • Override Rules: Higher roles can override lower permissions
  • Conflict Resolution: Handle permission conflicts

Compliance & Auditing

Audit Trails

  • Permission Changes: Track all role and permission modifications
  • Access Logs: Monitor user access patterns
  • Failed Attempts: Log unauthorized access attempts
  • Data Access: Track sensitive data access

Compliance Features

  • Segregation of Duties: Prevent conflicting role assignments
  • Approval Workflows: Require approval for sensitive operations
  • Regular Reviews: Automated permission review reminders
  • Compliance Reporting: Generate regulatory compliance reports

Security Monitoring

  • Anomaly Detection: Identify unusual access patterns
  • Privilege Escalation: Monitor for unauthorized privilege increases
  • Inactive Users: Identify and manage inactive user accounts
  • Risk Assessment: Evaluate permission-based security risks

Best Practices

Role Design

  • Principle of Least Privilege: Grant minimum necessary permissions
  • Role Clarity: Create clear, well-defined roles
  • Regular Reviews: Periodically review and update roles
  • Documentation: Maintain comprehensive role documentation

Permission Management

  • Granular Control: Use specific permissions rather than broad access
  • Regular Audits: Conduct regular permission audits
  • Approval Process: Implement approval workflows for sensitive permissions
  • Monitoring: Continuously monitor permission usage

Security Implementation

  • Multi-Factor Authentication: Require MFA for privileged roles
  • Session Management: Implement appropriate session controls
  • Access Reviews: Regular access certification processes
  • Incident Response: Maintain procedures for permission-related incidents
For detailed API documentation, see our API Reference section.