Skip to content

How integrations work

An integration is a capability you add to an agent: a channel it can be reached on, or an app it can read from and act in. Every integration follows the same lifecycle and the same core principles, whether you add it from the dashboard, the CLI, or the agent itself.

The lifecycle: install → connect → active

Section titled “The lifecycle: install → connect → active”

Adding an integration moves through three stages.

  1. Install. You choose an integration and add it to an agent. This records your intent and makes the integration’s settings available. Nothing external is contacted yet.
  2. Connect. Most integrations need a credential or an account. For apps and channels this is usually a one-time OAuth authorization — you sign in to the provider and approve access. For phone-based channels it’s a phone number the agent provisions. Some platform integrations need nothing at all.
  3. Active. Once the integration has what it needs, it turns on and its tools become available to the agent. From that point the agent can use the integration in its work, and you can see it as active on the agent.

You can remove an integration at any time. Removing it turns the tools off and cleans up anything the integration set up for that agent.

For the OAuth “connect your account” step in detail, see How connecting works.

A defining principle on Alfe is per-agent identity. When an agent connects Slack, Discord, or Teams, it does so as its own bot, with its own credentials — never a shared, global one. When it connects an app like GitHub or Notion, the account is connected for that agent.

This means:

  • Two agents can each connect the same platform independently, as separate identities.
  • Removing an integration from one agent never affects another.
  • Credentials are stored encrypted and scoped to the agent that owns them.

Integrations and the credentials behind them can live at four levels:

  • Organization — available to every agent in the org.
  • Team — shared across a team.
  • Project — shared within a project.
  • Agent — belongs to a single agent.

Settings and connections defined higher up are inherited by the levels below, so you can connect an account once at the organization or team level and let the agents beneath it use it, or connect something for just one agent when it should stay private to that agent. See Identity and scopes for how scopes work across the platform.

Integrations fall into two pricing shapes:

  • Free — most channels and app connections. There’s no charge for the integration itself; you only pay for underlying usage that any agent incurs (for example model usage or voice minutes).
  • Usage-based — a few integrations meter what they consume. Usage draws down your tenant’s shared credit pool, the same balance that funds everything else an agent does.

Either way there’s no per-provider bill to reconcile — usage is settled against the one pool. See the pricing page for current rates.

Integrations can be added by a person or by an agent:

  • A person installs and connects integrations from the dashboard or the CLI.
  • An agent can install and configure its own integrations over MCP or the Agent API — useful for agents that set themselves up.

See Managing integrations for the day-to-day commands and dashboard actions.