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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'