Skip to content

Each teammate signs in with their own account. A membership grants access to one organization and its projects according to role. It does not grant access to another organization in the same billing account or to Extrovert platform administration.

  1. In the console, choose the organization, then Settings > Team.
  2. Choose Invite teammate, enter their email, and choose a role. Member is the default.
  3. Create the invitation. Extrovert queues an email; you can also copy the invitation link.

Owner and Admin can manage the team. The recipient signs in or creates a login using the invited email, verifies it, reviews the organization and role, and chooses Accept invitation. Invited teammates can create a login while new workspace signup is paused. Joining an existing organization does not create a second workspace or subscription.

The link is a locator, not a bearer credential: another verified email cannot use it to join. Invitations expire after 14 days. Resend preserves the original role, inviter and expiry. Revoke a pending invitation to cancel it; create a fresh invitation when an earlier one has expired or needs a different role.

RoleAccess
OwnerOrganization administration and ownership management.
AdminTeam, organization resources, and billing administration.
MemberEmail operations and review, with access across the organization’s projects.
ViewerRead access without mutations.
Billing (advanced)Billing and commerce, plus Member permissions.

Use the separate ownership workflow to change ownership. A team administrator cannot change a higher-ranked member, and the last Owner cannot be removed or demoted. The API rechecks the inviter’s current authority when a teammate accepts.

Owners count as members. Each joined person counts once across active organizations sharing a billing account, even if they belong to several of those organizations. Membership and billing are separate: shared billing never creates shared access.

Pending invitations do not reserve seats, and you can invite people when the account is full. Acceptance checks capacity atomically. Free and Developer include two team members; Startup includes ten. Developer does not add seats over Free.

When someone cannot join because the account is full, their invitation stays pending. Current billing-account Owners, Admins and Billing members receive a grouped email notification. Free a seat or review a plan with more seats in Settings > Billing, then ask the teammate to accept again. Neither the email nor an upgrade automatically accepts the invitation or authorizes a charge.

Downgrades are blocked if the account has more joined members than the target plan allows. Removing someone from only one organization may not free a seat if they still belong to another active organization on the same billing account.

  • Email queued means delivery is waiting or retrying.
  • Email submitted means the transport accepted the email; it does not confirm receipt.
  • Email failed means retries ended. Check the address, then resend or share the link.
  • No email delivery recorded can appear for invitations created before email delivery was added.

Resend is limited to once per minute for one invitation, with up to 50 invitation emails per organization per hour and 100 pending invitations per organization. Identical pending invitations reuse the original link without sending a second email.

If the link is unavailable, verify the invited email or use Switch account. Revoked and expired invitations require a new invitation. If the inviter no longer has team-management authority, ask a current administrator to revoke and recreate it.

Use Remove beside a member to end their human access to the organization. Their other organization memberships remain. Their old accepted invitation cannot restore access, and live console feeds recheck membership.

Independently created organization credentials can keep running. Review connections and access and API keys separately when offboarding a teammate; removing human membership does not automatically delete mailboxes or revoke every worker credential.

List members and invitations with bounded pages (limit, cursor, optional email search). Use next_cursor until empty; invitation lists also accept a status filter.

  • GET /v1/admin/orgs/{org_id}/members includes joined-seat usage.
  • GET /v1/admin/orgs/{org_id}/invitations lists native invitations for administrators.
  • POST /v1/admin/orgs/{org_id}/invitations creates an invitation and queues delivery.
  • POST /v1/admin/orgs/{org_id}/invitations/{invitation_id}/resend queues another email.
  • POST /v1/admin/orgs/{org_id}/invitations/{invitation_id}/revoke revokes it.
  • GET /v1/admin/invitations lists invitations matching the verified signed-in email.
  • GET /v1/admin/invitations/{invitation_id} reads a matching invitation.
  • POST /v1/admin/invitations/{invitation_id}/accept explicitly accepts it.

Existing raw-token acceptance remains supported. Tokens are stored only as hashes; list responses and email links do not contain the token. Administrative SDK/MCP operations require the current human role and explicitly delegated account control.