Boom Ai · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Boom Initiatives API

24 actions 24 updates phrasing extends openapi/boom-ai-initiatives-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Boom Ai's API. It is a proposal applied on top of the contract, not a document Boom Ai publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 24 · first 16 shown; the file carries all of them

$.info
$.paths['/api/v1/initiatives'].get
$.paths['/api/v1/initiatives'].post
$.paths['/api/v1/initiatives/{id}'].get
$.paths['/api/v1/initiatives/{id}'].patch
$.paths['/api/v1/initiatives/{id}/archive'].post
$.paths['/api/v1/initiatives/{id}/cancel'].post
$.paths['/api/v1/initiatives/{id}/data/summary'].get
$.paths['/api/v1/initiatives/{id}/extraction-schema'].get
$.paths['/api/v1/initiatives/{id}/extraction-schema'].post
$.paths['/api/v1/initiatives/{id}/launch'].post
$.paths['/api/v1/initiatives/{id}/participants'].get
$.paths['/api/v1/initiatives/{id}/participants'].post
$.paths['/api/v1/initiatives/{id}/participants/{participantId}'].get
$.paths['/api/v1/initiatives/{id}/participants/{participantId}/messages'].get
$.paths['/api/v1/initiatives/{id}/participants/{participantId}/steps'].get

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 Boom Initiatives API
  version: 1.0.0
extends: openapi/boom-ai-initiatives-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: 23
- target: $.paths['/api/v1/initiatives'].get
  update:
    x-apievangelist-phrasing:
      intent: List my initiatives
      effect: read
      questions:
      - Which initiatives does my organization have running right now?
      - Can I list only the active initiatives and leave out the drafts?
      instructions:
      - text: List my initiatives, newest first.
      - text: Show me every initiative with status {status}.
        slots:
          status: query.status
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a draft initiative
      effect: write
      questions:
      - How do I start a new WhatsApp outreach initiative in Boom?
      - What is the minimum I need to create a draft initiative — just a name?
      - Can a new initiative keep enrolling people on a schedule instead of ending after one batch?
      instructions:
      - text: Create a draft initiative called {name}.
        slots:
          name: requestBody.name
      - text: Create a new initiative named {name} whose objective is {objective}, asking {guidingQuestions}.
        slots:
          name: requestBody.name
          objective: requestBody.objective
          guidingQuestions: requestBody.guidingQuestions
      - text: Set up a recurring initiative {name} that makes at most {maxAttempts} outreach attempts per person.
        slots:
          name: requestBody.name
          maxAttempts: requestBody.maxAttempts
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one initiative's details
      effect: read
      questions:
      - What is the current status and objective of a specific initiative?
      - Can I look up one initiative by its id to see how it is configured?
      instructions:
      - text: Show me initiative {id}.
        slots:
          id: path.id
      - text: Pull up the settings of initiative {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Edit a draft initiative
      effect: write
      questions:
      - Can I change the objective or guiding context of an initiative that is still a draft?
      - Why can't I edit an initiative after it has launched?
      - How do I change the bot-disclosure reply on a draft initiative?
      instructions:
      - text: Rename draft initiative {id} to {name}.
        slots:
          id: path.id
          name: requestBody.name
      - text: Change the flag condition on draft initiative {id} to {flagCondition}.
        slots:
          id: path.id
          flagCondition: requestBody.flagCondition
      - text: Update the objective of draft initiative {id} to {objective}.
        slots:
          id: path.id
          objective: requestBody.objective
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/archive'].post
  update:
    x-apievangelist-phrasing:
      intent: Archive a finished initiative
      effect: write
      questions:
      - How do I hide a completed initiative from my initiatives list?
      - Can I archive an initiative that was canceled?
      instructions:
      - text: Archive initiative {id}.
        slots:
          id: path.id
      - text: Move completed initiative {id} out of the default list by archiving it.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/cancel'].post
  update:
    x-apievangelist-phrasing:
      intent: Cancel an initiative for good
      effect: destructive
      questions:
      - How do I permanently cancel an initiative and stop all its conversations?
      - Is canceling an initiative reversible, and who is allowed to do it?
      instructions:
      - text: Cancel initiative {id} and stop every conversation it is running.
        slots:
          id: path.id
      - text: Terminate initiative {id} permanently.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/data/summary'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an initiative's data summary
      effect: read
      questions:
      - How many participants does an initiative have, and how well is each captured variable covered?
      - What does the rollup of answers look like across an initiative?
      instructions:
      - text: Summarize the captured data for initiative {id}.
        slots:
          id: path.id
      - text: Give me participant count and per-variable coverage for initiative {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/extraction-schema'].get
  update:
    x-apievangelist-phrasing:
      intent: Read an initiative's extraction schema
      effect: read
      questions:
      - Which typed fields is an initiative currently pulling out of each conversation?
      - Does this initiative have an extraction schema configured at all?
      instructions:
      - text: Show me the extraction schema for initiative {id}.
        slots:
          id: path.id
      - text: Fetch the current extraction fields of initiative {id} so I can edit them.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/extraction-schema'].post
  update:
    x-apievangelist-phrasing:
      intent: Replace an initiative's extraction schema
      effect: write
      questions:
      - How do I define which yes/no, number or choice answers get extracted from conversations?
      - Do I send only the changed fields or the whole extraction schema when replacing it?
      instructions:
      - text: Set the extraction schema of initiative {id} to {schema}.
        slots:
          id: path.id
          schema: requestBody.schema
      - text: Replace initiative {id}'s extraction fields with {schema} and note {notes} on the new version.
        slots:
          id: path.id
          schema: requestBody.schema
          notes: requestBody.notes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/launch'].post
  update:
    x-apievangelist-phrasing:
      intent: Launch a draft initiative
      effect: write
      questions:
      - What has to be in place before a WhatsApp initiative can go live?
      - Does launching an initiative start messaging people straight away?
      instructions:
      - text: Launch initiative {id} and start outreach.
        slots:
          id: path.id
      - text: Take draft initiative {id} live.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/participants'].get
  update:
    x-apievangelist-phrasing:
      intent: List an initiative's participants
      effect: read
      questions:
      - Who has been enrolled in an initiative and what did Boom capture from each of them?
      - Can I find every run a particular person has had in an initiative, including the live one?
      instructions:
      - text: List the participants of initiative {id}.
        slots:
          id: path.id
      - text: Find the runs for person {personExternalId} in initiative {id}.
        slots:
          id: path.id
          personExternalId: query.personExternalId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/participants'].post
  update:
    x-apievangelist-phrasing:
      intent: Enroll people in a WhatsApp initiative
      effect: write
      questions:
      - How do I add contacts to an active initiative so they get the WhatsApp outreach?
      - Will people on the do-not-contact list be messaged if I add them to an initiative?
      instructions:
      - text: Add {people} to initiative {id} and start messaging them.
        slots:
          id: path.id
          people: requestBody.people
      - text: 'Enroll these contacts in active initiative {id}: {people}.'
        slots:
          id: path.id
          people: requestBody.people
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/participants/{participantId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one participant's status and answers
      effect: read
      questions:
      - What status is a single participant in, and what answers have they given so far?
      - Can I check one person's captured answers without pulling the whole participant list?
      instructions:
      - text: Show participant {participantId} in initiative {id}.
        slots:
          id: path.id
          participantId: path.participantId
      - text: Get the captured answers for participant {participantId} of initiative {id}.
        slots:
          id: path.id
          participantId: path.participantId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/participants/{participantId}/messages'].get
  update:
    x-apievangelist-phrasing:
      intent: Read a participant's conversation transcript
      effect: read
      questions:
      - Did this person ever reply to us, in any initiative?
      - Where can I read the full WhatsApp back-and-forth with one participant?
      instructions:
      - text: Show me the messages exchanged with participant {participantId} in initiative {id}.
        slots:
          id: path.id
          participantId: path.participantId
      - text: Get everything participant {participantId} of initiative {id} has said to us, using scope {scope}.
        slots:
          id: path.id
          participantId: path.participantId
          scope: query.scope
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/participants/{participantId}/steps'].get
  update:
    x-apievangelist-phrasing:
      intent: Trace a participant's journey run steps
      effect: read
      questions:
      - Which journey nodes ran for a participant and what signal did each one emit?
      - Why did a participant's journey run stop or error at a certain node?
      instructions:
      - text: Show the node-by-node run timeline for participant {participantId} in initiative {id}.
        slots:
          id: path.id
          participantId: path.participantId
      - text: List the last {limit} journey steps for participant {participantId} of initiative {id}.
        slots:
          id: path.id
          participantId: path.participantId
          limit: query.limit
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/participants/{participantId}/stop'].post
  update:
    x-apievangelist-phrasing:
      intent: Stop messaging one participant
      effect: destructive
      questions:
      - How do I stop all messages to one person and close their conversation?
      - If I stop a participant, do I lose their answers and transcript?
      instructions:
      - text: Stop messaging participant {participantId} in initiative {id}.
        slots:
          id: path.id
          participantId: path.participantId
      - text: Close the conversation with participant {participantId} of initiative {id}.
        slots:
          id: path.id
          participantId: path.participantId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/pause'].post
  update:
    x-apievangelist-phrasing:
      intent: Pause enrollment into an initiative
      effect: write
      questions:
      - Can I stop new people from being enrolled while ongoing conversations keep going?
      - What happens to people already enrolled when an initiative is paused?
      instructions:
      - text: Pause initiative {id}.
        slots:
          id: path.id
      - text: Stop enrolling new people into initiative {id} for now.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/reextract'].post
  update:
    x-apievangelist-phrasing:
      intent: Re-run extraction over past conversations
      effect: write
      questions:
      - How do I pull answers out of conversations that happened before I wrote the extraction schema?
      - Can I see how many conversations would be re-extracted before spending anything?
      - Why do some conversations produce nothing when re-extracted?
      instructions:
      - text: Re-extract the conversations of initiative {id}.
        slots:
          id: path.id
      - text: Do a dry run of re-extraction on initiative {id} and tell me the counts.
        slots:
          id: path.id
      - text: Re-extract initiative {id} conversations created since {fromDate}.
        slots:
          id: path.id
          fromDate: requestBody.fromDate
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/resume'].post
  update:
    x-apievangelist-phrasing:
      intent: Resume a paused initiative
      effect: write
      questions:
      - How do I get a paused initiative enrolling people again?
      - Can a paused initiative be restarted?
      instructions:
      - text: Resume initiative {id}.
        slots:
          id: path.id
      - text: Start enrolling people into paused initiative {id} again.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/templates'].get
  update:
    x-apievangelist-phrasing:
      intent: See which templates each outreach round sends
      effect: read
      questions:
      - Which WhatsApp template is linked to each outreach round of an initiative?
      - Is round 1 linked yet, so my initiative can launch?
      instructions:
      - text: Show the round-by-round templates linked to initiative {id}.
        slots:
          id: path.id
      - text: Check which outreach templates initiative {id} will send.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/templates'].post
  update:
    x-apievangelist-phrasing:
      intent: Link a WhatsApp template to an outreach round
      effect: write
      questions:
      - How do I attach an approved WhatsApp template as an initiative's first message?
      - Can I use a different template for the follow-up outreach rounds?
      instructions:
      - text: Link template {templateId} to initiative {id} as its first outreach message.
        slots:
          id: path.id
          templateId: requestBody.templateId
      - text: Use template {templateId} for outreach round {round} of initiative {id}.
        slots:
          id: path.id
          templateId: requestBody.templateId
          round: requestBody.round
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/transcripts'].get
  update:
    x-apievangelist-phrasing:
      intent: Export all conversation transcripts
      effect: read
      questions:
      - How can I export every conversation from an initiative without fetching participants one at a time?
      - What is the most participants' transcripts I can get per page?
      instructions:
      - text: Export all conversation transcripts for initiative {id}.
        slots:
          id: path.id
      - text: Get the next page of transcripts for initiative {id} after cursor {cursor}.
        slots:
          id: path.id
          cursor: query.cursor
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/initiatives/{id}/unarchive'].post
  update:
    x-apievangelist-phrasing:
      intent: Unarchive an initiative
      effect: write
      questions:
      - How do I bring an archived initiative back into my list?
      - Does unarchiving an initiative change its status?
      instructions:
      - text: Unarchive initiative {id}.
        slots:
          id: path.id
      - text: Restore archived initiative {id} to the default list.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'