Skip to main content

Integrations and messaging

Two connection layers: tools for accounts, and channels for people.

NeoAgent has two connection layers with different purposes.

Integrations give the agent structured tools for an account. Messaging channels let people talk to the agent and receive automation results. Connecting Slack or WhatsApp in one layer does not automatically configure the other.

🔌 Official integrations​

Connect accounts in Integrations.

ProviderAvailable areas
Google WorkspaceGmail, Calendar, Drive, Docs, Sheets
Microsoft 365Outlook, Calendar, OneDrive, Teams
GitHubRepositories, issues, pull requests, files, branches, workflows
NotionPages, databases, blocks, search
SlackConversations, history, search, messages
FigmaFiles, nodes, rendered images, comments
NeoRecallLocal hybrid recall search, memories, mini-memories, daily summaries, conversations, transcript evidence
Home AssistantEntity state and service calls
TrelloBoards, lists, cards, comments, search
SpotifyPlayback, history, search, queue
WeatherLocation search, current conditions, forecasts
Personal WhatsAppPrivate account chat history and send tools
NextcloudFiles, shares, trash, Calendar, Contacts, OCS apps

Available operations are discovered from the current server implementation and connected account. They may differ by provider permissions.

👀 Read-only accounts​

Connected accounts can be set to Read Only. NeoAgent blocks their write tools server-side. Use read-only mode unless an agent must create, send, update, or delete data.

🔧 Setup​

Google, Microsoft, GitHub, Notion, Slack, Figma, and Spotify require OAuth application credentials on the server. The callback URL for every provider is PUBLIC_URL/api/integrations/oauth/callback.

GitHub as the example:

  1. Create an OAuth App under GitHub Developer Settings.
  2. Set the authorization callback URL to the one above.
  3. Add the credentials to the server environment:
    • GITHUB_OAUTH_CLIENT_ID
    • GITHUB_OAUTH_CLIENT_SECRET

The other providers follow the same pattern with their own *_OAUTH_ prefixes, listed in Configuration.

NeoRecall, Nextcloud, Home Assistant, and Trello need no server-side app registration; users configure them from the application.

🧠 NeoRecall​

Open Integrations, choose NeoRecall, and enter the base URL of the NeoRecall server. NeoAgent validates the server and opens NeoRecall's own authorization page. Sign in there and approve the three read-only scopes.

NeoRecall contributes seven on-demand tools for local hybrid search and for reading memories, mini-memories, daily summaries, conversations, and transcript evidence. It does not expose audio, recording, memory mutation, consolidation, or NeoRecall Ask. This keeps the products isolated and avoids a second LLM call when NeoAgent only needs retrieval context.

When a NeoRecall account is connected, NeoAgent injects connected-integration guidance into the run and keeps daily-summary, search, and conversation tools active so questions about the user's day can be answered from NeoRecall without manual tool discovery.

OAuth authorize always opens the NeoRecall base URL you configured (not a possibly-local NEORECALL_PUBLIC_URL). NeoAgent's own PUBLIC_URL must still be reachable from the browser so the callback can finish.

☁️ Nextcloud​

Open Integrations, choose Nextcloud, and enter the URL of your Nextcloud instance (Nextcloud.com or self-hosted). NeoAgent checks status.php, then opens Nextcloud Login Flow v2. Sign in there with password, SSO, or 2FA; NeoAgent never asks you to paste an app password.

One login enables Files, Calendar, and Contacts tools for that account. File writes, shares, and event or contact changes honor the connection's read-only setting. Use nextcloud_ocs_request for other Nextcloud apps under /ocs/v2.php/. Talk chat stays in Settings > Messaging.

💬 Messaging channels​

Configure messaging under Settings > Messaging. Supported bridges include WhatsApp, Telegram, Discord, Slack, Google Chat, Teams, Matrix, Signal, iMessage through BlueBubbles, IRC, Twitch, LINE, Mattermost, and several webhook-backed services.

Each channel has its own authentication and allowlist behavior. Restrict which chats, rooms, groups, and senders may start agent runs.

WhatsApp links in one of two modes, chosen before you scan the QR code and switchable later with Chat mode on the WhatsApp card:

  • Separate account (default) links a number that belongs to the agent. Direct chats and groups work, gated by the allowlist.
  • Personal self-chat links your own number and confines the agent to your "Message yourself" chat. Notes you write there start a run and replies land in the same chat; every other chat and group on the account is ignored, and the allowlist no longer applies.

Webhook-based channels require a reachable PUBLIC_URL. The generic inbound path is:

PUBLIC_URL/api/messaging/webhook/:platform

🩺 Troubleshooting​

For failed OAuth connections, confirm the public URL, callback, client credentials, and provider scopes. For messaging failures, inspect Runs and server logs on the NeoAgent host, then verify the channel allowlist and webhook reachability.