> For the complete documentation index, see [llms.txt](https://docs.riff.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.riff.ai/archive/integrations-legacy-saas-connectors/native-integrations/slack.md).

# Slack

Connect Slack to Riff to send smart notifications, summarise conversations, start or join channels, and let agents post useful updates where your team already works. Riff handles the OAuth, stores tokens securely, and wires Slack into your apps, automations, and agents.

### What you can build (fast)

* Deal stage alerts → Slack (HubSpot) — posts context + next steps.
* Ticket triage → Slack summary for high-priority issues.
* Ops bottleneck tracker → daily Slack summary.

<table data-view="cards"><thead><tr><th align="center"></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td align="center"><strong>Deal &#x26; ticket alerts → Slack</strong></td><td>Create a Slack alert automation that listens for HubSpot deal stage changes and support ticket priority changes, summarizes context (amount, owner, days in stage or ticket priority), recommends next best action, and posts to the specified Slack channel with links back to the source record. Trigger on webhook and on button.</td><td></td></tr><tr><td align="center"><strong>Daily/weekly summaries</strong></td><td>Create a daily and weekly Slack summary that sends pipeline, support, and operations roll-ups to a chosen channel at scheduled times, including key KPIs, top changes since last report, and a downloadable CSV. Trigger weekdays 08:00 and weekly Friday 16:00.</td><td></td></tr><tr><td align="center"><p><strong>Agent</strong></p><p><strong>Updates</strong></p></td><td>Create a Slack agent that drafts incident updates, stand up summaries, and owner nudges based on recent activity and deadlines, then posts drafts to a review channel for approval before sending to the target channel. Trigger hourly and on button.</td><td></td></tr></tbody></table>

{% columns %}
{% column valign="middle" %}

<p align="center"><a href="https://riff.new/home?prompt-template=Create%20a%20Slack%20alert%20automation%20that%20listens%20for%20HubSpot%20deal%20stage%20changes%20and%20support%20ticket%20priority%20changes%2C%20summarizes%20context%20%28amount%2C%20owner%2C%20days%20in%20stage%20or%20ticket%20priority%29%2C%20recommends%20next%20best%20action%2C%20and%20posts%20to%20the%20specified%20Slack%20channel%20with%20links%20back%20to%20the%20source%20record.%20Trigger%20on%20webhook%20and%20on%20button" class="button primary">Riff this App</a></p>
{% endcolumn %}

{% column %}

<p align="center"><a href="https://riff.new/home?prompt-template=Create%20a%20daily%20and%20weekly%20Slack%20summary%20that%20sends%20pipeline%2C%20support%2C%20and%20operations%20roll-ups%20to%20a%20chosen%20channel%20at%20scheduled%20times%2C%20including%20key%20KPIs%2C%20top%20changes%20since%20last%20report%2C%20and%20a%20downloadable%20CSV.%20Trigger%20weekdays%2008%3A00%20and%20weekly%20Friday%2016%3A00" class="button primary">Riff this App</a></p>
{% endcolumn %}

{% column %}

<p align="center"><a href="https://riff.new/home?prompt-template=Create%20a%20Slack%20agent%20that%20drafts%20incident%20updates%2C%20standup%20summaries%2C%20and%20owner%20nudges%20based%20on%20recent%20activity%20and%20deadlines%2C%20then%20posts%20drafts%20to%20a%20review%20channel%20for%20approval%20before%20sending%20to%20the%20target%20channel.%20Trigger%20hourly%20and%20on%20button" class="button primary">Riff this App</a></p>
{% endcolumn %}
{% endcolumns %}

* **Deal & ticket alerts → Slack:** e.g., post next-step suggestions when a HubSpot deal changes stage; escalate high-priority tickets with links back to the source system.
* **Daily/weekly summaries:** send pipeline, support, or ops roll-ups into a channel at scheduled times.
* **Agent updates:** have agents draft incident notes, stand-up summaries, or “nudge owners” messages.
* **Ad-hoc posts from your app:** buttons in your UI can post formatted Slack messages or files.

<details>

<summary>Permissions (scopes) Riff requests in Slack</summary>

Riff asks for tightly-scoped access so it can read conversations you add it to and post messages/files when your app or automations need to act. Here’s the high-level view of what the Slack integration can **view** and **do** once installed:

<table><thead><tr><th width="200">Category</th><th>Scope summary</th></tr></thead><tbody><tr><td>Channels &#x26; DMs (read)</td><td>View messages/content in public channels, private channels, DMs/GDMs that Riff is added to; see basic channel info; view files and emoji reactions in those conversations.</td></tr><tr><td>Workspace info (read)</td><td>View people in your workspace; see workspace name/domain/icon; view user groups.</td></tr><tr><td>Messaging (write)</td><td>Send messages as <strong>@riff_integrations</strong>; start DMs/GDMs; upload/edit/delete files as Riff; add/edit reactions.</td></tr><tr><td>Channel management</td><td>Join public channels; manage private channels Riff has been added to; create new channels when needed.</td></tr></tbody></table>

> Riff uses OAuth; tokens are stored securely and handled by the Integrations system (no hard-coding secrets in code).

</details>

### Prerequisites

* Slack workspace where you can install apps (or request admin approval).
* A Riff workspace (sign-in at useriff.ai).
* A channel (public or private) the app can join, or permission to DM.

### Connect Slack to Riff (two easy ways)

1. **Let the agent drive**\
   When a task needs Slack, the agent prompts you to connect. Click the link, approve scopes once, done. The agent then tests the connection (“quick test”) and uses it in your build plan automatically.
2. **Add proactively**\
   In your workspace, go **+ More → Integrations → Slack**, authorise, and you’re ready. Riff manages tokens, scopes, and basic checks for you.

> Tip: If an OAuth popup is blocked in the embedded preview, open your app in a new browser tab and retry the connect step.

### How Riff wires Slack for you (under the hood)

* Sets up OAuth and stores tokens securely in **Secrets/Integrations**.
* Adds minimal scopes, verifies them, and runs a simple test action.
* Exposes Slack as a usable service inside your tasks, automations, and agents (no manual boilerplate).

### Security notes

* Tokens are managed by Riff’s Integrations system; you don’t paste keys into code.
* Frontend code never sees secrets; all Slack actions run server-side.
* Keep scopes tight; Riff requests only what’s needed for your flows and validates them.

### FAQ

<details>

<summary><strong>Can it read every message in the workspace?</strong></summary>

No — it can read messages/files only in channels, private channels, and DMs/GDMs that it has been added to.

</details>

<details>

<summary><strong>How do I revoke access?</strong></summary>

Remove the app from your Slack **Installed Apps** and/or disconnect it from **Integrations** in your Riff workspace; Riff stops using the token immediately.

</details>

#### Related docs & features

* [**Integrations overview** (how connects work; typical flows).](/archive/integrations-legacy-saas-connectors/about-integrations.md)
* [**Schedules** (set up timed posts).](/archive/features-legacy-databutton-web-app-builder/workspace-features/schedules.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.riff.ai/archive/integrations-legacy-saas-connectors/native-integrations/slack.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
