# Slack

## Slack Automation

Slack automations send real-time notifications to your team channels when new recordings are added to a folder. Keep your entire team in sync without leaving Slack.

***

### When to Use Slack Automations

Slack automations are ideal for teams that spend their day in Slack. Use them for:

* **Real-time team alerts** — Notify the team instantly when critical issues arrive
* **Bug tracking channels** — Post new bugs to #bugs for engineering visibility
* **Customer support escalations** — Alert support teams about VIP customer recordings
* **Product feedback loops** — Share customer feedback with product managers
* **Cross-functional visibility** — Keep stakeholders updated on specific workflows
* **Threaded discussions** — Group related recordings into conversation threads
* **Quick actions** — Assign, label, and resolve directly from Slack

{% hint style="info" %}
**Slack vs. Email**

Use Slack when:

* Your team actively uses Slack throughout the day
* You want immediate visibility and notifications
* You need threaded discussions and quick collaboration
* Interactive buttons would be useful for your workflow

Use Email when:

* Recipients don't check Slack regularly
* You need a permanent email record
* Routing to ticketing systems via email
* Reaching external stakeholders outside your Slack workspace
  {% endhint %}

***

### Prerequisites

Before setting up Slack automations, ensure you have:

* **Slack workspace** with admin or app installation permissions
* **Screendesk Pro or Enterprise** plan
* **Target folder** for automation
* **Slack channel** where the Screendesk bot will post

{% hint style="warning" %}
**Slack Plan Requirement**

Slack automations require a Pro or Enterprise plan. If you're on a Free or Standard plan, upgrade your account to enable this feature.
{% endhint %}

***

### OAuth Connection Process

#### Step 1: Connect Your Slack Workspace

This is a one-time setup that connects your Screendesk workspace to your Slack workspace.

**First-time setup:**

{% stepper %}
{% step %}

#### Navigate to integrations

1. Go to **Account Settings** (click your avatar in the top right)
2. Select **Integrations** from the sidebar
3. Find **Slack** in the integration list
4. Click **Connect Slack**
   {% endstep %}

{% step %}

#### Select your workspace

A popup appears showing your Slack workspace name.

1. Verify you're connecting to the correct workspace
2. Click **Select Workspace** to continue
3. You'll be redirected to Slack's authorization page
   {% endstep %}

{% step %}

#### Review permissions

Slack shows the permissions Screendesk needs:

* **Post messages to channels** — Required to send notifications
* **Access channel list** — Required to populate channel dropdowns
* **Upload files** — Required for video thumbnails and attachments

These permissions are necessary for Slack automations to function.
{% endstep %}

{% step %}

#### Authorize the app

1. Review the permissions
2. Click **Allow** or **Authorize** in Slack
3. You'll be redirected back to Screendesk
4. You should see a success message: "Slack connected successfully"
   {% endstep %}

{% step %}

#### Verify connection

Confirm the connection is active:

1. In **Account Settings → Integrations → Slack**
2. You should see:
   * Connected workspace name
   * Green status indicator
   * **Disconnect** button (to remove the connection)
   * **Refresh Permissions** button (to re-authorize)

Your Slack workspace is now connected!
{% endstep %}
{% endstepper %}

***

#### Reconnecting or Changing Workspaces

**To connect a different Slack workspace:**

1. Go to **Account Settings → Integrations → Slack**
2. Click **Disconnect** to remove the current connection
3. All Slack automations will be disabled temporarily
4. Click **Connect Slack** to authorize a different workspace
5. Re-enable your automations after connecting the new workspace

**To refresh permissions:**

If channels aren't appearing in dropdowns:

1. Go to **Account Settings → Integrations → Slack**
2. Click **Refresh Permissions**
3. Re-authorize the app if prompted
4. Channel list should now be updated

***

### Setup Steps

#### Step 1: Open Folder Automations

Navigate to the folder where recordings trigger notifications:

{% stepper %}
{% step %}

#### Find your folder

1. Click on the folder from your folders list
2. You should see the folder name in the header
   {% endstep %}

{% step %}

#### Access settings

1. Click the **Settings** (gear) icon in the top right corner
2. You'll see a dropdown menu with options
   {% endstep %}

{% step %}

#### Go to automations

1. Select the **Automations** tab
2. You'll see a list of existing automations (if any)
3. Click **Add Automation** at the top right
   {% endstep %}

{% step %}

#### Select Slack

1. A menu appears showing automation types
2. Click **Slack**
3. The Slack automation form loads
   {% endstep %}
   {% endstepper %}

***

#### Step 2: Select Target Channel

Choose which Slack channel receives notifications from this folder.

{% stepper %}
{% step %}

#### Open channel dropdown

1. Look for the **Channel** field
2. Click the dropdown to see available channels
   {% endstep %}

{% step %}

#### Search or browse channels

**To search:**

* Start typing the channel name (e.g., "bugs" or "support")
* Matching channels appear in the dropdown

**To browse:**

* Scroll through the list of channels
* Channels are sorted alphabetically

**Channel types supported:**

* ✅ Public channels — Everyone can see
* ✅ Private channels — Only invited members can see
* ❌ Direct messages — Not supported
* ⚠️ Slack Connect — Limited support
  {% endstep %}

{% step %}

#### Select your channel

1. Click on the channel name
2. The channel appears in the field (e.g., "#bugs")
3. Screendesk will automatically invite its bot to the channel
   {% endstep %}

{% step %}

#### Verify bot is invited (private channels only)

For private channels, ensure the Screendesk bot is invited:

1. Go to your Slack channel
2. In the message box, type: `/invite @Screendesk`
3. Press Enter
4. You should see "Screendesk has joined the channel"

For public channels, this happens automatically.
{% endstep %}
{% endstepper %}

***

#### Step 3: Configure Message Template

Customize what appears in the Slack message using template variables.

{% stepper %}
{% step %}

#### Message template field

The **Message Template** section lets you design the notification message.

**Default template:**

```
🎥 New recording in *{{folder.name}}*

*{{recording.title}}*
From: {{recording.customer_email}}
Duration: {{recording.duration}}s

<{{recording.url}}|View Recording>
```

**Default output example:**

```
🎥 New recording in Bug Reports

Checkout page crash
From: customer@example.com
Duration: 45s

View Recording
```

{% endstep %}

{% step %}

#### Add template variables

Use these variables to insert dynamic content:

**Recording Information:**

| Variable                       | Description         | Example                  |
| ------------------------------ | ------------------- | ------------------------ |
| `{{recording.title}}`          | Recording title     | "Checkout page crash"    |
| `{{recording.url}}`            | Link to recording   | Full URL                 |
| `{{recording.customer_email}}` | Who submitted it    | "<user@example.com>"     |
| `{{recording.duration}}`       | Duration in seconds | "45"                     |
| `{{recording.created_at}}`     | When submitted      | "Feb 6, 2026 at 2:30 PM" |

**Technical Details:**

| Variable                   | Description         |
| -------------------------- | ------------------- |
| `{{recording.browser}}`    | Browser and version |
| `{{recording.os}}`         | Operating system    |
| `{{recording.resolution}}` | Screen resolution   |
| `{{recording.country}}`    | Geographic location |

**System Information:**

| Variable                       | Description                   |
| ------------------------------ | ----------------------------- |
| `{{recording.console_errors}}` | JavaScript errors (formatted) |
| `{{recording.network_errors}}` | Failed HTTP requests          |

**Context:**

| Variable           | Description         |
| ------------------ | ------------------- |
| `{{folder.name}}`  | Current folder name |
| `{{account.name}}` | Workspace name      |

View complete variable reference →
{% endstep %}

{% step %}

#### Use Slack formatting

Format text using Slack's mrkdwn syntax:

| Format            | Syntax             | Result              |
| ----------------- | ------------------ | ------------------- |
| **Bold**          | `*text*`           | Makes text bold     |
| *Italic*          | `_text_`           | Makes text italic   |
| ~~Strikethrough~~ | `~text~`           | Strikethrough text  |
| `Code`            | `` `code` ``       | Monospace code      |
| Link text         | `<url\|Link text>` | Clickable link      |
| @Username         | `<@U123ABC>`       | Mention a user      |
| #Channel          | `<#C123ABC>`       | Reference a channel |

{% hint style="info" %}
**Line Breaks**

To add blank lines between sections, use an empty line in your template. Slack will render it as space between blocks.
{% endhint %}
{% endstep %}

{% step %}

#### Example templates

**Simple notification:**

```
New recording from {{recording.customer_email}}
<{{recording.url}}|{{recording.title}}>
```

**Bug report with context:**

```
🐛 *Bug Report*

*{{recording.title}}*
Submitted by: {{recording.customer_email}}
Duration: {{recording.duration}} seconds

<{{recording.url}}|View Recording>
```

**Customer feedback:**

```
💬 *Customer Feedback*

From: {{recording.customer_email}}
Recording: *{{recording.title}}*
Duration: {{recording.duration}} seconds

<{{recording.url}}|Watch Recording>
```

**Support escalation:**

```
⚠️ *Support Escalation*

Customer: {{recording.customer_email}}
Issue: *{{recording.title}}*
Folder: {{folder.name}}

<{{recording.url}}|View & Respond>
```

**Technical details:**

```
🔧 *New Issue*

*{{recording.title}}*

*Reported by:* {{recording.customer_email}}
*Browser:* {{recording.browser}}
*OS:* {{recording.os}}
*Resolution:* {{recording.resolution}}

<{{recording.url}}|Debug Recording> | <{{recording.url}}/console|View Console>
```

{% endstep %}
{% endstepper %}

***

#### Step 4: Configure Message Options

Choose additional content to include in the notification.

{% stepper %}
{% step %}

#### Message content options

| Option             | Description                      | Default | Use When                    |
| ------------------ | -------------------------------- | ------- | --------------------------- |
| **Video Preview**  | Thumbnail image of the recording | ✅ On    | You want visual context     |
| **Customer Email** | Submitter's email address        | ✅ On    | Identifying who reported it |
| **Duration**       | Recording length in seconds      | ✅ On    | Understanding scope         |
| **Console Errors** | JavaScript errors from browser   | ❌ Off   | Debugging technical issues  |
| **System Info**    | Browser, OS, resolution details  | ❌ Off   | For technical support teams |
| **Action Buttons** | Quick action buttons in Slack    | ✅ On    | Interactive workflow        |
| {% endstep %}      |                                  |         |                             |

{% step %}

#### Enable video preview

When enabled, shows a thumbnail image of the recording:

1. Look for **Include Video Preview** toggle
2. Turn it **ON** (green)
3. Slack messages will show a preview image
4. Team members can see the issue at a glance

**When to enable:**

* Always recommended for visual context
* Bug reports benefit from seeing what's happening
* Helps with triage and prioritization
  {% endstep %}

{% step %}

#### Include console errors (optional)

Shows JavaScript errors from the recording:

1. Look for **Include Console Errors** toggle
2. Turn it **ON** (green)
3. Error summary appears in the message
4. Engineers can see the exact error immediately

**When to enable:**

* For technical bug reports
* When engineering team needs debugging context
* For urgent production issues
  {% endstep %}

{% step %}

#### Include system info (optional)

Shows browser, OS, and resolution details:

1. Look for **Include System Info** toggle
2. Turn it **ON** (green)
3. Technical details appear in the message
4. Helps with reproduction and debugging

**When to enable:**

* For engineering and QA teams
* When device compatibility matters
* For complex bug reproduction
  {% endstep %}

{% step %}

#### Enable action buttons

Adds interactive buttons directly in Slack:

1. Look for **Action Buttons** toggle
2. Turn it **ON** (green)
3. Buttons appear in the message

**Available buttons:**

* **View Recording** — Opens in Screendesk
* **Copy Link** — Copies URL to clipboard
* **Assign to Me** — Self-assigns the recording (Pro+)

These buttons speed up workflow without leaving Slack.
{% endstep %}
{% endstepper %}

***

#### Step 5: Configure Threading (Optional)

Group related recordings into conversation threads for organized discussions.

{% stepper %}
{% step %}

#### Enable threading

Threading keeps related messages together in a single conversation.

1. Look for **Enable Threading** toggle
2. Turn it **ON** (green)
3. Choose a threading key from the dropdown

**Threading is useful for:**

* Tracking all issues from one customer
* Daily summaries of related issues
* Building threaded conversations in Slack
  {% endstep %}

{% step %}

#### Select threading key

Choose how to group messages into threads:

**By Customer Email:**

* All recordings from the same customer appear in one thread
* Useful for customer support folders
* Shows customer conversation history

**By Folder:**

* All recordings in the folder create a daily thread
* Useful for general bug or feedback folders
* Keeps all issues from one day together

**By Recording Type:**

* Group by content type if your folder has mixed content
* Useful for diverse workflows
  {% endstep %}

{% step %}

#### Threading example

**With threading disabled:**

```
Channel: #bugs
Message 1: Bug from customer@example.com - Checkout crash
Message 2: Bug from customer@example.com - Login slow
Message 3: Bug from other@example.com - Search broken
```

All messages appear separately in the channel.

**With threading by customer:**

```
Channel: #bugs
Message 1 (parent): Bug from customer@example.com - Checkout crash
├── Reply 1: Bug from customer@example.com - Login slow
├── Reply 2: (More issues from this customer in thread)

Message 2 (parent): Bug from other@example.com - Search broken
```

Related issues are grouped together.
{% endstep %}
{% endstepper %}

***

#### Step 6: Test the Automation

Verify everything works before activating.

{% stepper %}
{% step %}

#### Send test message

1. Click **Send Test Message** at the bottom of the form
2. The test message is sent to your selected channel immediately
3. Check your Slack channel for the test message
4. It appears as a regular notification with sample data

**What to verify in the test:**

* ☐ Message posted to correct channel
* ☐ Template variables populated (no `{{}}` showing)
* ☐ Video preview loads (if enabled)
* ☐ Action buttons appear and work
* ☐ Formatting looks good
* ☐ Links are clickable
* ☐ No error messages
  {% endstep %}

{% step %}

#### Review formatting

1. Look at the test message in Slack
2. Check that:
   * Bold formatting displays correctly (`*text*`)
   * Links are clickable (`<url|text>`)
   * Line breaks appear properly
   * Emoji render correctly
   * Preview image displays (if enabled)

If something looks wrong, edit the template and test again.
{% endstep %}

{% step %}

#### Verify links work

1. Click the "View Recording" link in the test message
2. It should open the Screendesk app in a new tab
3. Verify you're viewing the correct recording

If links don't work, check that `{{recording.url}}` is in your template.
{% endstep %}

{% step %}

#### Verify buttons (if enabled)

If you enabled action buttons:

1. Click each button in the test message
2. **View** button should open the recording
3. **Copy Link** button should copy the URL
4. **Assign** button should self-assign (if visible)

Test on desktop and mobile if your team uses both.
{% endstep %}
{% endstepper %}

***

#### Step 7: Save and Activate

Once testing is complete, save your automation.

{% stepper %}
{% step %}

#### Save the automation

1. Click **Save** at the bottom of the form
2. You'll see a success message
3. The automation is created and enabled by default
4. You're returned to the Automations tab
   {% endstep %}

{% step %}

#### Verify in automations list

1. You should see the new automation in the Automations tab
2. It shows:
   * Automation type: "Slack"
   * Target channel: "#channel-name"
   * Status toggle: ON (green)
   * Edit and delete options

The automation is now **live**. Every recording added to this folder will send a message to the selected Slack channel.
{% endstep %}

{% step %}

#### Manage the automation

**To edit:**

1. Click the automation in the list
2. Make your changes
3. Click **Save**

**To disable temporarily:**

1. Toggle the status to OFF (gray)
2. No messages will be sent
3. Toggle back ON to re-enable

**To delete:**

1. Click the automation
2. Click **Delete**
3. Confirm deletion
4. Messages will no longer be sent
   {% endstep %}
   {% endstepper %}

***

### Message Formatting Examples

Here are ready-to-use message templates for common scenarios:

#### Example 1: Simple Team Alert

**Use case:** Basic notification for any folder

**Configuration:**

```
New recording in *{{folder.name}}*

*{{recording.title}}*
From: {{recording.customer_email}}

<{{recording.url}}|View Recording>
```

**Renders as:**

```
New recording in Bug Reports

Checkout page crash
From: customer@example.com

View Recording
```

***

#### Example 2: Engineering Bug Alert

**Use case:** Notify engineers with debugging context

**Configuration:**

````
🐛 *Bug Report*

*{{recording.title}}*

Reported by: {{recording.customer_email}}
Duration: {{recording.duration}} seconds
Browser: {{recording.browser}}
OS: {{recording.os}}

_Console Errors:_
```{{recording.console_errors}}```

<{{recording.url}}|View Recording> • <{{recording.url}}/console|Debug Console>
````

**Best for:**

* Engineering teams
* Technical support
* Production issues
* Debugging context needed

***

#### Example 3: VIP Customer Escalation

**Use case:** Alert leadership about important customers

**Configuration:**

```
⭐ *VIP Customer Issue*

*{{recording.title}}*

Customer: {{recording.customer_email}}
Folder: {{folder.name}}
Duration: {{recording.duration}}s

🔴 *Requires Immediate Attention*

<{{recording.url}}|Open in Screendesk>
```

**Best for:**

* Enterprise customers
* High-priority accounts
* Leadership visibility
* Escalation channels

***

#### Example 4: Customer Support Intake

**Use case:** Support team triage and routing

**Configuration:**

```
📥 *New Customer Report*

From: `{{recording.customer_email}}`
Title: *{{recording.title}}*
Duration: {{recording.duration}} seconds

<{{recording.url}}|Review & Respond>

_Who should investigate?_
```

**Best for:**

* Support teams
* Customer service
* Intake channels
* Encourages action

***

#### Example 5: Product Feedback Summary

**Use case:** Share customer feedback with product team

**Configuration:**

```
💬 *Customer Feedback*

_From:_ {{recording.customer_email}}
_Topic:_ {{recording.title}}
_Length:_ {{recording.duration}} seconds

<{{recording.url}}|Watch Feedback>

_Please add to product backlog if relevant._
```

**Best for:**

* Product managers
* Feature request channels
* Customer feedback
* Product roadmap input

***

### Multiple Channel Setup

Post the same recordings to multiple channels by creating separate automations.

#### Common Multi-Channel Patterns

**Pattern 1: Team + Leadership**

For the "Bug Reports" folder:

* Automation 1 → #engineering (full details)
* Automation 2 → #exec-updates (summary only)

```
Folder: Bug Reports
├── Slack #engineering → Include console errors & system info
└── Slack #exec-updates → Simple notification only
```

***

**Pattern 2: Functional Silos**

For the "Customer Issues" folder:

* Automation 1 → #support-team (all issues)
* Automation 2 → #product-team (only features)
* Automation 3 → #engineering (only bugs)

**Implementation:** Create three identical automations with different channels but same message template. All recordings reach their respective teams.

***

**Pattern 3: Severity-Based Routing**

For the "Production" folder:

* Automation 1 → #incidents (critical bugs)
* Automation 2 → #bugs (standard bugs)
* Automation 3 → #backlog (feature requests)

**Implementation:** Use your folder structure to separate by severity, then create separate automations for each folder.

***

**Setup Steps for Multiple Automations:**

1. Open the folder
2. Go to **Settings → Automations**
3. Click **Add Automation**
4. Select **Slack**
5. Select first channel (e.g., #engineering)
6. Configure message template
7. Click **Save**
8. Click **Add Automation** again
9. Select second channel (e.g., #exec-updates)
10. Use same or different template
11. Click **Save**

Both automations are now active. Each channel receives notifications independently.

***

### Channel-Specific Folder Examples

Create dedicated folder + channel pairs for organized workflows:

| Folder Name             | Slack Channel     | Purpose               | Message Template       |
| ----------------------- | ----------------- | --------------------- | ---------------------- |
| **Bug Reports**         | #bugs             | Engineering triage    | Include console errors |
| **Feature Requests**    | #product-feedback | Product input         | Link to customer email |
| **Urgent Issues**       | #incidents        | On-call alerts        | Emphasize urgency      |
| **Support Tickets**     | #customer-support | Team intake           | Include customer info  |
| **Enterprise Accounts** | #vip-customers    | Leadership visibility | Highlight importance   |
| **QA Test Results**     | #qa-reports       | Testing team          | Include system info    |
| **Customer Complaints** | #escalations      | Management review     | Detailed context       |

**Setup approach:**

1. Create folders matching your business workflow
2. Create corresponding Slack channels
3. Set up one automation per folder → channel pair
4. Customize templates for each channel's audience

This creates a clean, organized notification system where teams only see relevant content.

***

### Interactive Features

#### Action Buttons

When enabled, messages include buttons for quick actions:

**Available actions:**

| Button             | Action                    | Use Case          |
| ------------------ | ------------------------- | ----------------- |
| **View Recording** | Opens in Screendesk app   | Review the issue  |
| **Copy Link**      | Copies URL to clipboard   | Share with others |
| **Assign to Me**   | Self-assign the recording | Take ownership    |

**Button workflow:**

```
Slack Message appears in #bugs

Team member reads message and clicks button

↓ View → Opens Screendesk in new tab
↓ Copy Link → URL copied to clipboard
↓ Assign → Shows "Assigned to [name]"
```

**Pro tip:** Action buttons reduce friction. Team members don't need to leave Slack to engage with recordings.

***

#### Threading Conversations

Keep related recordings grouped together.

**Thread behavior:**

| Setting               | Result                             | Example                             |
| --------------------- | ---------------------------------- | ----------------------------------- |
| Threading OFF         | Each recording is separate message | New message every time              |
| Threading by Customer | Same customer = same thread        | All messages from one user together |
| Threading by Folder   | Daily thread per folder            | All day's issues in one thread      |

**Thread advantage:**

* Related issues are easy to find
* Reduces channel clutter
* Enables discussion threads
* Shows conversation history

**Example thread:**

```
#support-channel

Main Message: Bug from jane@acme.com - Login page broken
├── Reply: Bug from jane@acme.com - Password reset not working
├── Reply: Comment from team-lead - We're investigating
├── Reply: Update - Fixed in v2.1
└── Reply: Resolution - Jane has been notified
```

***

### Managing Slack Integration

#### View Connected Workspace

See your current Slack connection:

1. Go to **Account Settings → Integrations**
2. Find **Slack** integration
3. You should see:
   * Workspace name: "My Company Slack"
   * Status: "Connected" (green indicator)
   * Last synchronized: timestamp
   * **Disconnect** button
   * **Refresh Permissions** button

***

#### Refresh Channel List

If newly created channels don't appear:

1. Go to **Account Settings → Integrations → Slack**
2. Click **Refresh Permissions**
3. Re-authorize if prompted (Slack sign-in)
4. Channel list updates
5. New channels now appear in automation setup

***

#### Disconnect Slack

To remove the Slack integration:

1. Go to **Account Settings → Integrations → Slack**
2. Click **Disconnect**
3. Confirm you want to disconnect
4. **Important:** All Slack automations are disabled
5. To re-enable, reconnect Slack workspace

{% hint style="warning" %}
**Disconnection Impact**

When you disconnect Slack:

* All Slack automations are disabled
* No messages will be sent to Slack
* Your automation configuration is saved
* To restart, reconnect Slack and re-enable automations
  {% endhint %}

***

### Troubleshooting

#### Messages not posting to Slack

**Symptom:** Messages don't appear in the Slack channel

**Solutions:**

{% stepper %}
{% step %}

#### Verify bot is invited

For private channels, the Screendesk bot must be explicitly invited.

In your Slack channel:

```
/invite @Screendesk
```

You should see: "Screendesk has joined the channel"

For public channels, this happens automatically.
{% endstep %}

{% step %}

#### Check automation status

1. Open folder **Settings → Automations**
2. Find the Slack automation
3. Verify toggle is **ON** (green)
4. If OFF, click to enable

Disabled automations won't send messages.
{% endstep %}

{% step %}

#### Verify Slack is connected

1. Go to **Account Settings → Integrations**
2. Check that Slack shows "Connected" (green)
3. If disconnected, click **Connect Slack**
4. Re-authorize in Slack
5. Re-enable the automation
   {% endstep %}

{% step %}

#### Check channel selection

1. Edit the automation
2. Verify the correct channel is selected
3. Channel name appears as `#channel-name`
4. Save if you made changes
   {% endstep %}

{% step %}

#### Test with send test message

1. Edit the automation
2. Click **Send Test Message**
3. Check the Slack channel for the test
4. If test appears, automation works
5. If test doesn't appear, check permissions

Successful test = automation will work for real recordings
{% endstep %}
{% endstepper %}

***

#### Channels not appearing in dropdown

**Symptom:** Channel list is empty or missing channels

**Solutions:**

1. **Refresh permissions:**
   * Go to **Account Settings → Integrations → Slack**
   * Click **Refresh Permissions**
   * Re-authorize if prompted
2. **Check bot permissions in Slack:**
   * Go to your Slack workspace
   * Click **Settings & administration → Manage apps**
   * Find **Screendesk**
   * Verify it has access to view channels
3. **Reconnect Slack:**
   * Disconnect the current workspace
   * Click **Connect Slack** again
   * Re-authorize with fresh permissions
4. **Check channel visibility:**
   * You can only see channels you're a member of
   * Join the private channel first
   * Then refresh and it will appear

***

#### "Not authorized" or permission errors

**Symptom:** Error message saying "Not authorized" or "Slack connection failed"

**Solutions:**

1. **Reconnect Slack:**
   * Go to **Account Settings → Integrations → Slack**
   * Click **Disconnect**
   * Click **Connect Slack**
   * Re-authorize completely
2. **Check Slack admin permissions:**
   * Ensure your Slack account has app installation rights
   * Contact your Slack workspace admin if not
3. **Verify token hasn't expired:**
   * Click **Refresh Permissions**
   * Re-authorize in Slack
   * Tokens refresh automatically

***

#### Video preview not showing

**Symptom:** Messages appear but thumbnail image is missing

**Solutions:**

1. **Enable video preview in automation:**
   * Edit the automation
   * Turn ON **Include Video Preview** toggle
   * Click **Save**
2. **Check Slack file permissions:**
   * Screendesk needs permission to upload files to Slack
   * Go to Slack → App settings → Verify file upload permission
   * Reconnect if needed
3. **Check image generation:**
   * Some recordings may not generate previews
   * Ensure recording completed successfully
   * Test with a different recording

***

#### Delayed messages

**Symptom:** Messages arrive several minutes after recording is uploaded

**Solutions:**

1. **Check Screendesk status:**
   * Visit [status.screendesk.io](https://status.screendesk.io)
   * Look for any ongoing incidents
   * Check maintenance windows
2. **Check Slack status:**
   * Visit Slack status page
   * Ensure Slack APIs are operational
   * Check for rate limiting
3. **Reduce automation frequency:**
   * If folder has many automations, reduce number
   * Slack API has rate limits
   * Space out automations or use threading
4. **Contact support:**
   * If issues persist, contact <support@screendesk.io>
   * Include automation ID and timestamps
   * Provide examples of delayed messages

***

#### Rate limiting errors

**Symptom:** "Rate limited" or "Slack API error" messages

**Solutions:**

1. **Consolidate automations:**
   * Multiple automations to same channel = many messages
   * Combine into one automation if possible
   * Use threading to reduce message count
2. **Space out recordings:**
   * Slack limits message frequency per channel
   * Don't post 100+ messages per minute
   * Batch processing helps
3. **Contact Slack support:**
   * For persistent rate limiting
   * Slack can increase limits for enterprise accounts
   * Work with your workspace admin

***

#### View automation logs

Check detailed execution history:

1. Open folder **Settings → Automations**
2. Click on the Slack automation
3. Select **Execution Log** tab
4. View recent executions

**Log shows:**

* ✅ **Success** — Message posted to Slack
* ⚠️ **Warning** — Posted but flagged or delayed
* ❌ **Failed** — Error with description

Use logs to troubleshoot issues and verify automations are running.

***

### Best Practices

#### Use dedicated channels

Avoid posting to high-traffic channels like #general or #random.

{% columns %}
{% column %}
**❌ Don't do this:**

Post everything to #general

* Creates notification fatigue
* Important messages get lost
* Hard to find old issues
  {% endcolumn %}

{% column %}
**✅ Do this:**

Create dedicated channels:

* \#bugs → Engineering bugs
* \#support → Support issues
* \#feedback → Customer feedback
* \#incidents → Critical issues

Team members can opt in/out of channels
{% endcolumn %}
{% endcolumns %}

***

#### Enable threading for related content

Group related messages to reduce channel clutter.

**Benefits:**

* Easier to scan channel history
* Related messages stay together
* Reduces notification spam
* Encourages discussion threads

**When to use:**

* Customer support (thread by customer)
* Bug tracking (thread by severity)
* Feedback collection (thread by day)

***

#### Include action buttons

Make it easy for team members to engage without leaving Slack.

**Benefits:**

* Quick access to recordings
* Reduces friction
* Self-assignment enables ownership
* Copy link for sharing

**Recommended:** Always enable action buttons unless they're not relevant to your workflow.

***

#### Keep message templates concise

Put important information first. Slack viewers scan quickly.

{% columns %}
{% column %}
**❌ Too long:**

```
A new recording has been
submitted to the support
folder. Please review it.
The title is...
```

{% endcolumn %}

{% column %}
**✅ Concise:**

```
New issue: {{recording.title}}
From: {{recording.customer_email}}

<{{recording.url}}|Review>
```

{% endcolumn %}
{% endcolumns %}

Mobile users and quick scanners appreciate concise messages.

***

#### Tailor templates to audience

Different channels need different information.

| Channel    | Focus            | Include                     |
| ---------- | ---------------- | --------------------------- |
| #bugs      | Debug info       | Console errors, system info |
| #support   | Customer context | Email, duration, category   |
| #feedback  | Customer voice   | Quote, customer email       |
| #incidents | Severity         | Urgency indicators, owner   |

Match your template to what the channel's audience needs.

***

#### Test before going live

Always send a test message before relying on an automation.

**Testing checklist:**

* ☐ Message posts to correct channel
* ☐ All variables populate correctly
* ☐ Formatting renders properly
* ☐ Links are clickable
* ☐ Buttons work (if enabled)
* ☐ Preview image loads (if enabled)
* ☐ No error messages appear

***

#### Monitor execution logs

Regularly check that automations are working:

1. Weekly review of execution logs
2. Watch for failed or delayed messages
3. Alert on > 5% failure rate
4. Fix issues quickly

This ensures reliability for your team.

***

#### Don't over-notify

Reserve Slack automations for important folders.

**Questions to ask:**

* Does the team need instant notification?
* Is the volume manageable (< 50/day)?
* Is the channel relevant?
* Will it drive action?

If unsure, use email instead. You can always add Slack later.

***

#### Use folder-specific templates

Match each folder's automation to its purpose.

**Examples:**

**Bug Reports folder:**

```
🐛 *Bug: {{recording.title}}*
From: {{recording.customer_email}}
Browser: {{recording.browser}}
<{{recording.url}}|Debug>
```

**Feature Requests folder:**

```
💡 *Feature: {{recording.title}}*
Customer: {{recording.customer_email}}
<{{recording.url}}|Review>
```

**Support Tickets folder:**

```
🎫 *Support: {{recording.title}}*
Customer: {{recording.customer_email}}
Duration: {{recording.duration}}s
<{{recording.url}}|Respond>
```


---

# Agent Instructions: 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:

```
GET https://docs.screendesk.io/organization-and-workflows/automations/slack.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
