Skip to content

Creating an account

This is the path a new producer takes to set themselves up: they create a user account and a production company in a single form, and automatically become that company’s admin.

This is not the contributor path — contributors don’t create accounts up-front; they’re invited per project. Contributors only end up with an account if they explicitly choose to associate their survey responses with one.

sequenceDiagram
    actor User
    participant App as Your app
    participant Ory as Identity system

    User->>App: Open /create-account
    App-->>User: Form: name, company, email, password
    User->>App: Submit
    App->>Ory: Register account (email + password)
    Ory-->>App: Account created
    App->>App: Create production company + assign user as admin
    App->>App: Update user profile (name)
    App-->>User: Redirect to projects list

The flow does three things in sequence: register an account in the identity system, create the production company, and store the user’s name on their profile.

A single form with these fields:

FieldWhat it’s forTranslation key
NameThe user’s name (becomes the producer-side display name)auth.CreateAccount.labels.name
Company nameThe production company they’re setting upauth.CreateAccount.labels.company-name
Company URL (optional)The company’s websiteauth.CreateAccount.labels.company-url
EmailTheir account emailauth.CreateAccount.labels.email-address
PasswordTheir account password (min 8 characters)auth.CreateAccount.labels.password

Plus:

Visible textTranslation key
Page titleauth.common.create-account
Submit buttonauth.CreateAccount.agree-and-create
Terms and conditions blockauth.CreateAccount.terms-and-condition (rich HTML, sanitised)
“Already have an account?” linkauth.CreateAccount.already-have-account

A handful of toasts can appear on errors. The most user-relevant ones:

OutcomeTranslation key
Account already exists for this emailauth.CreateAccount.toast.account-exists (also redirects them to “Complete profile” so they can join an existing company instead)
Company creation failedauth.CreateAccount.toast.create-failed-generic
Network errorauth.CreateAccount.toast.network-error
Profile update warning (account created but name didn’t save)auth.CreateAccount.toast.profile-update-title / auth.CreateAccount.toast.profile-update-warning

All form text lives under auth.CreateAccount.* in tep-configuration/translations/{locale}/main/auth.json. The terms-and-conditions block is rendered as HTML (sanitised) — you can include links and basic formatting.

Override per client in clients/{client}/translations/{locale}/overrides.json.

If your Ory project is configured to send a verification email after account creation, the email itself is sent and templated by Ory — not by your app. Configure in the Ory dashboard.

Your deploymentWhat’s different
Customers with Ory verification enabledA verification email is sent by Ory after account creation. The user can still log in immediately; the verification confirms their email is reachable.
Mock-auth mode (development only)The identity step is skipped. Not relevant for customer deployments.

For code paths, the multi-mutation orchestration, and engineering notes, see Creating an account (engineering).