These initialization steps must be completed after
helm install before the platform is usable by any users.Overview
After successfully installing CrewAI Platform, perform these initial setup tasks to configure the system and prepare it for use.Required: First Boot Initialization
Initialize Internal Organization
If you’re using Multi-Organization Namespace Isolation, the
studio:install_internal_organization command will expect the namespaces described in the feature guide to exist before running.Set Up Default Permissions
Understanding Organization IDs Organization IDs are sequential integers assigned by the database. After runningstudio:install_internal_organization, the internal CrewAI organization receives ID 1. The first customer-facing organization created in the UI receives ID 2. To list all organizations and their IDs:
Local auth (AUTH_PROVIDER: local) users: Before running
factory:add_owner or factory:grant_admin, your admin user must exist in the database. With SSO providers, the user record is created automatically on first login. With local auth, the user must self-register:- Navigate to
https://<APPLICATION_HOST>/users/sign_up - Register with the email address you will use for
factory:add_ownerandfactory:grant_admin - Then run the kubectl exec commands below
factory:add_owner[2,admin@company.com] before the user record exists, the command will silently succeed but assign the role to a non-existent user, and the next login will not have admin access.Role distinction:
factory:add_owner grants organization ownership within a specific org (org-scoped). factory:grant_admin grants access to the platform Admin Panel (global). Admins typically need both.There is no
adminUsers Helm key. Admin roles must be set via the kubectl exec commands below — they cannot be pre-configured in values.yaml.kubectl exec call):
Grant Admin Panel Access
Grant users access to the admin panel by assigning thefactory-admin role.
For all other authentication providers, use the following Rails commands:
Sync Built-In Integrations
If you have configured OAuth credentials for Built-In Integrations (Google Workspace, Microsoft 365, HubSpot, Notion, or Salesforce), you need to sync the integration definitions so the platform recognizes them. Option 1: Via Admin Panel- Log in to the CrewAI web UI as an admin
- Navigate to Admin Panel > Tools & Integrations
- Click the Sync Integrations button
Optional: Additional Configuration
Enable Studio V2 (Optional)
There are no Helm values for Studio V2. Adding
studioV2.enabled or STUDIO_V2_ENABLED to your values.yaml has no effect — Helm silently ignores unrecognized keys.GitOps users: The UI steps cannot be automated via ArgoCD or Flux — Studio V2 requires interactive browser-based setup. Only the
kubectl exec commands can be applied declaratively.studio-v2.
Step 2: Set as Default Connection (UI)
In the UI, set the studio-v2 connection as the default LLM connection.
Step 3: Run the activation commands (kubectl)
After completing both UI steps, run these three commands in order:
Configuring the Studio Agent Model
By default, the Studio Agent uses an Anthropic model to chat, build crews, and generate code. To use a different model, set theMODEL in the studio-v2 LLM connection you created during Studio V2 setup. The Studio Agent supports any model available through LiteLLM.
Enable Multi-Organization Namespace Isolation (Optional)
If you plan to use namespace isolation between organizations, enable it before deploying any crews. See Multi-Organization Namespace Isolation.Accessing the Application
Choose the appropriate access method for your deployment:Via Port Forwarding (Development)
Via Ingress (Production)
If ingress is enabled, access via your configured hostname:Via LoadBalancer (Alternative)
If using LoadBalancer service type:Verification Steps
After completing post-installation setup:- Access the Web UI using one of the methods above
- Log in with your configured authentication provider
- Verify admin access by checking user permissions
- Run the health diagnostic to verify all components are functional:
All components should report
"status": "ok". The endpoint requires the auto-generatedFACTORY_DEBUG_TOKEN(or a signed-infactory-adminsession); unauthorized callers receive404. For detailed troubleshooting if any checks fail, see Factory Health & Debug. - Test basic functionality by creating a test crew or project
- Check background workers are processing jobs:
