# Connect integrations

> Add the services your AI uses outside help.ai, sign each one in once, and choose who can use it.

**Integrations**, under **Connections** in the sidebar, holds everything your AI uses outside help.ai: apps such as GitHub, Google or Slack, services such as Notion or Calendly, your own MCP server and your own API. You add and sign in each one once, here. Agents, deployments and AI Chat then pick the ones they need.

**API Keys**, the other page under **Connections**, works the other way round: keys your own scripts use to call help.ai. See [Create and manage API keys](https://support.help.ai/workspace-and-billing/create-and-manage-api-keys).

Owners, Admins and Members can add integrations. Only the person who added one, an Owner or an Admin can change it, sign it in again or delete it.

## Add an integration

1. Open **Integrations** and select **Add integration**.
2. Find the service. The list is grouped by category, such as **Productivity**, **Developer Tools**, **Knowledge Base**, **Scheduling** and **Commerce**, and **Search integrations...** finds one fast. Each tile says how it signs in: **Sign in with GitHub**, **Paste a key**, **No sign-in needed** or **Choose how it signs in**.
3. Fill in the form (see below) and select **Create Integration**.
4. If it signs in on the service's own page, that page opens next. Approve access there, and you come back to help.ai.

For a service that isn't in the list, the **Custom** group at the end has **Your own MCP server**, for any remote MCP server by its address, and **Custom API**, for any API by its address and key. A service that isn't available yet shows **Coming soon**, **Request access** or **Unavailable** and can't be picked.

The integration is saved before you sign in. If you cancel the sign-in or it doesn't finish, it stays in the list as **Not signed in**. Open it and select its sign-in button, such as **Sign in with Calendly**, to try again.

| Integration | How it signs in |
| --- | --- |
| Google, Microsoft, GitHub, Instagram, TikTok, Stripe, Notion, Calendly, Sentry, Supabase | Sign in with the service |
| Linear | Sign in with Linear, or an API key |
| Atlassian | Sign in with Atlassian, or your email and an API token |
| Slack | Sign in with Slack, or a webhook URL |
| Discord, Telegram | A bot token |
| Zapier | A webhook secret or an API key |
| Vercel | An API key |
| DeepWiki, Shopify store | No sign-in needed |
| Your own MCP server | The server's own sign-in, a key, or none |
| Custom API | A key, or a username and password |

The service and how it signs in can't be changed later. To switch, add it again.

## The form

| Section | What goes in it |
| --- | --- |
| **Details** | A **Name**, which members see and the AI's tools are named after. Any details the service needs, such as the **Server address** of your own MCP server, a Custom API's **Address**, or a Shopify store's **Store** domain. And **When should the AI use it? (optional)**, such as "Use this Stripe account for refunds only." |
| **Sign-in** | How it signs in, when there's a choice. For a sign-in on the service's page, the **Access** to grant; the recommended set starts selected. Otherwise the key, token, or username and password. A key is sent the way you choose under **Send it as**: **Authorization: Bearer**, **A header** or **A query parameter** |
| **Allowed sites** | Where its sign-in may go. help.ai sets a built-in service's own sites. A Custom API's key goes only to its **Address** and the **Other sites** you add, such as `uploads.example.com`, or `*.example.com` for every subdomain |
| **Who can use it** | Which workspace members can use it, and whether visitors' chats can (see below) |

Keys and passwords are stored encrypted and never shown again. When you edit an integration, leave a key as shown to keep the saved one. If you change the address or the allowed sites, you enter the key again, so a saved key never goes to a site it wasn't entered for.

## Who can use it

| Option | Who can use it |
| --- | --- |
| **Everyone in the workspace** | Every workspace member. On by default |
| **Only these members** | The members you pick in **Choose members…**, when **Everyone in the workspace** is off. The person who added it always can |
| **Visitors in public chats** | Agents in your chat widgets and hosted pages can act with it. Off by default |

Owners and Admins see every integration in the list. Other members see only the ones shared with them. The pickers on agents, deployments and AI Chat list only the integrations shared with you.

Turn on **Visitors in public chats** only for integrations you're happy for visitors' chats to act with, such as one with a read-only key. A public chat can't use an integration that isn't shared with visitors, and the pickers mark it **Members only**.

## Keep integrations healthy

The **Integrations** list shows each one's **Name**, **Category**, **Status**, **Shared with**, **Last used** and **Updated**. Search it, or filter it by category or status.

| Status | What it means |
| --- | --- |
| **Connected** | Signed in and ready to use |
| **Not signed in** | Saved, but not signed in yet. Open it and sign in |
| **Needs attention** | Its sign-in stopped working. Open it to see why, and sign in again |

A turned-off integration also shows **Disabled** in the list, and **Turned off** in the pickers.

**Check sign-in**, in a row's actions menu or on the integration's page, checks the saved sign-in. For one that signs in on the service's page, it also refreshes the sign-in when it can. The integration's page shows when it was signed in and last checked, and the **Latest sign-in problem**, if there is one.

A connected integration with its own actions, such as GitHub or your own MCP server, also has **Test connection** on its page. It connects the way a chat would and shows **Connected** with its number of tools, or what went wrong and how to fix it.

The **Dashboard** counts enabled integrations that need signing in again under **Integration issues**. Select it to see them in **Integrations**.

## Change or remove an integration

Open it from the list, or select **Edit** on its row. You can rename it, change its details, its note for the AI and who can use it, and turn **Enabled** off to pause it everywhere without losing its sign-in. Select **Save changes**. If you change the **Access**, sign in again to approve it, then save any other changes.

From the row's actions menu, **Disable** or **Enable** it, or **Delete** it. Agents, deployments and chats that use a deleted integration stop using it.

## Use an integration

Pick it under **Integrations** on an agent, under **Integrations in this chat (optional)** on a widget or hosted-page deployment, or with **Integrations** in AI Chat's **Chat settings**. See [Give your agent tools and integrations](https://support.help.ai/ai-agents/tools-connected-accounts-and-credentials).

<Tip>
Grant the narrowest access the job needs, share with visitors only what their chats should act with, and disable or delete an integration you no longer use instead of leaving it on.
</Tip>
