Skip to main content
Circuit integrates with external systems in two different ways, and they solve different problems:
  • Feeds sync documents from a source system into an index so Circuit can search them. Once a feed is running, the documents are copies in Circuit. Your agent reads them during chats the same way it reads any other indexed document.
  • Agent tools let an agent reach into an external system while a chat is happening to read or write live data: look up a Salesforce account, draft an email in Outlook, pull a record from Dynamics, find a file in Google Drive. Nothing is copied into an index. The agent makes the call at the moment the user asks.
Most workspaces use both. Feeds keep your reference library (catalogs, manuals, policies) searchable. Agent tools give agents access to the systems of record where live data lives.

Feeds

Feeds connect your indexes to external document sources and keep them synchronized. Instead of manually uploading documents, you can set up a feed that automatically imports and updates content from your existing systems. If you are an IT or security reviewer evaluating Circuit before users connect, start with Integration security and admin consent.

At a glance

IntegrationTypeAuthenticates withReadsWrites
Azure Blob StorageFeedShared keyBlob containersNone
BluebeamAgent toolOAuthProjects, documents, sessionsAnnotations, Studio sessions
ConfluenceFeedOAuth (Atlassian)Spaces and pagesNone
GitHubFeedPersonal access tokenRepository contentsNone
Google DriveFeedOAuth (Google)Files in My Drive and shared drivesNone
Google WorkspaceAgent toolOAuth (Google)Gmail, Calendar, ContactsGmail drafts
HubSpotAgent toolPrivate app tokenNoneTransactional emails
HubSpot FormsFeedPrivate app tokenForm submissionsNone
Microsoft Dynamics 365Agent toolOAuth (Entra)EntitiesEntities
Microsoft OutlookAgent toolOAuth (Entra)Mail (including shared mailboxes)Drafts only
NotionFeedOAuth (Notion)Pages and databases you shareNone
OneDriveFeedOAuth (Entra)Files you selectNone
RSSFeedNonePublic feed contentsNone
SalesforceAgent toolOAuth with PKCERecords, schemaRecords
SharePointFeedOAuth (Entra)Sites the admin authorizesNone
SlackAgent toolBot tokenNoneMessages to channels and threads

All integrations

Azure Blob Storage

Feed · Sync documents from blob containers.

Bluebeam

Agent tool · Read projects and documents, manage annotations and Studio sessions.

Confluence

Feed · Sync pages from Confluence spaces.

GitHub

Feed · Sync repository contents and documentation.

Google Drive

Feed · Sync documents from My Drive and shared drives.

Google Workspace

Agent tool · Read Gmail and Calendar, draft Gmail replies, look up contacts.

HubSpot

Agent tool · Send transactional emails from a HubSpot template.

HubSpot Forms

Feed · Sync form submissions as documents.

Microsoft Dynamics 365

Agent tool · Read and update Dynamics records.

Microsoft Outlook

Agent tool · Read mail and draft replies.

Notion

Feed · Sync pages and databases you share with Circuit.

OneDrive

Feed · Sync documents from a user’s OneDrive.

RSS

Feed · Sync content from any public RSS or Atom feed.

Salesforce

Agent tool · Query, create, and update records. Production and sandbox.

SharePoint

Feed · Sync documents from SharePoint sites and libraries.

Slack

Agent tool · Post messages to channels and threads.

How feeds work

When you connect a feed to an index:
  1. Initial import: Circuit imports all documents from the configured source.
  2. Ongoing updates: Circuit periodically checks for changes and re-imports updated documents.
  3. Deletions: If a document is removed from the source, it is removed from the index on the next update.
This keeps your index in sync with your source of truth without manual intervention.

Setting up a feed

1

Choose the source

Navigate to your index and open its Integrations tab. Each feed appears as a row with a status badge: Active (green) when syncing normally, or a yellow badge such as Error or Paused when attention is needed. Hover the badge to see the reason.
2

Authenticate

Connect Circuit to your external system using OAuth or an API token, depending on the source.
3

Select content

Choose which spaces, folders, or pages to import. You can sync an entire workspace or select specific areas.
4

Start the integration

Begin the initial import. Depending on the volume of content, this may take several minutes to a few hours.
To pause, edit, or remove a feed later, use the actions menu on the feed’s row on the index’s Integrations tab.

Feed best practices

  • Be selective: Sync the folders, spaces, or repositories that contain relevant, current content. Indexing your entire cloud storage usually hurts quality.
  • Organize at the source: Feeds reflect the structure they pull from. A clean source produces a clean index.
  • Monitor feed health: Check periodically that feeds are syncing successfully. Some integrations require occasional reconnection if a user’s permissions change.
  • Avoid duplicates: If the same content lives in multiple feeds or is also uploaded manually, agents may surface duplicate results.
Feed update frequency depends on your plan and configuration. Changes in the source typically appear in Circuit within a few hours.

Agent tools

Agent tools give an agent a live connection to an external system so it can read or write data during a chat. When an agent has an available tool, users can ask things like “show me open opportunities for Acme in Salesforce” or “draft a reply to the latest email from sarah@example.com” and the agent queries the system and responds with current data.
When do they run? Agent tools run at chat time: an agent uses them on demand while talking to a user, like sending one Slack message or writing one Salesforce record. Feeds run ahead of time on a sync schedule: they bring external content into an index so agents can search it any time. The HubSpot pair illustrates the split: HubSpot (agent tool) sends transactional emails at chat time; HubSpot Forms (feed) imports past form submissions into an index ahead of time.
Agent tools are configured at one of two levels:
  • Per user (Connected Accounts on your profile): each user connects their own account. The agent uses the signed-in user’s credentials and only sees what that user already has permission to see. This is the default for most integrations.
  • Per agent (Integrations tab in the agent editor): an administrator attaches shared credentials to a specific agent. The agent uses the same credentials for every user. Currently this path is used for HubSpot.

Connected accounts (per user)

Each user connects their own external accounts from their profile. Go to your profile and find the Connected Accounts section. Supported providers include Salesforce, Microsoft Dynamics, Microsoft Outlook, Google Workspace, and Bluebeam. Each provider appears as a row with a short description (“Connect your Salesforce account to access customer data”). To connect:
1

Click Connect

The button reads Connect when the account isn’t linked yet. It changes to Connecting… while you’re being redirected.
2

Sign in with the provider

Circuit opens the provider’s sign-in page (Salesforce, Microsoft, Google) and asks you to approve access. Follow the provider’s normal consent flow.
3

Review the connection

After consenting, you return to your profile. The row now shows your signed-in email (“Connected as sarah@example.com”) and a Disconnect button.
Agents that have tools for a connected provider can now use those tools on your behalf. Because the connection is tied to your user, the agent only sees records, files, or emails you already have access to in the source system. Another user chatting with the same agent uses their own connection and sees their own data.
Disconnecting an account from your profile revokes Circuit’s access on the next attempt. Ongoing chats will see the tool fail; new chats will behave as if the integration is unavailable until you reconnect.

Per-agent integrations

Some integrations are configured on a specific agent instead of per-user, so every user of that agent shares the same connection. Open the agent in the admin console and select the Integrations tab. The fields shown depend on the provider. For HubSpot, the form exposes:
  • HubSpot Access Token: a private-app access token from your HubSpot account.
  • HubSpot Email ID: the email address Circuit will impersonate when making calls (typically a shared integration user).
Fill in the fields and click Save. The agent can now call HubSpot on behalf of every user who chats with it. Because the credentials are shared, be thoughtful about who has access to the agent and what the agent is configured to do.

How agent tools differ from feeds

FeedAgent tool
What it doesCopies documents from a source into an indexCalls the source system live during a chat
Where data livesInside a Circuit indexStays in the source system
When data is readOn sync, then searched from the indexAt the moment the user asks
Best forStatic reference material (catalogs, manuals, policies)Live records that change often (opportunities, tickets, emails, calendar)
Configured onAn indexA user profile or an agent
A single workspace typically uses both. For example: a sales agent might have a feed syncing product catalogs into a reference index, and a Salesforce tool so it can look up the specific opportunity the user is working on.

Best practices for agent tools

  • Prefer per-user connections when possible. They inherit the user’s permissions, which keeps data access aligned with what each person is already allowed to see.
  • Document what the agent will do. If an agent has write access (for example, can draft Outlook emails), make this explicit in the agent’s description so users aren’t surprised.
  • Rotate shared credentials regularly. Per-agent tokens don’t expire on their own. Refresh them on whatever cadence your security policy requires.
  • Use groups to scope access. Per-agent integrations apply to every user of the agent; if only part of the team should have that power, share the agent with a group rather than the whole workspace.
Don’t see what you need? Some integrations are in development. For others, contact your Circuit account representative or use in-app support to request priority.