Nextcloud Talk

Nextcloud Talk integration via webhook bot with DMs, rooms, reactions, and markdown message support.

Nextcloud Talk is the real-time communication module built into Nextcloud, the popular self-hosted productivity suite. OpenClaw's Nextcloud Talk integration uses the platform's webhook bot API to receive and respond to messages in DMs and rooms, making it a natural fit for organizations already running Nextcloud for file sharing, calendars, and collaboration. The integration works through a paired webhook system: an outgoing webhook on Nextcloud sends messages to OpenClaw's gateway, and OpenClaw replies through an incoming webhook. The bot is registered via Nextcloud's occ CLI tool with a shared secret for authentication, then enabled per-room in Nextcloud Talk's settings. Messages support markdown formatting, and the bot can send emoji reactions. The main limitation is that this is a webhook-based integration — the bot cannot initiate conversations. Users must message the bot first. Media uploads are also not supported through the bot API; images and files are sent as URLs instead. The webhook payload doesn't natively distinguish DMs from rooms, so configuring apiUser and apiPassword enables room-type lookups for proper DM detection. For Nextcloud-native organizations, this integration means your AI assistant lives right alongside your files, calendar, and contacts — all self-hosted, all under your control. Combined with Nextcloud's existing user management and access control, it's a clean way to add AI capabilities to your existing infrastructure without introducing another platform.

Tags: workspace, self-hosted, nextcloud, open-source

Category: Workspace

Use Cases

  • Self-hosted AI assistant for Nextcloud-native organizations
  • Team knowledge bot in Nextcloud Talk rooms
  • Personal AI assistant integrated with your Nextcloud productivity suite
  • Privacy-focused AI chat for organizations that keep all data on-premises
  • Document Q&A bot alongside Nextcloud Files
  • Small team AI helper without introducing another messaging platform

Tips

  • Set apiUser and apiPassword to enable proper DM detection — this is strongly recommended
  • Use the --feature reaction flag when registering the bot to enable emoji reactions
  • Configure webhookPublicUrl if running behind a reverse proxy so Nextcloud can reach the callback
  • Use chunkMode: 'newline' for cleaner message splitting on paragraph boundaries instead of hard character limits
  • Prefer room tokens (from the URL) in room allowlists for stability
  • Multi-account support lets you connect multiple Nextcloud instances from one OpenClaw gateway
  • Block streaming can be disabled per-channel if you prefer complete messages over progressive delivery

Known Issues & Gotchas

  • The bot must be installed via occ CLI on the Nextcloud server — there's no web UI for bot creation
  • Bot must be enabled per-room in room settings — installing the bot alone doesn't activate it anywhere
  • Without apiUser/apiPassword, DMs are treated as rooms because the webhook payload doesn't distinguish them
  • webhookPublicUrl must be set if the gateway is behind a reverse proxy or has a different external URL
  • allowFrom matches Nextcloud user IDs only — display names are not matched
  • Media cannot be uploaded — the bot API only supports sending URLs, so files must be hosted elsewhere
  • The webhook listener defaults to port 8788 — ensure it doesn't conflict with other services
  • Bot shared secret should be kept secure — it authenticates all webhook traffic

Alternatives

  • Mattermost
  • Matrix
  • Slack
  • Synology Chat

Community Feedback

Love that OpenClaw has a Nextcloud Talk plugin. My whole stack is self-hosted Nextcloud, and now I have an AI assistant right in the same platform where I manage files and calendar.

— Reddit r/Nextcloud

The webhook bot API is a bit limited compared to other platforms, but the OpenClaw integration makes the most of it. Reactions work well and markdown rendering is clean.

— Nextcloud Community Forum

Nextcloud Talk + OpenClaw is perfect for small teams who want everything self-hosted. Setup is straightforward once you understand the occ command for bot registration.

— GitHub Discussions

Frequently Asked Questions

Can the bot start conversations?

No. Nextcloud Talk bots cannot initiate DMs. The user must send the first message to the bot. For outbound delivery, use the message send command targeting a room or user.

Why are my DMs being treated as rooms?

The webhook payload doesn't distinguish DMs from rooms by default. Configure apiUser and apiPassword in your OpenClaw config to enable room-type lookups, which properly detects DMs.

Is the Nextcloud Talk plugin bundled with OpenClaw?

No. It's a separate plugin: openclaw plugins install @openclaw/nextcloud-talk. It's not included in the core package.

Can I send images through the bot?

Not as direct uploads. The bot API doesn't support media uploads. You can send image URLs, and they'll be rendered as links in the chat. Upload images to Nextcloud Files and share the URL instead.

What Nextcloud version is required?

The webhook bot API requires Nextcloud Talk 18+ (Nextcloud 28+). Earlier versions don't support the talk:bot:install command.

Configuration Examples

Basic setup with DM detection

channels:
  nextcloud-talk:
    enabled: true
    baseUrl: "https://cloud.example.com"
    botSecret: "shared-secret"
    apiUser: "bot-user"
    apiPassword: "app-password"
    dmPolicy: pairing

Room-scoped with allowlists

channels:
  nextcloud-talk:
    enabled: true
    baseUrl: "https://cloud.example.com"
    botSecret: "shared-secret"
    groupPolicy: allowlist
    rooms:
      "abc123token":
        requireMention: true
      "def456token":
        requireMention: false

Behind reverse proxy

channels:
  nextcloud-talk:
    enabled: true
    baseUrl: "https://cloud.example.com"
    botSecret: "shared-secret"
    webhookPort: 8788
    webhookPath: "/nextcloud-talk-webhook"
    webhookPublicUrl: "https://gateway.example.com/nextcloud-talk-webhook"
    dmPolicy: open
    allowFrom:
      - "*"

Installation

openclaw plugins install @openclaw/nextcloud-talk