> ## Documentation Index
> Fetch the complete documentation index at: https://docs.servflow.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrations

> What an integration is: your connection to one outside service, set up once and used by name wherever an agent needs it

An integration is your connection to one outside service: a Discord bot, a GitHub App, a database. It holds what ServFlow needs to reach that service as you. You set it up once, give it a name, and choose it by that name wherever an agent needs it. To add one, see [Add an integration](https://docs.servflow.io/guides/add-an-integration.md). The apps ServFlow connects to are listed in the [integrations directory](https://servflow.io/integrations); the built-in types are in [Available integrations](https://docs.servflow.io/references/integrations.md).

![The Integrations page listing integrations with their type](https://mintcdn.com/servflow/xWuDwV6ivYm_bf7G/images/guides/add-an-integration/01-integrations.png?fit=max\&auto=format\&n=xWuDwV6ivYm_bf7G\&q=85\&s=2439ebff3a720673c85f8494554b0124)

## Why an integration is separate from the agent

The details are sensitive, so they are entered once and not copied into every agent. And several agents can use the same integration, so replacing a token is one change, not one change per agent.

An integration is also either enabled or disabled. Saving a new integration stores it disabled. Enabling it is what makes ServFlow start serving it, and enabling it again is how you make a saved change live.

## Three places an integration is used

| Where | What it does there | Example |
| - | - | - |
| An entry | Lets the agent receive messages from the service, and reply as that bot or app | A Discord bot entry |
| A tool | Lets the agent act on the service when it decides to | A tool that sends a Discord message |
| A step | Lets the entry look something up before the agent answers | A step that reads your database |

In each place, you pick the integration from a list by its name.

![A tool dialog for Discord Send Message with an integration chosen under Discord Bot](https://mintcdn.com/servflow/545ICsSSJFr63lId/images/concepts/integrations/01-integration-in-tool.png?fit=max\&auto=format\&n=545ICsSSJFr63lId\&q=85\&s=f817fda3d5976937d6b763f7c9954b4a)

A tool that connects to an MCP server can also take its access token from an integration. See [Tools](https://docs.servflow.io/concepts/tools.md).

## One integration is both the key and the identity

When an agent replies through a Discord integration, it replies as that bot, with that bot's name and picture. The integration that lets messages in also decides who the agent is when it answers. The same holds for a GitHub App and a Telegram bot.

## Sharing an integration between agents

Two agents can use the same Discord bot. Each decides for itself whether a message is for it, using its own entry settings. If both would answer the same message, both do.

## Integrations and secrets

Each sensitive field of an integration, such as a bot token, can point at a stored secret instead of holding the value. See [Secrets](https://docs.servflow.io/concepts/secrets.md), including what to do after you replace a secret that an integration uses.

## What kinds there are

The **New Integration** dialog shows every kind of integration your instance supports. The [Available integrations](https://docs.servflow.io/references/integrations.md) has a section for each, with its fields and what uses it.

## Integrations in the dashboard

**Integrations**, in the sidebar under **Configure**, lists your integrations with their status. Click **New Integration**, choose a kind, and give it a **Name**. ServFlow also gives it an internal id, which configs keep using even if you rename it later.

**Ready** means the integration is enabled and can be used. **Not connected** means a guided OAuth setup created the integration, but the provider approval did not finish; use the row's **Connect integration** action to complete it. After the approval finishes, enable the integration to start serving it.

## When a change takes effect

Editing an integration only updates what is stored. An enabled integration keeps using its previous settings until you enable it again or restart the server.

An agent that stays connected through an integration, such as a Discord bot, keeps using the old settings until you enable the agent again.

## Related

> **[Add an integration](https://docs.servflow.io/guides/add-an-integration.md)**
>
> Set one up and use it in an entry.

> **[Available integrations](https://docs.servflow.io/references/integrations.md)**
>
> Every integration type and its fields.

> **[Secrets](https://docs.servflow.io/concepts/secrets.md)**
>
> Where an integration's tokens are kept.

> **[Connect an agent to Discord](https://docs.servflow.io/guides/connect-an-agent-to-discord.md)**
>
> An integration used by an entry, step by step.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.