Live Direct Marketing · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Live Direct Marketing Online Briefs API
28 actions
28 updates
phrasing
extends
openapi/live-direct-marketing-online-briefs-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Live Direct Marketing's API. It is a proposal applied on top of the contract, not a document Live Direct Marketing publishes.
What the actions change
x-apievangelist-phrasing
Targets 28 · first 16 shown; the file carries all of them
$.info
$.paths['/api/briefs/schemas'].get
$.paths['/api/briefs/intake'].get
$.paths['/api/briefs/intake/items'].get
$.paths['/api/briefs/intake/items/{itemId}'].get
$.paths['/api/briefs/intake/items/{itemId}/status'].patch
$.paths['/api/briefs/intake/items/{itemId}/link'].post
$.paths['/api/briefs/intake/items/{itemId}/log'].post
$.paths['/api/briefs'].get
$.paths['/api/briefs'].post
$.paths['/api/briefs/{id}/attachments/content'].get
$.paths['/api/briefs/{id}'].get
$.paths['/api/briefs/{id}'].delete
$.paths['/api/briefs/{id}'].patch
$.paths['/api/briefs/{id}/content'].patch
$.paths['/api/briefs/{id}/variables'].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 Live Direct Marketing Online Briefs API
version: 1.0.0
extends: openapi/live-direct-marketing-online-briefs-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-01'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 27
- target: $.paths['/api/briefs/schemas'].get
update:
x-apievangelist-phrasing:
intent: Get the available brief JSON schemas
effect: read
questions:
- What JSON schemas can a brief's content follow?
- Which brief schema versions are available in my workspace?
instructions:
- text: Show me the available brief JSON schemas.
- text: Fetch the brief schemas for tenant {tenant}.
slots:
tenant: header.X-Tenant-Id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/intake'].get
update:
x-apievangelist-phrasing:
intent: Get the intake email address for a brief
effect: read
questions:
- What email address do I forward material to so it lands on a specific brief?
- Is there a workspace intake address to use before any brief exists?
instructions:
- text: Get the intake address for brief {briefId} in {language}.
slots:
briefId: query.briefId
language: header.accept-language
- text: Look up the intake address for the brief at URL {briefUrl}, language {language}.
slots:
briefUrl: query.briefUrl
language: header.accept-language
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/intake/items'].get
update:
x-apievangelist-phrasing:
intent: List incoming intake messages
effect: read
questions:
- Which messages have arrived in the brief intake inbox?
- Can I filter intake messages by sender or by the date they were received?
- How do I see only intake items still waiting for review?
instructions:
- text: List intake messages with status {status}.
slots:
status: query.status
- text: Show intake items from sender {sender} received after {receivedFrom}.
slots:
sender: query.sender
receivedFrom: query.receivedFrom
- text: List intake messages attached to brief {briefId}.
slots:
briefId: query.briefId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/intake/items/{itemId}'].get
update:
x-apievangelist-phrasing:
intent: Read one intake item with its provenance
effect: read
questions:
- Can I see the full original intake message with its attachments and work log?
- Where did a particular intake item come from?
instructions:
- text: Open intake item {itemId} with its attachments and work log.
slots:
itemId: path.itemId
- text: Show the provenance of intake item {itemId}.
slots:
itemId: path.itemId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/intake/items/{itemId}/status'].patch
update:
x-apievangelist-phrasing:
intent: Change an intake item's review status
effect: write
questions:
- How do I mark an intake message as ignored or rejected?
- Do I have to give a reason when moving an intake item into review?
instructions:
- text: Set intake item {itemId} to {status} because {reason}, idempotency key {key}.
slots:
itemId: path.itemId
status: requestBody.status
reason: requestBody.reason
key: requestBody.idempotencyKey
- text: Reject intake item {itemId} with reason {reason} using key {key}.
slots:
itemId: path.itemId
reason: requestBody.reason
key: requestBody.idempotencyKey
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/intake/items/{itemId}/link'].post
update:
x-apievangelist-phrasing:
intent: Link an intake item to a brief
effect: write
questions:
- How do I attach an incoming intake message and its files to a brief?
- Can I also tie the intake item to a contact or company when linking it?
instructions:
- text: Link intake item {itemId} to brief {briefId} because {reason}, key {key}.
slots:
itemId: path.itemId
briefId: requestBody.briefId
reason: requestBody.reason
key: requestBody.idempotencyKey
- text: Attach intake item {itemId} to brief {briefId} and company {companyId}, reason {reason}, key {key}.
slots:
itemId: path.itemId
briefId: requestBody.briefId
companyId: requestBody.companyId
reason: requestBody.reason
key: requestBody.idempotencyKey
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/intake/items/{itemId}/log'].post
update:
x-apievangelist-phrasing:
intent: Log agent work on an intake item
effect: write
questions:
- How does an agent record what it did with an intake message?
- Can I append a work-log entry to an intake item with source references?
instructions:
- text: Log action {action} on intake item {itemId} with reason {reason}, key {key}.
slots:
action: requestBody.action
itemId: path.itemId
reason: requestBody.reason
key: requestBody.idempotencyKey
- text: 'Append a work-log event {action} to intake item {itemId} for brief {briefId}: {reason} (key {key}).'
slots:
action: requestBody.action
itemId: path.itemId
briefId: requestBody.briefId
reason: requestBody.reason
key: requestBody.idempotencyKey
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs'].get
update:
x-apievangelist-phrasing:
intent: List briefs
effect: read
questions:
- Which campaign briefs exist in my workspace?
- Can I search briefs by name and include deleted ones?
instructions:
- text: List my active briefs.
- text: Search briefs for {search}, including deleted ones.
slots:
search: query.search
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs'].post
update:
x-apievangelist-phrasing:
intent: Create a brief
effect: write
questions:
- How do I start a new brief for an outreach campaign?
- Can a new brief target a specific company list from the start?
instructions:
- text: Create a brief named {name}.
slots:
name: requestBody.name
- text: Create brief {name} described as {description} targeting company list {listId}.
slots:
name: requestBody.name
description: requestBody.description
listId: requestBody.targetCompanyListId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{id}/attachments/content'].get
update:
x-apievangelist-phrasing:
intent: Read the content of a brief attachment
effect: read
questions:
- Can I read the text inside a file attached to a brief?
- How do I page through a long brief attachment or pull out one of its images?
instructions:
- text: Read attachment {attachmentRef} of brief {id}.
slots:
attachmentRef: query.attachmentRef
id: path.id
- text: Get image {imageRef} from attachment {attachmentRef} on brief {id}.
slots:
imageRef: query.imageRef
attachmentRef: query.attachmentRef
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get a brief
effect: read
questions:
- What's in a particular brief right now?
- Can I fetch one brief's full details by its id?
instructions:
- text: Show brief {id}.
slots:
id: path.id
- text: Fetch the details of brief {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Move a brief to trash
effect: destructive
questions:
- How do I delete a brief I no longer need?
- Do I need to give a reason when deleting a brief?
instructions:
- text: Delete brief {id} with reason {reason}.
slots:
id: path.id
reason: query.reason
- text: Trash brief {id} because {reason}.
slots:
id: path.id
reason: query.reason
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{id}'].patch
update:
x-apievangelist-phrasing:
intent: Rename or re-describe a brief
effect: write
questions:
- How do I rename a brief or change its description?
- Can I deactivate a brief or point it at a different company list?
instructions:
- text: Rename brief {id} to {name}.
slots:
id: path.id
name: requestBody.name
- text: Change brief {id}'s target company list to {listId}.
slots:
id: path.id
listId: requestBody.targetCompanyListId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{id}/content'].patch
update:
x-apievangelist-phrasing:
intent: Patch the content body of a brief
effect: write
questions:
- How do I edit the personas or examples inside a brief's content?
- What happens if I try to change a locked section of a brief's content?
instructions:
- text: Apply content patch {patch} to brief {id}.
slots:
patch: requestBody.patch
id: path.id
- text: Merge {patch} into the content of brief {id} with reason {reason}.
slots:
patch: requestBody.patch
id: path.id
reason: requestBody.reason
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{id}/variables'].patch
update:
x-apievangelist-phrasing:
intent: Update a brief's template variables
effect: write
questions:
- How do I change the template variables a brief fills into its copy?
- Can I patch just a few brief variables without rewriting them all?
instructions:
- text: Patch the template variables of brief {id} with {patch}.
slots:
id: path.id
patch: requestBody.patch
- text: Set brief {id}'s variables to {patch} because {reason}.
slots:
id: path.id
patch: requestBody.patch
reason: requestBody.reason
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{id}/locks'].patch
update:
x-apievangelist-phrasing:
intent: Lock or unlock sections of a brief
effect: write
questions:
- How do I lock a section of a brief so it can't be edited?
- Can I unlock brief sections that were previously locked?
instructions:
- text: Update the section locks on brief {id}.
slots:
id: path.id
- text: Change which sections are locked in brief {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{id}/restore'].post
update:
x-apievangelist-phrasing:
intent: Restore a deleted brief
effect: write
questions:
- Can I bring back a brief I deleted by mistake?
- How do I undo a brief deletion?
instructions:
- text: Restore deleted brief {id}.
slots:
id: path.id
- text: Undelete brief {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{id}/copy'].post
update:
x-apievangelist-phrasing:
intent: Duplicate a brief
effect: write
questions:
- Can I make a copy of an existing brief to start a similar campaign?
- How do I clone a brief?
instructions:
- text: Duplicate brief {id}.
slots:
id: path.id
- text: Make a copy of brief {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{id}/audit'].get
update:
x-apievangelist-phrasing:
intent: Show a brief's change history
effect: read
questions:
- Who changed a brief and when?
- Is there an audit trail of edits made to a brief?
instructions:
- text: Show the last {limit} audit entries for brief {id}.
slots:
limit: query.limit
id: path.id
- text: List the change history of brief {id}, up to {limit} entries.
slots:
id: path.id
limit: query.limit
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{id}/mail'].get
update:
x-apievangelist-phrasing:
intent: Get a brief's intake mailbox and mail feed
effect: read
questions:
- Which emails have been received into a brief's mailbox?
- Can I see a brief's intake address together with the mail it has collected?
instructions:
- text: Show the mail feed for brief {id} in {language}.
slots:
id: path.id
language: header.accept-language
- text: List the latest {limit} emails received by brief {id}, language {language}.
slots:
limit: query.limit
id: path.id
language: header.accept-language
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{id}/mail/attachments/{attachmentId}/download'].get
update:
x-apievangelist-phrasing:
intent: Download an attachment from a brief's mail
effect: read
questions:
- How do I download a file that was emailed into a brief?
- Can I fetch an attachment from a brief's mail feed?
instructions:
- text: Download attachment {attachmentId} from brief {id}'s mail.
slots:
attachmentId: path.attachmentId
id: path.id
- text: Save mail attachment {attachmentId} of brief {id}.
slots:
attachmentId: path.attachmentId
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{id}/intake-alias'].patch
update:
x-apievangelist-phrasing:
intent: Change a brief's intake email alias
effect: write
questions:
- Can I give a brief's intake address a friendlier name?
- How do I change the readable alias of a brief's intake email?
instructions:
- text: Change the intake alias of brief {id} to {alias} (locale {locale}, language {language}).
slots:
id: path.id
alias: requestBody.alias
locale: query.locale
language: header.accept-language
- text: Rename brief {id}'s intake address alias to {alias}, locale {locale}, language {language}.
slots:
id: path.id
alias: requestBody.alias
locale: query.locale
language: header.accept-language
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{id}/expert'].get
update:
x-apievangelist-phrasing:
intent: Run the SDR expert review on a brief
effect: read
questions:
- What gaps does the SDR expert find in my brief and what does it recommend?
- Can I get the brief expert's recommendations alongside the live schema?
instructions:
- text: Run the SDR expert flow on brief {id} in {language}.
slots:
id: path.id
language: header.accept-language
- text: Get expert {include} for brief {id}, language {language}.
slots:
include: query.include
id: path.id
language: header.accept-language
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{briefId}/memory'].get
update:
x-apievangelist-phrasing:
intent: List a brief's memory entries
effect: read
questions:
- What decisions and open questions have been recorded against a brief?
- Can I see rejected proposals in a brief's memory, not just active entries?
instructions:
- text: List the active memory entries for brief {briefId}.
slots:
briefId: path.briefId
- text: Show {kind} memory entries on brief {briefId} across all statuses.
slots:
kind: query.kind
briefId: path.briefId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{briefId}/memory'].post
update:
x-apievangelist-phrasing:
intent: Record a decision or note in a brief's memory
effect: write
questions:
- How do I record a decision or open question on a brief so later agents see it?
- Can I log a rejected proposal with the reason so it isn't suggested again?
instructions:
- text: Record a memory entry on brief {briefId}.
slots:
briefId: path.briefId
- text: Add a rejected-proposal note to brief {briefId}'s memory.
slots:
briefId: path.briefId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{briefId}/memory/{entryId}/resolve'].post
update:
x-apievangelist-phrasing:
intent: Resolve a brief memory entry
effect: write
questions:
- How do I close out an open question in a brief's memory?
- Can I stop a memory entry from being sent to the brief expert?
instructions:
- text: Mark memory entry {entryId} on brief {briefId} as resolved.
slots:
entryId: path.entryId
briefId: path.briefId
- text: Resolve entry {entryId} in brief {briefId}'s memory.
slots:
entryId: path.entryId
briefId: path.briefId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/briefs/{briefId}/memory/migrate-content-review'].post
update:
x-apievangelist-phrasing:
intent: Migrate a brief's review block into memory
effect: write
questions:
- How do I move the old content review notes on a brief into memory entries?
- Is it safe to run the content-review migration on a brief more than once?
instructions:
- text: Migrate the content review block of brief {briefId} into memory.
slots:
briefId: path.briefId
- text: Convert brief {briefId}'s review notes into memory entries.
slots:
briefId: path.briefId
method: generated
generated: '2026-10-01'