Slack

Connect Slack to Postclay

Slack requires its own app inside your workspace — Slack doesn't allow one shared app across every customer's workspace, so this is the one BYO setup that takes a few extra minutes.

Teams use Slack to keep an internal or customer-facing channel updated with the same content going out on social — release notes, on-call status, or a mirror of what just went live on your public channels. Postclay lets a Slack channel sit in the same schedule as Instagram or X, not a separate tool.

Setup steps

  1. Go to api.slack.com/apps → Create New App → From scratch, name it "Postclay", and pick your workspace.
  2. Under OAuth & Permissions → Bot Token Scopes, add chat:write, files:write and files:read (add channels:join too so the bot can join public channels itself).
  3. Click Install to Workspace, then copy the Bot User OAuth Token (starts with xoxb-).
  4. In the target Slack channel, type /invite @Postclay (skip this for a public channel the bot already joined via channels:join).
  5. Find the channel ID: click the channel name → About, and copy the ID at the bottom. Paste the token and channel ID into Postclay.

Limits & requirements

Slack's chat.postMessage API accepts up to 40,000 characters, but silently truncates anything longer with no error — Postclay's composer stops you well before that point so you never find out about the cut after the fact. You can attach up to 10 files to a single message.

What Postclay does differently for Slack

Slack has no shared "Postclay app" the way OAuth platforms do — Slack requires every integration to be its own app installed per workspace, which is why this is the one connect flow that takes a few extra minutes. Once it's set up, though, Slack behaves exactly like every other connected account in Postclay: same composer, same schedule, same AI caption generation.

AI generation, tuned for Slack

Because Slack silently truncates anything over 40,000 characters with no error, an AI-generated draft that runs long is exactly the kind of mistake worth catching before it publishes — Postclay's composer flags it while you're still editing, not after a truncated message has already gone out to the channel.

Troubleshooting

Install to Workspace is greyed out.
You need permission to install apps in that Slack workspace — ask a workspace admin, or check if your workspace allows members to install apps for themselves.
The bot can't post — "not_in_channel" error.
Type /invite @Postclay in the target channel, or add the channels:join scope so the bot can join public channels on its own.
Where do I find the channel ID, not the channel name?
Click the channel name at the top of Slack → About → scroll to the bottom, where the Channel ID is shown (starts with C).

Common questions

Which scopes does the bot actually need?
chat:write to post, files:write/files:read to attach media. Nothing else is required.
Do I need admin rights in my Slack workspace?
You need permission to install apps — usually a workspace admin, though some workspaces allow any member to install apps for their own use.
Can I connect more than one Slack channel?
Yes — repeat the connect flow for each channel; the bot token stays the same, only the channel ID changes.
Does Postclay post as a bot or as my own Slack user?
As a bot — messages appear from "Postclay" (or whatever you named the app), not from your personal Slack account. This also makes it easy for teammates to see at a glance which posts came from the scheduler.

Go to Postclay and connect

← All setup guides