Ada · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Ada Conversations API

12 actions 12 updates phrasing extends openapi/ada-conversations-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Ada's API. It is a proposal applied on top of the contract, not a document Ada publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 12

$.info
$.paths['/v2/export/conversations'].get
$.paths['/data_api/v1.4/conversations'].get
$.paths['/v2/conversations/email/'].post
$.paths['/v2/conversations/'].post
$.paths['/v2/conversations/{conversation_id}/'].get
$.paths['/v2/conversations/{conversation_id}/'].patch
$.paths['/v2/conversations/{conversation_id}/messages/'].get
$.paths['/v2/conversations/{conversation_id}/messages/'].post
$.paths['/v2/conversations/{conversation_id}/end/'].post
$.paths['/v2/conversations/{conversation_id}/end-handoff/'].post
$.paths['/v2/conversations/{conversation_id}/attachments/'].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 Ada Conversations API
  version: 1.0.0
extends: openapi/ada-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: 11
- target: $.paths['/v2/export/conversations'].get
  update:
    x-apievangelist-phrasing:
      intent: Export conversations in bulk (v2 export)
      effect: read
      questions:
      - How do I export conversations created in a date range from the v2 export endpoint?
      - Can I bulk export conversations that were updated since a certain date?
      - What page size limits apply when exporting conversations through the v2 export?
      instructions:
      - text: Export conversations created between {created_since} and {created_to} using the v2 export.
        slots:
          created_since: query.created_since
          created_to: query.created_to
      - text: Pull every conversation updated since {updated_since} from the v2 export, {page_size} per page.
        slots:
          updated_since: query.updated_since
          page_size: query.page_size
      method: generated
      generated: '2026-09-26'
- target: $.paths['/data_api/v1.4/conversations'].get
  update:
    x-apievangelist-phrasing:
      intent: Export conversations via the legacy Data API v1.4
      effect: read
      questions:
      - How do I pull conversations from the older Data API v1.4?
      - Does the legacy v1.4 conversations export return a status message with results?
      instructions:
      - text: Use the legacy Data API v1.4 to fetch conversations created since {created_since}.
        slots:
          created_since: query.created_since
      - text: Fetch conversations updated between {updated_since} and {updated_to} from Data API v1.4.
        slots:
          updated_since: query.updated_since
          updated_to: query.updated_to
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v2/conversations/email/'].post
  update:
    x-apievangelist-phrasing:
      intent: Start an email conversation with a customer
      effect: write
      questions:
      - Can my AI Agent email a customer first to start a conversation?
      - Which reply-from address can I use when the agent starts an email thread?
      - How do I open a conversation over Ada's native email channel?
      instructions:
      - text: Email {name} at {reply_to} to start a conversation about {subject}.
        slots:
          name: requestBody.name
          reply_to: requestBody.reply_to
          subject: requestBody.subject
      - text: Start an email conversation with {name} at {reply_to}, subject {subject}, saying {text}, and CC {cc}.
        slots:
          name: requestBody.name
          reply_to: requestBody.reply_to
          subject: requestBody.subject
          text: requestBody.text
          cc: requestBody.cc
      - text: Open an email thread with {reply_to} named {name} on {subject}, replying as {reply_as}.
        slots:
          reply_to: requestBody.reply_to
          name: requestBody.name
          subject: requestBody.subject
          reply_as: requestBody.reply_as
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v2/conversations/'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a conversation on a custom channel
      effect: write
      questions:
      - How do I start a new conversation on my custom channel?
      - What happens if I start a conversation without an end user id?
      instructions:
      - text: Start a new conversation in channel {channel_id}.
        slots:
          channel_id: requestBody.channel_id
      - text: Open a conversation in channel {channel_id} for end user {end_user_id}.
        slots:
          channel_id: requestBody.channel_id
          end_user_id: requestBody.end_user_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v2/conversations/{conversation_id}/'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up one conversation
      effect: read
      questions:
      - How do I look up the details of a single conversation by its id?
      - Can I check the current metadata and state of one specific conversation?
      instructions:
      - text: Get conversation {conversation_id}.
        slots:
          conversation_id: path.conversation_id
      - text: Show me the details of conversation {conversation_id}.
        slots:
          conversation_id: path.conversation_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v2/conversations/{conversation_id}/'].patch
  update:
    x-apievangelist-phrasing:
      intent: Add metadata to a conversation
      effect: write
      questions:
      - How do I attach extra metadata to a conversation that's already running?
      - Does updating a conversation's metadata replace it or add to it?
      instructions:
      - text: Add metadata {metadata} to conversation {conversation_id}.
        slots:
          metadata: requestBody.metadata
          conversation_id: path.conversation_id
      - text: Tag existing conversation {conversation_id} with metadata {metadata}.
        slots:
          conversation_id: path.conversation_id
          metadata: requestBody.metadata
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v2/conversations/{conversation_id}/messages/'].get
  update:
    x-apievangelist-phrasing:
      intent: Read the messages in one conversation
      effect: read
      questions:
      - How can I read the full message history of one conversation?
      - What's the most messages I can fetch per page for a single conversation?
      instructions:
      - text: Show me the messages in conversation {conversation_id}.
        slots:
          conversation_id: path.conversation_id
      - text: Get the next {limit} messages of conversation {conversation_id} after cursor {cursor}.
        slots:
          limit: query.limit
          conversation_id: path.conversation_id
          cursor: query.cursor
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v2/conversations/{conversation_id}/messages/'].post
  update:
    x-apievangelist-phrasing:
      intent: Send a message into a conversation
      effect: write
      questions:
      - How do I post an end user's message into an ongoing conversation?
      - Can I send a file message after uploading an attachment?
      instructions:
      - text: Send message {content} from {author} in conversation {conversation_id}.
        slots:
          content: requestBody.content
          author: requestBody.author
          conversation_id: path.conversation_id
      - text: Post {content} as {author} to conversation {conversation_id}.
        slots:
          content: requestBody.content
          author: requestBody.author
          conversation_id: path.conversation_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v2/conversations/{conversation_id}/end/'].post
  update:
    x-apievangelist-phrasing:
      intent: End a conversation
      effect: destructive
      questions:
      - How do I close out a conversation once the customer is done?
      - Can I programmatically end a conversation from my custom channel?
      instructions:
      - text: End conversation {conversation_id}.
        slots:
          conversation_id: path.conversation_id
      - text: Close conversation {conversation_id} for good.
        slots:
          conversation_id: path.conversation_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v2/conversations/{conversation_id}/end-handoff/'].post
  update:
    x-apievangelist-phrasing:
      intent: Hand a conversation back to the AI Agent
      effect: write
      questions:
      - How do I return a conversation from a human agent back to the AI Agent?
      - Does ending a handoff also end the whole conversation?
      - Will ending a handoff trigger the CSAT survey for the human agent?
      instructions:
      - text: End the human handoff in conversation {conversation_id}.
        slots:
          conversation_id: path.conversation_id
      - text: Give control of conversation {conversation_id} back to the AI Agent without closing it.
        slots:
          conversation_id: path.conversation_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v2/conversations/{conversation_id}/attachments/'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload a file to a conversation
      effect: write
      questions:
      - How do I share a file with a customer in a conversation?
      - How large can a conversation attachment be, and how long does its link last?
      instructions:
      - text: Upload {file} to conversation {conversation_id}.
        slots:
          file: requestBody.file
          conversation_id: path.conversation_id
      - text: Attach file {file} to conversation {conversation_id} and give me the temporary URL.
        slots:
          file: requestBody.file
          conversation_id: path.conversation_id
      method: generated
      generated: '2026-09-26'