Docs › Concepts › Workspaces and members

Workspaces and members: share with your team

A workspace holds channels, posts and keys. Invite people to share one, give them a role, and switch between the workspaces you belong to.

Updated

A workspace is where everything in OmniPosts lives: connected channels, posts and drafts, media, the posting queue, webhooks, API keys and the plan. When you sign up you get one workspace of your own. You can create more, and you can invite other people into a workspace so you work on the same channels together.

The API calls a workspace an organization in GET /v1/me. It is the same thing.

One workspace at a time

You can belong to several workspaces, but each signed-in session acts for one of them, the current workspace. Everything you see and do (channels, posts, the queue) is in the current workspace.

  • GET /v1/workspaces lists the workspaces you belong to. current marks the one you are in.
  • POST /v1/workspaces/{id}/switch makes another one current for this session. Other browsers where you are signed in stay where they are.

An API key always acts for the workspace it was created in. A key sees only that workspace in GET /v1/workspaces.

Roles

A member is either an owner or a member.

Owner Member
Connect channels, post, schedule, upload media, use the queue Yes Yes
Create and revoke API keys Yes Yes
Rename or delete the workspace Yes No
Invite people, change roles, remove members Yes No
Change the plan Yes No
Delete their own account Yes Yes

A workspace always has at least one owner. To step down as the last owner, make someone else an owner first. PATCH /v1/workspaces/{id}/members/{userId} changes a role. Trying to remove the last owner gets 409 last_owner.

Invite someone

An owner creates an invite with POST /v1/workspaces/{id}/invites. The answer holds an inviteUrl, a link to the OmniPosts web app (https://omniposts.dev/app/invite/...) where the person signs in, or signs up, and accepts. OmniPosts does not send emails, so send the link yourself.

{ "email": "grace@example.com", "role": "member" }
  • The link works once, for 7 days. An invite to become an owner must name the person's email and works for 48 hours. OmniPosts stores only a hash of the link, so it is shown only in this answer.
  • An invite carries its creator's authority: it stops working if they stop being an owner, and their pending invites are revoked when they are demoted or removed.
  • With email, only the account with that address can accept it. Leave email out for a link anyone signed in can use, and share it with care.
  • The address is compared with the email of the OmniPosts account that opens the link. OmniPosts does not confirm email addresses at sign-up, so treat the link itself as the secret: send it only to the person you mean.
  • GET /v1/workspaces/{id}/invites lists invites still waiting, and DELETE /v1/workspaces/{id}/invites/{inviteId} revokes one.

The person who opens the link signs in (or signs up), sees which workspace it is for with GET /v1/invites/{token}, and joins with POST /v1/invites/{token}/accept. Joining does not switch them to the workspace; they switch when they are ready.

Leave or remove someone

DELETE /v1/workspaces/{id}/members/{userId} removes a member. An owner can remove anyone, and anyone can remove themselves to leave. Access stops at once: their sessions move to another workspace they belong to, and the API keys they created in this workspace are revoked. The channels they connected are disconnected when they leave: the platform sign-in was theirs, so OmniPosts deletes its copy of the tokens. Their pending connects and invites there go too. Keys and channels made by others keep working. Settings → Agents & API shows who created each key, and each channel shows who connected it. A channel connected before OmniPosts recorded who connected it shows no one, and is never disconnected on anyone's behalf.

  • You cannot leave your only workspace (409 last_workspace). Create or join another one first.
  • If an owner removes someone from the only workspace they had, that person gets a new, empty workspace of their own, so they can still sign in.

Delete a workspace

An owner deletes a workspace with DELETE /v1/workspaces/{id}, sending the workspace's name to confirm:

{ "confirm": "Marketing" }

You can delete a workspace only when you are its only member (remove the others first, else 409 members_remain) and it is not your only workspace (409 last_workspace). Your sessions in it move to your other workspace.

Limits

You can own up to 10 workspaces, and a workspace can have up to 50 invites waiting at once. Each workspace has its own plan: a new one starts on the plan a new sign-up gets.

Delete your account

Deleting your account (POST /v1/settings/delete-account) deletes you, not a workspace you share. You leave every workspace that has other members (the channels you connected there are disconnected), and every workspace where you are the only member is deleted. Nobody else's account changes. If you are the only owner of a workspace that has other members, OmniPosts refuses with 409 sole_owner_with_members until you make one of them an owner or remove them. See Export or delete your data.