Live Direct Marketing · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Live Direct Marketing Online Campaigns API
42 actions
42 updates
phrasing
extends
openapi/live-direct-marketing-online-campaigns-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 42 · first 16 shown; the file carries all of them
$.info
$.paths['/api/campaigns/{id}/test-task'].post
$.paths['/api/campaigns/{id}/test-task/{taskId}'].get
$.paths['/api/campaigns/conveyor-health'].get
$.paths['/api/campaigns'].get
$.paths['/api/campaigns'].post
$.paths['/api/campaigns/backfill-historic-unsubscribes'].post
$.paths['/api/campaigns/overview'].get
$.paths['/api/campaigns/{id}'].get
$.paths['/api/campaigns/{id}'].delete
$.paths['/api/campaigns/{id}'].patch
$.paths['/api/campaigns/{id}/geo-risk'].get
$.paths['/api/campaigns/{id}/metrics'].get
$.paths['/api/campaigns/{id}/send-series'].get
$.paths['/api/campaigns/{id}/send-readiness'].get
$.paths['/api/campaigns/{id}/operational-status'].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 Campaigns API
version: 1.0.0
extends: openapi/live-direct-marketing-online-campaigns-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: 41
- target: $.paths['/api/campaigns/{id}/test-task'].post
update:
x-apievangelist-phrasing:
intent: Create a test send task for a campaign
effect: write
questions:
- Can I send a test of a campaign to one intended recipient before launching it?
- Is there a way to create a test-send task for a campaign with an idempotency key so retries don't duplicate it?
instructions:
- text: Create a test-send task for campaign {id} with idempotency key {key}.
slots:
id: path.id
key: header.idempotency-key
- text: Start a campaign test task on {id} addressed to intended recipient {recipient}, idempotency key {key}.
slots:
id: path.id
recipient: requestBody.intendedRecipientId
key: header.idempotency-key
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/test-task/{taskId}'].get
update:
x-apievangelist-phrasing:
intent: Check a campaign test-send task
effect: read
questions:
- What happened to the test send I queued for my campaign?
- Can I look up a specific campaign test task by its task id?
instructions:
- text: Show test task {taskId} for campaign {id}.
slots:
taskId: path.taskId
id: path.id
- text: Check whether test-send task {taskId} on campaign {id} has finished.
slots:
taskId: path.taskId
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/conveyor-health'].get
update:
x-apievangelist-phrasing:
intent: Check campaign conveyor health
effect: read
questions:
- Which of my campaigns have due emails ready but aren't actually sending?
- Is the campaign sending conveyor healthy for my tenant right now?
instructions:
- text: Show the campaign conveyor health report for my tenant.
- text: List campaigns flagged as not sending despite having due READY emails.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns'].get
update:
x-apievangelist-phrasing:
intent: List campaigns
effect: read
questions:
- How do I see all my email campaigns page by page?
- Can I list only the campaigns with a given status, like paused ones?
instructions:
- text: List my campaigns with status {status}, page {page}, {limit} per page.
slots:
status: query.status
page: query.page
limit: query.limit
- text: Show page {page} of my campaigns.
slots:
page: query.page
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns'].post
update:
x-apievangelist-phrasing:
intent: Create an email campaign
effect: write
questions:
- How do I set up a new outreach campaign?
- Can I create a campaign where I render the emails myself instead of the platform's AI?
- Which render modes can a new campaign use?
instructions:
- text: Create a new campaign named {name}.
slots:
name: requestBody.name
- text: Create campaign {name} in {renderMode} render mode using brief {briefId}.
slots:
name: requestBody.name
renderMode: requestBody.renderMode
briefId: requestBody.briefId
- text: Set up a campaign called {name} with creatives {creativeIds}.
slots:
name: requestBody.name
creativeIds: requestBody.creativeIds
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/backfill-historic-unsubscribes'].post
update:
x-apievangelist-phrasing:
intent: Backfill historic unsubscribes into campaigns
effect: write
questions:
- Can I mark campaign recipients as unsubscribed if their address is already on the suppression list?
- Is there a dry run to preview which recipients a historic unsubscribe backfill would change?
instructions:
- text: Run the historic unsubscribe backfill across campaigns with dry run set to {dryRun}.
slots:
dryRun: query.dryRun
- text: Preview which campaign recipients would be marked unsubscribed from past suppressions.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/overview'].get
update:
x-apievangelist-phrasing:
intent: Get a campaigns overview for the dashboard
effect: read
questions:
- What does the mailings widget summary look like for my campaigns?
- Can I get a dashboard overview of campaigns limited to certain statuses?
instructions:
- text: Give me the campaigns dashboard overview for statuses {statuses}.
slots:
statuses: query.statuses
- text: Show the mailings widget overview of my active campaigns.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get a campaign
effect: read
questions:
- How do I pull up the full settings of one campaign?
- Can I fetch a single campaign by its id?
instructions:
- text: Get campaign {id}.
slots:
id: path.id
- text: Show the configuration of campaign {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a campaign
effect: destructive
questions:
- Can I permanently delete a campaign and its recipients?
- Why can't I delete an active campaign without pausing it first?
instructions:
- text: Delete campaign {id}.
slots:
id: path.id
- text: Remove campaign {id} along with all its recipients.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}'].patch
update:
x-apievangelist-phrasing:
intent: Update a campaign's settings
effect: write
questions:
- How do I change the creative pool or routing on an existing campaign?
- Can I edit just part of a campaign's send window without resetting the rest?
- Can I move a campaign into a campaign group after creating it?
instructions:
- text: Rename campaign {id} to {name}.
slots:
id: path.id
name: requestBody.name
- text: Update the send window on campaign {id} to {sendWindow}.
slots:
id: path.id
sendWindow: requestBody.sendWindow
- text: Move campaign {id} into group {groupId}.
slots:
id: path.id
groupId: requestBody.groupId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/geo-risk'].get
update:
x-apievangelist-phrasing:
intent: Review a campaign's geo channel-policy risk
effect: read
questions:
- Which countries in my campaign's audience carry channel-policy risk?
- Can I see a geographic risk breakdown of a campaign's recipients before sending?
instructions:
- text: Show the geo risk breakdown for campaign {id}.
slots:
id: path.id
- text: Report recipient geo channel-policy warnings on campaign {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/metrics'].get
update:
x-apievangelist-phrasing:
intent: Get campaign performance metrics
effect: read
questions:
- How many emails in my campaign were sent, delivered, opened and bounced?
- How is the delivered count estimated for a campaign?
instructions:
- text: Show metrics for campaign {id}.
slots:
id: path.id
- text: Give me delivery and engagement numbers for campaign {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/send-series'].get
update:
x-apievangelist-phrasing:
intent: Chart a campaign's sending speed over time
effect: read
questions:
- Can I see how many emails a campaign sent per day or per week?
- What timezone are campaign send-speed buckets counted in?
instructions:
- text: Chart daily sends for campaign {id} from {from} to {to} in timezone {tz}, bucketed by {bucket}.
slots:
id: path.id
from: query.from
to: query.to
tz: query.tz
bucket: query.bucket
- text: Show the weekly send series for campaign {id} between {from} and {to}.
slots:
id: path.id
from: query.from
to: query.to
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/send-readiness'].get
update:
x-apievangelist-phrasing:
intent: Dry-run a campaign's send gates
effect: read
questions:
- Why isn't my campaign sending — which send gate is blocking it?
- Can I check every send gate on a campaign without actually sending anything?
instructions:
- text: Dry-run all send gates for campaign {id}.
slots:
id: path.id
- text: Check whether campaign {id} is ready to send right now.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/operational-status'].get
update:
x-apievangelist-phrasing:
intent: See what a campaign is doing right now
effect: read
questions:
- What is happening with my campaign at this moment — running, waiting or stuck?
- Can I see a campaign's lifecycle status separately from its operational state?
instructions:
- text: Show the operational status of campaign {id}.
slots:
id: path.id
- text: Tell me what campaign {id} is doing right now, {limit} items at a time.
slots:
id: path.id
limit: query.limit
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/task-history'].get
update:
x-apievangelist-phrasing:
intent: Page through a campaign's delivery-task history
effect: read
questions:
- Where can I see the durable delivery tasks a campaign has run?
- Is there a paginated history of campaign delivery tasks?
instructions:
- text: List delivery-task history for campaign {id}.
slots:
id: path.id
- text: Show the next page of delivery tasks for campaign {id} after cursor {cursor}.
slots:
id: path.id
cursor: query.cursor
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/hard-report'].get
update:
x-apievangelist-phrasing:
intent: Get a campaign quality snapshot
effect: read
questions:
- Can I get a deterministic quality report on a campaign, including its auditor configuration?
- What does the hard report show about a campaign's configured versus effective auditor?
instructions:
- text: Generate the hard quality report for campaign {id}.
slots:
id: path.id
- text: Show the auditor configuration snapshot for campaign {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/activity'].get
update:
x-apievangelist-phrasing:
intent: Read a campaign's activity feed
effect: read
questions:
- Can I see a chronological feed of everything that happened to a campaign's recipients?
- Can I filter a campaign's event feed to one recipient or one stage?
instructions:
- text: Show the activity feed for campaign {id}.
slots:
id: path.id
- text: Show campaign {id} events for recipient {recipientId} since {since}.
slots:
id: path.id
recipientId: query.recipientId
since: query.since
- text: List {type} events in campaign {id}'s feed.
slots:
type: query.type
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/recipients'].get
update:
x-apievangelist-phrasing:
intent: List a campaign's recipients
effect: read
questions:
- Which recipients in my campaign failed, and why?
- Can I search a campaign's recipients by stage or failure reason?
- How do I sort campaign recipients by when they were sent?
instructions:
- text: List recipients of campaign {id} in stage {stage}.
slots:
id: path.id
stage: query.stage
- text: Find recipients in campaign {id} matching {search}.
slots:
id: path.id
search: query.search
- text: Show campaign {id} recipients that failed with reason {failureReason}.
slots:
id: path.id
failureReason: query.failureReason
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/recipients/move-stage'].post
update:
x-apievangelist-phrasing:
intent: Move campaign recipients to a canvas stage
effect: write
questions:
- Can I move selected recipients to a different canvas stage without sending to them?
- Is it possible to shift a batch of campaign recipients between canvas stages by filter?
instructions:
- text: Move recipients {recipientIds} in campaign {id} to canvas stage {toStage}.
slots:
recipientIds: requestBody.recipientIds
id: path.id
toStage: requestBody.toStage
- text: Shift campaign {id} recipients matching {filter} to stage {toStage}.
slots:
id: path.id
filter: requestBody.filter
toStage: requestBody.toStage
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/recipients/rerender'].post
update:
x-apievangelist-phrasing:
intent: Re-render unsent campaign recipients
effect: write
questions:
- Can I throw away generated emails for unsent recipients and render them again?
- Does forcing a re-render give my recipients a new paid audit attempt?
instructions:
- text: Re-render unsent recipients in campaign {id}.
slots:
id: path.id
- text: Reset recipients {recipientIds} in campaign {id} for a fresh render with force {force}.
slots:
recipientIds: requestBody.recipientIds
id: path.id
force: requestBody.force
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/recipients/repair-unsubscribe'].post
update:
x-apievangelist-phrasing:
intent: Repair missing unsubscribe blocks in rendered emails
effect: write
questions:
- Some rendered emails are missing the unsubscribe block — can I fix them without paying for a re-render?
- Can I recover recipients that failed on a body hash mismatch?
instructions:
- text: Repair the unsubscribe block for rendered recipients in campaign {id}.
slots:
id: path.id
- text: Fix unsubscribe blocks for campaign {id} recipients in stages {stages}.
slots:
id: path.id
stages: requestBody.stages
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/retry-ai-failures'].post
update:
x-apievangelist-phrasing:
intent: Retry AI rendering failures in a campaign
effect: write
questions:
- Can I retry recipients whose emails failed AI generation using my current AI model?
- Why did retrying AI failures reset zero recipients?
instructions:
- text: Retry the AI render failures in campaign {id}.
slots:
id: path.id
- text: Send campaign {id}'s CREATIVE_FAILED recipients back through AI generation.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/reconcile-from-dialogs'].post
update:
x-apievangelist-phrasing:
intent: Reconcile campaign recipients from dialogs
effect: write
questions:
- Can I rebuild campaign recipient records from existing email dialogs as a one-time migration?
- Is there a dry run before reconciling a campaign from its dialogs?
instructions:
- text: Reconcile campaign {id} from existing dialogs with dry run {dryRun} and link creatives {linkCreatives}.
slots:
id: path.id
dryRun: query.dryRun
linkCreatives: query.linkCreatives
- text: Preview reconciling campaign {id} recipients from dialogs, dry run {dryRun}.
slots:
id: path.id
dryRun: query.dryRun
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/pour'].post
update:
x-apievangelist-phrasing:
intent: Add recipients to a campaign from a list
effect: write
questions:
- How do I fill a campaign with recipients from one of my contact lists?
- Can I pour a company list or all my contacts into a campaign?
instructions:
- text: Pour contact list {listId} into campaign {id}.
slots:
listId: requestBody.listId
id: path.id
- text: Pour company list {companyListId} into campaign {id}.
slots:
companyListId: requestBody.companyListId
id: path.id
- text: Add all my contacts to campaign {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/push'].post
update:
x-apievangelist-phrasing:
intent: Push contacts directly into a campaign
effect: write
questions:
- Can a form webhook push new contacts straight into a running campaign?
- Is there a way to add individual contact rows to a campaign without a list?
instructions:
- text: Push these contact rows {rows} into campaign {id}.
slots:
rows: requestBody.rows
id: path.id
- text: Add the submitted form contacts {rows} directly to campaign {id}.
slots:
rows: requestBody.rows
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/pour-from-leads'].post
update:
x-apievangelist-phrasing:
intent: Add CRM leads to a campaign by filter
effect: write
questions:
- Can I add leads from a CRM pipeline stage into a campaign?
- Do leads with only bounced email channels get poured into a campaign?
instructions:
- text: Pour leads from pipeline {pipelineId}, stage {stageId} into campaign {id}.
slots:
pipelineId: requestBody.pipelineId
stageId: requestBody.stageId
id: path.id
- text: Add up to {limit} leads with interest status {interestStatus} to campaign {id}.
slots:
limit: requestBody.limit
interestStatus: requestBody.interestStatus
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/screen'].post
update:
x-apievangelist-phrasing:
intent: Screen new campaign recipients against suppressions
effect: write
questions:
- How are new campaign recipients checked against the suppression and stop lists?
- What step comes between pouring recipients and preparing emails?
instructions:
- text: Screen the new recipients in campaign {id}.
slots:
id: path.id
- text: Run suppression and stop-list screening on campaign {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/recipients/content'].post
update:
x-apievangelist-phrasing:
intent: Submit self-rendered email content
effect: write
questions:
- If I write the emails myself, how do I submit the subject and body for each recipient?
- How many self-rendered emails can I submit in one batch, and how large can the HTML be?
instructions:
- text: Submit these rendered emails {items} for campaign {id}.
slots:
items: requestBody.items
id: path.id
- text: Upload my own subject and HTML body per recipient {items} to campaign {id}.
slots:
items: requestBody.items
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/recipients/{rid}/manual'].patch
update:
x-apievangelist-phrasing:
intent: Manually edit a campaign recipient's email
effect: write
questions:
- Can an operator hand-edit one recipient's subject, body or scheduled time?
- Why do API keys get a human_only error when editing a recipient by hand?
instructions:
- text: Manually edit recipient {rid} in campaign {id}.
slots:
rid: path.rid
id: path.id
- text: Change the scheduled time for recipient {rid} of campaign {id} by hand.
slots:
rid: path.rid
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/recipients/{recipientId}/attachment-link'].get
update:
x-apievangelist-phrasing:
intent: Refresh a recipient's personal PDF link
effect: read
questions:
- Can I get a fresh signed link to a recipient's personal PDF without regenerating it?
- When does a recipient's PDF attachment link expire?
instructions:
- text: Refresh the PDF attachment link for recipient {recipientId} in campaign {id}.
slots:
recipientId: path.recipientId
id: path.id
- text: Get a new signed attachment link for recipient {recipientId} on campaign {id}.
slots:
recipientId: path.recipientId
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/preparations'].post
update:
x-apievangelist-phrasing:
intent: Queue a background campaign preparation
effect: write
questions:
- Can I prepare a campaign's emails as a background job instead of waiting synchronously?
- Which preparation method is better for AI-generated emails with personal PDFs?
instructions:
- text: Queue a preparation run for campaign {id}.
slots:
id: path.id
- text: Start a background preparation of up to {limit} recipients for campaign {id}.
slots:
limit: requestBody.limit
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/preparations/{generationId}'].get
update:
x-apievangelist-phrasing:
intent: Check a campaign preparation job
effect: read
questions:
- Has my queued campaign preparation finished yet?
- Why did a background preparation operation fail?
instructions:
- text: Check preparation {generationId} for campaign {id}.
slots:
generationId: path.generationId
id: path.id
- text: Show the result of preparation job {generationId} on campaign {id}.
slots:
generationId: path.generationId
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/prepare'].post
update:
x-apievangelist-phrasing:
intent: Prepare and audit a batch of recipients now
effect: write
questions:
- Can I synchronously render and audit a batch of campaign recipients?
- What does the limit on a campaign prepare call actually control?
instructions:
- text: Prepare and audit {limit} recipients in campaign {id} right now.
slots:
limit: query.limit
id: path.id
- text: Synchronously prepare a batch of {limit} emails for campaign {id}.
slots:
limit: query.limit
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/dispatch'].post
update:
x-apievangelist-phrasing:
intent: Assign senders and schedule ready recipients
effect: write
questions:
- How do I assign sender accounts and send times to recipients that are ready?
- Can I override the schedule for specific recipients of a campaign?
instructions:
- text: Dispatch {limit} ready recipients in campaign {id}.
slots:
limit: query.limit
id: path.id
- text: Assign senders and schedule up to {limit} READY recipients of campaign {id}.
slots:
limit: query.limit
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/send'].post
update:
x-apievangelist-phrasing:
intent: Send dispatched campaign emails
effect: write
questions:
- How do I actually send the emails that have been dispatched?
- Can I hand dispatched recipients to the mail outbox for a first test send?
instructions:
- text: Send the dispatched emails for campaign {id}.
slots:
id: path.id
- text: Hand campaign {id}'s dispatched READY recipients to the outbox.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/sync-events'].post
update:
x-apievangelist-phrasing:
intent: Sync opens, clicks and bounces into a campaign
effect: write
questions:
- How do opens, clicks and bounces from email dialogs get back onto campaign recipients?
- Does a hard bounce add the address to the global stop list?
instructions:
- text: Sync open, click and bounce events for campaign {id}.
slots:
id: path.id
- text: Pull dialog engagement events back into campaign {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/restore-infra-failed'].post
update:
x-apievangelist-phrasing:
intent: Restore a paused campaign and recover AI failures
effect: write
questions:
- Can I reset a tripped circuit breaker on a paused campaign?
- Does restoring a paused campaign also retry its AI failures?
instructions:
- text: Restore campaign {id} by resetting its circuit breaker.
slots:
id: path.id
- text: Dry-run restoring paused campaign {id}, dry run {dryRun}.
slots:
id: path.id
dryRun: requestBody.dryRun
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/resume'].post
update:
x-apievangelist-phrasing:
intent: Resume a paused campaign
effect: write
questions:
- How do I resume sending on a campaign I paused?
- Can I restart a paused campaign with a single call?
instructions:
- text: Resume campaign {id}.
slots:
id: path.id
- text: Start sending again on paused campaign {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/pause'].post
update:
x-apievangelist-phrasing:
intent: Pause an active campaign
effect: write
questions:
- How do I stop an active campaign from sending?
- Will a paused campaign resume on its own later?
instructions:
- text: Pause campaign {id}.
slots:
id: path.id
- text: Pause campaign {id} with reason {reason}.
slots:
id: path.id
reason: requestBody.reason
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}/recipients/{rid}'].get
update:
x-apievangelist-phrasing:
intent: Get a campaign recipient and its event log
effect: read
questions:
- Can I see every send attempt and event for one campaign recipient?
- What is the difference between a recipient's send attempts and retired sends?
instructions:
- text: Show recipient {rid} in campaign {id} with its event log.
slots:
rid: path.rid
id: path.id
- text: Get the send attempt history for recipient {rid} of campaign {id}.
slots:
rid: path.rid
id: path.id
method: generated
generated: '2026-10-01'