# 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 Leads API version: 1.0.0 extends: openapi/live-direct-marketing-online-leads-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/leads'].get update: x-apievangelist-phrasing: intent: List leads effect: read questions: - Which leads are in a given pipeline stage? - Can I search my leads and sort them by a field? - Is there a way to list only leads that are in the trash? instructions: - text: List leads in pipeline {pipelineId}, includeDeleted {includeDeleted}, onlyDeleted {onlyDeleted}. slots: pipelineId: query.pipelineId includeDeleted: query.includeDeleted onlyDeleted: query.onlyDeleted - text: Search leads for {search} (includeDeleted {includeDeleted}, onlyDeleted {onlyDeleted}). slots: search: query.search includeDeleted: query.includeDeleted onlyDeleted: query.onlyDeleted method: generated generated: '2026-10-01' - target: $.paths['/api/leads'].post update: x-apievangelist-phrasing: intent: Create a lead effect: write questions: - How do I add a new sales lead? - Can I set a deal amount and pipeline stage when creating a lead? instructions: - text: Create a lead titled {title}. slots: title: requestBody.title - text: Add lead {title} worth {amount} {currency} for company {companyId} in stage {stageId}. slots: title: requestBody.title amount: requestBody.amount currency: requestBody.currency companyId: requestBody.companyId stageId: requestBody.stageId method: generated generated: '2026-10-01' - target: $.paths['/api/leads/stats'].get update: x-apievangelist-phrasing: intent: Get lead statistics effect: read questions: - How many leads do I have overall? - Can I see lead statistics for just one pipeline? instructions: - text: Show my lead statistics. - text: Get lead stats for pipeline {pipelineId}. slots: pipelineId: query.pipelineId method: generated generated: '2026-10-01' - target: $.paths['/api/leads/kanban/{pipelineId}'].get update: x-apievangelist-phrasing: intent: Show a pipeline's kanban board effect: read questions: - What does the kanban board look like for one of my pipelines? - Can I limit how many leads load per column on the board? instructions: - text: Show the kanban board for pipeline {pipelineId} matching {search}. slots: pipelineId: path.pipelineId search: query.search - text: Load pipeline {pipelineId}'s board with {perStage} leads per stage, search {search}. slots: pipelineId: path.pipelineId perStage: query.perStage search: query.search method: generated generated: '2026-10-01' - target: $.paths['/api/leads/kanban/{pipelineId}/stage/{stageId}'].get update: x-apievangelist-phrasing: intent: Load more leads in one kanban column effect: read questions: - How do I load the next batch of leads in a single board column? - Can I page through one stage of the kanban without reloading the whole board? instructions: - text: Load more leads in stage {stageId} of pipeline {pipelineId} from offset {offset}, search {search}. slots: stageId: path.stageId pipelineId: path.pipelineId offset: query.offset search: query.search - text: Fetch the next {limit} kanban cards in stage {stageId} of pipeline {pipelineId}, search {search}. slots: limit: query.limit stageId: path.stageId pipelineId: path.pipelineId search: query.search method: generated generated: '2026-10-01' - target: $.paths['/api/leads/stages/{pipelineId}'].get update: x-apievangelist-phrasing: intent: List a pipeline's stages for lead filtering effect: read questions: - Which stages can I filter leads by in a given pipeline? - What stage options exist for leads in one pipeline? instructions: - text: List lead filter stages for pipeline {pipelineId}. slots: pipelineId: path.pipelineId - text: Show which stages leads can be in for pipeline {pipelineId}. slots: pipelineId: path.pipelineId method: generated generated: '2026-10-01' - target: $.paths['/api/leads/duplicates'].get update: x-apievangelist-phrasing: intent: Find duplicate leads across the workspace effect: read questions: - Do I have duplicate leads anywhere in my workspace? - Can I scan for duplicates by contact or company only within one pipeline? instructions: - text: Scan the whole workspace for duplicate leads. - text: Find duplicate leads by {field} in pipeline {pipelineId}. slots: field: query.field pipelineId: query.pipelineId method: generated generated: '2026-10-01' - target: $.paths['/api/leads/{id}'].get update: x-apievangelist-phrasing: intent: Get a lead effect: read questions: - What are the details of a specific lead? - Can I look up a lead by its id? instructions: - text: Show lead {id}. slots: id: path.id - text: Get the record for lead {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/api/leads/{id}'].delete update: x-apievangelist-phrasing: intent: Move a lead to trash effect: destructive questions: - How do I delete a lead but keep the option to restore it? - What happens to a lead when I remove it from the pipeline? instructions: - text: Move lead {id} to the trash. slots: id: path.id - text: Soft-delete lead {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/api/leads/{id}'].patch update: x-apievangelist-phrasing: intent: Update a lead effect: write questions: - How do I change a lead's title, priority or linked contact? - Can I set an expected close date on an existing lead? instructions: - text: Change lead {id}'s title to {title}. slots: id: path.id title: requestBody.title - text: Set lead {id} priority to {priority} and link contact {contactId}. slots: id: path.id priority: requestBody.priority contactId: requestBody.contactId method: generated generated: '2026-10-01' - target: $.paths['/api/leads/{id}/duplicates'].get update: x-apievangelist-phrasing: intent: Check one lead for duplicates effect: read questions: - Does this particular lead already exist under another record? - Are there leads that duplicate the one I'm looking at? instructions: - text: Check whether lead {id} has duplicates. slots: id: path.id - text: Find leads that duplicate lead {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/api/leads/{id}/dossier'].get update: x-apievangelist-phrasing: intent: Get a lead's full dossier effect: read questions: - Can I see the company, contact and activity behind a lead in one view? - What's the full background dossier on a lead? instructions: - text: Pull the dossier for lead {id}. slots: id: path.id - text: Show company, contact and activity for lead {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/api/leads/{id}/interest'].get update: x-apievangelist-phrasing: intent: Get a lead's AI interest classification effect: read questions: - Is a lead interested, according to the AI classification? - What interest status did the AI assign to a lead? instructions: - text: Show the AI interest classification for lead {id}. slots: id: path.id - text: Tell me how interested lead {id} is. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/api/leads/{id}/interest'].patch update: x-apievangelist-phrasing: intent: Manually set a lead's interest status effect: write questions: - Can I override the AI's interest status on a lead by hand? - How long can the note be when I set a lead's interest manually? instructions: - text: Set lead {id}'s interest status to {status}. slots: id: path.id status: requestBody.status - text: Mark lead {id} as {status} with note {note}. slots: id: path.id status: requestBody.status note: requestBody.note method: generated generated: '2026-10-01' - target: $.paths['/api/leads/interest/breakdown'].get update: x-apievangelist-phrasing: intent: Break down leads by interest status effect: read questions: - How many of my leads are interested versus not interested? - Can I see the interest-status breakdown for one pipeline? instructions: - text: Show the breakdown of my leads by interest status. - text: Break down leads in pipeline {pipelineId} by interest. slots: pipelineId: query.pipelineId method: generated generated: '2026-10-01' - target: $.paths['/api/leads/{id}/deal'].get update: x-apievangelist-phrasing: intent: Get a lead's deal projection effect: read questions: - What is a lead's deal worth once weighted by probability? - Which amount and win probability are set on a lead's deal? instructions: - text: Show the deal projection for lead {id}. slots: id: path.id - text: Get the weighted deal value of lead {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/api/leads/{id}/deal'].patch update: x-apievangelist-phrasing: intent: Update a lead's deal amount and probability effect: write questions: - How do I change the win probability on a lead's deal? - Can I update a deal's amount and expected close date together? instructions: - text: Set the deal on lead {id} to {amount} {currency} at {probability} probability. slots: id: path.id amount: requestBody.amount currency: requestBody.currency probability: requestBody.probability - text: Move lead {id}'s deal close date to {expectedCloseDate}. slots: id: path.id expectedCloseDate: requestBody.expectedCloseDate method: generated generated: '2026-10-01' - target: $.paths['/api/leads/deal/forecast'].get update: x-apievangelist-phrasing: intent: Forecast weighted deal revenue effect: read questions: - What's my weighted sales forecast across all open leads? - Can I forecast revenue for one pipeline within a date range? instructions: - text: Compute the weighted deal forecast for pipeline {pipelineId}. slots: pipelineId: query.pipelineId - text: Forecast weighted revenue from {dateFrom} to {dateTo}. slots: dateFrom: query.dateFrom dateTo: query.dateTo method: generated generated: '2026-10-01' - target: $.paths['/api/leads/{id}/move'].post update: x-apievangelist-phrasing: intent: Move a lead to another stage effect: write questions: - How do I move a single lead to the next stage of the pipeline? - Can I record a lost reason when moving a lead to a lost stage? instructions: - text: Move lead {id} to stage {stageId}. slots: id: path.id stageId: requestBody.stageId - text: Move lead {id} to stage {stageId} of pipeline {pipelineId} with lost reason {lostReason}. slots: id: path.id stageId: requestBody.stageId pipelineId: requestBody.pipelineId lostReason: requestBody.lostReason method: generated generated: '2026-10-01' - target: $.paths['/api/leads/bulk'].post update: x-apievangelist-phrasing: intent: Run a bulk action on many leads effect: write questions: - Can I tag or re-stage a whole batch of leads at once? - Which bulk actions can I queue up on a set of selected leads? instructions: - text: Run bulk action {action} on leads {ids}. slots: action: requestBody.action ids: requestBody.ids - text: Bulk-add tags {tagIds} to leads {ids} with action {action}. slots: tagIds: requestBody.tagIds ids: requestBody.ids action: requestBody.action method: generated generated: '2026-10-01' - target: $.paths['/api/leads/bulk/{jobId}'].get update: x-apievangelist-phrasing: intent: Check the status of a bulk lead job effect: read questions: - Has my bulk lead update finished yet? - How far along is a queued bulk lead job? instructions: - text: Check progress of bulk lead job {jobId}. slots: jobId: path.jobId - text: Get the status of bulk job {jobId} on leads. slots: jobId: path.jobId method: generated generated: '2026-10-01' - target: $.paths['/api/leads/bulk/{jobId}'].delete update: x-apievangelist-phrasing: intent: Cancel a running bulk lead job effect: destructive questions: - Can I stop a bulk lead action that's still in progress? - How do I abort a queued bulk update on leads? instructions: - text: Cancel bulk lead job {jobId}. slots: jobId: path.jobId - text: Stop the in-progress bulk job {jobId} on my leads. slots: jobId: path.jobId method: generated generated: '2026-10-01' - target: $.paths['/api/leads/{id}/restore'].post update: x-apievangelist-phrasing: intent: Restore a trashed lead effect: write questions: - Can I bring back a lead I moved to the trash? - How do I undo deleting a lead? instructions: - text: Restore lead {id} from the trash. slots: id: path.id - text: Undelete lead {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/api/leads/{id}/purge'].delete update: x-apievangelist-phrasing: intent: Permanently delete a trashed lead effect: destructive questions: - How do I permanently erase a lead that's already in the trash? - Can a purged lead ever be recovered? instructions: - text: Permanently purge trashed lead {id}. slots: id: path.id - text: Erase lead {id} for good from the trash. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/api/leads/export'].post update: x-apievangelist-phrasing: intent: Export leads to a file effect: read questions: - Can I download my leads as a CSV or Excel file? - How do I export only the leads in one pipeline stage? instructions: - text: Export leads with scope {scope} as {format}. slots: scope: requestBody.scope format: requestBody.format - text: Export leads in stage {stageId} of pipeline {pipelineId} with scope {scope}. slots: stageId: requestBody.stageId pipelineId: requestBody.pipelineId scope: requestBody.scope method: generated generated: '2026-10-01' - target: $.paths['/api/leads/import/preview'].post update: x-apievangelist-phrasing: intent: Preview a lead import effect: read questions: - Can I check how my spreadsheet columns will map before importing leads? - What would a lead import look like with my proposed field mapping? instructions: - text: Preview importing rows {rows} as leads using mapping {mapping}. slots: rows: requestBody.rows mapping: requestBody.mapping - text: Dry-run a lead import of {rows} with column mapping {mapping}. slots: rows: requestBody.rows mapping: requestBody.mapping method: generated generated: '2026-10-01' - target: $.paths['/api/leads/import/start'].post update: x-apievangelist-phrasing: intent: Start a lead import job effect: write questions: - How do I actually import a batch of leads once the mapping looks right? - Can I pass options when kicking off a lead import? instructions: - text: Import leads from {rows} using mapping {mapping}. slots: rows: requestBody.rows mapping: requestBody.mapping - text: Start a lead import of {rows} with mapping {mapping} and options {options}. slots: rows: requestBody.rows mapping: requestBody.mapping options: requestBody.options method: generated generated: '2026-10-01'