Using Slack
Practical guide for working with Slack channels, messages, and users through Fp Switchboard.
Quick Tips
Section titled “Quick Tips”- User IDs (
U0G9QF9C6) are NOT usernames — must callslack_list_usersto resolve - Channel IDs:
C=public,G=private,D=DM — extract from URLs or list channels - Thread timestamps (
thread_ts) must be STRINGS, not floats — floats silently fail - Always check both channels AND groups when searching for a channel
- DMs require opening a conversation first with
conversations.open
Common Gotchas
Section titled “Common Gotchas”User ID vs Username Critical
Section titled “User ID vs Username ”Slack API requires User IDs (U0G9QF9C6), not @usernames. Must lookup first.
| Example | |
|---|---|
| Wrong | slack_send_message(channel: "general", user: "@john") |
| Correct | slack_list_users() → find John → slack_send_message(channel: "C1234567") |
Thread Timestamp Format Critical
Section titled “Thread Timestamp Format ”thread_ts must be a STRING like "1234567890.123456". Passing as float silently fails — no error, just doesn’t thread.
| Example | |
|---|---|
| Wrong | thread_ts: 1234567890.123456 |
| Correct | thread_ts: "1234567890.123456" |
Channel ID Prefixes Important
Section titled “Channel ID Prefixes ”Channel IDs indicate type: C=public, G=private, D=DM. Use the correct type for operations.
User Mentions in Messages Important
Section titled “User Mentions in Messages ”To mention users in messages, use <@USER_ID> format, not @username.
| Example | |
|---|---|
| Wrong | Hey @john, please review |
| Correct | Hey <@U0G9QF9C6>, please review |
Multi-Step Patterns
Section titled “Multi-Step Patterns”Send DM to User by Name
Section titled “Send DM to User by Name”- Call
slack_list_usersto find user ID from display name - Call
conversations.openwith user ID to get DM channel ID - Call
slack_send_messagewith the DM channel ID
Reply to Thread
Section titled “Reply to Thread”- Get the parent message
ts(as STRING) - Call
chat.postMessagewiththread_tsset to parent ts - Use
reply_broadcast: trueif should also appear in channel
ID Format Reference
Section titled “ID Format Reference”| ID Type | Format | Example |
|---|---|---|
| User ID | U + 8-11 alphanumeric | U0G9QF9C6 |
| Channel ID (public) | C + 8-11 alphanumeric | C1234567890 |
| Channel ID (private) | G + 8-11 alphanumeric | G1234567890 |
| DM Channel ID | D + 8-11 alphanumeric | D1234567890 |
| Timestamp | Unix.microseconds string | "1234567890.123456" |
Example Prompts
Section titled “Example Prompts”- “Send a message to #general about the team standup”
- “DM Sarah about the client meeting tomorrow”
- “List channels I’m a member of”
- “Reply to the thread about the deployment issue”
- “Search Slack for messages about the budget”
Rate Limits
Section titled “Rate Limits”| Tier | Limit | Examples |
|---|---|---|
| Tier 1 | 1 request/minute | admin.* methods |
| Tier 2 | 20 requests/minute | conversations.list |
| Tier 3 | 50 requests/minute | chat.postMessage |
| Tier 4 | 100 requests/minute | Most read operations |