Live Direct Marketing · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Live Direct Marketing Online RPA service protocol API

17 actions 17 updates phrasing extends openapi/live-direct-marketing-online-rpa-service-protocol-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 17 · first 16 shown; the file carries all of them

$.info
$.paths['/api/rpa/v1/readiness'].get
$.paths['/api/rpa/v1/heartbeat'].post
$.paths['/api/rpa/v1/claim'].post
$.paths['/api/rpa/v1/start'].post
$.paths['/api/rpa/v1/current'].post
$.paths['/api/rpa/v1/renew'].post
$.paths['/api/rpa/v1/refresh'].post
$.paths['/api/rpa/v1/report'].post
$.paths['/api/rpa/v1/profile-release'].post
$.paths['/api/rpa/v1/return'].post
$.paths['/api/rpa/v1/reconciliation'].post
$.paths['/api/rpa/v1/reconcile'].post
$.paths['/api/rpa/v1/error'].post
$.paths['/api/rpa/v1/placement'].post
$.paths['/api/rpa/v1/attachments/{token}/{filename}'].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 Live Direct Marketing Online RPA service protocol API
  version: 1.0.0
extends: openapi/live-direct-marketing-online-rpa-service-protocol-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: 16
- target: $.paths['/api/rpa/v1/readiness'].get
  update:
    x-apievangelist-phrasing:
      intent: Read RPA queue and campaign readiness
      effect: read
      questions:
      - Can an RPA worker see what's queued without claiming any task?
      - How do I page through the full RPA queue readiness snapshot?
      instructions:
      - text: Show the RPA queue readiness snapshot.
      - text: Read the next page of RPA queue readiness after cursor {cursor}.
        slots:
          cursor: query.cursor
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/rpa/v1/heartbeat'].post
  update:
    x-apievangelist-phrasing:
      intent: Send an RPA worker heartbeat
      effect: write
      questions:
      - How does an RPA worker signal it is still alive?
      - Can a heartbeat extend the lease on the task a worker holds?
      instructions:
      - text: Send a heartbeat for worker {workerId} on protocol {protocolVersion}.
        slots:
          workerId: requestBody.workerId
          protocolVersion: requestBody.protocolVersion
      - text: Heartbeat worker {workerId} and extend task {taskId} on lease {leaseId}, protocol {protocolVersion}.
        slots:
          workerId: requestBody.workerId
          taskId: requestBody.taskId
          leaseId: requestBody.leaseId
          protocolVersion: requestBody.protocolVersion
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/rpa/v1/claim'].post
  update:
    x-apievangelist-phrasing:
      intent: Claim the next RPA send task
      effect: write
      questions:
      - How does an RPA worker pick up its next email send task?
      - Why does claiming an RPA task sometimes return a null task?
      instructions:
      - text: Claim the next send task for worker {workerId}.
        slots:
          workerId: requestBody.workerId
      - text: Poll for a new RPA task as worker {workerId}.
        slots:
          workerId: requestBody.workerId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/rpa/v1/start'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a claimed RPA send operation
      effect: write
      questions:
      - How does a worker confirm the send gates still pass before sending a claimed task?
      - When is an RPA worker actually allowed to send?
      instructions:
      - text: Start task {taskId} for worker {workerId} on lease {leaseId} with fencing token {fencingToken}.
        slots:
          workerId: requestBody.workerId
          taskId: requestBody.taskId
          leaseId: requestBody.leaseId
          fencingToken: requestBody.fencingToken
      - text: Revalidate send gates for operation {operationId} on task {taskId}, worker {workerId}, lease {leaseId}, token {fencingToken}.
        slots:
          workerId: requestBody.workerId
          taskId: requestBody.taskId
          leaseId: requestBody.leaseId
          fencingToken: requestBody.fencingToken
          operationId: requestBody.operationId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/rpa/v1/current'].post
  update:
    x-apievangelist-phrasing:
      intent: Re-read the current RPA task and lease
      effect: read
      questions:
      - After a control report, how does a worker re-read its current task without a second claim?
      - Can an RPA worker fetch the latest state of the task it already holds?
      instructions:
      - text: Read the current state of task {taskId} for worker {workerId}, lease {leaseId}, token {fencingToken}.
        slots:
          workerId: requestBody.workerId
          taskId: requestBody.taskId
          leaseId: requestBody.leaseId
          fencingToken: requestBody.fencingToken
      - text: Re-fetch held task {taskId} and its lease {leaseId} as worker {workerId} with token {fencingToken}.
        slots:
          workerId: requestBody.workerId
          taskId: requestBody.taskId
          leaseId: requestBody.leaseId
          fencingToken: requestBody.fencingToken
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/rpa/v1/renew'].post
  update:
    x-apievangelist-phrasing:
      intent: Renew an RPA task lease
      effect: write
      questions:
      - How do I extend a live RPA task lease by another hour?
      - Can an expired RPA lease be renewed?
      instructions:
      - text: Renew lease {leaseId} on task {taskId} for worker {workerId}, token {fencingToken}.
        slots:
          workerId: requestBody.workerId
          taskId: requestBody.taskId
          leaseId: requestBody.leaseId
          fencingToken: requestBody.fencingToken
      - text: Extend worker {workerId}'s lease {leaseId} on task {taskId} by 60 minutes using token {fencingToken}.
        slots:
          workerId: requestBody.workerId
          taskId: requestBody.taskId
          leaseId: requestBody.leaseId
          fencingToken: requestBody.fencingToken
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/rpa/v1/refresh'].post
  update:
    x-apievangelist-phrasing:
      intent: Refresh attachment links for an RPA task
      effect: read
      questions:
      - My attachment links on an RPA task expired — can I refresh them?
      - Does refreshing an RPA task's context also extend its lease?
      instructions:
      - text: Refresh attachment links for task {taskId}, worker {workerId}, lease {leaseId}, token {fencingToken}.
        slots:
          workerId: requestBody.workerId
          taskId: requestBody.taskId
          leaseId: requestBody.leaseId
          fencingToken: requestBody.fencingToken
      - text: Reload the relay context of task {taskId} for worker {workerId} on lease {leaseId} with token {fencingToken}.
        slots:
          workerId: requestBody.workerId
          taskId: requestBody.taskId
          leaseId: requestBody.leaseId
          fencingToken: requestBody.fencingToken
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/rpa/v1/report'].post
  update:
    x-apievangelist-phrasing:
      intent: Report the outcome of an RPA send
      effect: write
      questions:
      - How does a worker report that a CONTROL or REAL send went through?
      - Does an accepted RPA report prove the email reached the inbox?
      instructions:
      - text: Report outcome {outcome} for task {taskId} on lease {leaseId}.
        slots:
          outcome: requestBody.outcome
          taskId: requestBody.taskId
          leaseId: requestBody.leaseId
      - text: Report operation {operationId} on task {taskId}, lease {leaseId}, as {outcome} with provider message id {providerMessageId}.
        slots:
          operationId: requestBody.operationId
          taskId: requestBody.taskId
          leaseId: requestBody.leaseId
          outcome: requestBody.outcome
          providerMessageId: requestBody.providerMessageId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/rpa/v1/profile-release'].post
  update:
    x-apievangelist-phrasing:
      intent: Acknowledge the RPA browser profile is closed
      effect: write
      questions:
      - How does a worker tell the server it closed the browser for a finished task?
      - Is acknowledging a browser profile release required?
      instructions:
      - text: Release the browser profile for finished task {taskId} as worker {workerId}, session closed {sessionClosed}.
        slots:
          taskId: requestBody.taskId
          workerId: requestBody.workerId
          sessionClosed: requestBody.sessionClosed
      - text: Acknowledge the browser was closed for task {taskId} on lease {leaseId}.
        slots:
          taskId: requestBody.taskId
          leaseId: requestBody.leaseId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/rpa/v1/return'].post
  update:
    x-apievangelist-phrasing:
      intent: Return an RPA task that did not send
      effect: write
      questions:
      - What should a worker do with a task it knows it didn't send?
      - Can a returned RPA task be retried within its attempt budget?
      instructions:
      - text: Return task {taskId} on lease {leaseId} as not sent, outcome {outcome}.
        slots:
          taskId: requestBody.taskId
          leaseId: requestBody.leaseId
          outcome: requestBody.outcome
      - text: Hand back unsent task {taskId} from worker {workerId} so it retries through the send gates.
        slots:
          taskId: requestBody.taskId
          workerId: requestBody.workerId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/rpa/v1/reconciliation'].post
  update:
    x-apievangelist-phrasing:
      intent: List a worker's unresolved RPA tasks
      effect: read
      questions:
      - Which of my RPA worker's tasks still have an uncertain outcome?
      - How many unresolved tasks per target does the reconciliation list return?
      instructions:
      - text: List unresolved tasks for worker {workerId}.
        slots:
          workerId: requestBody.workerId
      - text: Show the next unresolved tasks for worker {workerId} after {after}.
        slots:
          workerId: requestBody.workerId
          after: requestBody.after
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/rpa/v1/reconcile'].post
  update:
    x-apievangelist-phrasing:
      intent: Resolve an uncertain RPA send with evidence
      effect: write
      questions:
      - How do I settle whether an uncertain RPA send actually went out?
      - What evidence is needed to reconcile an RPA execution?
      instructions:
      - text: Reconcile uncertain task {taskId} using {evidenceKind} evidence {evidenceId}.
        slots:
          taskId: requestBody.taskId
          evidenceKind: requestBody.evidenceKind
          evidenceId: requestBody.evidenceId
      - text: Resolve task {taskId} on lease {leaseId} as {outcome} with proof {evidenceId}.
        slots:
          taskId: requestBody.taskId
          leaseId: requestBody.leaseId
          outcome: requestBody.outcome
          evidenceId: requestBody.evidenceId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/rpa/v1/error'].post
  update:
    x-apievangelist-phrasing:
      intent: Report an RPA execution error
      effect: write
      questions:
      - How does a worker report an error during an RPA send?
      - Should a worker retry sending after reporting an uncertain error?
      instructions:
      - text: Report error {errorCode} at stage {stage} on task {taskId}.
        slots:
          errorCode: requestBody.errorCode
          stage: requestBody.stage
          taskId: requestBody.taskId
      - text: Log execution error {errorCode} for task {taskId}, send attempted {sendAttempted}.
        slots:
          errorCode: requestBody.errorCode
          taskId: requestBody.taskId
          sendAttempted: requestBody.sendAttempted
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/rpa/v1/placement'].post
  update:
    x-apievangelist-phrasing:
      intent: Attach seed-copy placement evidence to a task
      effect: write
      questions:
      - How do I record where a seed copy of an RPA send landed?
      - Does seed placement evidence prove inbox placement for the real recipient?
      instructions:
      - text: Attach seed placement {placement} to task {taskId} with evidence {evidenceId}.
        slots:
          placement: requestBody.placement
          taskId: requestBody.taskId
          evidenceId: requestBody.evidenceId
      - text: Record that the seed copy for task {taskId} landed in {placement}, measured at {measuredAt}.
        slots:
          taskId: requestBody.taskId
          placement: requestBody.placement
          measuredAt: requestBody.measuredAt
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/rpa/v1/attachments/{token}/{filename}'].get
  update:
    x-apievangelist-phrasing:
      intent: Download an RPA attachment by token and filename
      effect: read
      questions:
      - How does a worker download a signed task attachment with its original filename?
      - Can I fetch an RPA attachment using a URL that includes the file name?
      instructions:
      - text: Download the signed task attachment {filename} using token {token}.
        slots:
          filename: path.filename
          token: path.token
      - text: Fetch the lease-bound attachment from its filename URL.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/rpa/v1/attachments/{token}'].get
  update:
    x-apievangelist-phrasing:
      intent: Download an RPA attachment by legacy token URL
      effect: read
      questions:
      - Do older token-only RPA attachment URLs still work?
      - Can a worker download an attachment with just the signed token?
      instructions:
      - text: Download the attachment for signed token {token} via the legacy token-only URL.
        slots:
          token: path.token
      - text: Fetch a lease-bound attachment from an old token-only link.
      method: generated
      generated: '2026-10-01'