Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions _snippets/components/integrations/slack-tool-steps.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,7 @@
<Card href="/build/tools/tool-steps/slack/retrieve-messages" title="Retrieve Messages">
Use a Tool step to retrieve messages from one of your Slack channels.
</Card>
<Card href="/build/tools/tool-steps/slack/interactive-forms" title="Interactive forms">
Configure form and wizard buttons with text inputs and dropdown fields.
</Card>
</Columns>
94 changes: 94 additions & 0 deletions build/tools/tool-steps/slack/interactive-forms.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
---
title: "Slack interactive forms"
sidebarTitle: "Interactive forms"
description: "Configure pop-up forms and wizard steps that agents send to Slack users, with text inputs and dropdown fields."
---

Agents can send interactive cards to Slack that prompt users for input before the workflow continues. When a Slack user clicks a button on the card, they see either a pop-up form or a multi-step wizard that collects the information the agent needs.

<Note>You can learn more about the Slack integration [here](/integrations/popular-integrations/slack).</Note>

## Button types

Each button on an agent's Slack card has a type that controls what happens when a user clicks it:

<CardGroup cols={3}>
<Card title="Message" icon="message">
Sends a predefined message back to the agent. No additional input is required from the Slack user.
</Card>
<Card title="Form" icon="rectangle-list">
Opens a single-page pop-up form with one or more fields for the Slack user to fill in before submitting.
</Card>
<Card title="Wizard" icon="list-check">
Opens a multi-step form that walks the Slack user through a sequence of pages, each with its own fields.
</Card>
</CardGroup>

## Configuring form fields

Both form and wizard button types support one or more fields per step. Whether a field renders as a text input or a dropdown depends on whether you include an `options` array in the field definition.

### Text input

A field without an `options` array renders as a free-text input box. Use this when the user's response is open-ended or the set of valid values isn't fixed.

```json
{
"label": "Describe the issue",
"name": "issue_description"
}
```

### Dropdown fields

Adding an `options` array to a field definition makes it render as a single-select dropdown menu instead of a text input box. Each option has two properties:

- **`label`** — the text the Slack user sees in the dropdown menu
- **`value`** — the string the agent receives when the user selects that option

```json
{
"label": "Priority",
"name": "priority",
"options": [
{ "label": "High", "value": "high" },
{ "label": "Medium", "value": "medium" },
{ "label": "Low", "value": "low" }
]
}
```

<Note>The `value` sent to the agent can differ from the `label` shown to the Slack user. Use `label` for human-readable display text and `value` for the identifier your agent acts on.</Note>

You can mix field types within the same form — for example, a dropdown for structured choices and a text input for free-form notes:

<Accordion title="Example: form with a dropdown and a text input">
```json
{
"fields": [
{
"label": "Priority",
"name": "priority",
"options": [
{ "label": "High", "value": "high" },
{ "label": "Medium", "value": "medium" },
{ "label": "Low", "value": "low" }
]
},
{
"label": "Additional notes",
"name": "notes"
}
]
}
```
</Accordion>

#### Constraints

<Warning>Dropdowns are single-select only. Multi-select is not supported.</Warning>

- Maximum **100 options** per dropdown field.
- Option labels are capped at **75 characters**.
- Each option's `value` must be unique within the field — duplicate values are not allowed.
- A field configured with an `options` array cannot also be set to multi-line text input mode.
2 changes: 2 additions & 0 deletions build/tools/tool-steps/slack/send-message.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@

<Note>You can learn more about the Slack integration [here](/integrations/popular-integrations/slack).</Note>

<Note>To send interactive cards with form or wizard buttons — including dropdown fields — see [Slack interactive forms](/build/tools/tool-steps/slack/interactive-forms).</Note>

<Warning>This integration for Slack was developed by our team and is not affiliated with Slack. Please contact our Support for any questions/queries you may have.</Warning>

## Add the 'Slack - Send Message' Tool step to your Tool

<div style={{ width:"100%",position:"relative","padding-top":"56.75%" }}>
<iframe src="https://app.supademo.com/embed/cmb77dn944hpdppkpmiavfbmi" frameBorder="0" title="Add the Python Tool step to your Tool" allow="clipboard-write; fullscreen" webkitAllowFullscreen="true" mozAllowFullscreen="true" allowFullscreen style={{ position:"absolute",top:0,left:0,width:"100%",height:"100%",border:"3px solid #5E43CE",borderRadius:"10px" }} />

Check failure on line 18 in build/tools/tool-steps/slack/send-message.mdx

View workflow job for this annotation

GitHub Actions / Documentation Lint Checks

Supademo embed is missing rounded corners — use the standard embed snippet. [technical: borderRadius: '10px' missing from iframe style]

Check failure on line 18 in build/tools/tool-steps/slack/send-message.mdx

View workflow job for this annotation

GitHub Actions / Documentation Lint Checks

Supademo embed is missing the purple border — use the standard embed snippet. [technical: border: '3px solid #5E43CE' missing from iframe style]

Check failure on line 18 in build/tools/tool-steps/slack/send-message.mdx

View workflow job for this annotation

GitHub Actions / Documentation Lint Checks

Supademo embed isn't using the standard wrapper — replace it with the snippet from the style guide. [technical: paddingTop: '56.25%' missing from wrapper <div>]

</div>

Expand Down
3 changes: 2 additions & 1 deletion docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,8 @@
"group": "Slack Tool Steps",
"pages": [
"build/tools/tool-steps/slack/send-message",
"build/tools/tool-steps/slack/retrieve-messages"
"build/tools/tool-steps/slack/retrieve-messages",
"build/tools/tool-steps/slack/interactive-forms"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion integrations/popular-integrations/slack.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
7. Click "Allow" to complete the connection.

<div style={{ width:"100%",position:"relative","padding-top":"56.75%" }}>
<iframe src="https://app.supademo.com/embed/cmb77dn944hpdppkpmiavfbmi" frameBorder="0" title="Relevanceai Demo" allow="clipboard-write; fullscreen" webkitAllowFullscreen="true" mozAllowFullscreen="true" allowFullscreen style={{ position:"absolute",top:0,left:0,width:"100%",height:"100%",border:"3px solid #5E43CE",borderRadius:"10px" }} />

Check failure on line 22 in integrations/popular-integrations/slack.mdx

View workflow job for this annotation

GitHub Actions / Documentation Lint Checks

Supademo embed is missing rounded corners — use the standard embed snippet. [technical: borderRadius: '10px' missing from iframe style]

Check failure on line 22 in integrations/popular-integrations/slack.mdx

View workflow job for this annotation

GitHub Actions / Documentation Lint Checks

Supademo embed is missing the purple border — use the standard embed snippet. [technical: border: '3px solid #5E43CE' missing from iframe style]

Check failure on line 22 in integrations/popular-integrations/slack.mdx

View workflow job for this annotation

GitHub Actions / Documentation Lint Checks

Supademo embed isn't using the standard wrapper — replace it with the snippet from the style guide. [technical: paddingTop: '56.25%' missing from wrapper <div>]

Check warning on line 22 in integrations/popular-integrations/slack.mdx

View check run for this annotation

Mintlify / Mintlify Validation (relevanceai) - vale-spellcheck

integrations/popular-integrations/slack.mdx#L22

Did you really mean 'fullscreen'?

Check warning on line 22 in integrations/popular-integrations/slack.mdx

View check run for this annotation

Mintlify / Mintlify Validation (relevanceai) - vale-spellcheck

integrations/popular-integrations/slack.mdx#L22

Did you really mean 'allowFullscreen'?

</div>

Expand Down Expand Up @@ -70,7 +70,7 @@

To trigger from a **channel**, first **invite Relevance AI to the Slack channel** by typing `/invite @Relevance AI` into the channel.

### Setting up triggers for DMs

Check warning on line 73 in integrations/popular-integrations/slack.mdx

View check run for this annotation

Mintlify / Mintlify Validation (relevanceai) - vale-spellcheck

integrations/popular-integrations/slack.mdx#L73

Did you really mean 'DMs'?

To trigger from your **own DM**, open a DM with the Relevance AI bot in Slack and **send it any message**. This establishes the DM connection and makes your DM appear in the channel selection dropdown.

Expand All @@ -84,7 +84,7 @@
Then, set up your Trigger from Relevance AI by following the steps below:

<div style={{ width:"100%",position:"relative","padding-top":"56.75%" }}>
<iframe src="https://app.supademo.com/embed/cme12y0di08sig56jgsky0owk" frameBorder="0" title="How to set up the Slack trigger" allow="clipboard-write; fullscreen" webkitAllowFullscreen="true" mozAllowFullscreen="true" allowFullscreen style={{ position:"absolute",top:0,left:0,width:"100%",height:"100%",border:"3px solid #5E43CE",borderRadius:"10px" }} />

Check failure on line 87 in integrations/popular-integrations/slack.mdx

View workflow job for this annotation

GitHub Actions / Documentation Lint Checks

Supademo embed is missing rounded corners — use the standard embed snippet. [technical: borderRadius: '10px' missing from iframe style]

Check failure on line 87 in integrations/popular-integrations/slack.mdx

View workflow job for this annotation

GitHub Actions / Documentation Lint Checks

Supademo embed is missing the purple border — use the standard embed snippet. [technical: border: '3px solid #5E43CE' missing from iframe style]

Check failure on line 87 in integrations/popular-integrations/slack.mdx

View workflow job for this annotation

GitHub Actions / Documentation Lint Checks

Supademo embed isn't using the standard wrapper — replace it with the snippet from the style guide. [technical: paddingTop: '56.25%' missing from wrapper <div>]

Check warning on line 87 in integrations/popular-integrations/slack.mdx

View check run for this annotation

Mintlify / Mintlify Validation (relevanceai) - vale-spellcheck

integrations/popular-integrations/slack.mdx#L87

Did you really mean 'fullscreen'?

Check warning on line 87 in integrations/popular-integrations/slack.mdx

View check run for this annotation

Mintlify / Mintlify Validation (relevanceai) - vale-spellcheck

integrations/popular-integrations/slack.mdx#L87

Did you really mean 'allowFullscreen'?

</div>

Expand Down Expand Up @@ -154,7 +154,7 @@
4. Click on "Escalations" in the left sidebar.

<div style={{ width:"100%",position:"relative","padding-top":"56.75%" }}>
<iframe src="https://app.supademo.com/embed/cmb77xv6z4i8bppkpfd5ajd2i" frameBorder="0" title="Escalate to Slack Channel" allow="clipboard-write; fullscreen" webkitAllowFullscreen="true" mozAllowFullscreen="true" allowFullscreen style={{ position:"absolute",top:0,left:0,width:"100%",height:"100%",border:"3px solid #5E43CE",borderRadius:"10px" }} />

Check failure on line 157 in integrations/popular-integrations/slack.mdx

View workflow job for this annotation

GitHub Actions / Documentation Lint Checks

Supademo embed isn't using the standard wrapper — replace it with the snippet from the style guide. [technical: paddingTop: '56.25%' missing from wrapper <div>]

Check warning on line 157 in integrations/popular-integrations/slack.mdx

View check run for this annotation

Mintlify / Mintlify Validation (relevanceai) - vale-spellcheck

integrations/popular-integrations/slack.mdx#L157

Did you really mean 'fullscreen'?

Check warning on line 157 in integrations/popular-integrations/slack.mdx

View check run for this annotation

Mintlify / Mintlify Validation (relevanceai) - vale-spellcheck

integrations/popular-integrations/slack.mdx#L157

Did you really mean 'allowFullscreen'?

</div>

Expand All @@ -168,7 +168,7 @@
2. Configure your notification settings:
- Select "Slack" as the platform
- Choose the specific task statuses you want to trigger the notifications with (e.g., "Running" to trigger whenever the agent runs)
- Select a Slack account that you have previously authed or add a new Slack account

Check warning on line 171 in integrations/popular-integrations/slack.mdx

View check run for this annotation

Mintlify / Mintlify Validation (relevanceai) - vale-spellcheck

integrations/popular-integrations/slack.mdx#L171

Did you really mean 'authed'?
- Select a Slack channel you want to notify with new agent messages
3. Invite the Relevance AI agent to the Slack channel you want to notify by typing "/invite @RelevanceAI" in the channel.
4. Publish changes to your agent by clicking "Publish changes"
Expand All @@ -177,7 +177,7 @@
7. You can reply to the agent's notification directly in Slack, or if you'd prefer you can click on "View task" to navigate back to the task in Relevance AI and perform further actions.

<div style={{ width:"100%",position:"relative","padding-top":"56.75%" }}>
<iframe src="https://app.supademo.com/embed/cmb77jbof4hqnppkpc1k339xb" frameBorder="0" title="Connect Slack Agent Notifications" allow="clipboard-write; fullscreen" webkitAllowFullscreen="true" mozAllowFullscreen="true" allowFullscreen style={{ position:"absolute",top:0,left:0,width:"100%",height:"100%",border:"3px solid #5E43CE",borderRadius:"10px" }} />

Check warning on line 180 in integrations/popular-integrations/slack.mdx

View check run for this annotation

Mintlify / Mintlify Validation (relevanceai) - vale-spellcheck

integrations/popular-integrations/slack.mdx#L180

Did you really mean 'fullscreen'?

Check warning on line 180 in integrations/popular-integrations/slack.mdx

View check run for this annotation

Mintlify / Mintlify Validation (relevanceai) - vale-spellcheck

integrations/popular-integrations/slack.mdx#L180

Did you really mean 'allowFullscreen'?

</div>

Expand All @@ -192,13 +192,13 @@
</Tip>

<div style={{ width:"100%",position:"relative","padding-top":"56.75%" }}>
<iframe src="https://app.supademo.com/embed/cmb781rbk4ie7ppkpcjfc5rdv" frameBorder="0" title="Slack Tools - Send a Slack Message via a Tool Step" allow="clipboard-write; fullscreen" webkitAllowFullscreen="true" mozAllowFullscreen="true" allowFullscreen style={{ position:"absolute",top:0,left:0,width:"100%",height:"100%",border:"3px solid #5E43CE",borderRadius:"10px" }} />

Check warning on line 195 in integrations/popular-integrations/slack.mdx

View check run for this annotation

Mintlify / Mintlify Validation (relevanceai) - vale-spellcheck

integrations/popular-integrations/slack.mdx#L195

Did you really mean 'fullscreen'?

Check warning on line 195 in integrations/popular-integrations/slack.mdx

View check run for this annotation

Mintlify / Mintlify Validation (relevanceai) - vale-spellcheck

integrations/popular-integrations/slack.mdx#L195

Did you really mean 'allowFullscreen'?

</div>

### All Slack Tool steps

You can learn more about each of the Slack Tool steps on the following pages.
You can learn more about each of the Slack Tool steps on the following pages. For interactive cards with form and wizard buttons — including dropdown fields — see [Slack interactive forms](/build/tools/tool-steps/slack/interactive-forms).

<Snippet file="components/integrations/slack-tool-steps.mdx" />

Expand Down Expand Up @@ -301,7 +301,7 @@

## Disclaimer

Relevance AI enables users to access verified and genuine generative models from secure and trusted vendors. However, generative AI technologies still leave the potential for hallucinations leading to potentially inaccurate responses. Please review and verify the agent's output and use a combination of deterministic and agentic behaviour to achieve the most reliable results.

Check warning on line 304 in integrations/popular-integrations/slack.mdx

View check run for this annotation

Mintlify / Mintlify Validation (relevanceai) - vale-spellcheck

integrations/popular-integrations/slack.mdx#L304

Did you really mean 'agentic'?

## Privacy Policy

Expand Down
Loading