Slack · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Slack Conversations API
19 actions
19 updates
phrasing
extends
openapi/slack-conversations-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 19 · first 16 shown; the file carries all of them
$.info
$.paths['/conversations.create'].post
$.paths['/conversations.history'].get
$.paths['/conversations.info'].get
$.paths['/conversations.invite'].post
$.paths['/conversations.join'].post
$.paths['/conversations.kick'].post
$.paths['/conversations.leave'].post
$.paths['/conversations.list'].get
$.paths['/conversations.mark'].post
$.paths['/conversations.members'].get
$.paths['/conversations.open'].post
$.paths['/conversations.rename'].post
$.paths['/conversations.replies'].get
$.paths['/conversations.setPurpose'].post
$.paths['/conversations.setTopic'].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 Conversations API
version: 1.0.0
extends: openapi/slack-conversations-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: 18
- target: $.paths['/conversations.create'].post
update:
x-apievangelist-phrasing:
intent: Create a new channel
effect: write
questions:
- How do I create a new Slack channel from code?
- Can I make the new channel private instead of public?
instructions:
- text: Create a public channel named {name}.
slots:
name: requestBody.name
- text: Create channel {name} with private set to {is_private}.
slots:
name: requestBody.name
is_private: requestBody.is_private
method: generated
generated: '2026-09-26'
- target: $.paths['/conversations.history'].get
update:
x-apievangelist-phrasing:
intent: Read a channel's message history
effect: read
questions:
- What messages were posted in a channel over the last few days?
- Can I fetch only messages between two timestamps?
instructions:
- text: Get the latest message history for channel {channel}.
slots:
channel: query.channel
- text: Fetch messages in {channel} posted between {oldest} and {latest}.
slots:
channel: query.channel
oldest: query.oldest
latest: query.latest
method: generated
generated: '2026-09-26'
- target: $.paths['/conversations.info'].get
update:
x-apievangelist-phrasing:
intent: Get details about a channel
effect: read
questions:
- What are the settings and topic of a particular channel?
- Can I get a channel's member count along with its details?
instructions:
- text: Show details for channel {channel}.
slots:
channel: query.channel
- text: Get info on {channel} including how many members it has.
slots:
channel: query.channel
method: generated
generated: '2026-09-26'
- target: $.paths['/conversations.invite'].post
update:
x-apievangelist-phrasing:
intent: Invite users to a channel
effect: write
questions:
- How do I add several teammates to a channel at once?
- Can I invite people into a private channel through the API?
instructions:
- text: Invite users {users} to channel {channel}.
slots:
users: requestBody.users
channel: requestBody.channel
- text: Add {users} as members of {channel}.
slots:
users: requestBody.users
channel: requestBody.channel
method: generated
generated: '2026-09-26'
- target: $.paths['/conversations.join'].post
update:
x-apievangelist-phrasing:
intent: Join an existing channel
effect: write
questions:
- Can my app join a public channel on its own?
- What happens if my bot tries to join a channel it is already in?
instructions:
- text: Join channel {channel}.
slots:
channel: requestBody.channel
- text: Have me become a member of {channel} myself.
slots:
channel: requestBody.channel
method: generated
generated: '2026-09-26'
- target: $.paths['/conversations.kick'].post
update:
x-apievangelist-phrasing:
intent: Remove a user from a channel
effect: destructive
questions:
- How do I remove someone from a channel?
- Can an admin kick a specific member out of a private channel?
instructions:
- text: Remove user {user} from channel {channel}.
slots:
user: requestBody.user
channel: requestBody.channel
- text: Kick {user} out of {channel}.
slots:
user: requestBody.user
channel: requestBody.channel
method: generated
generated: '2026-09-26'
- target: $.paths['/conversations.leave'].post
update:
x-apievangelist-phrasing:
intent: Leave a channel
effect: write
questions:
- Can my bot leave a channel it no longer needs to be in?
- What is the call to take myself out of a conversation?
instructions:
- text: Leave channel {channel}.
slots:
channel: requestBody.channel
- text: Take me out of {channel}.
slots:
channel: requestBody.channel
method: generated
generated: '2026-09-26'
- target: $.paths['/conversations.list'].get
update:
x-apievangelist-phrasing:
intent: List channels in the workspace
effect: read
questions:
- What channels exist in our workspace?
- Can I list only private channels and skip archived ones?
instructions:
- text: List all channels in the workspace.
- text: List workspace channels of type {types}, excluding archived ones.
slots:
types: query.types
method: generated
generated: '2026-09-26'
- target: $.paths['/conversations.mark'].post
update:
x-apievangelist-phrasing:
intent: Set the read cursor in a channel
effect: write
questions:
- How do I mark a channel as read up to a certain message?
- Can I move the read marker back to make older messages unread?
instructions:
- text: Mark channel {channel} as read up to message {ts}.
slots:
channel: requestBody.channel
ts: requestBody.ts
- text: Move the read cursor in {channel} to timestamp {ts}.
slots:
channel: requestBody.channel
ts: requestBody.ts
method: generated
generated: '2026-09-26'
- target: $.paths['/conversations.members'].get
update:
x-apievangelist-phrasing:
intent: List the members of a channel
effect: read
questions:
- Who is in a particular channel?
- Is the channel member list paginated for large channels?
instructions:
- text: List the members of channel {channel}.
slots:
channel: query.channel
- text: Get the next {limit} members of {channel} after cursor {cursor}.
slots:
limit: query.limit
channel: query.channel
cursor: query.cursor
method: generated
generated: '2026-09-26'
- target: $.paths['/conversations.open'].post
update:
x-apievangelist-phrasing:
intent: Open a direct or group direct message
effect: write
questions:
- How do I start a DM with a user so my bot can message them privately?
- Can I open a group DM with several people at once?
instructions:
- text: Open a direct message with users {users}.
slots:
users: requestBody.users
- text: Resume the existing DM {channel} and return its full details.
slots:
channel: requestBody.channel
method: generated
generated: '2026-09-26'
- target: $.paths['/conversations.rename'].post
update:
x-apievangelist-phrasing:
intent: Rename a channel
effect: write
questions:
- Can I change a channel's name after it has been created?
- What are the rules for renaming a channel through the API?
instructions:
- text: Rename channel {channel} to {name}.
slots:
channel: requestBody.channel
name: requestBody.name
- text: Change the name of {channel} to {name}.
slots:
channel: requestBody.channel
name: requestBody.name
method: generated
generated: '2026-09-26'
- target: $.paths['/conversations.replies'].get
update:
x-apievangelist-phrasing:
intent: Read the replies in a message thread
effect: read
questions:
- How do I get all the replies in a thread?
- Can I fetch only thread replies posted after a certain time?
instructions:
- text: Get the thread replies to message {ts} in {channel}.
slots:
ts: query.ts
channel: query.channel
- text: Show replies in the thread {ts} of {channel} newer than {oldest}.
slots:
ts: query.ts
channel: query.channel
oldest: query.oldest
method: generated
generated: '2026-09-26'
- target: $.paths['/conversations.setPurpose'].post
update:
x-apievangelist-phrasing:
intent: Set a channel's purpose
effect: write
questions:
- Can I update the purpose description of a channel?
- Where does a channel's purpose show up versus its topic?
instructions:
- text: Set the purpose of {channel} to {purpose}.
slots:
channel: requestBody.channel
purpose: requestBody.purpose
- text: Change channel {channel}'s description of purpose to {purpose}.
slots:
channel: requestBody.channel
purpose: requestBody.purpose
method: generated
generated: '2026-09-26'
- target: $.paths['/conversations.setTopic'].post
update:
x-apievangelist-phrasing:
intent: Set a channel's topic
effect: write
questions:
- How do I change the topic shown at the top of a channel?
- Can a bot update a channel topic automatically, like an on-call rotation?
instructions:
- text: Set the topic of {channel} to {topic}.
slots:
channel: requestBody.channel
topic: requestBody.topic
- text: Update channel {channel}'s header topic to read {topic}.
slots:
channel: requestBody.channel
topic: requestBody.topic
method: generated
generated: '2026-09-26'
- target: $.paths['/conversations.unarchive'].post
update:
x-apievangelist-phrasing:
intent: Unarchive a channel
effect: write
questions:
- Can I bring back a channel that was archived?
- What does it take to restore an archived conversation?
instructions:
- text: Unarchive channel {channel}.
slots:
channel: requestBody.channel
- text: Restore the archived conversation {channel}.
slots:
channel: requestBody.channel
method: generated
generated: '2026-09-26'
- target: $.paths['/users.conversations'].get
update:
x-apievangelist-phrasing:
intent: List the channels a user belongs to
effect: read
questions:
- Which channels is a particular user a member of?
- Can I list only the private channels and DMs I have access to?
instructions:
- text: List the channels user {user} belongs to.
slots:
user: query.user
- text: Show my conversations of type {types}, excluding archived ones.
slots:
types: query.types
method: generated
generated: '2026-09-26'
- target: $.paths['/conversations.archive'].post
update:
x-apievangelist-phrasing:
intent: Archive a channel
effect: destructive
questions:
- How do I archive a channel that is no longer used?
- What scope does my app need to archive a conversation?
instructions:
- text: Archive channel {channel}.
slots:
channel: requestBody.channel
- text: Close out the unused channel {channel} by archiving it.
slots:
channel: requestBody.channel
method: generated
generated: '2026-09-26'