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

# Slack

> Send updates, handover briefs and milestone celebrations into Slack channels — your customer's, your team's, or both.

Most of customer success happens in chat. Connecting Slack lets Thread post directly into shared channels with the customer (and your internal channels) — milestone updates, kickoff briefs, action reminders, launch celebrations — all timed off the workflow, all linkable back to the account portal.

<Frame>
  <img src="https://mintcdn.com/threadsolutionsinc/MFTGqD087bXZP0ze/images/screenshots/integrations/slack-channel.png?fit=max&auto=format&n=MFTGqD087bXZP0ze&q=85&s=60bb1c495393aa12f15200d002ca76d0" alt="A Thread app message in a customer Slack channel showing kickoff progress with a checklist and View in portal button" width="2560" height="1280" data-path="images/screenshots/integrations/slack-channel.png" />
</Frame>

## What you can build

<CardGroup cols={2}>
  <Card title="Customer kickoff & onboarding" icon="rocket" href="/use-cases/kickoff-onboarding">
    Live status updates posted to a shared channel as milestones progress.
  </Card>

  <Card title="Customer handover" icon="handshake" href="/use-cases/customer-handover">
    Drop the AE → CSM brief into a shared channel as part of the introduction.
  </Card>

  <Card title="CSM assignment" icon="user-plus" href="/use-cases/csm-assignment">
    Page the right CSM channel the moment a new account is routed.
  </Card>

  <Card title="Customer portal experience" icon="window" href="/use-cases/customer-portal-experience">
    Use Slack as the day-to-day surface; the portal as the source of truth.
  </Card>
</CardGroup>

## Connect Slack

<Steps>
  <Step title="Open Connectors → Slack → Connect">
    Go to **[Connectors → Slack](https://stitch.thread.app/home/connectors/slack)** in Thread, click **Connect**, and sign in to Slack to approve the workspace install. Thread requests permission to read your channel list and post messages — that's it.
  </Step>

  <Step title="Invite the Thread app to channels">
    The Thread app only posts to channels it's been invited into. In each shared/internal channel: type `/invite @Thread`. Channel admins can do this in bulk via Slack's app settings.
  </Step>

  <Step title="Pick default channels">
    Under **[Connectors → Slack](https://stitch.thread.app/home/connectors/slack)**, set the default internal channel for CSM alerts and the default shared-channel pattern for new customer rollouts. Workflows can override these per-account.
  </Step>
</Steps>

## Use Slack in a workflow

Drop a **Send to Slack** action into any workflow. Choose the channel, pick a template (or write inline), and reference any account variable.

| Trigger              | What gets posted                                                                 |
| -------------------- | -------------------------------------------------------------------------------- |
| Milestone complete   | "🎉 Phase 1 — Account setup is complete" with progress checklist + portal link   |
| Action overdue       | "Heads up — the technical requirements form is still outstanding" with form link |
| New account assigned | Internal alert to the CSM's channel with handover brief link                     |
| Account at risk      | Internal alert with risk reason and current owner                                |
| Launch               | Public celebration in the shared channel                                         |

Messages support Slack markdown (`*bold*`, `_italic_`, `:emoji:`, `> quote`, code blocks) and Thread variables like `{{ account.name }}`, `{{ milestone.name }}`, `{{ csm.first_name }}`.

## Tips from the field

<CardGroup cols={2}>
  <Card title="Use shared channels" icon="user-group">
    A Slack Connect channel per customer makes Thread feel like a teammate, not a tool.
  </Card>

  <Card title="Keep messages short" icon="minimize">
    Two lines plus a portal link beats a wall of text every time.
  </Card>

  <Card title="Don't @channel everything" icon="at">
    Reserve `@here` for rollout-blocking moments. Routine updates don't need pings.
  </Card>

  <Card title="Mirror, don't replace, the portal" icon="link">
    The portal is the source of truth. Slack messages link back to it.
  </Card>
</CardGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="`channel_not_found`">
    The Thread app isn't in that channel yet. In Slack: `/invite @Thread`, then re-run the action.
  </Accordion>

  <Accordion title="Messages aren't posting">
    Check the connection status in **[Connectors → Slack](https://stitch.thread.app/home/connectors/slack)**. If the workspace was reinstalled or the user who connected left, reconnect from a current admin account.
  </Accordion>

  <Accordion title="Customer can't see updates">
    Confirm the workflow targets a Slack Connect (shared) channel and not your internal-only channel. Channel type is shown next to the channel name in the action editor.
  </Accordion>

  <Accordion title="Variables show as raw {{ }}">
    The variable name doesn't match a field on the account, or it was applied before the account had data. Check spelling against the variable picker in the action editor.
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Customer kickoff & onboarding" icon="rocket" href="/use-cases/kickoff-onboarding">
    Build the Slack-native kickoff experience.
  </Card>

  <Card title="Building workflows" icon="diagram-project" href="/csm-guide/workflows/building-workflows">
    Full reference for the Send to Slack action node.
  </Card>
</CardGroup>
