Leads
Update Lead
Update an existing lead with optional checklist item updates
PUT
This endpoint updates an existing lead. Only the fields you include in the request body will be changed; omitted fields are left untouched. You can update lead-level fields (firstName, lastName, email, etc.) and/or checklist items by code. A single API_ACTIVITY action log is written for “Lead updated” with all updates grouped in the timeline.Documentation Index
Fetch the complete documentation index at: https://docs.getomni.ai/llms.txt
Use this file to discover all available pages before exploring further.
Authentication
Requires thex-api-key header with a valid workspace API key.
Request Body
Omni lead ID of the lead to update.
Lead first name
Lead last name
Lead email address
Lead phone number (formatted or raw; stored in E.164 when possible)
Lead middle name
Business name
External identifier for the lead (e.g. from a CRM system)
IANA timezone identifier (e.g. “America/New_York”). If not provided and a
phone number is given, the timezone is inferred from the area code.
Who handles the lead: “agent” (AI) or “manual” (human)
When true, marks the lead as opted out and sets optOutAt to the current time.
When false, clears the opt-out status.
Set the lead’s status. Allowed values are
"COMPLETED", "IN_PROGRESS",
"NOT_INTERESTED", and "OPTED_OUT" (note that "REVIEW" is not settable
via the API). If didOptOut is also provided, it must agree with status.
When set to "COMPLETED", any still-incomplete required checklist items are
auto-skipped. When set to "NOT_INTERESTED", the lead is marked as not
interested and future follow-ups stop. When set to "OPTED_OUT", the lead is
opted out and in-flight outbound messages are cancelled. When set to
"IN_PROGRESS", auto-skips from a prior "COMPLETED" transition are cleared
and the lead is re-opened.When true, sets emailVerifiedAt to the current time (marks the lead’s email as
verified).
Array of checklist updates. Each item:
{ "code": string, "value"?: any, "status"?: "TODO" | "COMPLETED" | "INVALID" | "SKIPPED" | "NEEDS_REVIEW" }. Use the checklist item code from your workspace. Only the items you include will be updated.Set lead tags. Matching is case-insensitive, so “VIP” and “vip” are treated as
the same tag. Pass [] to remove all tags.
Response
Whether the request succeeded
The lead’s current status after the update. One of
"COMPLETED",
"IN_PROGRESS", "NOT_INTERESTED", "OPTED_OUT", or "REVIEW". "REVIEW"
is not settable via this endpoint but may appear in the response when the lead
has an unresolved escalation.The updated lead record. Includes: id, activitySummary, assigneeType,
businessName, createdAt, deletedAt, didOptOut, optOutAt, notInterestedAt,
email, emailVerifiedAt, externalLeadId, externalPortalLink, firstName,
lastName, phoneNumber, phoneVerifiedAt, source, tags, updatedAt, website.
Full checklist for the lead, grouped by checklist group. Each group includes
id, name, conditions, and an items array. Each item includes id,
checklistItemId, value, status, itemOverride, and a nested checklistItem with
code, label, fieldType, conditions, validationRules, etc. File-type items
include a documents array with presigned URLs.
Recent action logs for the lead (up to 100), enriched with tool info,
messages, and document presigned URLs.
Leads that share the same phone number or email (empty for test leads).
The most recent completed outbound message or follow-up action log, including
associated tool calls.
The next pending follow-up message action log, if any.
The next message awaiting approval, if any.