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