Skip to content

Integration ​

Imagine Asha at Acme Support just built an AI agent to handle billing questions — but the agent can't answer "what's my current balance?" because it has no way to reach Acme's billing system. The Integration sub-node solves that: connect your billing integration, and the agent can call it live, mid-conversation.

This page is for builders who already have an AI Agent node on the canvas. You'll walk away knowing how to attach one or more integrations, choose exactly which of their actions the agent can use, and keep that action list up to date. If you haven't connected an integration yet, start with Connecting an integration.

What the Integration sub-node does ​

The Integration sub-node — labelled "Integration" on the builder canvas — is how your own business logic reaches the agent. Each node exposes exactly one connected integration (an MCP, Model Context Protocol, server); the actions that integration advertises become tools the agent can call while it reasons through a request. Add several Integration sub-nodes to combine multiple integrations on the same agent.

  • What it does: connects one integration and makes its actions callable by the agent.
  • How it wires up: the node connects upward into its parent AI Agent node.
  • How many you can add: as many as you like — each Integration card keeps its "+" control to add another.
  • Before it shows up: an integration only appears in this picker once it has been connected on the Integrations page. See Connecting an integration.

The Integration panel: the integration picker, "Enabled actions" set to Only selected with two actions ticked, and "Actions that return a list".

The node on the canvas ​

In the node picker the Integration node carries a purple lightning-bolt icon and the description "Connect an integration — all its actions become available". On the canvas it renders as a compact purple card with a single connector that wires up into its parent AI Agent node.

  • The card live-reflects its scope: the subtitle shows how many actions the agent gets, for example "2 actions".
  • The card label defaults to the node's name; if you leave it unnamed it falls back to the connected integration's name, and finally to the literal "Integration".
  • Only integrations connect here: the canvas rejects any other node type on this connector.

See AI Agent Node for the full sub-node map this node belongs to.

Configuration panel ​

The configuration panel has three fields.

1. Integration (required) ​

A dropdown of your connected integrations, shown by name.

  • Help text: "Pick one integration. All of its actions become available to the agent."
  • Empty state: when nothing is connected yet, the picker points you to the Integrations page.

2. Enabled actions (optional) ​

Once you've picked an integration, choose which of its actions the agent may use:

ChoiceWhat the agent gets
All actions (N)Every action the integration has, including any it adds later.
Only selected (x of N)Only the actions you tick. "The agent sees only what you tick. Fewer actions means a smaller prompt."

With Only selected, a checklist shows each action's name and description, with Select all and Clear shortcuts. Ticking nothing is a real choice: the panel warns "No actions selected — the agent gets none from <integration>."

We recommend Only selected. Each action is described to the model on every turn, so a smaller, deliberate list keeps replies faster and cheaper, and a new action added to the integration later won't reach your agent until you tick it.

The checklist has explicit empty states:

ConditionMessage
Picked integration was removed"Picked integration not found. Re-pick or remove this sub-node."
Integration has no actions"<name> has no actions available. Run rediscovery on the Integrations page."

3. Actions that return a list (optional) ​

Mark the actions that return products, slots or options, such as a product search or an availability lookup. Their results can be shown to the customer as cards, are prepared while the agent is still speaking, and their prices are shown exactly as the integration returned them. Leave it empty if none of the integration's actions return a list.

Field reference ​

FieldTypeDefaultEffect
Integrationdropdown (required)—The connected integration whose actions the agent gets.
Enabled actionsAll actions · Only selected (checklist)—Which of the integration's actions the agent may call.
Actions that return a listAll actions · Only selected (checklist)—Actions whose results are lists of products, slots or options.

Worked example: Acme Support's balance lookup ​

Setup. Asha connects Acme's CRM integration on the Integrations page. She opens her billing-query agent, adds an Integration sub-node, and picks Acme CRM from the dropdown. Under Enabled actions she chooses Only selected; three actions appear: get_customer, get_balance, and get_transactions. She ticks only get_balance.

Action. Priya messages the Acme Support widget: "Can you tell me what I owe this month?" The agent reasons through the request, sees that get_balance is available and relevant, calls it with Priya's collected identity, and gets back the current balance.

Result. The agent replies: "Your current balance is ₹3,450, due by 15 August." Priya gets a direct answer without waiting for a human agent.

What just happened. Because Asha left get_customer and get_transactions unticked, those actions were completely invisible to the agent — it never tried to call them. The agent only saw and used what Asha explicitly allowed. When Acme's CRM adds a new get_invoice action next month, Asha runs Rediscover on the Integrations page. The new action appears in the checklist, unticked, so it stays out of reach until she decides to enable it.

How actions reach the agent ​

When your agent runs, Perfox expands each connected Integration sub-node into the agent's live tool list:

  1. For each connected integration, Perfox reads its saved action catalog.
  2. Your Enabled actions choice is applied: All actions exposes every action (including ones added later); Only selected exposes exactly the ticked actions — none, if you tick none.
  3. Only the enabled actions become callable tools the agent can invoke while it reasons. An unticked action is completely invisible to the agent — it can't call it, can't see its parameters, and won't mention it.

Every action always carries a description the agent can read. If an action ships without one, Perfox supplies a sensible fallback so the agent still knows the action exists and can inspect its parameters.

Two resilience behaviours keep this reliable:

  • Stale-catalogue warning — the agent uses a saved copy of each integration's action catalogue. Perfox flags a warning when an integration has never been checked or its saved catalogue is more than an hour old. A drifted catalogue risks the agent calling an action with the wrong arguments; refresh it by running rediscovery (see below).
  • Fail-soft loading — if an integration can't be loaded (for example it was removed, or its sign-in needs reconnecting), it is dropped with a warning rather than breaking the whole agent. The rest of the agent keeps running.

Rediscovery: keeping the catalogue fresh ​

Your agent uses a saved copy of each integration's action list, so a newly-added action is invisible until you re-sync it. The Integrations page handles connecting, editing, health-checking, and per-action toggling for each integration, and its Rediscover action re-reads the live action list and updates the saved catalogue. Run it whenever you add or change actions on an integration, or whenever this node reports a stale-catalogue warning. Rediscovery also refreshes the action picker on the AI Agent node. See Connecting an integration.

Connecting the integration first ​

Before an integration appears in this picker it must be connected on the Integrations page. There are two ways to connect one.

A ranked catalog of 119 popular integrations covers four connection styles:

StyleCountMeaning
One-click sign-in39Connect through a guided secure sign-in flow — no keys to paste.
Paste a token38Connect with an API key or bearer token you paste in.
Local integration40Entries that run through a local transport.
Coming soon2Listed but not yet connectable.

Sign-in entries run a modern, secure OAuth-based flow with proof-key protection and automatic client registration, so you can connect a hosted integration provider without handling credentials by hand. Once connected, the sign-in is stored securely and reused for you.

Custom URL (any endpoint you paste) ​

The same guided sign-in flow works for any custom integration URL you paste, not just catalog entries — Perfox reads the integration's advertised sign-in details and requests the right access for you. Both address forms work: Perfox normalises the endpoint for you and, if a base address doesn't respond on its own, automatically appends the standard /mcp path most integrations expose.

Manual (non-catalog) connections are protected against pointing at internal or unsafe addresses. The token you enter is encrypted at rest — never stored in plain text — and Perfox verifies the connection by fetching the action list immediately, reporting a clear discovery error if that first probe fails.

Full walkthrough: Connecting an integration.

The connected integration's settings ​

A connected integration carries these settings:

SettingValuesWhat it is
NametextDisplay name shown in this node's Integration picker.
DescriptiontextA human-readable description of the integration.
URLtextThe integration's endpoint, conventionally ending in /mcp.
Transportstreaming or standard HTTPHow Perfox talks to the integration over the wire.
Authenticationnone, bearer, API key, basic, or one-click sign-inHow the integration authenticates.
Auth header nametextThe header name to use when the integration expects an API key.
CredentialreferencePoints at a saved credential supplying the auth token, resolved fresh on every call — so tokens rotate without reconnecting.
ActionslistThe saved action catalog (this node's checklist reads it).
Health statusstatusThe result of the Integrations page health-check.
Rate limitcalls/secCaps how fast the agent can call this integration.
TimeoutmillisecondsPer-call timeout (default 30000).
Cache durationsecondsHow long a repeated action response may be reused.

What happens on every action call ​

The call contract ​

Perfox talks to your integration over a single HTTPS endpoint using the standard MCP protocol. Three operations cover the lifecycle:

OperationWhenPurpose
Handshakeat the start of a sessionEstablishes the connection and exchanges capabilities.
List actionson connection and re-syncReturns the integration's available actions.
Call actionon each agent turn that needs itRuns an action and returns its result.

Each action advertises a name, a description, and an input schema so the agent knows how to call it. Any authentication context you configure is replayed on every action call — placed in a request header, body field, or query parameter, whichever you choose. The connection session is tracked automatically across calls, and failed calls are retried with backoff. A rejected sign-in surfaces as a clear authentication error rather than a silent failure.

End-user identity headers ​

On every action call, Perfox forwards the conversation's collected identity as a set of standard X-Sa-End-User-* request headers, so your integration can match the caller against your own records without re-asking:

HeaderCarries
X-Sa-End-User-NameThe collected name.
X-Sa-End-User-PhoneThe collected phone.
X-Sa-End-User-EmailThe collected email.
X-Sa-End-User-External-IdYour own stable customer id — the strongest anchor.
X-Sa-End-User-AttributesA JSON object of any extra fields you collect, for workspace-specific data.

Empty values are omitted, and the same identity is forwarded consistently across text and voice, so your integration always sees a stable set of signals. These are signals, not proof of authentication — your integration decides whether to trust them. Verified identity is established separately through the authentication broker — see Authentication.

How every call is protected ​

Every action call flows through a managed pipeline that, in order:

  • validates the inputs the agent supplies,
  • checks the action is allowed for this agent,
  • enforces the integration's rate limit,
  • reuses a recent cached response when appropriate,
  • injects the right credential (bring-your-own-provider),
  • runs the action, and
  • records it for audit.

The rate limiter enforces a per-integration, per-action sliding window; when an integration's configured rate limit is exceeded, the call is rejected with a rate-limit error rather than overwhelming the integration. Compliance rules gate the pipeline so calls only run for their permitted purpose.

Built-in demo integrations ​

Perfox ships two demo integrations as reference examples for building your own domain integration (demo environment only — for real use you connect your own integration):

Demo integrationActions
Demo CRMget_customer, get_balance, get_transactions (read actions over seeded records)
Demo Communicationssend_email, send_sms_notification, send_whatsapp_template (handy for human-in-the-loop flows in demo agents)

See Built-in MCP Servers.

Where to go next ​

You can now attach any connected integration to your agent, control exactly which actions it exposes, and keep that list fresh with rediscovery. To go deeper:

  • AI Agent Node — see the full sub-node map this Integration node belongs to, and how all sub-nodes work together.
  • Connecting an integration — walk through the catalog, one-click sign-in, custom-URL, rediscovery, and field-by-field registry flow.
  • What MCP Is in Perfox — understand the call contract and the managed pipeline behind every action call.
  • Building Your Own MCP Server — learn how to expose your own business logic, including how to read the end-user identity headers your integration receives.
  • Built-in MCP Servers — explore the demo CRM and communications integrations that ship with Perfox.
  • Memory · Knowledge sub-node — the agent's memory settings and a sibling sub-node.
  • Authentication — how verified identity is established through the broker, separate from the identity headers.