You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(credential-groups): expose provider emails and align people rows (#7904)
* fix(credential-groups): expose provider emails and align people rows
* fix(credential-groups): keep people rows compact and active only
* fix(audit): compare effective block fields from base snapshots
Copy file name to clipboardExpand all lines: apps/docs/content/docs/workflows/blocks/credential.mdx
+14-2Lines changed: 14 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -81,7 +81,17 @@ Filter the returned OAuth credentials by provider. Select one or more providers
81
81
82
82
An organization owner or admin must first [set up connected accounts](/platform/connected-accounts) and allow this workflow's workspace. The block uses the organization that owns the workspace; there is no credential group or organization selector.
83
83
84
-
Every authorized workflow in an allowed workspace can use every active contribution in the organization's pool. Results are not restricted to the running user's own accounts, and no separate per-workflow grant is required. Normal workflow permissions still apply.
84
+
Every authorized workflow in an allowed workspace can discover active contributions for the integrations allowed in that workspace. Results are not restricted to the running user's own accounts, and no separate per-workflow grant is required. Normal workflow permissions still apply. Workspace and integration access are checked again on every page.
85
+
86
+
### Discover accounts by provider
87
+
88
+
1. Choose **List Organization Accounts**.
89
+
2. Select a provider such as **Gmail** in **Providers**. Leave it empty to list all allowed providers.
90
+
3. Leave **Email** blank. You do not need to know an account's email to discover it.
91
+
4. Read **emails** for the provider account addresses, or **credentials** for the corresponding account references.
92
+
5. While **hasMore** is true, pass **nextCursor** as **Cursor** with the same filters to read the next page.
93
+
94
+
Multiple accounts are returned separately, including accounts contributed by the same person. Disconnected accounts, accounts needing reconnection, and revoked invitations are excluded. Listing never chooses an account automatically for a downstream block.
85
95
86
96
### Inputs
87
97
@@ -102,7 +112,9 @@ Find operations fail unless there is exactly one active matching connection. Lis
102
112
103
113
**Find Organization Account** returns `credentialId`, `displayName`, `providerId`, and the invitation `email`. Pass `credentialId` into the corresponding integration block's credential field in advanced mode.
104
114
105
-
**List Organization Accounts** returns these account references in `credentials`, along with `count`, `hasMore`, and `nextCursor`. `count` is the number returned on this page. Feed `credentials` into a ForEach loop and use `<loop.currentItem.credentialId>` inside the loop. To process additional pages, pass `nextCursor` into another call with the same filters while `hasMore` is true; the block does not fetch all pages automatically.
115
+
**List Organization Accounts** returns these account references in `credentials`, with an additional `accountEmail` field containing the email verified by the OAuth provider. The existing `email` field remains the person's invitation address, which can differ from their provider account address. An optional **Email** input continues to filter by that exact invitation address.
116
+
117
+
The list also returns `emails`, `count`, `hasMore`, and `nextCursor`. `emails` contains the provider account addresses on this page in the same order as `credentials`; it preserves separate accounts even when addresses repeat. `count` is the number of accounts returned on this page. Feed `credentials` into a ForEach loop and use `<loop.currentItem.credentialId>` inside the loop. To process additional pages, pass `nextCursor` into another call with the same filters while `hasMore` is true; the block does not fetch all pages automatically.
106
118
107
119
For example, name a Credential block **account**, choose **Find Organization Account**, set **Email** to `alex@example.com`, and select **Gmail**. Reference `<account.credentialId>` in a Gmail block to act using Alex's contribution.
description: 'Select credentials or find organization accounts and MCP connections',
23
23
longDescription:
24
-
'Select workspace OAuth credentials or find and list organization accounts in an allowlisted workspace. Organization accounts are shared with every authorized workflow in that workspace. Returns credential references and account metadata. Manage invitations in organization settings.',
24
+
'Select workspace OAuth credentials or find and list organization accounts in an allowlisted workspace. List Organization Accounts discovers connected accounts by provider without requiring an email. An optional exact enrollment email narrows the list. Only active accounts for integrations allowed in the executing workspace are returned; disconnected accounts are excluded. Results are paginated using hasMore and nextCursor. Manage invitations in organization settings.',
25
25
bestPractices: `
26
26
- Use "Select Credential" to define an OAuth credential once and reference <CredentialBlock.credentialId> in multiple downstream blocks instead of repeating credential IDs.
27
27
- Use "List Credentials" with a ForEach loop to iterate over all OAuth accounts (e.g. all Gmail accounts).
28
28
- Use the Provider filter to narrow results to specific services (e.g. Gmail, Slack).
29
-
- The outputs are credential ID references, not secret values — they are safe to log and inspect.
29
+
- Use "List Organization Accounts" with Providers selected and Email blank to discover all accessible accounts for those integrations.
30
+
- Organization lists return one page at a time. While hasMore is true, pass nextCursor as Cursor with the same filters to get every matching account.
31
+
- "Find Organization Account" requires an exact enrollment email and provider, and fails unless exactly one active account matches.
32
+
- Outputs contain account identities and credential references, never secret values.
30
33
- To switch credentials across environments, replace the single Credential block rather than updating every downstream block.
'Provider account email addresses on this page, in the same order as credentials. Multiple accounts are preserved; follow nextCursor while hasMore is true for additional pages.',
0 commit comments