بنقرة واحدة
slack
Read, send and manage Slack messages and channels. Requires Slack OAuth token. Tools: http.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Read, send and manage Slack messages and channels. Requires Slack OAuth token. Tools: http.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Search, subscribe, and listen to podcasts. Download RSS feeds, manage episodes, and play audio with position tracking. Tools: http, file_storage, media_queue, play_audio.
Manage local lists (shopping, to-do, etc.) stored as files. Add, remove, check and read items. Tools: file_storage.
Read, create, update and delete Google Calendar events. Requires Google OAuth. Tools: http.
Search contacts by name and retrieve phone numbers. Use before calling or sending SMS. Tools: query.
Read, search and send emails via Gmail API. Requires Google OAuth. Tools: gmail_send, http.
Start navigation, get directions and route info via Google Maps app. Tools: intent, http (optional, requires Maps API key for traffic/route details).
| name | slack |
| description | Read, send and manage Slack messages and channels. Requires Slack OAuth token. Tools: http. |
Read and send messages in Slack channels and direct messages.
Users speak channel names without # – this is normal and expected.
| User says | Means |
|---|---|
| "the general channel" | #general |
| "in the project channel" | #project |
| "the random channel" | #random |
| "in the dev channel" | #dev / #development |
Important: Match the spoken name against conversations.list – find the channel whose name is closest to the spoken term (substring match, case-insensitive). If multiple channels match, ask: "Do you mean the channel 'project-alpha' or 'project-beta'?"
All requests require auth_provider: "slack".
Base URL: https://slack.com/api
{
"method": "GET",
"url": "https://slack.com/api/conversations.list?types=public_channel,private_channel&exclude_archived=true&limit=50",
"auth_provider": "slack"
}
Returns channels – each element has id, name and is_member.
{
"method": "GET",
"url": "https://slack.com/api/conversations.history?channel={CHANNEL_ID}&limit=10",
"auth_provider": "slack"
}
{CHANNEL_ID} e.g. C01234ABCDE. Returns messages, newest first.
{
"method": "GET",
"url": "https://slack.com/api/conversations.replies?channel={CHANNEL_ID}&ts={THREAD_TS}&limit=20",
"auth_provider": "slack"
}
{THREAD_TS} = timestamp of the parent message (e.g. 1713000000.000100).
{
"method": "POST",
"url": "https://slack.com/api/conversations.open",
"auth_provider": "slack",
"body": {
"users": "{USER_ID}"
}
}
Returns channel.id – use this ID for chat.postMessage.
{
"method": "POST",
"url": "https://slack.com/api/chat.postMessage",
"auth_provider": "slack",
"body": {
"channel": "{CHANNEL_ID}",
"text": "{MESSAGE_TEXT}"
}
}
{
"method": "POST",
"url": "https://slack.com/api/chat.postMessage",
"auth_provider": "slack",
"body": {
"channel": "{CHANNEL_ID}",
"text": "{REPLY_TEXT}",
"thread_ts": "{TIMESTAMP_OF_ORIGINAL_MESSAGE}"
}
}
{
"method": "GET",
"url": "https://slack.com/api/users.lookupByEmail?email={EMAIL}",
"auth_provider": "slack"
}
Or list all users:
{
"method": "GET",
"url": "https://slack.com/api/users.list?limit=50",
"auth_provider": "slack"
}
Returns members – each element has id, name, real_name and profile.display_name.
{
"method": "GET",
"url": "https://slack.com/api/auth.test",
"auth_provider": "slack"
}
Returns user_id, user (name) and team (workspace name) among others.
{
"method": "POST",
"url": "https://slack.com/api/users.profile.set",
"auth_provider": "slack",
"body": {
"profile": {
"status_text": "{STATUS_TEXT}",
"status_emoji": "{EMOJI}",
"status_expiration": 0
}
}
}
Example emojis: :car:, :palm_tree:, :calendar:, :no_entry_sign:
status_expiration: Unix timestamp (0 = no expiry).
{
"method": "POST",
"url": "https://slack.com/api/users.profile.set",
"auth_provider": "slack",
"body": {
"profile": {
"status_text": "",
"status_emoji": "",
"status_expiration": 0
}
}
}
{
"method": "GET",
"url": "https://slack.com/api/conversations.info?channel={CHANNEL_ID}",
"auth_provider": "slack"
}
conversations.list (substring match on name)conversations.history with limit=5user ID to real name using users.listtts: "{Name} writes: {Text}" – omit timestampsconversations.listchat.postMessageusers.list (real_name or display_name, substring match)conversations.open with the user_id → get DM channel IDusers.profile.set with status_text: "On the road", status_emoji: ":car:"Every Slack API response contains "ok": true/false. If "ok": false, the "error" field contains the error code:
not_in_channel → Join the channel first (conversations.join)channel_not_found → Search for channel ID again via conversations.listmissing_scope → OAuth scope missing (user must re-authorize the app)conversations.list → match general → conversations.history → TTSconversations.history → TTS summarythread_ts → chat.postMessage with thread_tsusers.profile.set with :palm_tree:users.profile.set with empty fields# – always match via conversations.list (substring match)#: "the general channel", not "hashtag general"ts) are strings in format "1713000000.000100" – copy them exactly