Boom Ai · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Boom Journeys API

22 actions 22 updates phrasing extends openapi/boom-ai-journeys-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 22 · first 16 shown; the file carries all of them

$.info
$.paths['/api/v1/journeys'].get
$.paths['/api/v1/journeys'].post
$.paths['/api/v1/journeys/{journeyId}'].get
$.paths['/api/v1/journeys/{journeyId}'].patch
$.paths['/api/v1/journeys/{journeyId}/definition'].get
$.paths['/api/v1/journeys/{journeyId}/edges'].post
$.paths['/api/v1/journeys/{journeyId}/edges'].delete
$.paths['/api/v1/journeys/{journeyId}/fork'].post
$.paths['/api/v1/journeys/{journeyId}/message-variables'].get
$.paths['/api/v1/journeys/{journeyId}/nodes'].post
$.paths['/api/v1/journeys/{journeyId}/nodes/{nodeId}'].delete
$.paths['/api/v1/journeys/{journeyId}/nodes/{nodeId}'].patch
$.paths['/api/v1/journeys/{journeyId}/publish'].post
$.paths['/api/v1/journeys/{journeyId}/stop'].post
$.paths['/api/v1/journeys/{journeyId}/trigger'].patch

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 Journeys API
  version: 1.0.0
extends: openapi/boom-ai-journeys-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: 21
- target: $.paths['/api/v1/journeys'].get
  update:
    x-apievangelist-phrasing:
      intent: List my journeys
      effect: read
      questions:
      - Which journeys has my organization built, and which ones are live?
      - Can I see only the journeys attached to one initiative?
      instructions:
      - text: List my journeys, newest first.
      - text: Show the journeys for initiative {initiativeId} with status {status}.
        slots:
          initiativeId: query.initiativeId
          status: query.status
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a draft journey from a full graph
      effect: write
      questions:
      - How do I create a brand-new journey for an initiative from a complete node graph?
      - Do I have to give node positions when creating a journey, or are they laid out for me?
      instructions:
      - text: Create a new draft journey on initiative {initiativeId} with graph {definition}.
        slots:
          initiativeId: requestBody.initiativeId
          definition: requestBody.definition
      - text: 'Build a fresh journey for initiative {initiativeId} from this definition: {definition}.'
        slots:
          initiativeId: requestBody.initiativeId
          definition: requestBody.definition
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/{journeyId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a journey's trigger and steps
      effect: read
      questions:
      - What triggers a journey and what steps do people move through in it?
      - Can I get a quick read-only summary of one journey's setup?
      instructions:
      - text: Show me journey {journeyId}.
        slots:
          journeyId: path.journeyId
      - text: Summarize the trigger and ordered steps of journey {journeyId}.
        slots:
          journeyId: path.journeyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/{journeyId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Replace a draft journey's whole graph
      effect: write
      questions:
      - How do I overwrite an existing draft journey's entire graph in one call?
      - Does saving a new graph over a draft wipe its environment pin?
      instructions:
      - text: Replace the graph of draft journey {journeyId} with {definition}.
        slots:
          journeyId: path.journeyId
          definition: requestBody.definition
      - text: 'Save this full definition back onto draft journey {journeyId}: {definition}.'
        slots:
          journeyId: path.journeyId
          definition: requestBody.definition
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/{journeyId}/definition'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a journey's full editable graph
      effect: read
      questions:
      - Where do I get every node's config and connection so I can edit a journey and save it back?
      - What is the difference between a journey's public summary and its full authoring definition?
      instructions:
      - text: Fetch the full editable definition of journey {journeyId}.
        slots:
          journeyId: path.journeyId
      - text: Give me all nodes, config and edges of journey {journeyId}.
        slots:
          journeyId: path.journeyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/{journeyId}/edges'].post
  update:
    x-apievangelist-phrasing:
      intent: Connect two journey nodes
      effect: write
      questions:
      - How do I route a journey to the next step when someone replies?
      - Can one output handle on a node lead to more than one node?
      instructions:
      - text: In journey {journeyId}, connect node {from} to node {to} on the {sourceHandle} signal.
        slots:
          journeyId: path.journeyId
          from: requestBody.from
          to: requestBody.to
          sourceHandle: requestBody.sourceHandle
      - text: Wire the {sourceHandle} output of {from} to {to} in journey {journeyId}.
        slots:
          journeyId: path.journeyId
          from: requestBody.from
          to: requestBody.to
          sourceHandle: requestBody.sourceHandle
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/{journeyId}/edges'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove edges leaving a journey node
      effect: destructive
      questions:
      - How do I remove the connection between two steps in a journey?
      - What happens if I disconnect a node without naming a target or handle?
      instructions:
      - text: Remove all outgoing edges from node {from} in journey {journeyId}.
        slots:
          journeyId: path.journeyId
          from: query.from
      - text: Disconnect node {from} from node {to} in journey {journeyId}.
        slots:
          journeyId: path.journeyId
          from: query.from
          to: query.to
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/{journeyId}/fork'].post
  update:
    x-apievangelist-phrasing:
      intent: Fork a live journey into an editable draft
      effect: write
      questions:
      - How can I safely edit a journey that is already live?
      - Does copying a published journey into a draft stop the live one?
      instructions:
      - text: Fork published journey {journeyId} into a new draft.
        slots:
          journeyId: path.journeyId
      - text: Make an editable copy of live journey {journeyId}.
        slots:
          journeyId: path.journeyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/{journeyId}/message-variables'].get
  update:
    x-apievangelist-phrasing:
      intent: List variables a message template can use
      effect: read
      questions:
      - Which customer and person variables can I bind into a SEND_MESSAGE template for this journey?
      - What personalization fields actually resolve in a journey's WhatsApp messages?
      instructions:
      - text: List the message variables available in journey {journeyId}.
        slots:
          journeyId: path.journeyId
      - text: Show which template bindings resolve for journey {journeyId}.
        slots:
          journeyId: path.journeyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/{journeyId}/nodes'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a node to a draft journey
      effect: write
      questions:
      - How do I add a single new step to a draft journey without resending the whole graph?
      - Does a newly added journey node get connected automatically?
      instructions:
      - text: Add node {node} to draft journey {journeyId}.
        slots:
          journeyId: path.journeyId
          node: requestBody.node
      - text: 'Insert this step into journey {journeyId}: {node}.'
        slots:
          journeyId: path.journeyId
          node: requestBody.node
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/{journeyId}/nodes/{nodeId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a node from a draft journey
      effect: destructive
      questions:
      - How do I remove a step from a draft journey?
      - Are the edges attached to a node removed when I delete it?
      instructions:
      - text: Delete node {nodeId} from journey {journeyId}.
        slots:
          journeyId: path.journeyId
          nodeId: path.nodeId
      - text: Remove step {nodeId} and its connections from draft journey {journeyId}.
        slots:
          journeyId: path.journeyId
          nodeId: path.nodeId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/{journeyId}/nodes/{nodeId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update one journey node's config
      effect: write
      questions:
      - Can I rename or reconfigure a single step in a draft journey?
      - Are node inputs replaced or merged when I update a step?
      instructions:
      - text: Rename node {nodeId} in journey {journeyId} to {name}.
        slots:
          journeyId: path.journeyId
          nodeId: path.nodeId
          name: requestBody.name
      - text: Merge {inputs} into the config of node {nodeId} in journey {journeyId}.
        slots:
          journeyId: path.journeyId
          nodeId: path.nodeId
          inputs: requestBody.inputs
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/{journeyId}/publish'].post
  update:
    x-apievangelist-phrasing:
      intent: Publish a draft journey and start outreach
      effect: write
      questions:
      - How do I make a draft journey go live and start enrolling people?
      - When I publish a segment-triggered journey, can it also enroll people already in the segment?
      instructions:
      - text: Publish journey {journeyId}, confirming it will start real outreach.
        slots:
          journeyId: path.journeyId
      - text: Go live with journey {journeyId} and backfill existing segment members.
        slots:
          journeyId: path.journeyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/{journeyId}/stop'].post
  update:
    x-apievangelist-phrasing:
      intent: Stop and retire a live journey
      effect: destructive
      questions:
      - How do I halt a live journey so nobody else gets enrolled?
      - What happens to people already enrolled but not yet messaged when a journey is stopped?
      instructions:
      - text: Stop live journey {journeyId}, confirming the outreach halt.
        slots:
          journeyId: path.journeyId
      - text: Retire journey {journeyId} permanently.
        slots:
          journeyId: path.journeyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/{journeyId}/trigger'].patch
  update:
    x-apievangelist-phrasing:
      intent: Set how people enter a journey
      effect: write
      questions:
      - Can a journey start automatically when someone joins a segment or fires an event?
      - Is there a frequency cap on how often one person can enter a journey?
      instructions:
      - text: Trigger journey {journeyId} when people join segment {segmentId}.
        slots:
          journeyId: path.journeyId
          segmentId: requestBody.segmentId
      - text: Set journey {journeyId} to start on the {eventName} event.
        slots:
          journeyId: path.journeyId
          eventName: requestBody.eventName
      - text: Make journey {journeyId} use trigger {triggerType} with at most {maxEnrollments} entries per {enrollmentWindow}.
        slots:
          journeyId: path.journeyId
          triggerType: requestBody.triggerType
          maxEnrollments: requestBody.maxEnrollments
          enrollmentWindow: requestBody.enrollmentWindow
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/catalog'].get
  update:
    x-apievangelist-phrasing:
      intent: Describe every journey node kind
      effect: read
      questions:
      - What kinds of steps can a journey contain, and what signals does each one emit?
      - What are the rules for connecting journey nodes?
      instructions:
      - text: Show me the journey node catalog.
      - text: List every journey node kind with its inputs and output handles.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/condition-catalog'].get
  update:
    x-apievangelist-phrasing:
      intent: List attributes usable in journey conditions
      effect: read
      questions:
      - Which person attributes and computed values can a journey decision branch on?
      - What operators are allowed in a DECISION condition for each attribute type?
      instructions:
      - text: Show the attributes and operators I can use in journey decision conditions.
      - text: List the condition catalog for building CASE branches.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/event-catalog'].get
  update:
    x-apievangelist-phrasing:
      intent: List CDP event names seen for my org
      effect: read
      questions:
      - Which event names can I use to trigger a journey?
      - What behavioral events has Boom seen for my organization so far?
      instructions:
      - text: List the event names available for journey triggers.
      - text: Show the event catalog for event-based decisions and dispatch nodes.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/message-channels'].get
  update:
    x-apievangelist-phrasing:
      intent: List WhatsApp channels a journey can send from
      effect: read
      questions:
      - Which WhatsApp channels can a send-message step use?
      - Where do I find the channel id to pin on a SEND_MESSAGE node?
      instructions:
      - text: List the WhatsApp channels journeys can send from.
      - text: Show me the message channel ids for journey send steps.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/message-templates'].get
  update:
    x-apievangelist-phrasing:
      intent: List approved templates for a journey channel
      effect: read
      questions:
      - Which approved WhatsApp templates can a send-message step use on a given channel?
      - Why doesn't a template show up for my journey's send step on another channel?
      instructions:
      - text: List the approved templates a journey can send on channel {channelId}.
        slots:
          channelId: query.channelId
      - text: Show SEND_MESSAGE template options for channel {channelId}.
        slots:
          channelId: query.channelId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/journeys/validate'].post
  update:
    x-apievangelist-phrasing:
      intent: Validate a journey before publishing
      effect: read
      questions:
      - Will my draft journey pass the publish checks, and what issues would block it?
      - Can I check a journey graph for errors without saving it?
      instructions:
      - text: Validate draft journey {journeyId}.
        slots:
          journeyId: requestBody.journeyId
      - text: 'Dry-run the publish checks on this graph: {definition}.'
        slots:
          definition: requestBody.definition
      method: generated
      generated: '2026-09-26'