Skip to main content
Grantiva accounts are organizations. Every person with access holds a membership in the organization, and that membership carries a role that decides what they can do.

Roles

There are four roles, ordered viewer < member < admin < owner. Permissions are cumulative — each role can do everything the one below it can.
  • Manage members — invite teammates, revoke pending invites, and remove members
  • Manage settings — rename the organization, change the billing email, edit notification preferences
  • Manage API keys — create, rotate, and revoke organization API keys
  • Write projects — register apps, edit feature flags, custom claims, and webhooks
  • Delete organization — owner only, and only once every other member has been removed
Viewers can still read everything: the member list, pending invites, API key metadata, and analytics.

Seats

Every member and every pending invite consumes a seat. The limit comes from your plan: An invite that would push members plus pending invites past the limit is rejected with a message naming your current counts. Free a seat by removing a member or revoking a pending invite, or upgrade your plan.
Only pending, unexpired invites hold a seat. Revoking an invite releases its seat immediately, and an invite that expires stops holding one on its own.

Invite a teammate

Admins and owners can invite. From Team in the dashboard, enter the teammate’s email address and pick the role they should get — Admin, Member, or Viewer, defaulting to Member. The invite is rejected if:
  • the email already belongs to a member of the organization
  • a pending, unexpired invite already exists for that email
  • the organization is out of seats
Otherwise Grantiva emails the address a one-click acceptance link and the invite appears in the pending list.

The invite flow

1

Invite sent

The invite is created with a random single-use token and a 7-day expiry, and an email goes to the invitee with an accept link.
2

Invitee signs in

They open the link and sign in to Grantiva — creating an account first if they don’t have one. The account’s email must match the address the invite was sent to; an invite accepted from a different email is refused.
3

Membership created

Accepting adds them to the organization with the role the invite carried and marks the invite accepted. Accepting twice is harmless — an existing membership is left as it is.
4

Inviter notified

If the organization’s team-invite notification preference is on, the person who sent the invite gets an email confirming it was accepted.
An invite that sits unaccepted for 7 days expires and can no longer be used. Once expired it stops holding a seat, and you can invite the same address again.

Revoke a pending invite

Admins and owners can revoke an invite that hasn’t been accepted yet. Revoking frees the seat and lets you invite the same address again. Revoking an already-revoked invite is a no-op, and an invite that has already been accepted can’t be revoked — remove the member instead.
There is no way to change an existing member’s role today. To move someone between roles, remove them and send a fresh invite carrying the role you want.

Remove a member

Admins and owners can remove members, subject to two rules:
  • You cannot remove yourself. Someone holding a higher role has to do it.
  • You can only remove someone with a strictly lower role than yours. An admin cannot remove another admin, and an owner cannot be removed by anyone.
Removal deletes the membership. The person’s Grantiva account continues to exist; they simply lose access to this organization. Any API keys they created belong to the organization and keep working — revoke them separately if that matters.
An owner can never be removed directly, because removal requires the target to hold a strictly lower role and nothing outranks owner. To hand the organization over: promote the new person to owner, have them demote you to admin, then have them remove you.

Audit log

Team changes are written to the organization audit log with a resource.verb action name: Manage members programmatically with the team API. Read and search the log from Audit Log in the dashboard, or through the audit log API. See Settings and audit log for the full action catalog.