Slack
CenterLeap posts call outcomes to Slack — one message per finished call with the summary, the Monday record link, and the call recording attached. Used by the recruiting calling agent to keep the team's channel current without anyone watching a dashboard.
On this page
What it does
After each agent call completes and its summary + recording are ready, CenterLeap posts a single message to a Slack channel via chat.postMessage and uploads the audio via files.upload. The message includes the outcome, a short summary, the Monday pulse link, and the call-history link.
1. Create a Slack app
2. Add bot token scopes
Under OAuth & Permissions → Bot Token Scopes, add:
| chat:write | Post messages to channels the bot is in. |
| files:write | Upload call recordings as attachments. |
| channels:read | Resolve channel IDs (optional). |
Without files:writethe recording won't attach — CenterLeap falls back to a text-only message noting the recording is in call history.
3. Install & get the bot token
xoxb-. This is the value you give CenterLeap.4. Add the bot to a channel
In the target Slack channel, type /invite @CenterLeap Bot. Then get the channel ID: open the channel, View channel details, copy the ID at the bottom (starts with C).
5. Configure CenterLeap
Store the token and channel in the agent runtime's Slack integration:
| SLACK_BOT_TOKEN | The xoxb- Bot User OAuth token. |
| SLACK_CHANNEL_ID | Target channel ID (Cxxxxxxxx). |
These are read by the agent runtime's Slack client. The channel can also be stored per-integration in the app so different campaigns post to different channels.
6. Test
Confirm the bot can post with a direct API call:
curl -s -X POST https://slack.com/api/chat.postMessage \
-H "Authorization: Bearer $SLACK_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channel":"C0XXXXXXX","text":"CenterLeap Slack test ✅"}'A {"ok":true}response and a message in the channel means it's wired. If you see not_in_channel, invite the bot (step 4); missing_scope means re-check step 2 and reinstall.