Slack · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Slack Chat API
11 actions
11 updates
phrasing
extends
openapi/slack-chat-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Slack's API. It is a proposal applied on top of the contract, not a document Slack publishes.
What the actions change
x-apievangelist-phrasing
Targets 11
$.info
$.paths['/chat.delete'].post
$.paths['/chat.deleteScheduledMessage'].post
$.paths['/chat.getPermalink'].get
$.paths['/chat.meMessage'].post
$.paths['/chat.postEphemeral'].post
$.paths['/chat.postMessage'].post
$.paths['/chat.scheduleMessage'].post
$.paths['/chat.scheduledMessages.list'].get
$.paths['/chat.unfurl'].post
$.paths['/chat.update'].post
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Slack Chat API
version: 1.0.0
extends: openapi/slack-chat-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 10
- target: $.paths['/chat.delete'].post
update:
x-apievangelist-phrasing:
intent: Delete a posted message
effect: destructive
questions:
- How do I delete a message my bot already posted?
- Can I delete a message as the user rather than as the bot?
instructions:
- text: Delete message {ts} in channel {channel}.
slots:
ts: requestBody.ts
channel: requestBody.channel
- text: Remove the already-posted message at {ts} from {channel}.
slots:
ts: requestBody.ts
channel: requestBody.channel
method: generated
generated: '2026-09-26'
- target: $.paths['/chat.deleteScheduledMessage'].post
update:
x-apievangelist-phrasing:
intent: Cancel a scheduled message
effect: destructive
questions:
- Can I cancel a message I scheduled before it gets sent?
- What do I need to remove a pending scheduled message from the queue?
instructions:
- text: Cancel scheduled message {scheduled_message_id} in {channel}.
slots:
scheduled_message_id: requestBody.scheduled_message_id
channel: requestBody.channel
- text: Remove pending scheduled message {scheduled_message_id} from channel {channel} before it goes out.
slots:
scheduled_message_id: requestBody.scheduled_message_id
channel: requestBody.channel
method: generated
generated: '2026-09-26'
- target: $.paths['/chat.getPermalink'].get
update:
x-apievangelist-phrasing:
intent: Get a permalink to a message
effect: read
questions:
- How do I get a shareable link to a specific message?
- Can I build a URL that jumps straight to a message in a channel?
instructions:
- text: Get the permalink for message {message_ts} in {channel}.
slots:
message_ts: query.message_ts
channel: query.channel
- text: Give me a link to the message at {message_ts} in channel {channel}.
slots:
message_ts: query.message_ts
channel: query.channel
method: generated
generated: '2026-09-26'
- target: $.paths['/chat.meMessage'].post
update:
x-apievangelist-phrasing:
intent: Post a /me status-style message
effect: write
questions:
- Can I post an italic /me style action message in a channel?
- What is a me message and when would I send one?
instructions:
- text: Post a /me message saying {text} in {channel}.
slots:
text: requestBody.text
channel: requestBody.channel
- text: Share a me action {text} into channel {channel}.
slots:
text: requestBody.text
channel: requestBody.channel
method: generated
generated: '2026-09-26'
- target: $.paths['/chat.postEphemeral'].post
update:
x-apievangelist-phrasing:
intent: Send a message only one user can see
effect: write
questions:
- How do I send a message in a channel that only one person can see?
- Can an ephemeral message be posted inside a thread?
instructions:
- text: Send {user} an ephemeral message in {channel} saying {text}.
slots:
user: requestBody.user
channel: requestBody.channel
text: requestBody.text
- text: Show only {user} the private notice {text} in thread {thread_ts} of {channel}.
slots:
user: requestBody.user
text: requestBody.text
thread_ts: requestBody.thread_ts
channel: requestBody.channel
method: generated
generated: '2026-09-26'
- target: $.paths['/chat.postMessage'].post
update:
x-apievangelist-phrasing:
intent: Send a message to a channel
effect: write
questions:
- How do I post a message to a Slack channel from my app?
- Can I reply in a thread and also broadcast the reply to the channel?
- Can I send rich Block Kit layouts instead of plain text?
instructions:
- text: Post {text} to channel {channel}.
slots:
text: requestBody.text
channel: requestBody.channel
- text: Reply {text} in thread {thread_ts} of {channel}.
slots:
text: requestBody.text
thread_ts: requestBody.thread_ts
channel: requestBody.channel
- text: Send the Block Kit message {blocks} to {channel} right now.
slots:
blocks: requestBody.blocks
channel: requestBody.channel
method: generated
generated: '2026-09-26'
- target: $.paths['/chat.scheduleMessage'].post
update:
x-apievangelist-phrasing:
intent: Schedule a message for later
effect: write
questions:
- Can I schedule a message to post at a specific time in the future?
- Which formats, like blocks or thread replies, work with scheduled messages?
instructions:
- text: Schedule {text} to post in {channel} at {post_at}.
slots:
text: requestBody.text
channel: requestBody.channel
post_at: requestBody.post_at
- text: Schedule a thread reply {text} to {thread_ts} in {channel} for {post_at}.
slots:
text: requestBody.text
thread_ts: requestBody.thread_ts
channel: requestBody.channel
post_at: requestBody.post_at
method: generated
generated: '2026-09-26'
- target: $.paths['/chat.scheduledMessages.list'].get
update:
x-apievangelist-phrasing:
intent: List scheduled messages
effect: read
questions:
- What messages are currently scheduled to go out?
- Can I see scheduled messages for just one channel within a time range?
instructions:
- text: List all my pending scheduled messages.
- text: List scheduled messages in {channel} due between {oldest} and {latest}.
slots:
channel: query.channel
oldest: query.oldest
latest: query.latest
method: generated
generated: '2026-09-26'
- target: $.paths['/chat.unfurl'].post
update:
x-apievangelist-phrasing:
intent: Provide custom link previews for posted URLs
effect: write
questions:
- How do I show a custom preview when someone posts a link to my app's domain?
- Can I ask users to authenticate before my app unfurls their link?
instructions:
- text: Unfurl the links in message {ts} of {channel} with previews {unfurls}.
slots:
ts: requestBody.ts
channel: requestBody.channel
unfurls: requestBody.unfurls
- text: Prompt the user to sign in at {user_auth_url} before unfurling message {ts} in {channel}.
slots:
user_auth_url: requestBody.user_auth_url
ts: requestBody.ts
channel: requestBody.channel
method: generated
generated: '2026-09-26'
- target: $.paths['/chat.update'].post
update:
x-apievangelist-phrasing:
intent: Edit a message that was already posted
effect: write
questions:
- Can I edit the text of a message after it has been posted?
- Is it possible to swap an existing message's blocks for new ones?
instructions:
- text: Change message {ts} in {channel} to say {text}.
slots:
ts: requestBody.ts
channel: requestBody.channel
text: requestBody.text
- text: Replace the blocks of existing message {ts} in {channel} with {blocks}.
slots:
ts: requestBody.ts
channel: requestBody.channel
blocks: requestBody.blocks
method: generated
generated: '2026-09-26'