Skip to content

Commit 8357027

Browse files
ouiliameclaude
andcommitted
docs(integrations): rewrite the Integrations guide for the sidebar flow
Integrations moved out of Settings to a top-level sidebar page. Rewrote the guide to the current journey: the Integrations page (Connected/Featured/search), service pages with one-click skills and templates, + Add to Sim -> connect dialog (display name + permissions) -> provider OAuth. Replaced the four Settings-era screenshots with current captures (connect dialog illustrated via HubSpot); block-side screenshots (account selector, manual credential ID) kept; one VISUAL marker for the connection detail view pending a fresh capture. Members/roles, credential-ID, reconnect/disconnect, email polling, and FAQ substance unchanged apart from navigation. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 033b74d commit 8357027

1 file changed

Lines changed: 44 additions & 67 deletions

File tree

  • apps/docs/content/docs/en/integrations

apps/docs/content/docs/en/integrations/index.mdx

Lines changed: 44 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -8,79 +8,74 @@ import { Callout } from 'fumadocs-ui/components/callout'
88
import { Image } from '@/components/ui/image'
99
import { FAQ } from '@/components/ui/faq'
1010

11-
Integrations are authenticated connections to third-party services like Gmail, Slack, GitHub, Dropbox, and more. Sim handles the OAuth flow, token storage, and automatic token refresh — you connect once and select the account in any block that needs it.
11+
Integrations are authenticated connections to third-party services like Gmail, Slack, GitHub, and HubSpot. Sim handles the OAuth flow, token storage, and automatic token refresh — you connect once and select the account in any block that needs it.
1212

1313
You can connect **multiple accounts per service** — for example, two separate Gmail accounts for different workflows.
1414

15-
## Managing Integrations
15+
## The Integrations page
1616

17-
To manage integrations, open your workspace **Settings** and navigate to the **Integrations** tab.
17+
Click **Integrations** in the workspace sidebar. The page shows your **Connected** accounts, a **Featured** list, and a search box covering every available service.
1818

1919
<Image
20-
src="/static/integrations/integrations-list.png"
21-
alt="Integrations tab showing connected accounts with service icons, names, and Details/Disconnect buttons"
22-
width={700}
23-
height={500}
20+
src="/static/integrations/hubspot/integrations-page.png"
21+
alt="The Integrations page showing the sidebar entry, search, connected accounts, and featured integrations"
22+
width={800}
23+
height={664}
2424
/>
2525

26-
The list shows all your connected accounts with the service icon, display name, and provider. Each entry has a **Details** button and a **Disconnect** button.
27-
28-
## Connecting an Account
26+
Open a service to see what it offers:
2927

30-
Click **+ Connect** in the top right to open the connection modal.
28+
- **Skills** — ready-made capabilities you add with one click, like *upsert-contact* for HubSpot.
29+
- **Templates** — starter workflows built around the service.
30+
- **+ Add to Sim** — connects your account.
3131

3232
<Image
33-
src="/static/integrations/connect-service-picker.png"
34-
alt="Connect Integration modal showing a searchable list of available services"
35-
width={500}
36-
height={400}
33+
src="/static/integrations/hubspot/hubspot-page-add-to-sim.png"
34+
alt="A service page (HubSpot) with its skills, templates, and the Add to Sim button"
35+
width={800}
36+
height={550}
3737
/>
3838

39-
Search for or select the service you want to connect, then fill in the connection details:
39+
## Connecting an account
40+
41+
1. Open the service's page and click **+ Add to Sim**.
42+
2. Enter a **Display name** to identify this connection (e.g. "Work Gmail" or "Sales HubSpot"), and optionally a **Description**.
43+
3. Review the **Permissions requested** — these are the scopes Sim will ask the provider for.
44+
4. Click **Connect** and complete the provider's sign-in and approval flow.
4045

4146
<Image
42-
src="/static/integrations/connect-modal.png"
43-
alt="Connect Gmail modal showing permissions requested, display name field, and description field"
44-
width={500}
45-
height={450}
47+
src="/static/integrations/hubspot/connect-hubspot-modal.png"
48+
alt="The connect dialog (HubSpot shown) with display name, description, and the permissions requested"
49+
width={700}
50+
height={708}
4651
/>
4752

48-
1. Review the **Permissions requested** — these are the scopes Sim will request from the provider
49-
2. Enter a **Display name** to identify this connection (e.g. "Work Gmail" or "Marketing Slack")
50-
3. Optionally add a **Description**
51-
4. Click **Connect** and complete the authorization flow
53+
When the provider redirects you back, the connection appears under **Connected**.
5254

53-
## Using Integrations in Workflows
55+
## Using integrations in workflows
5456

55-
Blocks that require authentication (e.g. Gmail, Slack, Google Sheets) display a credential selector. Select the connected account you want that block to use.
57+
Blocks that require authentication (e.g. Gmail, Slack, HubSpot) display an account selector. Select the connected account you want that block to use.
5658

5759
<Image
5860
src="/static/credentials/oauth-selector.png"
59-
alt="Gmail block showing the account selector dropdown with connected accounts"
61+
alt="A block showing the account selector dropdown with connected accounts"
6062
width={500}
6163
height={350}
6264
/>
6365

64-
You can also connect additional accounts directly from the block by selecting **Connect another [service] account** at the bottom of the dropdown.
66+
You can also connect another account directly from the block by selecting **Connect another [service] account** at the bottom of the dropdown.
6567

6668
<Callout type="info">
6769
If a block requires an integration and none is selected, the workflow will fail at that step.
6870
</Callout>
6971

70-
## Using a Credential ID
71-
72-
Each integration has a unique credential ID you can use to reference it dynamically. This is useful when you have multiple accounts for the same service and want to switch between them programmatically — for example, routing different workflow runs to different Gmail accounts based on a variable.
72+
## Using a credential ID
7373

74-
To copy a credential ID, open **Details** on any integration and click the clipboard icon next to the Display Name.
74+
Each connection has a unique credential ID you can use to reference it dynamically. This is useful when you have multiple accounts for the same service and want to switch between them programmatically — for example, routing different workflow runs to different Gmail accounts based on a variable.
7575

76-
<Image
77-
src="/static/integrations/copy-credential-id.png"
78-
alt="Integration details showing the Copy credential ID tooltip on the clipboard icon next to the Display Name"
79-
width={700}
80-
height={150}
81-
/>
76+
To copy a credential ID, open the connection from the **Connected** list and use the copy control next to its name.
8277

83-
In any block that requires an integration, click **Switch to manual ID** next to the credential selector to switch from the dropdown to a text field.
78+
In any block that requires an integration, click **Switch to manual ID** next to the account selector to switch from the dropdown to a text field.
8479

8580
<Image
8681
src="/static/integrations/switch-to-manual-id.png"
@@ -98,39 +93,21 @@ Paste or reference the credential ID in that field. You can use a `{{SECRET}}` r
9893
height={200}
9994
/>
10095

101-
## Integration Details
96+
## Managing a connection
10297

103-
Click **Details** on any integration to open its detail view.
98+
Open a connection from the **Connected** list to manage it:
10499

105-
<Image
106-
src="/static/integrations/integration-details.png"
107-
alt="Integration details view showing Display Name, Description, Members, Reconnect, and Disconnect"
108-
width={700}
109-
height={420}
110-
/>
111-
112-
From here you can:
113-
114-
- Edit the **Display Name** and **Description**
115-
- Manage **Members** — invite teammates by email and assign them an **Admin** or **Member** role
116-
- **Reconnect** — re-authorize the connection if it has expired or if you need to update permissions
117-
- **Disconnect** — remove the integration entirely
100+
{/* VISUAL: the connection detail view in the new Integrations page — display name, members, reconnect, disconnect. */}
118101

119-
Click **Save** to apply changes, or **Back** to return to the list.
102+
- Edit the **Display name** and **Description**.
103+
- Manage **Members** — invite teammates and assign them an **Admin** or **Member** role. Admins can edit, reconnect, disconnect, and manage access; Members can use the connection in workflows. When you connect an account, you are its Admin.
104+
- **Reconnect** — re-authorize if the connection expired or you need updated permissions.
105+
- **Disconnect** — remove the connection entirely.
120106

121107
<Callout type="warn">
122108
If you disconnect an integration that is used in a workflow, that workflow will fail at any block referencing it. Update blocks before disconnecting.
123109
</Callout>
124110

125-
## Access Control
126-
127-
Each integration has role-based access:
128-
129-
- **Admin** — can view, edit, disconnect, reconnect, and manage member access
130-
- **Member** — can use the integration in workflows (read-only)
131-
132-
When you connect an integration, you are automatically set as its Admin. You can share it with teammates from the Details view.
133-
134111
## Email polling groups
135112

136113
The Gmail and Outlook email triggers can watch several team members' inboxes through a single trigger, called an **email polling group** (Team and Enterprise plans). An admin creates a group under **Settings → Email Polling**, picks Gmail or Outlook, and invites members by email; each invitee connects their own inbox through a link. On an email trigger, select the group from the credentials dropdown instead of a single account, and the trigger routes everyone's mail through the workflow.
@@ -139,9 +116,9 @@ Inviting someone to a group grants inbox access for that trigger only, which is
139116

140117
<FAQ items={[
141118
{ question: "Does Sim handle OAuth token refresh automatically?", answer: "Yes. When an integration is used during execution, Sim checks whether the access token has expired and automatically refreshes it using the stored refresh token before making the API call. You do not need to handle token refresh manually." },
142-
{ question: "Can I connect multiple accounts for the same service?", answer: "Yes. You can connect multiple accounts per service (for example, two separate Gmail accounts). Each block lets you select which account to use from the credential dropdown. This is useful when different workflows need different identities or permissions." },
143-
{ question: "What is a credential ID and when should I use it?", answer: "Each integration has a unique credential ID that you can use instead of the dropdown selector. This lets you pass the credential dynamically — for example, from a variable or a previous block's output — so the same workflow can use different accounts depending on the context. Copy the ID from the Details view and use Switch to manual ID in any block to paste or reference it." },
144-
{ question: "What happens if an OAuth token can no longer be refreshed?", answer: "If a refresh fails (e.g. the user revoked access or the refresh token expired), the workflow will fail at the block using that integration. Open Settings → Integrations, find the connection, and use the Reconnect button to re-authorize it." },
119+
{ question: "Can I connect multiple accounts for the same service?", answer: "Yes. You can connect multiple accounts per service (for example, two separate Gmail accounts). Each block lets you select which account to use from the account dropdown. This is useful when different workflows need different identities or permissions." },
120+
{ question: "What is a credential ID and when should I use it?", answer: "Each connection has a unique credential ID that you can use instead of the dropdown selector. This lets you pass the credential dynamically — for example, from a variable or a previous block's output — so the same workflow can use different accounts depending on the context. Copy the ID from the connection's detail view and use Switch to manual ID in any block to paste or reference it." },
121+
{ question: "What happens if an OAuth token can no longer be refreshed?", answer: "If a refresh fails (e.g. the user revoked access or the refresh token expired), the workflow will fail at the block using that integration. Open Integrations in the sidebar, find the connection, and reconnect it to re-authorize." },
145122
{ question: "Are OAuth tokens encrypted at rest?", answer: "Yes. OAuth tokens are encrypted before being stored in the database and are never exposed in the workflow editor, logs, or API responses." },
146123
{ question: "What happens if I disconnect an integration that is used in a workflow?", answer: "Any block referencing the disconnected integration will fail at runtime. Make sure to update those blocks before disconnecting, or reconnect the integration to restore access." },
147124
]} />

0 commit comments

Comments
 (0)