Managing Organizations and Teams
Organizations are the top-level entity in PostHog, containing projects, teams, and members. This guide covers organization setup, member management, and permission controls.Organization Structure
Each organization can have:- Multiple projects (teams) for different products or environments
- Members with different permission levels
- Shared billing and security settings
- Custom branding (logo, domain configuration)
Organization Membership Levels
PostHog supports four membership levels defined inposthog/models/organization.py:99-104:
- Owner - Full administrative control, can delete organization
- Admin - Can manage members, settings, and projects
- Member - Can access projects and use features
- Read-only - View-only access to data
Creating an Organization
Organizations are created automatically during signup. To create additional organizations:On self-hosted instances without a premium license, you’re limited to one organization. PostHog Cloud supports multiple organizations on paid plans.
Member Management
Inviting Members
Organization admins can invite new members:- Go to Organization settings → Members
- Click Invite member
- Enter email address and select role
- Member receives an invitation email valid for 3 days
The
members_can_invite setting (posthog/api/organization.py:113) controls whether regular members can send invites. This requires the ORGANIZATION_INVITE_SETTINGS feature.Changing Member Roles
To update a member’s role:- Navigate to Organization settings → Members
- Find the member and click the role dropdown
- Select the new role
- Changes take effect immediately
Removing Members
Admins and Owners can remove members:- Go to Organization settings → Members
- Click the menu next to the member
- Select Remove from organization
- Confirm the action
- They lose access to all projects in the organization
- Their personal API keys are invalidated for this organization
- Activity logs record the removal (
posthog/api/organization.py:490-510)
Organization Settings
General Settings
Available inposthog/api/organization.py:97-123:
- Name - Organization display name
- Slug - URL-friendly identifier (auto-generated)
- Logo - Custom branding image
- Default role - Automatically assigned to new members
Security Settings
Configure organization-wide security policies:Two-Factor Authentication (2FA)
Two-Factor Authentication (2FA)
Enforce 2FA (Requires the
enforce_2fa field)Require all members to enable 2FA before accessing the organization.TWO_FACTOR_ENFORCEMENT feature flag.Personal API Keys
Personal API Keys
Members can use personal API keys (
members_can_use_personal_api_keys)Control whether members can create and use personal API keys.- Set to
true- Members can generate personal API keys - Set to
false- Only admins can use API keys
ORGANIZATION_SECURITY_SETTINGS feature.Public Sharing
Public Sharing
Allow publicly shared resources (
allow_publicly_shared_resources)Enable or disable public sharing of insights and dashboards.When disabled:- Members cannot create public share links
- Existing public links are deactivated
- Validation enforced at
posthog/api/organization.py:207-214
Team and Project Access
Viewing Teams
Organizations contain multiple teams (projects). Members see teams based on their access level:Team-Level Permissions
Individual projects can have restricted access:- Admins see all teams by default
- Members see only teams they’re explicitly added to
- Access control enforced via
user_permissions.team_ids_visible_for_user
Organization Deletion
To delete an organization:Cancel Active Subscriptions
On PostHog Cloud, cancel any active billing subscriptions first (enforced at
posthog/api/organization.py:326-330)- All projects and teams
- Event data from ClickHouse
- PostgreSQL records
- Batch exports
- Members receive email notifications
Advanced Configuration
IP Anonymization
Set default IP anonymization for new projects:Session Cookie Age
Customize session expiration:SESSION_COOKIE_AGE setting.
AI Data Processing
Control whether organization data can be used for AI features:Activity Logging
All organization changes are tracked in activity logs (posthog/api/organization.py:428-444):
- Organization created/updated/deleted
- Member added/removed/role changed
- Invitations sent/accepted/cancelled
- Settings modified