Skip to main content

How Enginy scopes work

Think of scopes as permission groups. They let an admin decide what an AI assistant is allowed to read or change in Enginy without reviewing every individual API route. There are four important rules:
  1. The workspace policy is the maximum permission limit.
  2. A client can ask for all of that limit or only part of it.
  3. Write permissions also include the matching read permissions.
  4. ALL grants the full MCP surface.
If a client requests no scopes at all, Enginy grants the current workspace policy ceiling.

Permission groups

Write scopes imply read scopes

Enginy automatically expands write scopes to include the matching read scope: This is why a token can still satisfy read-only tools even if the original approval selected only the write side.

How workspace policy and user approval fit together

1

An admin sets the workspace limit

The active MCP policy on the workspace defines the maximum permissions that may be granted.
2

The AI interface asks for permissions

A client can request an explicit subset, or omit scopes entirely and let Enginy grant the whole policy limit.
3

The user reviews what will be granted

The approval screen shows the permissions that will actually be granted after policy checks.
4

Enginy checks again later

Access tokens and refresh flows are validated against the current active policy, not only the original approval.

Read-only exploration

Start here for general assistant workflows where the AI should look things up and summarize, but not make changes:
  • WORKSPACE_READ
  • IDENTITIES_READ
  • CONTACTS_READ
  • COMPANIES_READ
  • LISTS_READ

Campaign operations

Add these only if the AI should be allowed to change campaign state:
  • CAMPAIGNS_WRITE
  • OWNERS_READ

Inbox or automation operations

Add these only for explicit automation or operator flows:
  • MESSAGING_WRITE
  • ACTIONS_WRITE
  • WEBHOOKS_WRITE
  • WORKFLOWS_WRITE
ALL is convenient for internal testing but is usually the wrong default for production. Start narrow and expand only when a real workflow needs more access.