SpyBara
Go Premium

Documentation 2026-08-31 19:59 UTC to 2026-09-01 07:57 UTC

6 files changed +526 −57. View all changes and history on the product overview
2026
Wed 30 23:01 Tue 29 22:59 Sun 27 23:59 Fri 25 23:02 Thu 24 23:02 Wed 23 23:58 Tue 22 23:00 Sat 19 23:02 Fri 18 22:59 Thu 17 10:05 Wed 16 20:58 Tue 15 21:01 Mon 14 20:57 Sun 13 21:58 Fri 11 20:00 Thu 10 16:58 Wed 9 21:01 Fri 4 19:59 Thu 3 23:00 Wed 2 22:59 Tue 1 07:57
Details

111 href: "/codex/enterprise/groups-and-provisioning",111 href: "/codex/enterprise/groups-and-provisioning",

112 icon: "users",112 icon: "users",

113 },113 },

114 {

115 title: "User lifecycle management",

116 description:

117 "Provision employees, update group access, and revoke departing users' credentials.",

118 href: "/codex/enterprise/user-lifecycle",

119 icon: "userLock",

120 },

114 {121 {

115 title: "Roles and workspace permissions",122 title: "Roles and workspace permissions",

116 description:123 description:

Details

7Codex access tokens are currently supported for ChatGPT Business and7Codex access tokens are currently supported for ChatGPT Business and

8 Enterprise workspaces.8 Enterprise workspaces.

9 9 

10Personal access tokens created from the ChatGPT admin console's [Access tokens](https://chatgpt.com/admin/access-tokens) page are tied to the ChatGPT user who creates them and that user's workspace. The tokens act as agent identities for programmatic local workflows. For tokens created from a dedicated non-human workspace identity's detail page, see [Service accounts](https://learn.chatgpt.com/docs/enterprise/service-accounts).10Create personal access tokens in the ChatGPT admin console at [Access tokens](https://chatgpt.com/admin/access-tokens). Each token belongs to its creator and that user's ChatGPT workspace. Tokens act as agent identities for programmatic local workflows. For tokens created from a dedicated non-human workspace identity's detail page, see [Service accounts](https://learn.chatgpt.com/docs/enterprise/service-accounts).

11 11 

12If a Platform API key works for your automation, keep using API key auth. Use12If a Platform API key works for your automation, keep using API key auth. Use

13 Codex access tokens when a trusted local workflow specifically needs ChatGPT13 Codex access tokens when a trusted local workflow specifically needs ChatGPT

14 workspace access, workspace-managed entitlements, or enterprise controls.14 workspace access, workspace-managed entitlements, or enterprise controls.

15 15 

16Need to trigger a published ChatGPT workspace agent from your own system? Use16Need to trigger a published ChatGPT workspace agent from your own system? That

17 a Workspace Agent access token for the Workspace Agents API instead. Codex17 workflow requires **Workspace Agents** access. A Codex-only token can't

18 access tokens authenticate trusted local workflows through Codex CLI or an18 authenticate workspace agent trigger calls. If your token dialog offers

19 app-server client; they do not authenticate workspace agent trigger calls. See19 **Scopes**, select **Workspace Agents** for an agent trigger and **Codex** for

20 [Authenticate with Workspace Agent access20 Codex automation. Grant multiple scopes only when the workflow requires each

21 one. See [Authenticate with Workspace Agent access

21 tokens](https://developers.openai.com/workspace-agents/authentication).22 tokens](https://developers.openai.com/workspace-agents/authentication).

22 23 

23## How access tokens work24## How access tokens work

24 25 

25Use an access token when Codex CLI or an app-server client needs to run without a user completing a browser sign-in. The token represents the ChatGPT workspace user who created it, so runs can use that user's access and appear in workspace governance data.26Use an access token when Codex CLI or an app-server client needs to run without a user completing a browser sign-in. The token represents the ChatGPT workspace user who created it, so runs can use that user's access and appear in workspace governance data.

26 27 

27The client checks the token when a run starts and ties the run to that workspace identity. Treat the token like any other automation secret: store it in a secret manager, keep it out of logs, and rotate it regularly.28The client checks the token when a run starts and ties the run to that workspace identity. Treat the token like any other automation secret: store it in a secret manager, keep it out of logs, and rotate it according to your organization's policy.

28 29 

29Use access tokens for:30Use access tokens for:

30 31 

31- `codex exec` jobs that run from trusted automation.32- `codex exec` jobs that run from trusted automation.

32- Local scripts that need repeatable, non-interactive Codex CLI runs.33- Local scripts that need repeatable, non-interactive Codex CLI runs.

33- Trusted app-server-based automation.34- Trusted app-server-based automation.

34- Enterprise workflows where usage should be associated with a ChatGPT workspace user instead of an API organization key.35- Enterprise workflows that associate usage with a ChatGPT workspace user instead of an API organization key.

35 36 

36Main risks to avoid:37Main risks to avoid:

37 38 

38- **Leaked secrets:** anyone with the token can start local runs through Codex CLI or an app-server client as the token creator. Store tokens in a secret manager, keep them out of logs, and rotate them regularly.39- **Leaked secrets:** anyone with the token can start local runs through Codex CLI or an app-server client as the token creator. Store tokens in a secret manager, keep them out of logs, and rotate them according to your organization's policy.

39- **Runner trust:** public CI, forked pull requests, or shared machines can expose tokens to people outside your workspace. Use access tokens only on trusted runners.40- **Runner trust:** public CI, forked pull requests, or shared machines can expose tokens to people outside your workspace. Use access tokens only on trusted runners.

40- **Shared identities:** one person's token reused across unrelated teams makes ownership and audit trails harder to interpret. Create tokens for a specific workflow owner.41- **Shared identities:** one person's token reused across unrelated teams makes ownership and audit trails less clear. Create tokens for a specific workflow owner.

41- **Stale credentials:** long-lived tokens can remain active after the workflow changes. Prefer time-limited tokens and revoke tokens that are no longer used.42- **Stale credentials:** long-lived tokens can remain active after the workflow changes. Prefer time-limited tokens and revoke tokens that are no longer used.

42- **Wrong credential type:** Codex access tokens are for trusted local automation through Codex CLI or an app-server client. Use Workspace Agent access tokens to trigger published ChatGPT workspace agents, and use Platform API keys for general OpenAI API calls.43- **Wrong scope or credential type:** Codex automation requires Codex access,

44 workspace agent triggers require Workspace Agents access, and general OpenAI

45 API calls require Platform API keys. If **Scopes** appears, grant only the

46 permissions the workflow requires.

43 47 

44## Enable access token creation48## Enable access token creation

45 49 


48The access token permission controls token creation. It doesn't grant access to52The access token permission controls token creation. It doesn't grant access to

49the ChatGPT desktop app, Codex CLI, or IDE extension, and it doesn't change a53the ChatGPT desktop app, Codex CLI, or IDE extension, and it doesn't change a

50member's seat type, built-in workspace role, or local runtime permission54member's seat type, built-in workspace role, or local runtime permission

51profile. Configure those controls as needed.55profile. Token-authenticated Codex CLI and app-server workflows also require

56the user's local Codex permission.

52 57 

53For the relationship between these controls, see58For the relationship between these controls, see

54[Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions).59[Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions).


61 66 

62 67 

63 68 

641. Go to [Workspace Settings > Permissions & roles](https://chatgpt.com/admin/settings).691. Have a workspace owner open

652. In the **Access tokens** section, turn on **Allow users to create access tokens** if all allowed members should be able to create access tokens.70 [Workspace settings > Permissions & roles](https://chatgpt.com/admin/permissions).

663. If the workflow also needs a covered local surface, make sure **Allow members to use Codex Local** is turned on in the **Codex Local** section. This control covers local use in the ChatGPT desktop app, Codex CLI, and IDE extension.712. If the **Access tokens** section appears, enable **Allow users to create

72 personal access tokens**. If that section isn't available, enable **Allow

73 members to use Codex access tokens** in **Codex and Work Local** or

74 **Codex Local**.

753. Enable the corresponding local Codex permission for the workflow owner:

76 **Allow members to use Codex and Work Locally** in **Codex and Work Local**,

77 or **Allow members to use Codex locally** in **Codex Local**. When **Work

78 Local** has its own section, **Use Work locally** controls Work and isn't

79 required for Codex tokens.

67 80 

68Keep access token creation limited to people or service owners who understand where the token will be stored, which automation will use it, and how it will be rotated.81Allow only people or service owners who understand the token's storage location, intended automation, and rotation schedule to create access tokens.

82 

83Disabling local Codex permission suspends active Codex tokens owned by affected

84members; it doesn't revoke them. Restoring local Codex access reactivates those

85tokens. Revoke tokens when their access must end permanently.

69 86 

70## Set an access token expiration limit87## Set an access token expiration limit

71 88 

72Workspace owners and admins can set the longest expiration that members can choose when they create a Codex access token. Go to [Workspace Settings > Permissions & roles](https://chatgpt.com/admin/settings), then set **Access token expiration limit** in the **Codex Local** section.89A workspace owner can set the longest validity window that members can choose

90for new access tokens. Open

91[Workspace settings > Permissions & roles](https://chatgpt.com/admin/permissions).

92If the **Access tokens** section appears, set **Access token expiration limit**

93there. Otherwise, look for that setting in **Codex and Work Local** or

94**Codex Local**.

73 95 

74 96 

75 97


79 101 

80 102 

81 103 

82The limit applies to new access tokens. Existing tokens keep their current expiration.104The limit applies to new access tokens. Existing tokens keep their current validity window.

83 105 

84## Create an access token106## Create an access token

85 107 

86Use the Access tokens page to name the token and choose when it expires.108Use the Access tokens page to name the token, review any available product

109scopes, and choose an appropriate validity window.

87 110 

881. Go to [Access tokens](https://chatgpt.com/admin/access-tokens).1111. Go to [Access tokens](https://chatgpt.com/admin/access-tokens).

892. Select **Create**.1122. Select **Create**.


106 129 

107 130 

108 131 

1094. Choose an expiration. Prefer a finite expiration such as 7, 30, 60, or 90 days. If you choose **No expiration**, rotate the token on a regular schedule.1324. If the dialog shows **Scopes**, select **Codex**. Select **Workspace

1105. Select **Create**.133 Agents** only if the same workflow also needs to trigger a workspace agent.

1116. Copy the generated access token immediately. You can't view it again after you close the modal.134 If the dialog has no scope selector, it creates a Codex-only token.

1127. Store the token in your secret manager or CI secret store.1355. Choose a finite validity window, such as 7, 30, 60, or 90 days. Scoped

136 personal access tokens must expire. An earlier Codex-only dialog

137 can offer **No expiration**; avoid that option unless your organization

138 approves it and rotates the token on a defined schedule.

1396. Select **Create**.

1407. Copy the generated access token immediately. You can't view it again after

141 you close the dialog.

1428. Store the token in your secret manager or CI secret store.

113 143 

114The shortest custom expiration is one day. Revoked and expired tokens can't be used to start new authenticated runs.144The shortest custom validity window is one day. You can't use revoked or expired tokens to start new authenticated runs.

115 145 

116## Use an access token with Codex CLI146## Use an access token with Codex CLI

117 147 

148If the token creation dialog lists a required Codex CLI version, update the CLI

149to that version or later before using the token.

150 

118For ephemeral automation, store the token in `CODEX_ACCESS_TOKEN` and run Codex CLI normally:151For ephemeral automation, store the token in `CODEX_ACCESS_TOKEN` and run Codex CLI normally:

119 152 

120```bash153```bash


153 186 

154## Permission model187## Permission model

155 188 

156The workspace access token permission controls token creation. The **Allow189The workspace access-token permission controls token creation. Depending on

157members to use Codex Local** workspace permission separately gates access to190the workspace layout, **Allow members to use Codex and Work Locally** in

158local use in the ChatGPT desktop app, Codex CLI, and IDE extension. A member can191**Codex and Work Local**, or **Allow members to use Codex locally** in **Codex

159have that local access without permission to create access tokens.192Local**, controls local Codex access. If **Work Local** has its own section,

193**Use Work locally** controls Work and doesn't grant Codex access. A member

194needs both local Codex access and access-token permission for token-authenticated

195Codex workflows. A member can have local Codex access without permission to

196create access tokens.

160 197 

161| Capability | Workspace owners and admins | Member with access token permission | Member without access token permission |198| Capability | Workspace owners and admins | Member with access token permission | Member without access token permission |

162| ------------------------------------------------------------- | ------------------------------------------------ | --------------------------------------------- | -------------------------------------- |199| ------------------------------------------------------------- | ------------------------------------------------ | --------------------------------------------- | -------------------------------------- |


164| Create access tokens | Yes, for their own ChatGPT workspace identity | Yes, for their own ChatGPT workspace identity | No |201| Create access tokens | Yes, for their own ChatGPT workspace identity | Yes, for their own ChatGPT workspace identity | No |

165| List access tokens | Workspace list, including who created each token | Only tokens they created | No |202| List access tokens | Workspace list, including who created each token | Only tokens they created | No |

166| Revoke access tokens from the Access tokens page | Any token in the workspace | Only tokens they created | No page access |203| Revoke access tokens from the Access tokens page | Any token in the workspace | Only tokens they created | No page access |

167| Grant or remove access token permission | Yes | No | No |204| Grant or remove access token permission | Workspace owner only | No | No |

168| Manage other local-client or Codex cloud settings | Yes, based on workspace admin permissions | No, unless separately granted | No |205| Manage other local-client or Codex cloud settings | Yes, based on workspace admin permissions | No, unless an owner grants access | No |

169 206 

170In short: workspace owners and admins manage access at the workspace level.207In short: workspace owners and admins manage access at the workspace level.

171Members need the access token permission to create and manage their own tokens,208Members need the access token permission to create and manage their own tokens,


176 213 

177### The access tokens page returns 404 or forbidden214### The access tokens page returns 404 or forbidden

178 215 

179Ask a workspace owner or admin to confirm that your role includes **Allow users to create access tokens**. If your workflow also needs a covered local surface, confirm that **Allow members to use Codex Local** is enabled for local use in the ChatGPT desktop app, Codex CLI, and IDE extension.216Ask a workspace owner to confirm that your role includes **Allow users to

217create personal access tokens** or **Allow members to use Codex access

218tokens**, depending on the available interface. For a token-authenticated

219Codex workflow, also confirm that **Allow members to use Codex and Work

220Locally** or **Allow members to use Codex locally** is active.

180 221 

181### `codex login --with-access-token` fails222### `codex login --with-access-token` fails

182 223 

183Confirm that you copied the generated access token, not a browser session token or Platform API key. Also confirm that the token hasn't expired or been revoked.224Confirm that you copied the generated access token, not a browser session token

225or Platform API key. Also confirm that the token is active, hasn't expired,

226and belongs to a user with the required local Codex permission.

184 227 

185## Related docs228## Related docs

186 229 


189- [Non-interactive mode](https://learn.chatgpt.com/docs/non-interactive-mode)232- [Non-interactive mode](https://learn.chatgpt.com/docs/non-interactive-mode)

190- [Admin rollout guide](https://learn.chatgpt.com/docs/enterprise/admin-setup)233- [Admin rollout guide](https://learn.chatgpt.com/docs/enterprise/admin-setup)

191- [Groups and provisioning](https://learn.chatgpt.com/docs/enterprise/groups-and-provisioning)234- [Groups and provisioning](https://learn.chatgpt.com/docs/enterprise/groups-and-provisioning)

235- [User lifecycle management](https://learn.chatgpt.com/docs/enterprise/user-lifecycle)

192- [Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions)236- [Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions)

193- [Governance](https://learn.chatgpt.com/docs/enterprise/governance)237- [Governance](https://learn.chatgpt.com/docs/enterprise/governance)

Details

16Complete the steps in order for a new rollout, or use the linked pages to change16Complete the steps in order for a new rollout, or use the linked pages to change

17one boundary.17one boundary.

18 18 

19In workspace settings, **Codex Local** is a grouping label for certain local19In workspace settings, **Codex and Work Local** combines local Codex and Work

20access and access-token controls, not a separate product or client. The current20access under **Allow members to use Codex and Work Locally**. Some workspaces

21**Allow members to use Codex Local** control covers local use in the ChatGPT21instead provide independent **Codex Local** and **Work Local** sections. In

22desktop app, Codex CLI, and IDE extension. Managed configuration is a separate22that layout, **Allow members to use Codex locally** controls Codex, and **Use

23policy layer that can constrain supported runtime behavior for covered23Work locally** controls Work. Enabling either one doesn't enable the other.

24capabilities in those clients. This guide names the individual surface when24These labels identify workspace permissions, not separate products or clients.

25behavior or availability differs.25Token permissions and credential lifetime limits appear in either an **Access

26tokens** section or the local-access section, depending on the workspace.

27Managed configuration is a separate policy layer that can constrain supported

28runtime behavior for covered capabilities in those clients. This guide names

29the individual surface when behavior or availability differs.

26 30 

27Start with the canonical map in31Start with the canonical map in

28[Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions).32[Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions).


72- [Configure role-based access control](https://help.openai.com/en/articles/11750701-rbac)76- [Configure role-based access control](https://help.openai.com/en/articles/11750701-rbac)

73- [Manage workspace settings](https://help.openai.com/en/articles/8411955)77- [Manage workspace settings](https://help.openai.com/en/articles/8411955)

74- [Groups and provisioning](https://learn.chatgpt.com/docs/enterprise/groups-and-provisioning)78- [Groups and provisioning](https://learn.chatgpt.com/docs/enterprise/groups-and-provisioning)

79- [User lifecycle management](https://learn.chatgpt.com/docs/enterprise/user-lifecycle)

75- [Authentication](https://learn.chatgpt.com/docs/auth)80- [Authentication](https://learn.chatgpt.com/docs/auth)

76 81 

77Test sign-in and feature access with a representative member before expanding82Test sign-in and feature access with a representative member before expanding

Details

78 78 

79## Related docs79## Related docs

80 80 

81- [User lifecycle management](https://learn.chatgpt.com/docs/enterprise/user-lifecycle)

81- [Authentication](https://learn.chatgpt.com/docs/auth)82- [Authentication](https://learn.chatgpt.com/docs/auth)

82- [Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions)83- [Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions)

83- [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration)84- [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration)

Details

7access in another. Use this page to see how the six control boundaries work7access in another. Use this page to see how the six control boundaries work

8together, then follow the linked guidance for current setup steps.8together, then follow the linked guidance for current setup steps.

9 9 

10In workspace settings, **Codex Local** is a grouping label for certain local10In workspace settings, **Codex and Work Local** combines local Codex and Work

11access and access-token controls, not a separate product or client. Individual11access under **Allow members to use Codex and Work Locally**. Other workspaces

12controls in the group can have different scopes. The current **Allow members to12separate **Codex Local** and **Work Local** into independent sections. In that

13use Codex Local** workspace permission covers local use in the ChatGPT desktop13layout, **Allow members to use Codex locally** grants local Codex access, and

14app, Codex CLI, and IDE extension. Managed configuration is a separate layer14**Use Work locally** grants local Work access. Enabling one doesn't grant

15that constrains supported runtime behavior for covered capabilities in those clients. Features15access to the other. These labels identify workspace permissions, not separate

16products or clients. Token permissions and credential lifetime limits appear

17in either an **Access tokens** section or the local-access section, depending

18on the workspace. Managed configuration is a separate layer that constrains

19supported runtime behavior for covered capabilities in those clients. Features

16and effective requirements can differ by client and version.20and effective requirements can differ by client and version.

17 21 

18## Understand the control boundaries22## Understand the control boundaries


69 73 

70Only workspace owners can configure role-based access control (RBAC) and create74Only workspace owners can configure role-based access control (RBAC) and create

71custom roles. Workspace settings establish the baseline for eligible75custom roles. Workspace settings establish the baseline for eligible

72permissions. Owners can assign custom roles through manually managed or76permissions. Workspace owners can assign custom roles through groups or

73SCIM-synced groups, or directly to individual members where supported. A member77directly to individual members where supported. Groups can be manually managed

74can receive more than one custom role.78or SCIM-synced, and a member can receive more than one custom role.

75 79 

76For eligible permissions, **Default** inherits the workspace setting, **On**80For eligible permissions, **Default** inherits the workspace setting, **On**

77grants access, and **Off** explicitly denies access. An explicit **Off** in any81grants access, and **Off** explicitly denies access. An explicit **Off** in any


86configuration, and rollout. A role can't expand the access allowed by a90configuration, and rollout. A role can't expand the access allowed by a

87member's seat.91member's seat.

88 92 

89**Work Cloud** governs supported ChatGPT Work tasks in the cloud. **Work93**Work Cloud** governs supported ChatGPT Work tasks in the cloud. When the

90Local** without **Work Cloud** allows local work in the ChatGPT desktop app but94controls are independent, **Work Local** without **Work Cloud** allows local

91doesn't allow members to start cloud tasks. Codex Local access instead uses the95work in the ChatGPT desktop app but doesn't allow members to start cloud tasks.

92separate **Allow members to use Codex Local** permission. Changing a Work96Local Codex access uses **Allow members to use Codex locally** in **Codex

93permission doesn't change Codex Local access or replace local runtime97Local**. Changing **Use Work locally** doesn't change local Codex access or

94requirements.98replace local runtime requirements.

99 

100Some workspaces instead show the combined **Codex and Work Local** section. In

101that layout, **Allow members to use Codex and Work Locally** controls both

102products.

95 103 

96For current eligibility and settings, see104For current eligibility and settings, see

97[ChatGPT Work and Codex](https://help.openai.com/en/articles/20001275-chatgpt-work-and-codex).105[ChatGPT Work and Codex](https://help.openai.com/en/articles/20001275-chatgpt-work-and-codex).


107### Control Computer History access115### Control Computer History access

108 116 

109[Computer History](https://learn.chatgpt.com/docs/customization/computer-history) is off by default for117[Computer History](https://learn.chatgpt.com/docs/customization/computer-history) is off by default for

110Business and Enterprise workspaces. Members cannot turn it on until an118Business and Enterprise workspaces. Members cannot turn it on until a workspace

111administrator explicitly grants access. Enterprise administrators can grant119owner explicitly grants access. Enterprise workspace owners can grant access

112access by role:120by role:

113 121 

1141. Open [**Workspace Settings > Permissions & roles**](https://chatgpt.com/admin/settings).1221. Open [**Workspace Settings > Permissions & roles**](https://chatgpt.com/admin/settings).

1152. Find **Computer History** and choose the workspace role that should have1232. Find **Computer History** and choose the workspace role that should have


142 150 

143- [Admin rollout guide](https://learn.chatgpt.com/docs/enterprise/admin-setup)151- [Admin rollout guide](https://learn.chatgpt.com/docs/enterprise/admin-setup)

144- [Groups and provisioning](https://learn.chatgpt.com/docs/enterprise/groups-and-provisioning)152- [Groups and provisioning](https://learn.chatgpt.com/docs/enterprise/groups-and-provisioning)

153- [User lifecycle management](https://learn.chatgpt.com/docs/enterprise/user-lifecycle)

145- [Workspace model availability](https://learn.chatgpt.com/docs/enterprise/workspace-model-availability)154- [Workspace model availability](https://learn.chatgpt.com/docs/enterprise/workspace-model-availability)

146- [Access tokens](https://learn.chatgpt.com/docs/enterprise/access-tokens)155- [Access tokens](https://learn.chatgpt.com/docs/enterprise/access-tokens)

147- [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration)156- [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration)

enterprise/user-lifecycle.md +403 −0 created

Details

1# User lifecycle management

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5Use this guide to give employees the right ChatGPT workspace access when they

6join, update that access when their responsibilities change, and remove access

7when they leave. The process also covers workspace seats, group-based roles,

8Codex access tokens, and connected systems with their own access controls.

9 

10Single sign-on (SSO) verifies an employee's identity. Provisioning adds the

11employee to a workspace. Neither action alone determines the employee's seat,

12feature permissions, local runtime policy, or access to an external system.

13 

14Manage employee access across three lifecycle milestones:

15 

16- **Join:** Provision workspace access, groups, roles, and the correct seat.

17- **Move:** Update the employee's groups and remove only obsolete direct roles.

18- **Leave:** Remove workspace access, revoke tokens, and review connected systems.

19 

20## Verify prerequisites and assign owners

21 

22Before onboarding employees, identify who controls each part of the lifecycle:

23 

24| Owner | Responsibility |

25| ------------------------- | ----------------------------------------------------------------------------------------------------- |

26| Workspace owner | Enable directory synchronization, assign workspace roles, approve seat types, and review audit access |

27| Identity administrator | Configure the identity provider, application assignments, provisioning groups, and sync status |

28| Workspace administrator | Review workspace members, group membership, and supported administration settings |

29| Security or service owner | Review Codex tokens, connected systems, shared automation, and required audit evidence |

30 

31Confirm the target workspace, verify the organization's email domain when

32required, and identify a workspace owner who can enable directory

33synchronization. Then check which controls the workspace plan supports:

34 

35| Capability | Supported workspace plans |

36| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |

37| Directory synchronization through SCIM | ChatGPT Enterprise, Edu, and Healthcare |

38| Custom roles and role-based access control | ChatGPT Enterprise, Edu, Healthcare, and Teachers |

39| Codex access tokens | ChatGPT Business and Enterprise |

40| Codex-only seats | Eligible Enterprise and qualifying existing Business workspaces; unavailable to Edu, Teachers, or Healthcare |

41 

42SCIM stands for System for Cross-domain Identity Management. A Business

43workspace can support Codex access tokens without SCIM, while an Edu workspace

44can support SCIM without Codex access tokens or Codex-only seats. Apply only

45the controls available to your workspace.

46 

47A Business workspace can keep and add Codex-only seats only if it had a Codex

48seat before June 24, 2026, or a qualifying pending Codex-seat invitation as of

49that date. New Business workspaces and workspaces without a qualifying seat or

50invitation can't add their first Codex-only seat. See

51[Manage workspace lifecycle and migration in ChatGPT Business](https://help.openai.com/en/articles/8801890-managing-workspace-lifecycle-and-migration-in-chatgpt-business).

52 

53Where the workspace supports more than one seat type, review the default in

54**Workspace settings > Identity & access** before enabling automated

55provisioning. SCIM-provisioned users inherit that default, and a seat controls

56which product surfaces are available. A custom role can't grant access that

57the seat doesn't include.

58 

59Use **Permissions & roles** to inspect local-access, access-token,

60credential-lifetime, and remote-device controls. Some workspaces combine local

61access in **Codex and Work Local**, with the **Allow members to use Codex and

62Work Locally** control. Others separate **Codex Local**, with **Allow members

63to use Codex locally**, from **Work Local**, with **Use Work locally**.

64Separate Codex and Work controls don't grant access to each other. Token

65controls appear either in the local-access section or in a separate **Access

66tokens** section. These settings are separate from group membership and

67assigned seat types.

68 

69The following example shows combined **Codex and Work Local** controls and a

70separate **Access tokens** section:

71 

72 

73 

74> Illustration: ChatGPT Permissions & roles showing Codex and Work Local access, personal access tokens, and the access token expiration limit.

75 

76 

77 

78For current prerequisites and supported identity patterns, see

79[Identity and provisioning](https://help.openai.com/en/articles/9672121)

80and [Manage members, seat types, roles, and access](https://help.openai.com/en/articles/8266401-managing-members-seat-types-roles-and-access-in-chatgpt-enterprise).

81 

82## Choose how employees join the workspace

83 

84Choose one primary provisioning method for each audience:

85 

86| Method | How access begins | Where to remove access |

87| -------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------- |

88| Manual invitation | A workspace owner or admin invites an employee | Workspace member administration |

89| Automatic Account Creation | An employee with an eligible email domain signs in | Workspace administration and the relevant identity flow |

90| Directory Sync with SCIM | An identity administrator assigns the employee in the identity provider | The identity-provider application or provisioning group |

91 

92Use manual invitations for a small pilot or a group that isn't managed through

93directory synchronization. Use SCIM when workspace membership should follow

94the identity provider as employees join, change teams, or leave.

95 

96Don't enable Automatic Account Creation and SCIM together. Users added through

97Automatic Account Creation might lack SCIM management, so removing them from

98an identity-provider group might not remove their workspace access. See the

99[SCIM integration FAQ](https://help.openai.com/en/articles/10011769-openai-platform-scim-integration-faq)

100for current guidance.

101 

102SCIM can connect a single ChatGPT workspace or an organization's tenant,

103depending on the approved identity setup. Keep each workspace and product

104assignment explicit. A shared directory connection doesn't automatically grant

105or remove access across every workspace or Platform API organization.

106 

107## Connect a provisioning group to the correct workspace

108 

109Configure the connection before adding the first pilot employee. A workspace

110owner and an identity administrator have separate responsibilities:

111 

1121. Have the workspace owner select the intended ChatGPT workspace and inspect

113 **Workspace settings > Groups**. Record existing group names, members,

114 custom-role assignments, and relevant project or GPT sharing.

1152. Have the identity administrator identify the exact identity-provider group

116 intended for synchronization. Compare its name and membership against every

117 existing workspace group.

1183. If a synchronized group shares a name with an existing workspace group,

119 reconcile or rename the conflicting group before enabling synchronization.

120 Have the workspace owner approve the resulting members, inherited roles, and

121 sharing. A matching existing group becomes SCIM-managed, and its membership

122 switches to identity-provider control.

1234. Select a narrowly scoped pilot group and record the approved workspace,

124 expected employees, and group-role assignments.

1255. Have the workspace owner open **Workspace settings > Identity & access**

126 and select **Enable Directory Sync**. If prompted, choose **Use SCIM only

127 for this workspace** for workspace-level provisioning, or **Keep the option

128 to expand across products** for approved tenant-level provisioning. If

129 tenant-level SCIM is already active, manage that existing connection

130 instead of creating a second workspace connection.

1316. Have the identity administrator complete the identity-provider connection,

132 select the ChatGPT application, and assign the approved group to provision

133 members into the intended workspace.

1347. In **Workspace settings > Groups**, confirm that the selected group displays

135 its SCIM badge. Verify the group name, synchronized members, and target

136 workspace before using it for access.

1378. Have the workspace owner open **Permissions & roles > Custom roles**,

138 create or select the approved role, and assign it to the synchronized group.

139 Role configuration is available on the web and requires workspace owner

140 access.

1419. Review the group's effective permissions and the default workspace seat

142 type before adding a representative pilot employee.

143 

144The identity-provider administrator controls application and group membership;

145the workspace owner controls directory synchronization and workspace role

146assignment. See the [SCIM integration FAQ](https://help.openai.com/en/articles/10011769-openai-platform-scim-integration-faq)

147and [Configure role-based access control](https://help.openai.com/en/articles/11750701-rbac)

148for current provider-specific steps and availability.

149 

150## Provision a new employee

151 

152For an employee managed through SCIM:

153 

1541. Confirm the intended workspace, verified email address, default seat type,

155 and identity-provider group.

1562. Assign the employee to the ChatGPT application or access-granting group in

157 the identity provider.

1583. Allow the directory synchronization to complete. Check the current

159 identity-provider status if the employee doesn't appear.

1604. In **Workspace settings > Members**, verify the employee's email,

161 membership or pending invitation, seat type, and SCIM badge.

1625. In **Workspace settings > Groups**, confirm the employee belongs to the

163 intended synchronized group. Have the workspace owner verify the custom

164 role assigned to that group.

1656. Have a representative employee sign in to the correct workspace and verify

166 the specific product surfaces, features, and connected systems they need.

1677. Record the access owner and the successful verification using your

168 organization's approved process.

169 

170If you add an employee manually, send the invitation from workspace member

171administration, then perform the same seat, group, role, and sign-in checks.

172 

173A group organizes members but doesn't grant access to every feature by itself.

174For the current role-assignment procedure, see

175[Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions)

176and [Configure role-based access control](https://help.openai.com/en/articles/11750701-rbac).

177 

178## Update access when an employee changes teams

179 

180An employee who changes teams can keep access from previous group or role

181assignments. Update the source that owns the membership before verifying the

182new access level:

183 

1841. Identify the employee's new team, required workspace, seat, approved

185 feature permissions, and destination group.

1862. Add the employee to the approved destination group before removing them

187 from their previous group if they must remain in the workspace throughout

188 the change. Update SCIM-managed membership in the identity provider; update

189 manually managed membership through workspace administration.

1903. Confirm that the approved role is already assigned to the destination group.

191 Preserve existing role assignments on shared groups so the other members

192 keep their approved access.

1934. Have a workspace owner change a group-to-role assignment only after

194 approving a separate group-wide policy change and reviewing its effect on

195 every member.

1965. Have a workspace owner open the employee's profile, review **Direct roles**,

197 and remove outdated roles assigned directly to that person. Custom roles use **Default**,

198 **On**, and **Off**. An explicit **Off** in any assigned role overrides

199 **On** in another role.

2006. Review the employee's effective permissions across all direct and

201 group-assigned roles before approving the team change.

2027. If the workspace supports more than one seat type, have a workspace owner open

203 **Workspace settings > Members > Change seat type** and review the

204 employee's intended product access.

2058. Before converting a ChatGPT seat to a Codex-only seat, confirm that the

206 employee should lose access to chats, memories, projects, and other

207 ChatGPT features. The underlying data isn't deleted and becomes available

208 again if the employee returns to a ChatGPT seat.

2099. After synchronization and permission updates complete, verify both the

210 newly allowed actions and the actions that should no longer be available.

211 

212If the employee owns an automation workflow, review whether its Codex token,

213secret-manager entry, or connected-service authorization should move to another

214approved owner. Removing the employee's local Codex permission suspends that

215employee's Codex tokens but doesn't revoke them. Restoring the permission

216reactivates those tokens, so revoke credentials that must lose access permanently.

217 

218## Remove a departing employee

219 

220Start with the system that owns the employee's workspace membership:

221 

2221. Determine whether SCIM manages the employee or an administrator added the

223 employee manually.

2242. For a SCIM-managed employee, remove that employee's ChatGPT application

225 assignment and remove the employee from every access-granting provisioning

226 group in the identity provider. Don't remove the shared groups themselves.

2273. For an employee who isn't managed through SCIM, have a workspace owner or

228 admin remove the member from **Workspace settings > Members**.

2294. Confirm that the member is no longer present in the intended workspace.

230 For SCIM-managed access, verify that synchronization completed and that no

231 other identity-provider assignment can restore the membership.

2325. Record the completed removal and assign an owner to review tokens,

233 connected systems, and retained data.

234 

235Don't rely on a workspace-side removal when the identity provider still assigns

236the employee to a SCIM-managed group. A later synchronization can add the

237employee back to the workspace.

238 

239### Revoke Codex access tokens and transfer automation

240 

241Removing a person from the workspace doesn't replace an explicit review of

242credentials used by trusted automation. Apply this procedure only when the

243workspace supports and enables Codex access tokens.

244 

245Removing local Codex permission suspends existing tokens but doesn't revoke

246them. Those tokens can work again if a workspace owner restores the permission,

247so explicitly revoke credentials that must lose access permanently.

248 

249The **Access tokens** page identifies each token's creator and status. Use

250**Revoke** to remove access from active tokens:

251 

252 

253 

254> Illustration: ChatGPT Access tokens showing token names, their creators and status, and the Revoke action.

255 

256 

257 

2581. Have a workspace owner or admin open

259 [Access tokens](https://chatgpt.com/admin/access-tokens).

2602. Identify tokens created by the departing employee and the workflows using

261 those tokens.

2623. Choose the replacement identity. For a durable non-human workflow on an

263 eligible pay-as-you-go plan, use an approved dedicated [service

264 account](https://learn.chatgpt.com/docs/enterprise/service-accounts). Otherwise, identify an

265 approved active workflow owner. Have a workspace owner grant that person

266 access-token creation permission if needed and confirm that the person has

267 local Codex permission.

2684. Create the replacement token. A permitted service-account operator can

269 create a token from the service account's detail page. For a personal

270 replacement, have the new workflow owner create a token for their own

271 ChatGPT workspace identity. If the dialog shows **Scopes**, select

272 **Codex**. Select other scopes only when the workflow requires them. A

273 dialog without **Scopes** creates a Codex-only token. An administrator can't

274 create a personal token on another user's behalf.

2755. Update the workflow's stored secret, then verify that it runs successfully

276 with the replacement token.

2776. Have the workspace owner or admin revoke the departing employee's tokens

278 and any replaced credentials.

2797. Confirm that the revoked tokens can no longer start new authenticated runs.

280 

281When an approved replacement owner creates a token, use a descriptive workflow

282name and choose the shortest credential lifetime allowed by your organization's

283policy. If **Scopes** appears, select **Codex** and avoid permissions the

284workflow doesn't require. The following example shows the scoped interface:

285 

286 

287 

288> Illustration: ChatGPT Create access token dialog showing Name, Scopes with Codex selected, Expiration, and the Create action.

289 

290 

291 

292Workspace owners and admins can revoke any token in their workspace. A member

293with access-token permission can revoke only tokens they created. For current

294token permissions and rotation steps, see

295[Access tokens](https://learn.chatgpt.com/docs/enterprise/access-tokens#rotate-or-revoke-a-token).

296 

297### Review connected systems and retained data

298 

299Workspace provisioning doesn't manage every authorization boundary. Ask the

300relevant service owner to review access to:

301 

302- Source repositories and connected GitHub accounts.

303- Google Drive, Slack, and other connected applications.

304- Installed plugins, bundled skills, and connector-backed capabilities.

305- Hosted Codex environments, shared automation, and stored secrets.

306- Managed devices, locally stored credentials, and supported remote sessions.

307- Separate Platform API organizations, projects, and API keys.

308 

309Apply the controls owned by each system instead of assuming that a workspace

310group or SCIM change updates permissions everywhere. See

311[Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions)

312for the complete boundary model and [Plugin controls](https://learn.chatgpt.com/docs/enterprise/apps-and-connectors)

313for plugin availability, bundled skills, and connected-app permissions.

314 

315Removing workspace access isn't the same as deleting content. When a member

316leaves, the workspace automatically reassigns their projects and custom

317GPT ownership to a workspace owner. Those items aren't flagged for deletion.

318If the member rejoins, ownership returns to that member.

319 

320For Enterprise and Edu workspaces, chats, files, and canvas documents follow

321the configured workspace retention policy. Business workspaces keep chats,

322files, and canvas documents indefinitely. Healthcare workspaces also provide

323data retention controls; review the applicable workspace configuration and

324[ChatGPT for Healthcare guidance](https://help.openai.com/en/articles/20001046-chatgpt-for-healthcare).

325 

326Reassigning a project or GPT doesn't transfer the former member's private

327conversations or files, and the workspace owner can't view that private content

328through the ownership change. See

329[Workspace member removal and data retention](https://help.openai.com/en/articles/8266418)

330for current plan-specific behavior.

331 

332If security or compliance requires evidence of the change, record the

333affected workspace, employee, identity-provider assignment, completion time,

334approval owner, and token-revocation verification in the approved system.

335Confirm available records, administrator permissions, and retention in the

336authenticated [Admin API reference](https://chatgpt.com/admin/api-reference).

337Sensitive compliance scopes can require a workspace owner. For the product

338overview, see [Compliance API and audit events](https://learn.chatgpt.com/docs/enterprise/compliance-api).

339Don't infer event coverage, fields, or retention periods from this guide.

340 

341## Troubleshoot missing or unexpected access

342 

343| Symptom | What to check | Corrective action |

344| ----------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |

345| An employee can sign in but can't find the workspace | The target workspace, invitation, identity-provider assignment, and email address | Correct the assignment or email mapping, then verify workspace membership |

346| A synchronized employee receives the wrong seat | The default seat type for the workspace and the current member record | Have a workspace owner review the default and the employee's supported seat options |

347| A team change doesn't remove a feature | Other group memberships, **Direct roles**, and the employee's combined permissions | Remove the employee from obsolete groups, then have a workspace owner revoke only that employee's obsolete direct roles |

348| A manual group becomes SCIM-managed without approval | Matching group names, identity-provider members, inherited roles, and existing sharing | Reconcile approved group membership in the identity provider and review affected access |

349| Other employees lose access after a team change | Recent changes to shared group-role assignments and the former team's approved access | Have a workspace owner restore the approved shared group role, then update only the moving employee's membership |

350| An automation token stops working after a team change | The workflow owner's local Codex permission and current token status | Have a workspace owner restore approved local Codex access, or rotate and revoke the affected token |

351| An access change doesn't appear immediately | Identity-provider sync status, the expected sync window, and recent role updates | Have the identity administrator verify the sync before contacting OpenAI Support |

352| A removed employee returns to the workspace | The identity-provider application assignment and every access-granting provisioning group | Remove the employee in the identity provider instead of only in workspace settings |

353| A departing employee still has a listed token | The token creator, workflow owner, and workspace administrator's token permissions | Rotate any required automation credential, then revoke the departing employee's token |

354| A connected application still allows access | The source system's account, plugin availability, and application grant | Ask the relevant service owner to remove access using that system's supported controls |

355 

356Most identity providers synchronize every 30 to 40 minutes, although some

357apply updates immediately. Custom-role changes can take about five minutes to

358appear. You can't force a SCIM synchronization, so don't remove and recreate

359a workspace member to work around a delayed update.

360 

361If an access removal or group update still hasn't completed after the expected

362provider-specific window, have the identity administrator collect:

363 

364- The affected workspace and employee email address.

365- The identity provider, application assignment, and provisioning group.

366- The attempted change, its timestamp, and the latest synchronization status.

367- The direct roles, group roles, or tokens that still need review.

368 

369Contact [OpenAI Support](https://help.openai.com/) with those details through

370the Help Center. Treat a departed employee who retains access as a security

371exception and follow your organization's incident-escalation process.

372 

373For provider-specific setup and synchronization behavior, use the current

374[SCIM integration FAQ](https://help.openai.com/en/articles/10011769-openai-platform-scim-integration-faq).

375For sign-in and identity errors, see

376[Troubleshooting authentication](https://help.openai.com/en/articles/10489721-login-and-authentication-faq-s-and-troubleshooting-sso-scim-and-domain-verification).

377 

378## Verify the complete employee lifecycle

379 

380Use a representative test employee to verify all three transitions before a

381broader rollout:

382 

383| Lifecycle stage | Primary owner | Successful outcome |

384| --------------- | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |

385| Joiner | Identity administrator | The employee joins the correct workspace with the intended seat, group, and feature access |

386| Mover | Identity and workspace owners | Administrators update group membership, and workspace owners remove obsolete direct roles while preserving shared group roles |

387| Leaver | Identity and security owners | Administrators remove workspace access, review supported tokens, and revoke or reassign external access |

388 

389Record who approved each change, what you verified, and which owner is

390responsible for resolving any remaining access exceptions. Schedule recurring

391access reviews according to your organization's identity and security policies.

392 

393## Related docs

394 

395- [Admin rollout guide](https://learn.chatgpt.com/docs/enterprise/admin-setup)

396- [Groups and provisioning](https://learn.chatgpt.com/docs/enterprise/groups-and-provisioning)

397- [Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions)

398- [Plugin controls](https://learn.chatgpt.com/docs/enterprise/apps-and-connectors)

399- [Access tokens](https://learn.chatgpt.com/docs/enterprise/access-tokens)

400- [Service accounts](https://learn.chatgpt.com/docs/enterprise/service-accounts)

401- [Authentication](https://learn.chatgpt.com/docs/auth)

402- [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration)

403- [Compliance API and audit events](https://learn.chatgpt.com/docs/enterprise/compliance-api)