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.
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
# 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'