Skip to main content

Integrations

NeoAgent has two integration layers: official integrations for structured app tools, and messaging platforms for talking to the agent.

Official Integrations

The built-in registry includes:

ProviderUse
Google WorkspaceGmail, Calendar, Drive, Docs, and Sheets tools
NotionSearch, pages, databases, blocks, comments, and raw Notion API requests
Microsoft 365Outlook, Calendar, OneDrive, Teams, and Microsoft Graph requests
SlackConversations, history, posting, search, user info, and Slack Web API requests
FigmaCurrent user, files, nodes, rendered images, comments, and Figma REST requests

OAuth app credentials are configured through server environment variables. Account connections are created in the Flutter UI under Integrations. Connected tools are exposed to the agent as structured tools, so prefer them over browser automation when they can do the job.

Per-Account Access Mode

Each connected official integration account can be configured per connection as:

  • Read / Write (default)
  • Read Only

When an account is set to Read Only, write operations are blocked for that connection (for example: sending email, posting messages, creating/updating/deleting resources, or write-method API requests).

This setting is managed in the Flutter Integrations UI on each connected account row and is enforced server-side during tool execution.

The default callback is:

PUBLIC_URL + /api/integrations/oauth/callback

You can override it with provider-specific redirect URI variables listed in Configuration.

Messaging Platforms

NeoAgent can talk through:

PlatformNotes
WhatsAppMessaging-platform bridge in app settings for talking to the agent; separate official personal WhatsApp integration for structured read/send tools
TelegramBot token plus approved chats
DiscordBot token plus server or channel access
SlackBot token sends plus Events API callbacks
Google ChatSpace webhook sends plus app callback ingestion
Microsoft TeamsIncoming webhook sends plus outgoing webhook ingestion
MatrixHomeserver access token with room send and polling
Signalsignal-cli REST API bridge
iMessage / BlueBubblesBlueBubbles-compatible bridge for macOS-hosted iMessage
IRC and TwitchIRC-style channel connections
LINE and MattermostNative send paths with webhook ingestion
Feishu, Nextcloud Talk, Nostr, Synology Chat, Tlon, Zalo, Zalo Personal, WeChat, and WebChatConfigurable webhook bridges
Telnyx VoiceInbound and outbound calling with text-to-speech; tasks can call a number

Messaging channel credentials are configured through the Flutter app messaging tab (not .env) for channel setup and inbound callback routing. The generic inbound callback path is:

PUBLIC_URL + /api/messaging/webhook/:platform

Use the per-platform inbound secret or native signature fields in the messaging tab for webhook callbacks.

Telnyx exception: only the Telnyx voice webhook verification token stays in server environment variables as TELNYX_WEBHOOK_TOKEN, because webhook request verification is performed server-side. Other Telnyx and messaging channel credentials should be configured in the Flutter app messaging tab as part of channel/client configuration.

Credentials

Keep provider API keys, OAuth client secrets, and messaging tokens on the server. Do not put them in docs, skill files, client-side code, screenshots, or logs.

If an OAuth provider fails to connect, check:

  • PUBLIC_URL is reachable by the provider.
  • The provider redirect URI matches NeoAgent's callback URL.
  • The provider client ID and client secret are set on the server.
  • The NeoAgent service was restarted after changing environment variables.

See Capabilities for examples of the structured tools exposed by each provider.