> ## Documentation Index
> Fetch the complete documentation index at: https://docs.elementum.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent Slack Integration

> Deploy your conversational AI agents directly in Slack channels for intelligent team collaboration

export const permission_0 = "You must be an Organization Admin to complete these steps in Elementum."

## Overview

Agent Slack Integration lets conversational agents work in Slack channels. Messages are handled in Slack, and conversation data is tracked in your Elementum app where you configure permissions and workflows.

Slack is configured **per channel**, with a different agent per channel if you want. The Microsoft Teams integration instead uses one-on-one conversations and a single agent configuration.

***

## Prerequisites

<Warning>
  Organization admin access is required for the initial Slack app installation. Ensure you have proper permissions before starting.
</Warning>

You also need:

* **Active agent:** At least one agent in your app, with training appropriate for the channel
* **Slack access:** Ability to install or request apps in your workspace (see your workspace’s app policies)
* **Channel access:** Permission to add apps to the channels where the agent should run

***

## Setting Up Slack Integration

<Steps>
  <Step title="Install Elementum App from Slack Marketplace">
    Begin by adding the Elementum AI app to your Slack workspace through the official Slack App Directory. If you need help with Slack app installation permissions or approval flow, see [Add apps to your Slack workspace](https://slack.com/help/articles/202035138-Add-apps-to-your-Slack-workspace).

    **Installation Process:**

    1. Click **Add to Slack** to install the Elementum app
    2. Review the permissions the app is requesting
    3. Click **Allow** to proceed with the installation

    <Info>
      The Elementum app requires standard permissions to read messages, post responses, and manage threaded conversations. These permissions are necessary for the agent to function properly within your Slack channels.
    </Info>
  </Step>

  <Step title="Complete Setup in Elementum">
    <Callout icon="shield-halved" color="#8B5CF6" iconType="solid">
      **Required Permission:** {permission_0}
    </Callout>

    After you install the app in Slack, you are redirected to Elementum to link the workspace to an organization.

    **Organization selection**

    1. On the Elementum setup page, select the organization to associate with this Slack installation.
    2. Click **Complete Installation**.
    3. Wait for the **Installation Successful** confirmation.

    <Note>
      The organization you select determines which app data and agents are available when you configure channels.
    </Note>

    <Note>
      To confirm the installation: in Slack, open **Apps** and verify **Elementum Intelligence** is listed. In Elementum, verify the integration appears as installed for the correct organization.
    </Note>
  </Step>

  <Step title="Add Elementum to Your Channel">
    After installing the Elementum app, add it to the specific channel where you want the agent to operate.

    **How to Add:**

    **Option A: Using /invite command**

    1. Type: `/invite @Elementum Intelligence`
    2. Press Enter to add the bot to the channel

    **Option B: Using @ mention**

    1. Simply mention the Elementum bot (`@Elementum Intelligence`) in a message
    2. The app will automatically be added to the channel

    **Option C: Through channel settings**

    1. Click the channel name at the top of the channel
    2. Click the **More** icon, then select **Open channel details**
    3. Select **Integrations** → **Add an app**
    4. Search for and select the Elementum app you installed

    Wait for confirmation that the Elementum bot has joined the channel before proceeding.
  </Step>

  <Step title="Open setup in the channel">
    In the channel where the agent should run, type `/elementum setup` and press Enter. The configuration dialog opens. The following steps mirror the sections in the dialog: Agent Selection, Conversation Settings, then Channel Messages.
  </Step>

  <Step title="Agent Selection">
    **Select an app to configure for this channel:**

    * Choose the Elementum app that contains the agent you want to use
    * This determines which app environment the agent operates within

    **Choose an agent**

    * Select the specific agent that will respond to messages in this channel
    * Different channels can use different agents based on their purpose

    Continue in the dialog to **Conversation Settings** when you are ready.
  </Step>

  <Step title="Conversation Settings">
    **Select conversation timeout:**

    * Choose how long conversations remain active before automatically expiring
    * Options range from minutes to hours depending on your needs
    * Helps manage agent workflows and conversation context

    **Include timeout reminder messages:**

    * Enable to send users warnings before conversations expire
    * Provides better user experience by setting clear expectations

    **Interaction Options:**

    * **Quick Answers:** Brief, direct responses to questions without creating app records.
    * **Full Conversations:** Multi-turn conversations with full context. Creates an app record to store the conversation and maintain workflow state across interactions.

    Continue in the dialog to **Channel Messages** when you are ready.
  </Step>

  <Step title="Channel Messages">
    **Channel message handling** controls how the agent responds to messages:

    <AccordionGroup>
      <Accordion title="Interact with all messages">
        **Behavior:** Agent responds to every message posted in the channel

        **Best for:**

        * Dedicated agent support channels
        * Low-traffic channels where agent participation is expected
        * Channels specifically created for agent interactions

        **Considerations:** May be overwhelming in high-traffic channels
      </Accordion>

      <Accordion title="Interact with messages detected as questions">
        **Behavior:** Agent only responds to messages containing a '?' question mark

        **Examples:**

        * **Responds:** "What is our current inventory status?"
        * **Does not respond:** "Please update the inventory report"

        **Best for:**

        * General team channels where selective agent participation is desired
        * Channels with mixed conversation types
        * On-demand agent assistance

        **Considerations:** Users must explicitly ask questions for agent engagement
      </Accordion>

      <Accordion title="Interact with questions where there is a high level confidence answer">
        **Behavior:** Agent only responds when it has high confidence in providing accurate answers

        **Best for:**

        * Channels requiring high accuracy standards
        * Reducing agent noise in busy channels
        * Ensuring quality over quantity of responses

        **Considerations:** Some valid questions may not receive responses if confidence is below threshold
      </Accordion>

      <Accordion title="Do not interact">
        **Behavior:** Agent is present in the channel but does not respond to any messages

        **Best for:**

        * Temporarily disabling the agent without removing it
        * Testing other configuration options
        * Maintaining agent presence while troubleshooting

        **Note:** Alternatively, you can remove the bot from the channel entirely with `/remove @Elementum Intelligence`
      </Accordion>
    </AccordionGroup>
  </Step>

  <Step title="Complete configuration">
    1. Review all settings in the dialog (Agent Selection, Conversation Settings, and Channel Messages).
    2. Click **Next** to finalize the agent setup
    3. Wait for confirmation that the agent has been successfully configured
  </Step>
</Steps>

***

## Using Slack Integration

### Channel-Based Agent Deployment

Each channel has its own agent, timeout, and **Channel messages** behavior. Match agent training to the channel’s purpose (for example, support vs. general questions). Example combinations appear in [Managing multiple channel configurations](#managing-multiple-channel-configurations).

### Starting Conversations

**For end users:**

1. Open the channel where the Elementum agent is present.
2. Post according to the channel’s **Channel messages** setting (any message, questions with `?`, or other rules you configured).
3. The agent replies in the channel or a thread; context lasts for the active conversation.

In **Full Conversations** mode, the user’s Slack identity is associated with the conversation record in your app.

### Conversation Management

**Quick Answers** and **Full Conversations** are set in `/elementum setup` in the **Conversation Settings** step (see [Setting up Slack integration](#setting-up-slack-integration)). In short:

* **Quick Answers:** Short replies, no app record, no multi-turn state between questions.
* **Full Conversations:** App record per conversation, full transcript and context, suitable for automations and follow-up.

**Timeouts** close idle conversations after the time you set; optional reminders warn users first. After a timeout, the next message starts a new conversation (new record in Full Conversations mode).

***

## Configuration Best Practices

### Matching Settings to Channel Purpose

<AccordionGroup>
  <Accordion title="Dedicated Support Channels">
    **Recommended Configuration:**

    * **Interaction Mode**: Full Conversations
    * **Channel Messages**: Interact with all messages
    * **Timeout**: 30-60 minutes for extended support interactions

    **Rationale:** Users expect comprehensive help and continuous engagement in dedicated support channels.
  </Accordion>

  <Accordion title="General Team Channels">
    **Recommended Configuration:**

    * **Interaction Mode**: Quick Answers
    * **Channel Messages**: Interact with questions only
    * **Timeout**: 15 minutes

    **Rationale:** Minimizes agent noise while providing on-demand assistance in busy channels.
  </Accordion>

  <Accordion title="High-Stakes Channels (Legal, Compliance, Executive)">
    **Recommended Configuration:**

    * **Interaction Mode**: Full Conversations
    * **Channel Messages**: High confidence answers only
    * **Timeout**: 45 minutes

    **Rationale:** Ensures accuracy and reduces risk of misinformation in sensitive contexts.
  </Accordion>

  <Accordion title="FAQ/Knowledge Base Channels">
    **Recommended Configuration:**

    * **Interaction Mode**: Quick Answers
    * **Channel Messages**: High confidence answers only
    * **Timeout**: 10 minutes

    **Rationale:** Provides quick, accurate answers to common questions without extended conversations.
  </Accordion>
</AccordionGroup>

### Agent Training for Slack

Train agents for **public or semi-public channels**: shorter replies, Slack formatting when it helps, threaded replies for long exchanges, and clear guidance to move sensitive topics to DM or email when appropriate.

<CodeGroup>
  ```text Example Training Instructions theme={null}
  You are operating in a Slack channel with multiple participants. Keep responses
  concise and professional. For sensitive information, suggest the user contact
  you via direct message or email. Always acknowledge other participants'
  contributions when relevant.
  ```
</CodeGroup>

### Conversation Timeout Strategy

**Timeout Duration Recommendations:**

<CardGroup cols={3}>
  <Card title="Quick FAQs" icon="clock">
    **10-15 minutes**

    Simple question/answer interactions
  </Card>

  <Card title="Standard Support" icon="clock">
    **30-45 minutes**

    Typical support conversations with multiple exchanges
  </Card>

  <Card title="Complex Issues" icon="clock">
    **60+ minutes**

    Technical troubleshooting or detailed consultations
  </Card>
</CardGroup>

In busy channels, prefer shorter timeouts and stricter **Channel messages** settings so conversations do not pile up.

***

## Integration with Workflows

### Automatic Record Creation (Full Conversations Mode)

In **Full Conversations** mode, starting a conversation creates an app record that typically holds Slack user details, start time, assigned agent, and channel or thread context. Use that record for review and downstream automations.

### Workflow Triggers

Use the **Agent Conversation Ended** trigger in your automations to process Slack conversation outcomes. The trigger exposes the transcript, user details, timing and counts, messages, and channel metadata.

**Automation Examples:**

* Create follow-up tasks based on unresolved issues
* Send summary notifications to relevant team members
* Update CRM or support systems with interaction details
* Generate analytics reports on agent performance
* Route urgent matters to appropriate departments
* Trigger approval workflows for agent recommendations

### Viewing Slack Conversations

After a Slack conversation ends (in Full Conversations mode), you can view the complete interaction:

**Conversation Interface:**

1. Navigate to the automatically created record in your app
2. Access the **Chat/Conversation** interface in record details
3. View the conversation marked as a **Slack** conversation type
4. Review complete transcript with timestamps and participant details
5. See channel context and threading information

***

## Managing Multiple Channel Configurations

### Channel-Specific Agent Strategy

Pilot in low-traffic or internal channels before wider rollout.

**Strategic Agent Deployment:**

* **Specialized Agents**: Deploy domain-specific agents to relevant channels
* **Consistent Agents**: Use the same agent across related channels for consistency
* **Hybrid Approach**: Mix specialized and general-purpose agents based on needs

**Example Multi-Channel Setup:**

| Channel            | Agent             | Mode               | Interaction          |
| ------------------ | ----------------- | ------------------ | -------------------- |
| #customer-support  | Support Agent     | Full Conversations | All messages         |
| #product-questions | Product Expert    | Quick Answers      | Questions only       |
| #general           | General Assistant | Quick Answers      | High confidence only |
| #engineering       | Technical Agent   | Full Conversations | Questions only       |
| #sales             | Sales Assistant   | Full Conversations | All messages         |

### Reconfiguring Channels

To modify agent configuration for a channel:

1. Navigate to the channel where the agent is configured
2. Type `/elementum setup` to open the configuration dialog
3. Update any settings (agent selection, timeout, interaction mode)
4. Click **Next** to save the new configuration
5. The agent immediately adopts the new settings

<Tip>
  Configuration changes take effect immediately without needing to remove or re-add the bot to the channel.
</Tip>

### Monitoring Channel Performance

<Tabs>
  <Tab title="Metrics to Track">
    * **Response Rate**: How often the agent responds to messages
    * **Conversation Duration**: Average length of agent conversations
    * **User Satisfaction**: Feedback on agent helpfulness
    * **Channel Activity**: Volume of messages and agent interactions
    * **Timeout Frequency**: How often conversations expire before natural completion
  </Tab>

  <Tab title="Optimization Based on Metrics">
    * Adjust interaction mode if response rate is too high or too low
    * Modify timeouts based on average conversation duration
    * Refine agent training based on user feedback
    * Change confidence thresholds based on response quality
  </Tab>
</Tabs>

***

## Troubleshooting

### Common Issues

<AccordionGroup>
  <Accordion title="Bot not responding in channel">
    * Verify the agent is properly configured using `/elementum setup`
    * Check interaction mode settings (agent may be set to **Do not interact**)
    * For **Questions only** mode, ensure messages include `?` question marks
    * Confirm the agent is active and functioning in your Elementum app
    * Verify the bot has been added to the channel successfully
  </Accordion>

  <Accordion title="Agent responding to wrong messages">
    * Review the **Channel messages** setting and adjust interaction mode
    * Consider switching from **All messages** to **Questions only** or **High confidence only**
    * Refine agent training to better identify relevant questions
    * Check if multiple agents are configured in the same channel (may cause conflicts)
  </Accordion>

  <Accordion title="Conversation records not creating">
    * Verify you're using **Full Conversations** mode (Quick Answers doesn't create records)
    * Check that the target app is active and accessible
    * Ensure proper permissions for record creation
    * Review field mappings and data capture configuration
  </Accordion>

  <Accordion title="Timeout issues">
    * If conversations expire too quickly, increase timeout duration
    * If timeouts are too long, reduce duration to better match actual usage
    * Enable timeout reminder messages to improve user experience
    * Monitor actual conversation patterns to optimize timeout settings
  </Accordion>

  <Accordion title="Configuration not saving">
    * Ensure you have proper permissions to configure the channel
    * Verify the selected app and agent are valid and active
    * Check that all required fields are completed
    * Try removing and re-adding the bot to the channel if issues persist
  </Accordion>
</AccordionGroup>

### Performance Optimization

<AccordionGroup>
  <Accordion title="High-traffic channels">
    * Use **Questions only** or **High confidence only** interaction modes
    * Implement shorter conversation timeouts (10-15 minutes)
    * Consider Quick Answers mode to reduce overhead
    * Monitor agent load and adjust configuration as needed
  </Accordion>

  <Accordion title="Low-response channels">
    * Switch to **All messages** or **Questions only** mode to increase engagement
    * Reduce confidence threshold if using high confidence mode
    * Review agent training to improve question detection
    * Adjust timeout to match actual interaction patterns
  </Accordion>

  <Accordion title="Agent training for Slack channels">
    See [Agent Training for Slack](#agent-training-for-slack). Tune prompts for channel noise, when to stay silent, and when to escalate to a person.
  </Accordion>
</AccordionGroup>

***

## Security and Compliance

<AccordionGroup>
  <Accordion title="Data Protection">
    * **User Information**: Slack user data is handled according to your data retention policies
    * **Conversation Storage**: All interactions are stored securely within your Elementum environment
    * **Access Control**: Conversations are only accessible to authorized users within your organization
    * **Channel Privacy**: Agents respect Slack channel privacy settings (public vs private channels)
  </Accordion>

  <Accordion title="Slack Security">
    * **Organization Control**: Aligns with who can install apps in your workspace (see [Prerequisites](#prerequisites))
    * **User Permissions**: Follows your organization's Slack app installation policies
    * **Data Residency**: Conversations remain within your configured data boundaries
    * **Channel Permissions**: Agents only access channels they're explicitly added to
  </Accordion>

  <Accordion title="Conversation Monitoring">
    * All agent interactions are logged and auditable
    * Conversation transcripts available for compliance review
    * Agent responses can be configured to meet regulatory requirements
  </Accordion>

  <Accordion title="Data Retention">
    * Configure retention policies for conversation records
    * Archive or delete conversations according to company policies
    * Export conversation data for compliance reporting
  </Accordion>
</AccordionGroup>

***

## File Attachment Support

<Info>
  File attachment support for Slack agents is available on the Enterprise track.
</Info>

Slack users can attach files to messages the same way as any Slack message. Agents on **multimodal-capable models** can use the attachment content in their reply; other agents still receive the message text but do not interpret the file.

***

## See Also

<CardGroup cols={1}>
  <Card title="Add apps to your Slack workspace" icon="slack" href="https://slack.com/help/articles/202035138-Add-apps-to-your-Slack-workspace">
    Slack-side install and approval behavior
  </Card>
</CardGroup>
