luca_capabilities_get
What this workspace supports
Describe Luca's public API capabilities, scopes, and boundaries.
Luca operation: GET /api/capabilities
Required scopes: leads:read, conversations:read, bookings:read, campaigns:read, broadcasts:read, webhooks:read, integrations:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_leads_list
List leads
List leads. Query supports limit, cursor, channel, and q according to Luca OpenAPI.
Luca operation: GET /api/leads
Required scopes: leads:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数querymaxPagesworkspaceIdworkspaceSlug
luca_leads_get
Get a lead's timeline
Get a lead's full timeline and notes.
Luca operation: GET /api/leads/{id}
Required scopes: leads:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_leads_explain
Explain why a lead qualified
Explain why a lead qualified: the qualifier's reasoning, signals, and confidence from its most recent drafted turn.
Luca operation: GET /api/leads/{id}/explain
Required scopes: leads:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_leads_create
Create or upsert a lead
Create or upsert a lead identity. Body requires channel and externalUserId.
Luca operation: POST /api/leads
Required scopes: leads:write
Required OAuth scope: luca:draft; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填workspaceIdworkspaceSlugidempotencyKey
luca_leads_update
Update a lead
Update a lead's display name, stage, tags, or custom fields. Tags are replaced as a whole list.
Luca operation: PATCH /api/leads/{id}
Required scopes: leads:write
Required OAuth scope: luca:draft; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填workspaceIdworkspaceSlugidempotencyKey
luca_leads_field_definitions_list
List custom lead fields
List custom lead field definitions.
Luca operation: GET /api/leads/field-definitions
Required scopes: leads:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_leads_field_definitions_upsert
Define a custom lead field
Create or update a custom lead field definition.
Luca operation: POST /api/leads/field-definitions
Required scopes: leads:write
Required OAuth scope: luca:draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填workspaceIdworkspaceSlugidempotencyKey
luca_leads_import_preview
Preview a lead import
Preview a mapped CSV lead import before applying it.
Luca operation: POST /api/leads/imports/preview
Required scopes: leads:read
Required OAuth scope: luca:draft; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填workspaceIdworkspaceSlug
luca_leads_import_apply
Apply a lead import
Apply a mapped lead import with consent evidence.
Luca operation: POST /api/leads/imports/apply
Required scopes: leads:write
Required OAuth scope: luca:queue_ops; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_leads_identities_attach
Attach a channel identity to a lead
Attach a verified or claimed identity to a lead.
Luca operation: POST /api/leads/{id}/identities
Required scopes: leads:write
Required OAuth scope: luca:draft; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填workspaceIdworkspaceSlugidempotencyKey
luca_leads_consents_grant
Record a lead's consent
Grant explicit lead consent for a channel purpose.
Luca operation: POST /api/leads/{id}/consents
Required scopes: leads:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_leads_consents_revoke
Revoke a lead's consent
Revoke explicit lead consent for a channel purpose.
Luca operation: POST /api/leads/{id}/consents/revoke
Required scopes: leads:write
Required OAuth scope: luca:draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填workspaceIdworkspaceSlugidempotencyKey
luca_leads_notes_add
Add a note to a lead
Append a coach note to a lead. Body requires body.
Luca operation: POST /api/leads/{id}/notes
Required scopes: leads:write
Required OAuth scope: luca:draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填workspaceIdworkspaceSlugidempotencyKey
luca_leads_draft
Draft a reply to a lead
Draft a reply for a lead, written the way the coach writes, and put it in the review queue for the coach to approve. Drafting again replaces this lead's earlier unapproved draft from this tool. It never sends, whatever the channel's auto-send setting. Optional guidance steers tone or content.
Luca operation: POST /api/leads/{id}/draft
Required scopes: leads:write
Required OAuth scope: luca:draft; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填bodyworkspaceIdworkspaceSlugidempotencyKey
luca_leads_notes_delete
Delete a lead note
Remove one coach note from a lead and leave the rest of the timeline alone. This is how a note filed by mistake gets taken back.
Luca operation: DELETE /api/leads/{id}/notes/{noteId}
Required scopes: leads:write
Required OAuth scope: luca:draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填noteId必填workspaceIdworkspaceSlugidempotencyKey
luca_leads_drafting_pause
Pause Luca for a lead
Stop Luca drafting replies, running follow-up cadences, and sending campaign messages to one lead, for 1h, 24h, 7d, 30d, or until resumed. A draft in flight stops at its next step. Opt-outs and crisis messages are still handled. Pausing again replaces the earlier pause. A timed pause resumes the lead by itself when it ends, and Luca then drafts a reply that can send without review if auto-send is on.
Luca operation: POST /api/leads/{id}/drafting/pause
Required scopes: leads:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填workspaceIdworkspaceSlugidempotencyKey
luca_leads_drafting_resume
Resume Luca for a lead
Clear a lead's pause and have Luca draft one reply over each conversation's unanswered messages. With auto-send on for the channel, that reply can send without review. A conversation is skipped when the coach already replied or the messaging window closed, and skippedReason says why nothing restarted. Resuming a lead that isn't paused succeeds.
Luca operation: POST /api/leads/{id}/drafting/resume
Required scopes: leads:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_conversations_list
List conversations
List recent conversations. Query supports limit, cursor, channel, and q.
Luca operation: GET /api/conversations
Required scopes: conversations:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数querymaxPagesworkspaceIdworkspaceSlug
luca_conversations_get
Get a conversation
Get a conversation with messages and lead context.
Luca operation: GET /api/conversations/{id}
Required scopes: conversations:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_conversations_messages
Read a conversation's messages
Page backward through a thread's older messages, for threads longer than the window the conversation read returns.
Luca operation: GET /api/conversations/{id}/messages
Required scopes: conversations:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填querymaxPagesworkspaceIdworkspaceSlug
luca_conversations_send
Send a message to a lead
Send a message to the lead on their channel right away. This is the one conversation tool that reaches a real person without a reviewer seeing the message first, which is why it needs an explicit confirm. Prefer drafting into the review queue unless the coach has asked for this message to go out now.
Luca operation: POST /api/conversations/{id}/send
Required scopes: conversations:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_conversations_partial_send_retry
Retry unsent message parts
Retry only the parts of a partially sent message that are known not to have reached the provider.
Luca operation: POST /api/conversations/{id}/messages/{messageId}/retry
Required scopes: conversations:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填confirmmessageId必填workspaceIdworkspaceSlugidempotencyKey
luca_conversations_send_status
Check whether a reply was accepted
Look up a manual reply by the idempotency key it was sent with, to learn whether the API accepted it for sending before you send it again. accepted means it is queued to go out, not that it was delivered; not_found means no accepted send exists under that key.
Luca operation: GET /api/conversations/{id}/send-status
Required scopes: conversations:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填query必填workspaceIdworkspaceSlug
luca_conversations_reply_failure_retry
Resend a failed reply
Send a reply the coach wrote that failed to go out, under the key it first went out with, so the lead never gets it twice. Only a failure that is safe to repeat can be retried. Sends a real message.
Luca operation: POST /api/conversations/{id}/reply-failures/{failureId}/retry
Required scopes: conversations:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Does not require idempotency.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填confirmfailureId必填workspaceIdworkspaceSlug
luca_conversations_reply_failure_dismiss
Dismiss a failed reply
Close a failed reply the coach has given up on, so it leaves the thread on every device. Sends nothing. Dismissing twice changes nothing.
Luca operation: POST /api/conversations/{id}/reply-failures/{failureId}/dismiss
Required scopes: conversations:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填failureId必填workspaceIdworkspaceSlug
luca_conversations_media_retry
Retry a voice-note transcription
Queue another transcription attempt for a voice note in this conversation. Only re-transcribes; never drafts or sends. A refusal says why: a retry is already running, the limit is reached, or the audio is gone.
Luca operation: POST /api/conversations/{id}/messages/{messageId}/media/{mediaId}/retry
Required scopes: conversations:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填mediaId必填messageId必填workspaceIdworkspaceSlugidempotencyKey
luca_review_queue_list
List the review queue
List review-queue items when the API key has review queue access.
Luca operation: GET /api/review-queue
Required scopes: review_queue:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数querymaxPagesworkspaceIdworkspaceSlug
luca_review_queue_explain
Explain a queued draft
Explain the signals behind a drafted reply: its voice-match score, any critic findings, and the qualification that motivated it.
Luca operation: GET /api/review-queue/{id}/explain
Required scopes: review_queue:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_review_queue_approve
Approve and send a queued draft
Approve a pending draft for sending; dispatches through the lead's channel. Sends a real message.
Luca operation: POST /api/review-queue/{id}/approve
Required scopes: review_queue:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填bodyconfirmworkspaceIdworkspaceSlugidempotencyKey
luca_review_queue_reject
Reject a queued draft
Reject a pending review-queue draft so it never sends. Stops any related booking-recovery cadence and emits review.rejected.
Luca operation: POST /api/review-queue/{id}/reject
Required scopes: review_queue:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填bodyworkspaceIdworkspaceSlugidempotencyKey
luca_review_queue_restore
Restore a rejected draft
Restore a rejected review-queue item back to pending. A booking message cannot be restored.
Luca operation: POST /api/review-queue/{id}/restore
Required scopes: review_queue:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlugidempotencyKey
luca_review_queue_media_retry
Retry a draft's failed media
Retry a failed voice-note transcription so the draft can be reviewed. Only re-transcribes; never redrafts or sends.
Luca operation: POST /api/review-queue/{id}/media/{mediaId}/retry
Required scopes: review_queue:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填mediaId必填workspaceIdworkspaceSlugidempotencyKey
luca_review_queue_sla
Check the review queue's response times
Read median first-response time and its daily trend. Tells you whether the queue is being cleared fast enough.
Luca operation: GET /api/review-queue/sla
Required scopes: review_queue:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_review_queue_objection_variant
Record an objection variant choice
Record which objection-specialist variant was picked for one queued draft. It is how the objection tests learn which handling works, so record the variant the coach actually chose.
Luca operation: POST /api/review-queue/{id}/objection-variant
Required scopes: review_queue:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填workspaceIdworkspaceSlugidempotencyKey
luca_review_queue_summary
Summarize the review queue
Read how many drafts are pending and the newest few, with lead names and hot-lead flags but no draft text. Cheaper than listing the queue.
Luca operation: GET /api/review-queue/summary
Required scopes: review_queue:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_review_queue_changes
Read review queue changes
Read which drafts entered and left the pending queue since the version an earlier call returned, with the pending and drafting counts. reload: true means that version is too old, so list the queue again.
Luca operation: GET /api/review-queue/changes
Required scopes: review_queue:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_review_queue_drafting
List drafts in progress
List the inbound turns Luca is still writing a reply for, with each one's state, a preview of the lead's message, and how many restarts are left. Cancelled, paused, and failed turns stay on the list for 24 hours.
Luca operation: GET /api/review-queue/drafting
Required scopes: review_queue:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_review_queue_drafting_cancel
Cancel a draft in progress
Stop the reply Luca is writing for one inbound turn. A queued draft that is still pending is taken back; an approved or sent one is not. The turn stays on the drafting list for 24 hours so it can be retried or dismissed.
Luca operation: POST /api/review-queue/drafting/{turnId}/cancel
Required scopes: review_queue:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数turnId必填workspaceIdworkspaceSlugidempotencyKey
luca_review_queue_drafting_retry
Retry a stopped draft
Have Luca draft again for a cancelled, paused, or failed turn. Only the lead's latest turn in a conversation restarts, at most 3 times across retry and regenerate. With auto-send on for the channel, the new draft can send without review.
Luca operation: POST /api/review-queue/drafting/{turnId}/retry
Required scopes: review_queue:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数turnId必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_review_queue_drafting_dismiss
Dismiss a stopped draft
Remove a cancelled, paused, or failed turn from the drafting list without drafting again. Dismissing twice succeeds.
Luca operation: POST /api/review-queue/drafting/{turnId}/dismiss
Required scopes: review_queue:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数turnId必填workspaceIdworkspaceSlugidempotencyKey
luca_review_queue_regenerate
Redraft a queued reply
Replace a pending draft by having Luca draft its turn again, with an optional hint on what to change. An approved or sent draft can't be replaced, and a turn restarts at most 3 times across retry and regenerate. With auto-send on for the channel, the new draft can send without review.
Luca operation: POST /api/review-queue/{id}/regenerate
Required scopes: review_queue:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填bodyconfirmworkspaceIdworkspaceSlugidempotencyKey
luca_review_queue_bulk_approve
Approve and send several drafts
Approve several pending drafts as they stand and send each one through its lead's channel. Returns one outcome per id; a draft already handled or not in the queue is skipped. Sends real messages.
Luca operation: POST /api/review-queue/bulk-approve
Required scopes: review_queue:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_review_queue_bulk_reject
Reject several drafts
Reject several pending drafts so none of them sends, with no reason recorded. Returns one outcome per id; a draft already handled or not in the queue is skipped.
Luca operation: POST /api/review-queue/bulk-reject
Required scopes: review_queue:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填workspaceIdworkspaceSlugidempotencyKey
luca_bookings_list
List bookings
List bookings. Query supports limit, cursor, status, and upcoming.
Luca operation: GET /api/bookings
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数querymaxPagesworkspaceIdworkspaceSlug
luca_bookings_create
Book a call
Create a provider-neutral booking record. Body requires leadId and slotAt.
Luca operation: POST /api/bookings
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_bookings_get
Get a booking
Read one booking: its slot, status, provider, and lead.
Luca operation: GET /api/bookings/{id}
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_bookings_availability
Read open call slots
List open slots the coach can actually be booked into. Check this before booking.
Luca operation: GET /api/bookings/availability
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_bookings_managed_availability
Read Luca-managed call slots
List open slots for one of Luca's own call types, with calendar conflicts already removed.
Luca operation: GET /api/bookings/managed-availability
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数query必填workspaceIdworkspaceSlug
luca_bookings_types_list
Sync and list call types
List the call types a booking can use, with their duration and provider, after copying in the event types of a connected Cal.com or Calendly account. A new event type gets a call type, a changed one updates its call type's name and duration, and one the account no longer lists has its call type switched off, not deleted. unreadProviders names any connected account that could not be read: its call types stay as they were and may be behind.
Luca operation: GET /api/bookings/types
Required scopes: bookings:read
Required OAuth scope: luca:draft; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_bookings_types_schedule
Read a call type's schedule
Read a call type's weekly schedule: the hours it can be booked and its time zone.
Luca operation: GET /api/bookings/types/{id}/schedule
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_bookings_types_attendees
List a call type's attendees
List the people invited to every call of this type, on top of the lead.
Luca operation: GET /api/bookings/types/{id}/attendees
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_bookings_providers_list
List booking providers
List every booking provider, what each can do, and whether this coach's connection is healthy.
Luca operation: GET /api/bookings/providers
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_bookings_providers_get
Get a booking provider
List the event types and calendars in one connected provider account.
Luca operation: GET /api/bookings/providers/{provider}
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数provider必填workspaceIdworkspaceSlug
luca_bookings_calendars_list
List connected calendars
List the calendars Luca reads for conflicts, and which one it writes new events to.
Luca operation: GET /api/bookings/calendars
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_bookings_outcome_reasons_list
List loss reasons
List the reasons a sale can be lost or a call cancelled. Use one of these codes when recording an outcome.
Luca operation: GET /api/bookings/outcome-reasons
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_bookings_outcome_get
Get a booking's outcome
Read where the sale stands on a booking, plus the version you send back to correct it.
Luca operation: GET /api/bookings/{id}/outcome
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_bookings_outcome_history
Read a booking's outcome history
Read every outcome ever recorded on a booking, in order. Corrections append rather than overwrite.
Luca operation: GET /api/bookings/{id}/outcome/history
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_bookings_needs_outcome
List calls with no outcome recorded
List attended calls with no outcome recorded yet. The work list for closing revenue attribution.
Luca operation: GET /api/bookings/needs-outcome
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_bookings_lifecycle_attention
List bookings needing attention
List bookings where Luca's record and the provider's disagree and a human has to decide.
Luca operation: GET /api/bookings/lifecycle-attention
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_bookings_brief
Read a pre-call brief
Read the pre-call brief: who the lead is, what they want, and the objections to expect.
Luca operation: GET /api/bookings/{id}/brief
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_bookings_update
Reschedule or edit a booking
Reschedule or update booking status. A Google Calendar or Cal.com booking changes on that calendar too, and the calendar can email the lead about it.
Luca operation: PATCH /api/bookings/{id}
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_bookings_cancel
Cancel a booking
Cancel a booking. A Google Calendar or Cal.com booking is cancelled on that calendar too, and the calendar can email the lead about it.
Luca operation: DELETE /api/bookings/{id}
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_bookings_outcome_record
Record a booking's outcome
Record what the call was worth: won, lost with a reason, or still open. Won and lost outcomes can update a connected CRM deal stage, so pass confirm: true for those outcomes. To correct an earlier outcome send the expectedVersion you read; a stale version returns 409 with the current one.
Luca operation: POST /api/bookings/{id}/outcome
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive when status is won or lost (can update a connected CRM deal): has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_bookings_lifecycle_resolution
Resolve a booking's lifecycle flag
Settle one booking whose record disagrees with the provider's: dismiss the duplicate, or set it confirmed, cancelled, completed, or no_show. To retry the sync, use luca_bookings_provider_sync_retry.
Luca operation: POST /api/bookings/{id}/lifecycle-resolution
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_bookings_provider_sync_retry
Retry a booking's provider sync
Retry a failed write-back to the booking provider. A permanent failure returns 409 rather than retrying forever.
Luca operation: POST /api/bookings/{id}/provider-sync/retry
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_bookings_guest_links_create
Create a guest link for a booking
Mint revocable reschedule and cancel links for one booking, so a lead can move the call without an account. This replaces the booking's current links, so any link already shared stops working.
Luca operation: POST /api/bookings/{id}/guest-links
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填workspaceIdworkspaceSlugidempotencyKey
luca_bookings_guest_links_revoke
Revoke a booking's guest links
Kill every outstanding guest link on a booking at once.
Luca operation: DELETE /api/bookings/{id}/guest-links
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlugidempotencyKey
luca_bookings_outcome_reasons_create
Create a loss reason
Add a lost-sale or cancellation reason in the workspace's own wording. A code already in use returns 409.
Luca operation: POST /api/bookings/outcome-reasons
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填workspaceIdworkspaceSlugidempotencyKey
luca_bookings_outcome_reasons_update
Update a loss reason
Rename, reorder, or archive an outcome reason. Archiving hides it from the picker and leaves recorded outcomes alone.
Luca operation: PATCH /api/bookings/outcome-reasons/{id}
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填workspaceIdworkspaceSlugidempotencyKey
luca_bookings_types_create
Create a booking type
Define a bookable call: how long it runs, where it happens, and how it looks to the lead. Give it a schedule next — a booking type with no schedule offers no slots and will never appear in availability.
Luca operation: POST /api/bookings/types
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填workspaceIdworkspaceSlugidempotencyKey
luca_bookings_types_update
Update a booking type
Update only the fields you send on one booking type. Sending `location` replaces the whole location, because its shape depends on the type.
Luca operation: PATCH /api/bookings/types/{id}
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填workspaceIdworkspaceSlugidempotencyKey
luca_bookings_types_delete
Delete a booking type
Remove a booking type and get back the types that are left. Its schedule, attendees, open slot holds, type-specific outcome reasons, and any booking invitations already sent go with it. Calls already booked against it are not cancelled.
Luca operation: DELETE /api/bookings/types/{id}
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlugidempotencyKey
luca_bookings_types_schedule_replace
Replace a booking type schedule
Replace a booking type's schedule outright. Send every rule and override you want to keep — anything left out is dropped, which is also how you clear a day. Read the current schedule first unless you mean to start over.
Luca operation: PUT /api/bookings/types/{id}/schedule
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填workspaceIdworkspaceSlugidempotencyKey
luca_bookings_types_attendees_add
Add a booking type attendee
Add a standing attendee to one booking type, so they are invited to every call booked against it. Returns the full attendee list.
Luca operation: POST /api/bookings/types/{id}/attendees
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填workspaceIdworkspaceSlugidempotencyKey
luca_bookings_types_attendees_remove
Remove a booking type attendee
Remove a standing attendee from one booking type and get back the ones that are left. Calls already booked keep the invitees they were created with.
Luca operation: DELETE /api/bookings/types/{id}/attendees/{attendeeId}
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填attendeeId必填workspaceIdworkspaceSlugidempotencyKey
luca_bookings_calendars_select
Select a booking calendar
Add or update a calendar selection, either for conflict checks or as the destination new bookings are written to. The destination has to be writable: a read-only calendar returns 400, and a Google connection needing attention returns 409.
Luca operation: PUT /api/bookings/calendars
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填workspaceIdworkspaceSlugidempotencyKey
luca_bookings_calendars_remove
Remove a booking calendar
Stop using a calendar for conflict checks or as the booking destination. The calendar itself is left alone in Google; only Luca's selection changes.
Luca operation: DELETE /api/bookings/calendars
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填workspaceIdworkspaceSlugidempotencyKey
luca_bookings_recovery_get
Read a no-show recovery
Read a booking's no-show recovery: whether it is active, paused for review, stopped, or done, which follow-up is next, and when the last one went out.
Luca operation: GET /api/bookings/{id}/recovery
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_bookings_recovery_stop
Stop a no-show recovery
Stop a booking's no-show recovery so no further follow-up is scheduled, and reject follow-up drafts waiting in the review queue. A follow-up already being sent may still arrive. Send recovery.id as recoveryCaseId and recovery.outcomeVersion from luca_bookings_recovery_get; a recovery that changed since that read returns 409 booking_recovery_changed.
Luca operation: POST /api/bookings/{id}/recovery/stop
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填workspaceIdworkspaceSlugidempotencyKey
luca_bookings_provider_requests_create
Book a call on the coach's calendar
Book one exact slot from luca_bookings_managed_availability on the coach's Calendly, Cal.com, or Google Calendar, which sends the invite to the lead's email; Luca can also queue a booking confirmation draft for the coach to review. Pass the slot's id, startsAt, endsAt, and timezone as returned by a read of exactly that slot's window, since a slot id is tied to the window it was read in. The answer is usually pending while the provider confirms; read it again with luca_bookings_provider_requests_get. A slot taken in the meantime returns 409 slot_unavailable.
Luca operation: POST /api/bookings/provider-requests
Required scopes: bookings:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_bookings_provider_requests_get
Check a calendar booking
Read where a calendar booking request stands. pending_provider turns into confirmed, handoff_required, or failed once the provider answers, and a confirmed request carries the booking id and meeting link.
Luca operation: GET /api/bookings/provider-requests/{id}
Required scopes: bookings:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_call_events_needing_feedback
List calls still needing a report
List calls whose time has passed that still need the coach to say what happened. The post-call work queue.
Luca operation: GET /api/call-events
Required scopes: call_events:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_call_events_get
Get a call event
Read one call event: outcome, rating, summary, and CRM sync state.
Luca operation: GET /api/call-events/{id}
Required scopes: call_events:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_call_events_by_booking
Get a booking's call event
Find the call event attached to a booking. A booking whose call hasn't happened yet returns 404, which is normal.
Luca operation: GET /api/call-events/by-booking/{bookingId}
Required scopes: call_events:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数bookingId必填workspaceIdworkspaceSlug
luca_call_events_by_lead
List a lead's call events
Read a lead's full call history, oldest first, so a second or third call reads in sequence.
Luca operation: GET /api/call-events/by-lead/{leadId}
Required scopes: call_events:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数leadId必填workspaceIdworkspaceSlug
luca_call_events_feedback
Report how a call went
File the coach's report on how a call went. A completed or no_show outcome also records booking attendance, and a completed call queues its summary. A no_show can start recovery messages to the lead, so it needs the queue_ops grant and confirm: true.
Luca operation: POST /api/call-events/{id}/feedback
Required scopes: call_events:write
Required OAuth scope: luca:queue_ops; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive when outcome is no_show (can start recovery messaging): has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_call_events_summary_generate
Generate a call summary
Queue a fresh summary and return straight away. Poll the call event for the result.
Luca operation: POST /api/call-events/{id}/summary
Required scopes: call_events:write
Required OAuth scope: luca:draft; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlugidempotencyKey
luca_call_events_summary_replace
Replace a call summary
Replace the generated summary with the coach's own wording and push it. A summary already in the CRM updates that same note.
Luca operation: PUT /api/call-events/{id}/summary
Required scopes: call_events:write
Required OAuth scope: luca:full; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_call_events_push_to_crm
Push a call to the CRM
Send the current summary to the CRM now, without waiting out the review window. Re-pushing updates the existing note.
Luca operation: POST /api/call-events/{id}/push-to-crm
Required scopes: call_events:write
Required OAuth scope: luca:full; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_call_events_undo_outcome
Undo a call's outcome
Clear a mistaken attendance mark and put the call back in the queue. Undoing a no_show also stops its recovery and rejects any recovery drafts waiting for review. The window is 48 hours from when the outcome was set.
Luca operation: POST /api/call-events/{id}/undo-outcome
Required scopes: call_events:write
Required OAuth scope: luca:draft; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlugidempotencyKey
luca_call_events_backfill
Backfill a booking's call event
Create a call event for a booking that predates automatic creation, then queue its summary. Safe to call twice: an existing call event comes back as is.
Luca operation: POST /api/call-events/backfill/{bookingId}
Required scopes: call_events:write
Required OAuth scope: luca:draft; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数bookingId必填workspaceIdworkspaceSlugidempotencyKey
luca_campaigns_list
List campaigns
List campaigns. Query supports limit, cursor, and status.
Luca operation: GET /api/campaigns
Required scopes: campaigns:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数querymaxPagesworkspaceIdworkspaceSlug
luca_campaigns_get
Get a campaign
Get campaign draft and latest published version.
Luca operation: GET /api/campaigns/{id}
Required scopes: campaigns:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_campaigns_create
Create a campaign
Create a campaign draft. Body requires name and may include graph.
Luca operation: POST /api/campaigns
Required scopes: campaigns:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填workspaceIdworkspaceSlugidempotencyKey
luca_campaigns_generate
Generate a campaign plan
Build a campaign plan from a brief with fixed rules, not an AI model. Nothing is created or published: create the draft from the plan, review it, and publish it yourself. A new brief has to say where leads come from: set body.source, or say it in body.prompt, for example a comment on a post or a DM. A comment campaign also has to name the word people comment in body.prompt, for example comment "GUIDE". If either is missing, Luca answers 400 and says what to add.
Luca operation: POST /api/campaigns/generate
Required scopes: campaigns:read
Required OAuth scope: luca:draft; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填workspaceIdworkspaceSlug
luca_campaigns_draft_update
Edit a campaign draft
Save a campaign draft. Read the campaign with luca_campaigns_get first and send its draft.updatedAt as body.expectedDraftUpdatedAt, so this cannot overwrite an edit made since. Without that field Luca refuses the call with a 428. If the draft has changed since you read it, Luca answers 409: read the campaign again and reapply your change.
Luca operation: PATCH /api/campaigns/{id}/draft
Required scopes: campaigns:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填workspaceIdworkspaceSlugidempotencyKey
luca_campaigns_enrollments_list
List a campaign's enrollments
List campaign enrollments.
Luca operation: GET /api/campaigns/{id}/enrollments
Required scopes: campaigns:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填querymaxPagesworkspaceIdworkspaceSlug
luca_campaigns_enroll
Enroll leads in a campaign
Enroll a lead in the latest published campaign version. Triggers the live campaign's automation for that lead.
Luca operation: POST /api/campaigns/{id}/enrollments
Required scopes: campaigns:write
Required OAuth scope: luca:queue_ops; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_campaigns_analytics
Read a campaign's results
Read campaign attribution and performance analytics.
Luca operation: GET /api/campaigns/{id}/analytics
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填queryworkspaceIdworkspaceSlug
luca_campaigns_provider_capabilities
Check what a campaign's channel supports
Evaluate provider capability blockers for a campaign draft.
Luca operation: GET /api/campaigns/{id}/provider-capabilities
Required scopes: campaigns:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_campaigns_simulations_list
List a campaign's simulations
List persisted campaign simulation runs.
Luca operation: GET /api/campaigns/{id}/simulations
Required scopes: campaigns:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填querymaxPagesworkspaceIdworkspaceSlug
luca_campaigns_simulations_create
Simulate a campaign
Run a persisted dry-run simulation without sending messages.
Luca operation: POST /api/campaigns/{id}/simulations
Required scopes: campaigns:write
Required OAuth scope: luca:queue_ops; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填bodyworkspaceIdworkspaceSlugidempotencyKey
luca_campaigns_simulations_get
Get a campaign simulation
Get a campaign simulation run with trace.
Luca operation: GET /api/campaigns/{id}/simulations/{simulationId}
Required scopes: campaigns:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdsimulationId必填workspaceSlug
luca_campaigns_publish
Publish a campaign
Freeze the draft as a new immutable version and point new enrollments at it. Published versions never change. A live campaign reaches real leads through enrollments and through inbound DMs, comments, or story replies that match its trigger. Publish is blocked when the target provider cannot do something the campaign needs, so read the provider capabilities first.
Luca operation: POST /api/campaigns/{id}/publish
Required scopes: campaigns:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_campaigns_set_status
Pause or resume a campaign
Pause or resume a campaign. Archiving is only available in the SetLuca app, so a connected assistant gets 403 for it. A transition that does not make sense for the campaign's current state is rejected rather than forced through.
Luca operation: POST /api/campaigns/{id}/status
Required scopes: campaigns:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive when status is published (resuming sends): has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_campaigns_duplicate
Duplicate a campaign
Copy a campaign into a fresh unpublished draft and leave the original alone. Use it to change a live campaign without touching what is currently running.
Luca operation: POST /api/campaigns/{id}/duplicate
Required scopes: campaigns:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlugidempotencyKey
luca_campaigns_versions_list
List campaign versions
List a campaign's published version history. Published versions cannot change, so this is the record of what actually ran rather than what the draft says today.
Luca operation: GET /api/campaigns/{id}/versions
Required scopes: campaigns:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_campaigns_enrollments_timeline
Read an enrollment timeline
Read every step one enrollment has been through: what got sent, when, and how the lead responded.
Luca operation: GET /api/campaigns/{id}/enrollments/{enrollmentId}/timeline
Required scopes: campaigns:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdenrollmentId必填workspaceSlug
luca_broadcasts_list
List broadcasts
List broadcasts. Query supports limit, cursor, and status.
Luca operation: GET /api/broadcasts
Required scopes: broadcasts:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数querymaxPagesworkspaceIdworkspaceSlug
luca_broadcasts_get
Get a broadcast
Get broadcast detail.
Luca operation: GET /api/broadcasts/{id}
Required scopes: broadcasts:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_broadcasts_create
Create a broadcast
Create a broadcast draft. Body requires campaignId and name.
Luca operation: POST /api/broadcasts
Required scopes: broadcasts:write
Required OAuth scope: luca:queue_ops; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填workspaceIdworkspaceSlugidempotencyKey
luca_broadcasts_preview
Preview a broadcast
Refresh broadcast recipient and sample-message preview.
Luca operation: POST /api/broadcasts/{id}/preview
Required scopes: broadcasts:write
Required OAuth scope: luca:queue_ops; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填bodyworkspaceIdworkspaceSlugidempotencyKey
luca_broadcasts_approve
Approve a broadcast
Approve a safe broadcast draft and snapshot recipients.
Luca operation: POST /api/broadcasts/{id}/approve
Required scopes: broadcasts:write
Required OAuth scope: luca:queue_ops; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填workspaceIdworkspaceSlugidempotencyKey
luca_broadcasts_launch
Launch a broadcast
Launch an approved broadcast. Sends messages to live leads.
Luca operation: POST /api/broadcasts/{id}/launch
Required scopes: broadcasts:write
Required OAuth scope: luca:queue_ops; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_broadcasts_pause
Pause a broadcast
Pause a running broadcast with an optional operator reason.
Luca operation: POST /api/broadcasts/{id}/pause
Required scopes: broadcasts:write
Required OAuth scope: luca:queue_ops; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填bodyworkspaceIdworkspaceSlugidempotencyKey
luca_broadcasts_resume
Resume a broadcast billing paused
Resume a broadcast that billing paused, after buying a pack or updating the card. Sends the remaining messages to live leads; recipients already sent are left alone. A broadcast paused by hand is resumed with luca_broadcasts_retry instead.
Luca operation: POST /api/broadcasts/{id}/resume
Required scopes: broadcasts:write
Required OAuth scope: luca:queue_ops; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填bodyconfirmworkspaceIdworkspaceSlugidempotencyKey
luca_broadcasts_retry
Retry or resume a broadcast
Retry failed broadcast recipients after operator review, or resume a broadcast paused by hand, which also sends to recipients not yet reached. Sends messages to leads.
Luca operation: POST /api/broadcasts/{id}/retry
Required scopes: broadcasts:write
Required OAuth scope: luca:queue_ops; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填bodyconfirmworkspaceIdworkspaceSlugidempotencyKey
luca_broadcasts_cancel
Cancel a broadcast
Cancel a draft, approved, running, paused, or failed broadcast.
Luca operation: POST /api/broadcasts/{id}/cancel
Required scopes: broadcasts:write
Required OAuth scope: luca:queue_ops; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填bodyworkspaceIdworkspaceSlugidempotencyKey
luca_webhooks_subscriptions_list
List webhook subscriptions
List outbound webhook subscriptions.
Luca operation: GET /api/webhook-subscriptions
Required scopes: webhooks:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_webhooks_subscriptions_create
Create a webhook subscription
Create an outbound webhook subscription.
Luca operation: POST /api/webhook-subscriptions
Required scopes: webhooks:write
Required OAuth scope: luca:full; data sensitivity: redacted
Does not require idempotency.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填confirmworkspaceIdworkspaceSlug
luca_webhooks_subscriptions_update
Update a webhook subscription
Update an outbound webhook subscription.
Luca operation: PATCH /api/webhook-subscriptions/{id}
Required scopes: webhooks:write
Required OAuth scope: luca:full; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填bodyconfirmworkspaceIdworkspaceSlugidempotencyKey
luca_webhooks_subscriptions_delete
Delete a webhook subscription
Delete an outbound webhook subscription. Terminal, idempotent soft delete: delivery history stays queryable and the subscription can never be resurrected.
Luca operation: DELETE /api/webhook-subscriptions/{id}
Required scopes: webhooks:write
Required OAuth scope: luca:full; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_webhooks_test_delivery
Send a test webhook
Queue a canonical test webhook event.
Luca operation: POST /api/webhook-subscriptions/test-delivery
Required scopes: webhooks:write
Required OAuth scope: luca:full; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数bodyconfirmworkspaceIdworkspaceSlugidempotencyKey
luca_webhooks_deliveries_list
List webhook deliveries
List webhook deliveries.
Luca operation: GET /api/webhook-subscriptions/deliveries
Required scopes: webhooks:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_webhooks_signature_guide
Read the webhook signature guide
Describe Luca webhook HMAC verification.
Luca operation: GET /api/webhook-subscriptions/signature-guide
Required scopes: webhooks:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_webhooks_deliveries_replay
Replay a webhook delivery
Replay one webhook delivery without changing the event id. Re-triggers the subscriber's downstream automation.
Luca operation: POST /api/webhook-subscriptions/deliveries/{deliveryId}/replay
Required scopes: webhooks:write
Required OAuth scope: luca:full; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数confirmdeliveryId必填workspaceIdworkspaceSlugidempotencyKey
luca_webhooks_events_list
List webhook events
List canonical webhook events of one type, newest first, in the delivered payload fields. Falls back to a documented sample payload when the workspace has none yet.
Luca operation: GET /api/webhook-events
Required scopes: webhooks:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数query必填workspaceIdworkspaceSlug
luca_webhooks_events_replay
Replay a webhook event
Replay one canonical webhook event. Re-triggers subscribers' downstream automations.
Luca operation: POST /api/webhook-subscriptions/events/{eventId}/replay
Required scopes: webhooks:write
Required OAuth scope: luca:full; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数bodyconfirmeventId必填workspaceIdworkspaceSlugidempotencyKey
luca_webhooks_events_bulk_replay
Replay a batch of webhook events
Bulk replay webhook events by type and time range. Re-triggers downstream automations at scale.
Luca operation: POST /api/webhook-subscriptions/events/replay
Required scopes: webhooks:write
Required OAuth scope: luca:full; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数bodyconfirmworkspaceIdworkspaceSlugidempotencyKey
luca_integrations_connectors_list
List available connectors
List Zapier, Make, and CRM provider capabilities.
Luca operation: GET /api/integrations/connectors
Required scopes: integrations:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_integrations_crm_oauth_url
Start a CRM connection
Create a CRM provider OAuth URL and store its one-time state.
Luca operation: GET /api/integrations/crm/providers/{provider}/oauth-url
Required scopes: integrations:write
Required OAuth scope: luca:full; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryprovider必填workspaceIdworkspaceSlug
luca_integrations_crm_connections_list
List CRM connections
List CRM connections.
Luca operation: GET /api/integrations/crm/connections
Required scopes: integrations:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_integrations_crm_connections_create
Create a CRM connection
Create or update a workspace-scoped CRM connection.
Luca operation: POST /api/integrations/crm/connections
Required scopes: integrations:write
Required OAuth scope: luca:full; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填workspaceIdworkspaceSlugidempotencyKey
luca_integrations_crm_connections_schema
Read a CRM's field schema
Discover CRM provider schema.
Luca operation: GET /api/integrations/crm/connections/{id}/schema
Required scopes: integrations:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_integrations_crm_connections_health
Check a CRM connection's health
Check a CRM connection's stored credentials and scopes and record the result. An expired token may be refreshed with the CRM; a provider outage is not detected.
Luca operation: POST /api/integrations/crm/connections/{id}/health
Required scopes: integrations:write
Required OAuth scope: luca:full; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlugidempotencyKey
luca_integrations_crm_connections_webhooks_setup
Save a CRM connection's webhook settings
Save a CRM connection's webhook target and secret as pending. Nothing is registered in the CRM yet.
Luca operation: POST /api/integrations/crm/connections/{id}/webhooks/setup
Required scopes: integrations:write
Required OAuth scope: luca:full; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填bodyconfirmworkspaceIdworkspaceSlugidempotencyKey
luca_integrations_crm_mappings_suggest
Suggest CRM field mappings
Suggest CRM field mappings.
Luca operation: POST /api/integrations/crm/connections/{id}/mappings/suggest
Required scopes: integrations:write
Required OAuth scope: luca:full; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlugidempotencyKey
luca_integrations_crm_mappings_confirm
Confirm CRM field mappings
Confirm CRM field mappings.
Luca operation: PUT /api/integrations/crm/connections/{id}/mappings
Required scopes: integrations:write
Required OAuth scope: luca:full; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填workspaceIdworkspaceSlugidempotencyKey
luca_integrations_crm_sync_runs_list
List CRM sync runs
List CRM sync history.
Luca operation: GET /api/integrations/crm/connections/{id}/sync-runs
Required scopes: integrations:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_integrations_crm_sync_runs_create
Preview a CRM sync
Record a dry-run preview of the changes a CRM sync would make, as a new sync run. Nothing is written to the CRM: the API refuses a live sync.
Luca operation: POST /api/integrations/crm/connections/{id}/sync-runs
Required scopes: integrations:write
Required OAuth scope: luca:full; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填bodyworkspaceIdworkspaceSlugidempotencyKey
luca_integrations_events_list
List integration events
List integration event log.
Luca operation: GET /api/integrations/events
Required scopes: integrations:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数querymaxPagesworkspaceIdworkspaceSlug
luca_integrations_crm_connections_disconnect
Disconnect a CRM
Disable a CRM connection and clear the credentials Luca holds, which stops every sync with that CRM until the coach connects it again. Saved mappings and event history stay. It does not revoke access on the CRM's side.
Luca operation: POST /api/integrations/crm/connections/{id}/disconnect
Required scopes: integrations:write
Required OAuth scope: luca:full; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_voice_profile
Read the coach's voice fingerprint
Read a non-verbatim voice-fingerprint summary: version, example count, last refresh, the measured style of the coach's replies, and the short brief Luca drafts from. A model writes the brief from those replies, and a redacted-tier key reads it as null. No corpus text.
Luca operation: GET /api/voice/profile
Required scopes: voice:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_voice_corpus
Read the coach's voice corpus
List the coach's voice corpus: the writing every draft is matched against. Entry id, source, channel, and age always come back; the writing itself is blanked for a redacted-tier key.
Luca operation: GET /api/voice
Required scopes: voice:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_coach_profile
Read the coach's profile
Read the coach's account record: name, timezone, business hours, and tone slider. Use it to know when the coach is reachable and how formal they want to sound.
Luca operation: GET /api/coaches/me
Required scopes: coach:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_coach_niche
Read the coach's niche
Read the coach's canonical niche, the cohort key their benchmarks are compared against.
Luca operation: GET /api/coaches/niche
Required scopes: coach:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_coach_niche_profile
Read the coach's niche profile
Read the coach's offer, audience, price range, promised outcomes, disqualifiers, and FAQs. This is the context that decides whether a lead is a fit.
Luca operation: GET /api/coaches/niche-profile
Required scopes: coach:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_coach_objection_playbook
Read the coach's objection playbook
Read how the coach wants each objection type handled — price, timing, trust, fit — before drafting a reply to one.
Luca operation: GET /api/coaches/objection-playbook
Required scopes: coach:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_coach_post_call_settings
Read the post-call settings
Read the coach's post-call preferences: what gets summarized, what gets pushed to the CRM, and what the coach fills in themselves.
Luca operation: GET /api/coaches/post-call-settings
Required scopes: coach:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_coach_post_call_crm_mapping
Read the post-call CRM mapping
Read which CRM field each post-call value writes to. Check this before a CRM push to know what will land where.
Luca operation: GET /api/coaches/post-call-crm-mapping
Required scopes: coach:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_coach_post_call_deal_sync
Read the post-call deal sync settings
Read the CRM pipeline and the stage each call outcome moves a deal to.
Luca operation: GET /api/coaches/post-call-deal-sync
Required scopes: coach:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_coach_audit_log
Read the audit log
Read the coach-visible audit trail, newest first, filterable by actor type, action, action prefix, or target. It is the one read that spans every domain, so use it to check what a previous run actually did instead of replaying each list route.
Luca operation: GET /api/audit-log
Required scopes: coach:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数querymaxPagesworkspaceIdworkspaceSlug
luca_usage_spend
Read this period's spend
Read model spend for the period, rolled up by agent and by day, against the billing account's monthly budget, and whether AI replies have paused.
Luca operation: GET /api/usage
Required scopes: usage:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_safety_accounts
Check connected account safety
Read each connected channel account's safety status and 24-hour send count.
Luca operation: GET /api/account-safety
Required scopes: safety:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_channels_list
List channel accounts
List the coach's current channel accounts, one per provider account, with each one's status, health, and what the composer can send through it. Connecting, pausing, and repairing an account stay in the Luca app.
Luca operation: GET /api/channels
Required scopes: channels:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_channels_catalog
List available channels
List every channel Luca supports and whether it can be connected yet. Availability is per channel, not per coach.
Luca operation: GET /api/channels/catalog
Required scopes: channels:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_channels_features
List channel features
List what each provider supports, from sending media to interactive replies, and what still blocks a feature: a permission, a webhook field, or a provider approval. Check this before telling the coach a channel can do something.
Luca operation: GET /api/channels/features
Required scopes: channels:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_channels_get
Get a channel account
Read one channel account: status, health, cleanup state after a disconnect, and the actions the coach can take on it. Older rows stay readable by ID.
Luca operation: GET /api/channels/{id}
Required scopes: channels:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_channels_set_ai_dm_auto_send
Turn auto-send on or off for a channel
Turn Luca's DM auto-send on or off for one channel account. Off puts every Luca draft on that account in the review queue. On lets drafts that pass Luca's safety checks send without review while the workspace switch is also on; this tool leaves that switch as it was. Campaign sends follow their own policy. WhatsApp and disconnected accounts answer 404.
Luca operation: PATCH /api/channels/{id}/auto-send
Required scopes: channels:write
Required OAuth scope: luca:full; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive when enabled is true (lets Luca's replies reach leads without review): has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填body必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_reports_scorecard
Read the scorecard
Read the sales scorecard for a window: calls booked and completed, show rate, won and lost, draft approvals, and hours saved.
Luca operation: GET /api/reports/scorecard
Required scopes: reports:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_reports_morning
Read the morning report
Structured 24h review-queue digest (items + counts) for the coach. No model call; summarize client-side.
Luca operation: GET /api/reports/morning
Required scopes: reports:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_insights_unread_count
Count unread insights
How many insights the coach has not read yet. Cheap enough to poll before pulling the whole feed.
Luca operation: GET /api/insights/unread-count
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_insights_mark_read
Mark an insight read
Mark one insight read, so it stops coming back at the top of the feed.
Luca operation: POST /api/insights/{id}/read
Required scopes: insights:write
Required OAuth scope: luca:draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlugidempotencyKey
luca_insights_dismiss
Dismiss an insight
Dismiss one insight the coach does not want to act on. Use this rather than leaving it unread forever.
Luca operation: POST /api/insights/{id}/dismiss
Required scopes: insights:write
Required OAuth scope: luca:draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlugidempotencyKey
luca_insights_mark_actioned
Mark an insight actioned
Record that the thing an insight asked for was actually done. Use it after doing the work, not instead of it.
Luca operation: POST /api/insights/{id}/action
Required scopes: insights:write
Required OAuth scope: luca:draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlugidempotencyKey
luca_insights_settings_get
Read alert delivery settings
Read which insight alerts reach the coach and how. Before the coach changes anything this returns the defaults, so it never 404s. Check it before concluding a quiet feed means nothing is happening, since alerts may be muted.
Luca operation: GET /api/insights/settings
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_insights_settings_update
Update alert delivery settings
Merge-patch the coach's alert-delivery settings. Send only what you are changing; anything left out keeps its current value.
Luca operation: PUT /api/insights/settings
Required scopes: insights:write
Required OAuth scope: luca:draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填workspaceIdworkspaceSlugidempotencyKey
luca_learning_panel
Read what Luca wants to learn
Read which of the three profile questions Luca still owes an answer to, with suggested answers inferred from the coach's own words. The worked example pair is blanked for a redacted-tier key.
Luca operation: GET /api/teach-luca
Required scopes: learning:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_learning_framework_performance
Read framework objection performance
Win rate by objection bucket for the sales framework the coach has configured right now, over a rolling window. These numbers are correlational — read them as a signal, not as proof a framework caused the result.
Luca operation: GET /api/framework-performance
Required scopes: learning:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_learning_ab_tests_list
List A/B tests
List the coach's A/B tests, newest first, optionally filtered by status. Variant config comes back as stored, since its shape depends on what the test compares. Creating, starting, stopping, and adopting a test stay in the Luca app.
Luca operation: GET /api/ab-tests
Required scopes: learning:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_learning_ab_tests_get
Get an A/B test
Read one A/B test with its per-variant numbers: how many leads each arm saw, and how each is doing against the success metric. Small samples swing widely, so say how many leads each arm has before calling a winner.
Luca operation: GET /api/ab-tests/{id}
Required scopes: learning:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlug
luca_learning_proposals_list
List learning proposals
List what the coach's tests have learned and are proposing they act on, newest first. Dismissed proposals are left out unless you ask for them.
Luca operation: GET /api/learning-proposals
Required scopes: learning:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_learning_proposals_dismiss
Dismiss a learning proposal
Dismiss one learning proposal so it drops out of the default list. Use it when the coach has decided against the change, not when you have simply read it.
Luca operation: POST /api/learning-proposals/{id}/dismiss
Required scopes: learning:write
Required OAuth scope: luca:draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlugidempotencyKey
luca_knowledge_suggestions
List knowledge suggestions
List profile changes proposed from the coach's own knowledge sources, each with the excerpt it was drawn from and the value it would replace. Approving one is app-only, so a person checks each change before it reaches the profile; this lists them and luca_knowledge_reject_suggestion turns one down.
Luca operation: GET /api/knowledge/suggestions
Required scopes: knowledge:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_knowledge_reject_suggestion
Reject a knowledge suggestion
Reject a profile suggestion so it stops being offered. The profile is left as it stands.
Luca operation: POST /api/knowledge/suggestions/{id}/reject
Required scopes: knowledge:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlugidempotencyKey
luca_knowledge_sources_list
List knowledge sources
List the content sources the coach has connected — Notion, Google Docs, a website, an Instagram bio — with the sync state of each one. Connecting a new source is app-only; this lists what is already there.
Luca operation: GET /api/knowledge/sources
Required scopes: knowledge:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_knowledge_sources_sync
Re-sync a knowledge source
Queue a re-read of one knowledge source now rather than waiting for its next scheduled sync. It returns as soon as the job is queued, so any new suggestions appear on a later read.
Luca operation: POST /api/knowledge/sources/{id}/sync
Required scopes: knowledge:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlugidempotencyKey
luca_knowledge_sources_disconnect
Disconnect a knowledge source
Delete a knowledge source and every suggestion it produced, whatever their status; values the coach already approved stay in the profile, because approving copies them there.
Luca operation: DELETE /api/knowledge/sources/{id}
Required scopes: knowledge:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填workspaceIdworkspaceSlugidempotencyKey
luca_memory_list
List what Luca remembers
List what Luca remembers, filtered by lead, scope, source, trust level, or free text. The fact, the reasoning, and the quoted evidence are blanked for a redacted-tier key; trust level, lead, and dates always come back.
Luca operation: GET /api/memory
Required scopes: memory:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_memory_update
Edit a memory
Correct one memory: edit the fact, flag it disputed when it turns out to be wrong, restore an archived one, or make it win over a conflicting memory.
Luca operation: PATCH /api/memory/{id}
Required scopes: memory:write
Required OAuth scope: luca:draft; data sensitivity: full_content
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填bodyworkspaceIdworkspaceSlugidempotencyKey
luca_memory_set_archived
Archive or restore memories
Archive or restore several memories at once. Archiving stops Luca using a fact while the record and its provenance survive, so it is always reversible.
Luca operation: POST /api/memory/bulk
Required scopes: memory:write
Required OAuth scope: luca:draft; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填workspaceIdworkspaceSlugidempotencyKey
luca_cadences_rescue_start
Start a silent-lead rescue
Enroll silent leads into the multi-day rescue cadence. Starts outbound touches to real leads.
Luca operation: POST /api/cadences/rescue
Required scopes: cadences:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数body必填confirmworkspaceIdworkspaceSlugidempotencyKey
luca_cadences_pause
Pause a lead's cadence
Pause (cancel) a lead's running rescue cadence with an optional reason.
Luca operation: POST /api/leads/{id}/cadence/pause
Required scopes: cadences:write
Required OAuth scope: luca:queue_ops; data sensitivity: redacted
Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数id必填bodyworkspaceIdworkspaceSlugidempotencyKey
luca_analytics_funnel
Read the funnel
Pipeline funnel stage counts with period and channel filters. Returns counts and conversion rates for each funnel stage plus period-over-period deltas.
Luca operation: GET /api/analytics/funnel
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_analytics_revenue
Read revenue
Revenue attribution and plan ROI for a period. Returns total revenue, ROI, and a per-channel revenue breakdown.
Luca operation: GET /api/analytics/revenue
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_analytics_speed_impact
Read what reply speed is worth
Fast-vs-slow first-reply booking-rate impact for a period. Returns fast- and slow-reply conversion rates, a lost-opportunity estimate, and the peak performance reply window.
Luca operation: GET /api/analytics/speed-impact
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_analytics_forecast
Read the revenue forecast
Point-in-time pipeline revenue forecast with on-track, optimistic, and conservative scenarios based on pipeline stage probabilities and historical conversion rates.
Luca operation: GET /api/analytics/forecast
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug
luca_analytics_call_intelligence
Read call intelligence
Post-call intelligence for a period: show rate, close rate, average rating and rating distribution, call-to-close lag, repeat-call cohort, day-of-week and call-sequence show rates, and surprise patterns, derived from post-call events and coach-recorded outcomes.
Luca operation: GET /api/analytics/call-intelligence
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_analytics_call_intelligence_calls
List calls behind call intelligence
Most recent completed calls with a generated summary, newest first: the coach-facing summary, attendance outcome, rating, and lead name.
Luca operation: GET /api/analytics/call-intelligence/calls
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_analytics_ghosted_leads
Analyze leads who stopped replying
Summarize leads who stopped replying during a period, including their count, follow-up recovery rate, estimated lost revenue, and common reasons conversations stalled. This is an aggregate report, not a list of individual leads.
Luca operation: GET /api/analytics/ghosted-leads
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: full_content
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_analytics_trust_score
Read the trust score
Draft approval, edit, and rejection rates plus the auto-send gate flag for a period.
Luca operation: GET /api/analytics/trust-score
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_analytics_lead_score
Read a lead's score
Predictive booking-likelihood score (0-100) for one lead from the coach's trained bucket-rate model, with a confidence tier and the top contributing features. Honest about insufficient data: an under-trained model returns a null score and low confidence instead of a fabricated number.
Luca operation: GET /api/analytics/lead-score/{leadId}
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数leadId必填workspaceIdworkspaceSlug
luca_analytics_loss_reasons
Read why deals are lost
Category breakdown of automatic 'why you lost' analyses for a period: count and estimated lost revenue per category (price objection, ghosted after a call-to-action, competitor, slow reply, bad fit, other), derived from a per-lead loss analysis generated when a lead goes silent or lost.
Luca operation: GET /api/analytics/loss-reasons
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_analytics_content_attribution
Read which content brings leads
Per-content rollup (leads touched, qualified, booked, revenue) of attributed touches for a period. Content is attributed automatically from an Instagram comment or Story reply that carries a real media id, or tagged manually; an honest empty list means no content is attributed yet, not zero performance.
Luca operation: GET /api/analytics/content-attribution
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_analytics_content_performance
Read content performance
Per-post rollup (reach, engagement rate, likes/comments/saves/shares, attributed leads/bookings/revenue) for each Instagram post, reel, story, or carousel over a period. Insight fields stay null until the coach's account grants Instagram insights access — read that as not connected yet, not zero engagement.
Luca operation: GET /api/analytics/content-performance
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_analytics_topic_performance
Read topic performance
Weekly rollup by normalized content topic (post count, average engagement rate, attributed leads/bookings/revenue per theme). Defaults to the most recently computed week when weekStart is omitted; an empty items list is the honest, expected state until content topics are extracted, not zero performance.
Luca operation: GET /api/analytics/topic-performance
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数queryworkspaceIdworkspaceSlug
luca_analytics_benchmarks
Read peer benchmarks
This coach's own cross-coach benchmark percentiles (e.g. 'top 15% for response speed among fitness coaches'), never another coach's data. `comingSoon: true` with an empty metrics list is the honest, expected state until the cross-coach benchmark pipeline populates this coach's row — never a fabricated comparison.
Luca operation: GET /api/analytics/benchmarks
Required scopes: analytics:read
Required OAuth scope: luca:read; data sensitivity: redacted
Does not require idempotency.
Use workspaceId or workspaceSlug to override the default workspace configured by environment.
输入参数workspaceIdworkspaceSlug