Sources

Slack source

Send incoming personal DMs, direct mentions of you, and messages you address to Doorbell to your agent workflow.

When to use it

Choose Slack when you want an agent to handle messages that need your attention without forwarding them or interacting with Doorbell in Slack.

Example

A colleague DMs you or @mentions you in a channel you can read. Doorbell stores the message if your Slack capture settings allow it. If it matches your agent's input conditions, it enters that agent's retained inbox and can notify the agent.

Set it up

  1. Open Sources → New source → Slack account. If Slack is not configured, ask the service operator to enable the integration.
  2. Choose Connect with Slack and review the requested access. Verify the connected person and workspace shown in Doorbell. Installing the app in Slack alone does not connect your Doorbell source. Your organization may require administrator approval.
  3. Choose what to capture. Incoming personal DMs, direct mentions of you, deliberate messages to Doorbell, and message text start on. Group DMs start off. Disable message text to retain metadata only. Save Slack settings.
  4. Choose Set up an agent, name your agent, and choose an MCP or webhook receiver. Select your connected Slack account as an event input.
  5. Choose fields to share and any conditions. Save the draft and preview matching and nonmatching samples. Slack capture settings still apply; this setup cannot enable message text or additional message kinds.
  6. Approve a connection test. For MCP, your agent must receive and acknowledge it without doing real work. For a webhook, check that the receiver accepts it. Review your saved settings and activate.
  7. Have another person send a fresh DM to your connected human, then directly @mention that human in an accessible channel. Check delivery in your agent setup. Test a nonmatching message if you added a rule.

Important limits

  • Personal DMs and exact human mentions belong to the authorized recipient. Your own outgoing personal messages are excluded. Deliberate DMs and @mentions addressed to Doorbell belong to their connected sender. Channel-wide mentions do not qualify.
  • One source connects one human identity in one workspace. The identity belongs to one Doorbell customer, even after disconnect. Reconnect through that customer's account. You can link up to ten identities.
  • Slack requires broad conversation-history permissions. Doorbell retains only selected new messages while connected, not conversation history. Slack notification preferences, unread state, and Do Not Disturb do not control capture.
  • Messages expire seven days after acceptance. Reading or acknowledging a notification does not delete the message or extend its lifetime. Text is limited to 8,192 characters and marked when truncated. Files, attachments, history import, later edits and deletes, posting as you, and agent replies to Slack are not supported.
  • Pausing an agent stops its notifications, not Slack capture or matching inbox entries. Resuming does not notify about skipped arrivals. To stop storing new messages, turn off the relevant capture choices in Slack settings. This does not erase old content.
  • Capture changes apply to future messages and do not rewrite previously retained content. Disconnect or provider revocation blocks reads and cancels queued disclosure. Reconnecting does not restore revoked content or import missed messages. Content already sent to a destination cannot be recalled.
  • An MCP inbox cannot wake a sleeping agent. A running or scheduled agent must poll it. A webhook needs a compatible receiving endpoint. Grok Bot and Dots use existing destinations; this guide does not establish live client compatibility.

Troubleshooting

  • For Reconnect required, open the Slack source and authorize the same human and workspace again. If access is denied, check your organization's app policy or request administrator approval.
  • If your workspace cannot install Doorbell, ask the service operator whether the app is available outside its original workspace. A working installation in one workspace does not establish availability elsewhere.
  • If no message arrives, check the connected identity, Slack capture choices, active setup, and matching conditions. Use a fresh incoming message from another person, not an old message, an edit, or your own outgoing DM.
  • If a stored message has no inbox entry, check the agent's input conditions. If an entry has no notification, check whether the agent is active and whether grouping or quiet periods delay delivery. If a notification is queued, check webhook history or MCP polling. Queued does not mean delivered or completed.
  • If activation says the approval expired or settings changed, save the agent again and approve the returned settings. A valid receiver test does not need repeating.
  • If disconnect reports that Slack could not confirm remote revocation, remove Doorbell's authorization in Slack too. Local disconnection still blocks capture and retained reads.
Technical reference

Slack capture, inbox membership, and notification delivery are separate. A captured message can remain in retained history without matching any inbox. Matching agents can share the same stored message through separate inbox entries. Each retained reader tracks its own progress without consuming another reader's messages.

receive_agent_message leases a notification from an MCP receiver. read_retained_inbox reads stored messages without taking a lease. Acknowledge delivery with ack_mcp_wakeup and advance a retained reader with advance_retained_reader only after handling its entries. These operations do not complete each other or mark the agent's task finished.

Use list_slack_sources to discover owned connection IDs. Then use save_agent_address with a slack input, test_agent_receiver, and activate_agent_address. Use source-relative paths such as kind, text, sender.id, and channelId for when and include. Changing Slack capture settings invalidates the saved activation confirmation. Save and approve the setup again; a valid receiver test does not need repeating.

Slack samples contain kind, channelId, messageTs, sender: {id,kind}, and optional text. Message kinds are direct_message, group_direct_message, mention, doorbell_direct_message, and doorbell_mention. Disabled message kinds do not match previews. Metadata-only capture removes sample text before matching. Samples do not verify provider visibility or live delivery.

Address inputs use source-relative fields such as kind, text, sender.id, and channelId. A text condition cannot match content omitted by Slack capture settings. Read retained messages independently through the address's retainedInboxId; this does not consume notifications.

The Slack HMAC preset under Webhook sources only verifies incoming HTTP events. It does not connect a human Slack identity or subscribe to that user's DMs and mentions. Use this dedicated Slack source for personal notifications.

Open Agent Doorbell