Senses & Connections
Integrations
Integrations are the always-on channel of the Senses layer. Connect a service once and its data flows into your workspace as entities — searchable, openable, and actionable by AI.
River ships with 100+ integrations and you can register your own.
Two patterns#
Integrations split into two patterns. Most services support both.
Tool-based#
The AI calls the service on demand. Nothing syncs in advance — the connection is a set of capabilities the AI can invoke.
Examples:
- "Search Slack for messages mentioning fraud signals." → uses
slack_search - "Look up customer X in Stripe." → uses
stripe_customer_get - "Refund this charge." → uses
stripe_refund_create
Use tool-based when:
- You don't need the data in your tree continuously
- The service is a service of record (not a workspace) — like Stripe
- You want lightweight on-demand access
Entity-based#
Data syncs continuously into your workspace as entities. Once it's an entity, every other layer of River can act on it.
Examples:
- Gmail →
EmailandEmailThreadentities, fully searchable - Google Calendar →
CalendarEvententities linked to attendees - Google Drive →
Fileentities with full text extracted - Notion →
Pageentities mirrored - HubSpot →
Contact,Company,Dealentities
Use entity-based when:
- You want the data to live continuously in River
- You want Agents to react to changes (new email arrives, new file lands)
- You want full-text search and AI reasoning over the data
Available integrations#
The catalog grows often. Highlights below; the full list lives in Settings → Integrations.
Communication#
- Gmail — full inbox sync, AI triage, draft and send
- Google Calendar — event sync, AI scheduling, briefings
- Slack — search, send, channel sync
- Microsoft 365 (Outlook, Teams) — coming
- Crisp — multi-tenant customer support inbox
Files & Docs#
- Google Drive — file sync with full-text extraction
- Notion — page mirroring
- Box / Dropbox — coming
Code & Engineering#
- GitHub — repo, PR, issue, and code sync
- Linear — project and issue sync
Business & Finance#
- Stripe — customers, subscriptions, charges, refunds
- Plaid — bank account and transaction sync
- QuickBooks — coming
- Shopify — coming
Knowledge & Web#
- River Browser Extension — clip from any web page
- MCP Servers — connect any MCP-compatible tool server (huge ecosystem)
- Web Search — built-in
Long tail#
- Composio — meta-integration that exposes 100+ additional services as tools
Setup, in three steps#
- Connect. Open Settings → Integrations, find the service, click Connect, and complete OAuth.
- Verify. Run a test query in SpaceChat ("show me my last 5 emails") to confirm the connection works.
- Configure. Pick what syncs (which folders, labels, accounts), set quiet hours, choose where entities land.
Most integrations are usable within 60 seconds of connecting.
Permissions and scope#
You decide:
- Which folders or labels sync
- Which Dataspace the data lands in (personal vs. team)
- Which Agents are allowed to use the integration's tools
- When to pause or disconnect
When you disconnect, entities already ingested stay where they are. You can re-connect later and resume.
When something goes wrong#
If a connection breaks (token expired, password changed, API outage):
- The integration shows Disconnected in the settings panel
- New entities stop flowing in (existing ones are unaffected)
- A notification surfaces with a one-click reconnect
See Integrations Basics for the troubleshooting walkthrough.
Custom integrations#
Need to connect something not in the catalog? Three options:
- MCP server — if the service has an MCP server, register it in Settings → Integrations → MCP.
- Custom App with HTTP tool — build an App with a registered HTTP tool. See Custom Apps.
- Workflow with
http_requestnode — for one-off integrations, a Workflow is the fastest path.
Tips#
- Connect Gmail and Calendar first — they unlock the most value with the least setup.
- For finance teams: Stripe + Plaid + QuickBooks is a near-complete books integration in three clicks.
- Use the Browser Extension to ingest from anywhere on the web that doesn't have an API.