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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'