Skip to content

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.

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.

  1. User receives an invitation email with a link containing a token
  2. User clicks the link and lands on the adopt-company page
  3. Page shows a preview of the company they’re being invited to manage
  4. If not signed in: page offers options to log in or create an account (with email pre-filled from the invitation)
  5. Once signed in: page shows a confirmation dialog
  6. User confirms; the app calls the backend to adopt the company
  7. Page shows a success message and auto-redirects to the projects list
SituationWhat’s shown
URL has no tokenError: auth.AdoptCompany.no-invitation-token
Loading company dataSpinner + auth.AdoptCompany.validating-invitation
Token invalid or expiredError icon + auth.AdoptCompany.invalid-invitation (title) + auth.AdoptCompany.invalid-invitation-description
Token valid, user not signed inPanel 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 pendingConfirmation 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
ProcessingSpinner + auth.AdoptCompany.linking-account
SuccessSuccess icon + auth.AdoptCompany.adoption-success; auto-redirects to projects after 1.5 seconds

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 adoption invitation is sent by your app using a TEP-side email template. By convention these company-management emails are configured per client.

Your deploymentWhat’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 ingestionThis flow is rare; most companies get an admin from the moment they’re created.

For the company-preview query, the mutation, and the state machine, see Becoming a company admin (engineering).