# 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>
```
