What You’ll Learn
This guide covers comprehensive team management in Junis:- Inviting Members: Add team members via email invitation
- Role Management: Assign and update roles (OWNER, ADMIN, MEMBER, VIEWER)
- Permission Control: Configure granular permissions for each member
- Invitation Flow: Manage pending invitations and acceptance process
- Member Removal: Remove members with proper safeguards
- Best Practices: Organize your team structure effectively
Prerequisites: You must be an OWNER or ADMIN with
members.invite permission to invite team members.Team Member Roles
Role Hierarchy
Junis uses a 4-tier role system with inherited permissions:Role Comparison Matrix
| Feature | OWNER | ADMIN | MEMBER | VIEWER |
|---|---|---|---|---|
| Agents | ||||
| Create agents | ✅ | ✅ | ✅ | ❌ |
| Edit own agents | ✅ | ✅ | ✅ | ❌ |
| Edit all agents | ✅ | ✅ | ❌ | ❌ |
| Delete agents | ✅ | ✅ | ❌ | ❌ |
| View all agents | ✅ | ✅ | ✅ | ✅ |
| Members | ||||
| Invite members | ✅ | ✅ | ❌ | ❌ |
| Remove members | ✅ | ✅ | ❌ | ❌ |
| Edit permissions | ✅ | ✅ | ❌ | ❌ |
| Organization | ||||
| Edit settings | ✅ | ✅ | ❌ | ❌ |
| View analytics | ✅ | ✅ | ❌ | ❌ |
| Delete organization | ✅ | ❌ | ❌ | ❌ |
| Sessions & Chat | ||||
| Create sessions | ✅ | ✅ | ✅ | ✅ |
| View own sessions | ✅ | ✅ | ✅ | ✅ |
| View all sessions | ✅ | ✅ | ❌ | ❌ |
Inviting Team Members
Email-Based Invitation
Junis uses an email-based invitation system:1
Navigate to Team Settings
Go to Team > Members in your organization dashboard.
2
Click 'Invite Member'
Click the “Invite Member” button in the top-right corner.
3
Enter Member Details
Fill in the invitation form:
- Email: Member’s email address (required)
- Role: Select initial role (ADMIN, MEMBER, or VIEWER)
- Custom Permissions: (Optional) Customize permissions for this member
4
Send Invitation
Click “Send Invitation” to create the invitation.
Invitation Flow
Invitation States
- PENDING
- ACTIVE
- SUSPENDED
Member Invited but Not Signed UpWhat Happens:
- Member record created with email
user_idis NULL- Status is
PENDING - Member cannot access organization yet
- Grey status badge: “Pending Invitation”
- Email shown, no avatar
- “Resend Invitation” button available
- “Cancel Invitation” button available
- Invitee signs up with the invited email
- System automatically links
user_idand activates membership - Status changes to
ACTIVE
Managing Roles and Permissions
Changing Member Roles
1
Navigate to Members List
Go to Team > Members.
2
Select Member
Click the “Edit” icon next to the member’s name.
3
Update Role
In the edit dialog:
- Select new role from dropdown
- Choose whether to apply default permissions for the new role
- Click “Save Changes”
4
Confirm Changes
Review the confirmation dialog showing permission changes.
Click “Confirm” to apply.
Default Permissions by Role
OWNER Permissions
OWNER Role: Cannot be customized. Always has full permissions.
ADMIN Permissions
ADMIN Difference: Almost identical to OWNER, but cannot delete the organization.
MEMBER Permissions
MEMBER Role: Default role for new team members. Can create agents but cannot manage other members.
VIEWER Permissions
Custom Permissions
Granular Permission Control
Beyond roles, you can customize individual permissions for specific members.Permission Structure
How to Set Custom Permissions
- Via Admin UI
- Via API
Steps:
- Go to Team > Members
- Click “Edit” on member
- Select role (e.g., MEMBER)
- Uncheck “Apply default permissions”
- Toggle individual permission switches
- Click “Save”
- Member role but allow viewing analytics
- Admin role but restrict agent deletion
Common Custom Permission Patterns
Analyst Role
MEMBER + view_analytics
- Can create agents
- Can view analytics dashboard
- Cannot invite members
- Cannot edit organization settings
Developer Role
MEMBER + edit agents
- Can create and edit all agents
- Cannot delete agents
- Cannot manage members
- Can view all agents
Manager Role
MEMBER + invite members
- Can create agents
- Can invite new members
- Cannot edit permissions
- Cannot edit organization settings
Restricted Admin
ADMIN - delete agents
- Full admin permissions
- Cannot delete agents (safety measure)
- Can edit settings
- Can invite members
Managing Pending Invitations
Viewing Pending Invitations
1
Navigate to Members
Go to Team > Members.
2
Filter by Status
Use the status filter dropdown and select “Pending”.
3
View Details
Pending invitations show:
- Email address (no avatar)
- Role assigned
- “Pending Invitation” badge
- Invited date
- Invited by (admin name)
Resending Invitations
If an invitee didn’t receive the invitation email:1
Find Pending Member
Filter members list by “Pending” status.
2
Click 'Resend'
Click the “Resend Invitation” button next to the member.
3
Confirm
A new invitation email will be sent.
Email Delivery: Invitation emails may take up to 5 minutes to arrive. Check spam folder if not received.
Canceling Invitations
To cancel a pending invitation:1
Find Pending Member
Go to Team > Members and filter by “Pending”.
2
Click 'Cancel'
Click the “Cancel Invitation” button.
3
Confirm Deletion
Confirm in the dialog. The invitation will be permanently removed.
Invitee Acceptance Flow
When an invitee signs up:Automatic Activation: No manual approval needed. As soon as the invitee signs up, they gain access.
Removing Members
Safe Member Removal
1
Navigate to Members
Go to Team > Members.
2
Select Member
Click the “Remove” button next to the member’s name.
3
Review Impact
A confirmation dialog shows:
- Member name and email
- Number of agents they created
- Number of active sessions
- Warning if last OWNER
4
Confirm Removal
Click “Remove Member” to confirm.
What Happens When a Member is Removed
- Immediate Effects
- Database Changes
- Re-Invitation
Access Revoked:
- Member cannot access organization immediately
- Active sessions are terminated on next request
- WebSocket connections are closed
- API tokens no longer valid for this organization
- Agents created by member remain (ownership transferred to OWNER)
- Sessions created by member remain (for audit trail)
- Chat history preserved
Last OWNER Protection
Suspending vs Removing
| Action | Access Revoked | Data Deleted | Reversible | Use Case |
|---|---|---|---|---|
| Suspend | ✅ Yes | ❌ No | ✅ Yes (Reactivate) | Temporary leave, investigation |
| Remove | ✅ Yes | ✅ Yes (member record) | ❌ No (must re-invite) | Permanent departure |
Suspension (coming soon): Use suspension for temporary access removal. Use removal for permanent offboarding.
Team Structure Best Practices
Recommended Team Sizes
- Small Team (1-10)
- Medium Team (11-50)
- Large Team (51+)
Structure:
- 1 OWNER (founder or technical lead)
- 1-2 ADMIN (co-founders or senior engineers)
- Remaining as MEMBER (developers, analysts)
- Keep it simple: use default permissions
- Everyone can create agents (MEMBER role)
- Admins handle member management
Role Assignment Guidelines
Who Should Be OWNER?
Assign OWNER to:
- Organization creator
- Ultimate decision maker
- Person responsible for billing
- Most trusted individual
Who Should Be ADMIN?
Assign ADMIN to:
- Team leads
- Senior engineers
- Department heads
- Trusted power users
Who Should Be MEMBER?
Assign MEMBER to:
- Regular engineers
- Analysts
- Designers
- Most contributors
Who Should Be VIEWER?
Assign VIEWER to:
- External stakeholders
- Clients (demos)
- Executives (read-only access)
- Auditors
Permission Management Tips
✅ DO:
- Start with default permissions for each role
- Grant least privilege (minimum permissions needed)
- Review permissions quarterly
- Use custom permissions sparingly
- Document why custom permissions were granted
- Revoke permissions immediately upon offboarding
Troubleshooting Common Issues
Invitee Didn't Receive Email
Invitee Didn't Receive Email
Symptoms: Member invited but email not receivedPossible Causes:
- Email in spam folder
- Email delivery delay (up to 5 minutes)
- Typo in email address
- Email provider blocking automated emails
- Check spam/junk folder
- Wait 5-10 minutes and check again
- Verify email address is correct (cancel and re-invite if typo)
- Resend invitation from members list
- Contact support if issue persists
Cannot Remove Member
Cannot Remove Member
Symptoms: “Remove Member” button is disabled or shows errorPossible Causes:
- Trying to remove last OWNER
- Insufficient permissions (not OWNER/ADMIN)
- Member is yourself (cannot self-remove OWNER)
- Last OWNER: Promote another member to OWNER first
- Permissions: Ask an ADMIN or OWNER to remove
- Self-removal: Ask another ADMIN/OWNER to remove you
Member Has Wrong Permissions
Member Has Wrong Permissions
Symptoms: Member cannot perform expected actionsDebugging Steps:
- Check member’s role in Team > Members
- Verify custom permissions (if any)
- Check organization status (must be ACTIVE)
- Verify member status is ACTIVE (not PENDING or SUSPENDED)
- Update role to appropriate level
- Add custom permissions if needed
- Reactivate member if suspended
- Wait for organization approval if PENDING
Invitation Not Auto-Activating
Invitation Not Auto-Activating
Symptoms: User signed up but still shows PENDINGPossible Causes:
- User signed up with different email
- Email case mismatch ([email protected] vs [email protected])
- Database sync delay
- Verify user signed up with exact email from invitation
- Check for case sensitivity (emails should be case-insensitive)
- Wait 1-2 minutes for database sync
- Cancel invitation and re-invite with correct email
- Contact support if issue persists
Too Many Pending Invitations
Too Many Pending Invitations
Symptoms: Members list cluttered with old pending invitationsCleanup Steps:
- Go to Team > Members
- Filter by “Pending” status
- Sort by “Invited Date” (oldest first)
- Cancel invitations older than 30 days
- Resend invitations for current team members
- Cancel invitations after 7 days of no response
- Follow up via personal email
- Use expiration dates (feature: coming soon)
API Reference for Team Management
List Organization Members
Endpoint:GET /api/organizations/{organization_id}/members
Authentication: Bearer token required
Query Parameters:
status(optional): Filter by status (PENDING, ACTIVE, SUSPENDED)role(optional): Filter by role (OWNER, ADMIN, MEMBER, VIEWER)
Invite Member
Endpoint:POST /api/organizations/{organization_id}/members
Authentication: Bearer token with members.invite permission
Request Body:
Update Member Role
Endpoint:PUT /api/organizations/{organization_id}/members/{member_id}
Authentication: Bearer token with members.edit_permissions permission
Request Body:
Remove Member
Endpoint:DELETE /api/organizations/{organization_id}/members/{member_id}
Authentication: Bearer token with members.remove permission
Response:
What’s Next?
Multi-Organization Setup
Learn how to manage multiple organizations effectively
Best Practices
Organization naming, security, and scaling strategies
Organization Overview
Back to organization system overview
API Keys Management
Manage API keys for programmatic access
Additional Resources
- Organization API Reference: Full API documentation for all organization endpoints
- Permission Schema: Detailed permission structure and validation rules
- Security Best Practices: Guidelines for secure team management
- Audit Logs: Track member activity and permission changes (feature: coming soon)
Need Help? Contact your organization OWNER or Junis support at [email protected] for assistance with team management.
