Integrations

Integrations connect your workflows to services such as Gmail, Slack, GitHub, and HubSpot. Connect with OAuth or use a supported API token or service account, then select the saved credential in a block. Agent Serve stores credentials securely and refreshes OAuth tokens when the provider supports it.

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

The Integrations page

Click Integrations in the workspace sidebar. The page shows your Connected accounts, a Featured list, and a search box covering every available service.

The page's second tab, Playbooks, holds your workspace's agent skills — reusable instructions an agent can load for a task.

Open a service to see what it offers:

  • What it can do — the triggers and operations the service supports.
  • Playbooks — ready-made instructions you add with one click, like upsert-contact for HubSpot.
  • Connect — the button in the top right connects your account. It is labeled for the service, like Connect HubSpot; when more than one connection method is available it opens a menu.

Connecting with OAuth

  1. Open the service's page and click Connect (for example Connect HubSpot). If a menu appears, choose Connect with OAuth.
  2. Enter a Display name to identify this connection (e.g. "Work Gmail" or "Sales HubSpot"), and optionally a Description.
  3. Review the Permissions requested — these are the scopes Agent Serve will ask the provider for.
  4. Click Connect and complete the provider's sign-in and approval flow.

When the provider redirects you back, the connection appears under Connected.

For API tokens and service accounts, choose that option from the connect button or menu and follow the setup guide under that service. These connections have different fields and rotation requirements.

Using integrations in workflows

Blocks that require authentication (e.g. Gmail, Slack, HubSpot) display an account selector. Select the connected account you want that block to use.

You can also connect another account directly from the block by selecting Connect another [service] account at the bottom of the dropdown.

If a block requires an integration and none is selected, the workflow will fail at that step.

Using a credential ID

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.

To copy a credential ID, open the connection from the Connected list and use the copy control next to its name.

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.

Paste or reference the credential ID in that field. You can use a {{SECRET}} reference or a block output variable to make it dynamic.

Managing a connection

Open a connection from the Connected list to manage it:

  • Edit the Display name and Description.
  • 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.
  • Reconnect — re-authorize if the connection expired or you need updated permissions.
  • Disconnect — remove the connection entirely.

If you disconnect an integration that is used in a workflow, that workflow will fail at any block referencing it. Update blocks before disconnecting.

Common Questions

Yes. When an integration is used during execution, Agent Serve 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.
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.
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.
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.
Yes. OAuth tokens are encrypted before being stored in the database and are never exposed in the workflow editor, logs, or API responses.
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.