Becoming a company admin
This flow is for the case where a production company already exists in your deployment (for example, it was pre-created from a broadcaster’s XML feed of upcoming projects) but no human admin has been assigned to it yet. Someone with authority over that company is invited via email to “adopt” it — and once they accept, they become its first admin.
What happens
Section titled “What happens”The flow looks similar to Joining a company but with one important difference: instead of joining a company as an additional user, the user becomes the admin of an unowned company.
- User receives an invitation email with a link containing a token
- User clicks the link and lands on the adopt-company page
- Page shows a preview of the company they’re being invited to manage
- If not signed in: page offers options to log in or create an account (with email pre-filled from the invitation)
- Once signed in: page shows a confirmation dialog
- User confirms; the app calls the backend to adopt the company
- Page shows a success message and auto-redirects to the projects list
What the user sees
Section titled “What the user sees”| Situation | What’s shown |
|---|---|
| URL has no token | Error: auth.AdoptCompany.no-invitation-token |
| Loading company data | Spinner + auth.AdoptCompany.validating-invitation |
| Token invalid or expired | Error icon + auth.AdoptCompany.invalid-invitation (title) + auth.AdoptCompany.invalid-invitation-description |
| Token valid, user not signed in | Panel with company name and a description like “You’ve been invited to manage {companyName}” — auth.AdoptCompany.invited-to-manage. Plus login / create-account options. |
| Token valid, signed in, confirmation pending | Confirmation dialog: title auth.AdoptCompany.confirm-invitation, two-line description auth.AdoptCompany.about-to-become-admin (mentions the company name) + auth.AdoptCompany.confirm-invitation-description, button auth.AdoptCompany.accept-invitation |
| Processing | Spinner + auth.AdoptCompany.linking-account |
| Success | Success icon + auth.AdoptCompany.adoption-success; auto-redirects to projects after 1.5 seconds |
What you can customise
Section titled “What you can customise”Translations
Section titled “Translations”Keys live under auth.AdoptCompany.* in tep-configuration/translations/{locale}/main/auth.json. Several keys take a {companyName} placeholder — make sure your translations preserve it.
Override per client in clients/{client}/translations/{locale}/overrides.json.
The invitation email
Section titled “The invitation email”The adoption invitation is sent by your app using a TEP-side email template. By convention these company-management emails are configured per client.
Variations for your deployment
Section titled “Variations for your deployment”| Your deployment | What’s different |
|---|---|
| Clients using XML ingestion to pre-create companies (e.g. CDN) | This flow is common for them — broadcasters’ feeds create orphan production companies which then need to be claimed by their actual admins. |
| Clients without XML ingestion | This flow is rare; most companies get an admin from the moment they’re created. |
Need more detail?
Section titled “Need more detail?”For the company-preview query, the mutation, and the state machine, see Becoming a company admin (engineering).