account_delete
ChatGPTDelete your own login only after all memberships and retained-history restrictions are resolved. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
business_get
ChatGPTRead the versioned commercial profile and confirmed-value checkpoint. No workspace returns workspace:null and profile:null.
business_patch
ChatGPTSynchronously edit supplied profile fields using expected_version. Omitted fields stay unchanged; null clears optional fields; arrays replace. Append a revision without regenerating criteria or changing approved campaigns. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
business_post
ChatGPTCreate a workspace with profile version 1 and empty voice. When you already have a workspace (selected by the workspace rule) it is returned unchanged with created:false. Creates no setup draft and activates no work. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
campaigns_activate
ChatGPTSelect one exact approved revision for new Journey starts and set active intent, or resume paused work under its retained revisions. A dependent Campaign joins the executable version once its preceding Campaign is activated. The existing scheduled runtime may contact external recipients, including retained pending work, subject to account, readiness and incident gates. The receipt confirms saved intent and selection, not compilation or delivery. Refused with OUTREACH_CUSTOMER_LIST_NOT_CURRENT when starting or changing intent or revision while the connected CRM's customer list is missing or stale; unchanged active selections are no-ops, and a disconnected CRM retains its saved list. customer_list records the accepted decision. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
campaigns_detail
ChatGPTRead one Campaign: start rules, sequence, templates or instructions, delays, schedule, senders, its draft/approval history, the revision selected for new Journey starts and its intent (inactive, active or paused). Account readiness is independent.
campaigns_draft_patch
ChatGPTSave supplied policy changes as a new unapproved immutable draft using expected_version and the current draft revision_ref. Omitted profile_version and voice_version use current confirmed Business revisions; permitted senders are pinned to their current revisions. Active approved work continues; pause, readiness and incident holds and started Journeys are unchanged. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
campaigns_get
ChatGPTRead channel Campaigns, optionally by journey_ref or channel. Uses the selected workspace; no provider selector.
campaigns_lead_stop_post
ChatGPTExplicitly stop every proactive LinkedIn and email Campaign for this lead with confirm:true and an idempotent request_ref. Writes the local manual_stop barrier and requests provider cancellation; provider_stops_pending means reconciliation is still required. Inbound replies remain available. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
campaigns_message_get
ChatGPTRead an actual saved per-lead message in the selected workspace. No canonical campaign membership is inferred for historical drafts. Does not generate, approve, activate or send.
campaigns_message_rating_post
ChatGPTRate one exact confirmed sent sample using its source_digest. Save up/down feedback and an optional note/scope; feedback never changes approved copy. A Campaign or Business voice edit is a separate explicit version-checked operation. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
campaigns_message_review_post
ChatGPTReview one exact saved LinkedIn or email message using source_digest and expected_review_status. Approve schedules only the reviewed bytes; it never activates a Campaign. Skip closes only this channel's branch, without global suppression. Retry re-checks the account and sender and atomically approves the same bytes only after confirming that no begun, unknown or confirmed send could be replayed. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
campaigns_message_revisions_post
ChatGPTCorrect an actual still-unapproved per-lead saved draft into a new pending revision using exact source_digest/review state and idempotent request_ref. Preserve old bytes, person/signature, source and template/prompt/library provenance. Existing reviewer approval path applies; never approves or sends. Approved/sent/superseded messages and missing signature pins are rejected. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
campaigns_message_rewrite_post
ChatGPTRequest a new pending draft from one exact pending source_digest with an idempotent request_ref. Preserves earlier bytes and provenance and never approves. Read the source message's rewrite_work until it supplies the exact replacement or a bounded failure; never restart an uncertain job blindly. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
campaigns_pause
ChatGPTPause every automatic step of this Campaign in every started Journey, including follow-ups. Pending work and history remain; begun or unknown effects reconcile. Other channels continue where their start rules permit. Does not claim provider stop confirmation. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
campaigns_post
ChatGPTSave an inactive unapproved channel Campaign draft in a Journey: start rules (journey_start, sent/unaccepted relative to another Campaign, or Email after linkedin_first_dm_skipped), steps, templates or generated-writing instructions, delays, schedule and canonical sender_ids. Several persons may be permitted; each lead keeps one person. Never sends. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
campaigns_publish
ChatGPTApprove one exact revision/digest; records actor/time. It never activates, resumes or sends. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
campaigns_replies_get
ChatGPTRead waiting replies and due requested follow-ups with their exact turn version, saved draft, original account and conversation. Shares the same reply turn as Slack; no duplicate approval store.
campaigns_reply_get
ChatGPTRead one exact reply turn and its confirmed, queued or uncertain delivery evidence. Unknown routing is never permission to send.
campaigns_reply_review_post
ChatGPTSend or skip one reply with expected_version and source_digest. Optional edited text answers in the original LinkedIn conversation or mailbox thread. Shares Slack's claim and send fence; queued or uncertain is not sent and must not be repeated. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
campaigns_review_count_get
ChatGPTRead the selected workspace's waiting Review item count without loading message bodies.
campaigns_review_settings_get
ChatGPTRead the selected workspace's versioned LinkedIn and email review choices. Each channel approves every new draft or sends routine drafts with a 0%, 10%, 20% or 50% post-send sample; 0% disables sampling. Flagged drafts, replies and requested follow-ups always wait.
campaigns_review_settings_patch
ChatGPTSave supplied channel review choices with expected_version. send_and_sample lets future unflagged drafts in already active approved Campaigns automatically send to external recipients under existing account, schedule and safety gates. sample_rate selects confirmed sent messages for later rating; 0% disables sampling. Applies to new drafts only; existing pending drafts still require a decision. Never activates a Campaign or releases its pending messages. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
campaigns_reviews_get
ChatGPTRead the selected workspace's saved Campaign review queue, including the exact person, account and action. Paginated, read-only; failed reads stay unavailable. Members and operators use the same workflow.
campaigns_runtime
ChatGPTRead started Journeys of this Campaign grouped by the executable version and Campaign revision they retain: started, continuing, prepared and pending, plus recorded gate reasons only. Intent is separate from execution and readiness. No recorded reason does not prove ready; failed reads remain unavailable.
campaigns_samples_get
ChatGPTRead unrated sampled messages with provider-confirmed delivery only, scoped to the selected workspace. Planned or enrolled work is not a sent sample.
campaigns_test_detail
ChatGPTRead saved signed test outputs and exact provenance. Pending is authoritative; baseline outputs are never regenerated.
campaigns_tests_get
ChatGPTDiscover durable saved test receipts after a lost response or in a fresh session. Paginated summaries contain no output bodies.
campaigns_tests_post
ChatGPTQueue an isolated saved candidate test with exact revision/digest/CAS and idempotent request_ref. Sample at most 20 explicit leads or reuse a completed baseline's exact leads and saved before outputs. Compose after only; disclose changed context. Preview person is provenance, never lead assignment. Does not enroll, approve, activate or send. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
commercial_voice_get
ChatGPTRead general commercial tone and do/avoid rules. Empty voice exists at version 0.
commercial_voice_patch
ChatGPTSynchronously edit general voice with expected_version (0 for the first edit). Arrays replace; null clears tone. New drafts use it, approved campaign pins remain, and Scout never receives voice. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
crm_client_mapping_apply
ChatGPTApply a bounded company mapping plan to the workspace named in the plan, using its current mapping and schema versions. No tokens, arbitrary mappings or connected flag updates. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
crm_client_mapping_context
ChatGPTRead the live HubSpot company schema, current mapping and bounded plan schema for an explicitly named workspace you belong to. May refresh and replace stored CRM credentials or mark the connection as needing reconnect; this synchronous maintenance uses the existing authorization and does not save mappings or write CRM records.
crm_disconnect
ChatGPTDisconnect the connected CRM (HubSpot or Attio) from the current workspace. HubSpot grants are revoked at HubSpot; Lifty deletes its Attio token. Refused while a CRM sync is running or when no CRM is connected. Records already written stay in the CRM. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
crm_get
ChatGPTWithout attempt_ref read the connected CRM (HubSpot or Attio; provider null when none). With it verify only that exact authorization attempt, including reconnection.
crm_mapping_apply
ChatGPTSave explicit validated edits to the full mapping with current portal and mapping version checks, preserving unrelated mappings. Does not sync CRM records or create properties. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
crm_mapping_catalog
ChatGPTRead the current workspace's full saved mapping, supported sources/transforms/write rules and the live CRM schema: HubSpot contact/company properties or Attio People/Companies attributes, including internal enum values and select options. Covers the complete mapping rather than only bounded company setup. May refresh and replace stored CRM credentials or mark the connection as needing reconnect; this synchronous maintenance uses the existing authorization and does not save mappings or write CRM records.
crm_mapping_context
ChatGPTHubSpot only: read the live portal company schema/mapping and its bounded input schema. Attio needs no separate company setup. May refresh and replace stored CRM credentials or mark the connection as needing reconnect; this synchronous maintenance uses the existing authorization and does not save mappings or write CRM records.
crm_mapping_preview
ChatGPTPreview up to 25 explicitly selected saved leads against the connected HubSpot or Attio schema and existing record values, using saved mappings or optional unsaved edits. Returns proposed field values, skipped reasons, conflicts and preview_digest. May refresh and replace stored CRM credentials or mark the connection as needing reconnect; this synchronous maintenance uses the existing authorization and does not save mappings or write CRM records.
crm_mapping_sources
ChatGPTRead saved discovery/research evidence for the explicitly selected leads. Person location and company headquarters are distinct; a missing source is unknown. Does not acquire or enrich leads.
crm_mapping_status
ChatGPTRead the exact mapping replay receipt, including per-field live readback and skipped or stale values. Partial or failed runs are not full success.
crm_mapping_sync
ChatGPTQueue updates to existing contacts and companies in the current workspace's connected HubSpot or Attio account for up to 25 explicitly selected leads, using saved mappings, the current preview_digest and a stable request_ref. Mapping write policies may overwrite existing field values. Repeating the same request reuses its exact run_ref. Returns an asynchronous receipt, not verified completion. Does not create CRM records, discover leads or send outreach. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
crm_patch
ChatGPTHubSpot only: apply a bounded company mapping plan using the current mapping schema. No tokens, arbitrary mappings or connected flag updates. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
crm_post
ChatGPTStart a new connection/reconnection of the CRM the founder uses and return the real consent link immediately. Send provider hubspot or attio; omitted means HubSpot. One CRM at a time: disconnect the other first. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
crm_preferences_get
ChatGPTRead what Lifty writes to the selected CRM besides mapped fields: research notes (none or on_complete), conversations (none, on_reply or all) and their channels (email, linkedin), with the version to change them. A disconnected CRM keeps its choices. Without a CRM returns CRM_NOT_SELECTED. Read-only.
crm_preferences_patch
ChatGPTChange research notes, conversations or their channels with expected_version. Omitted choices keep their saved value and channels replaces the list. Turning conversations on from none needs channels. Applies to future CRM writes only: notes and conversations already in the CRM stay. Does not start a CRM sync, outreach or research. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
crm_property_create
ChatGPTExplicitly create a missing HubSpot property or Attio attribute only when workspace provisioning policy permits. Requires evidence that no compatible property already exists; cannot bypass mapping conflicts. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
crm_records
ChatGPTRead verified HubSpot or Attio contact and company links for the existing sync cohort. Supply the known run_ref or omit for the latest CRM sync. This never starts a sync. May refresh and replace stored CRM credentials or mark the connection as needing reconnect; this synchronous maintenance uses the existing authorization and does not save mappings or write CRM records.
crm_sync_start
ChatGPTQueue delivery of up to 2,000 eligible saved leads to the current workspace's connected HubSpot or Attio account. Reattaches an active sync or retries its failed cohort before selecting unsynced qualified leads. Creates or updates CRM contacts and companies and mirrors research according to saved CRM preferences. Returns an asynchronous run_ref; does not discover leads or send outreach. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
crm_sync_status
ChatGPTRead the latest CRM sync receipt, identified by its run_ref. A different run cannot prove an earlier sync completed. This read never starts or repeats a sync.
customer_exclusions_import
ChatGPTReplace this workspace's founder-uploaded customers from a CSV of company domains and/or exact emails. Deduplicates case/scheme/www domain variants; free-mail hosts protect only exact emails. Rejected rows contain row numbers and reasons. Returns saved counts and added/removed counts; a header-only CSV clears the founder upload. CRM/manual protections remain. Does not change source choice, grant customer-data access, acquire leads, call a provider, resume research or send outreach. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
customer_exclusions_source_choice_get
ChatGPTRead the founder's explicit customer-source choice and current version, independently of CRM connection or provider grants. Unselected means no choice has been saved and authorizes no CRM customer reads. CRM lists the selected sources; file and none enable no CRM reads. All saved exclusions remain enforced. Read-only; unavailable is unknown, never consent.
customer_exclusions_source_choice_post
ChatGPTSave the founder's explicit choice using expected_version from source-choice GET. CRM requires the current provider and each authorized source once; file and none require a null provider and no CRM sources. Enabling CRM queues a durable refresh; only enabled required sources can hold new Journey starts or activation when stale. File/none stop CRM customer reads and preserve every saved exclusion. Uploads can complement CRM without changing this choice. Does not activate or resume outreach. After an uncertain response read the saved choice before retrying. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
customer_exclusions_status
ChatGPTRead total saved and founder-uploaded customer domain/email counts, the latest founder CSV import revision, accepted/rejected rows with reasons, founder-upload added/removed counts and candidates excluded. Total saved domains include CRM and manual protections. source_choice separately reports the founder's explicit CRM, file or neither choice; connecting a CRM does not enable customer reads. crm_refresh reports freshness for enabled CRM sources, with each source's last attempt and success. Null reads are unknown. Read-only; unavailable does not mean an empty list.
journeys_activate
ChatGPTSelect one exact approved Journey revision for new Journey starts. Its executable version is derived from that revision and each activated Campaign's selected revision; started Journeys keep theirs. Campaign intent is unchanged. The existing scheduled runtime may contact external recipients through active Campaigns, subject to account, readiness and safety gates. The receipt confirms saved selection, not compilation or delivery. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
journeys_detail
ChatGPTRead one Journey: audience and shared stops, draft and approval history, participating Campaigns and the executable version used for new Journey starts. Does not generate or change work.
journeys_draft_patch
ChatGPTAppend a Journey draft with expected_version and its exact source revision_ref. Saving never pauses or activates work; started Journeys keep their executable versions. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
journeys_get
ChatGPTRead saved Journeys in the selected workspace with their selected revision and executable version. Unknown reads are unavailable, not an empty audience.
journeys_post
ChatGPTSave a persistent audience rule and the shared stops as a Journey draft. Qualified audience consumes Searches facts; a static list is an explicit customer choice, never a calibration sample. Does not approve or activate. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
journeys_publish
ChatGPTApprove one exact Journey revision and digest. Records actor and time only; does not activate, start Journeys or authorize sending. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
leads_list
ChatGPTList researched people, newest first: grade, fit rationale, research time and a dashboard link. Filter by grade and by the Monday of the week their first research completed; page with next_cursor. Read-only; detail and feedback live in the dashboard.
linkedin_context
ChatGPTRead the public guide for LinkedIn outreach: what Lifty sends, who owns sequences and accounts, what the activity counts mean and why work waits. No workspace data.
linkedin_get
ChatGPTRead LinkedIn activity today (since 00:00 UTC) and over the last 7 days, the same periods as the Senders page: invitations sent and accepted, messages sent and replies received, as confirmed events (not people), for the workspace and each LinkedIn account. With sender_id, totals and accounts cover only that sender's account; a sender without a LinkedIn account has no accounts and true zero counts. Each account also shows its connection status, usage state and why its due work waits. Read-only; never contacts LinkedIn or changes work.
next_step
ChatGPTRead the next step from saved Business resources, setup draft, research and campaign receipts together with the current stage guide. Does not start work, accept a sample or authorize sending.
notifications_channels
ChatGPTRead Slack channels currently available to Lifty before choosing a destination.
notifications_connect
ChatGPTStart Slack connection/reconnection and immediately return the workspace consent link and exact attempt reference. Supersedes earlier unused pending Slack consent links for this workspace. Does not replace the existing Slack grant, change notification routes or post a message. Show the returned link; connection requires user consent and verification of that exact attempt. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
notifications_destination_upsert
ChatGPTSave or update a Slack channel as a notification destination in the current workspace and return its saved reference. Does not change notification routes, authorize Slack, post a message or start outreach. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
notifications_disconnect
ChatGPTDisconnect Slack from the current workspace. Notifications stop until Slack is reconnected; saved destinations and routes are not deleted. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
notifications_get
ChatGPTRead notification routes/destinations and Slack state, or verify the exact Slack attempt_ref.
notifications_route_set
ChatGPTSet the saved Slack destination and enabled flag for one supported notification type in the current workspace. Replaces that routing rule and controls where future matching notifications go. Does not authorize Slack, post a message or start outreach. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
notifications_test
ChatGPTSend one test notification to a saved Slack destination. Posts a visible message in that channel; it does not change routes or authorize outreach. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
research_criteria_get
ChatGPTRead the current versioned Scout criteria: text, research fields and the source versions the server recorded.
research_criteria_patch
ChatGPTSynchronously append a criteria revision with expected_version and text and/or research_fields. The server records source versions. New research uses the new version; saved history keeps its version. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
research_schedule_activate
ChatGPTActivate weekly research with expected_version. Requires saved targeting and research criteria; does not require a sample, CRM or outreach. Research starts from the next platform cycle within the remaining weekly volume. Repeating the current state returns it unchanged. Never activates outreach. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
research_schedule_get
ChatGPTRead the weekly research schedule: active or paused, weekly_target, this workspace's weekly research limit and the effective target (the lower of the two). Until the founder sets a number, weekly_target follows the plan and reads as its limit. Every workspace has one from creation, paused at version 0.
research_schedule_patch
ChatGPTSynchronously change weekly_target with expected_version: a number from 1 up to the limit, or null to follow the plan's full limit again, including later plan changes. It applies to the current week; people already completed or reserved stay counted. A target above the weekly research limit returns TARGET_ABOVE_LIMIT with the limit. Does not activate research. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
research_schedule_pause
ChatGPTPause weekly research with expected_version. No new people are admitted; research already in progress finishes and its results stay. Repeating the current state returns it unchanged. Does not change outreach, CRM or the sample. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
research_schedule_status
ChatGPTRead one Monday-to-Monday UTC week (default: the current week): completed and qualified people, reservations, remaining volume, a per-day breakdown that adds up to completed, the reset time and, for a closed week under target that the workspace existed for in full, the shortfall reason (paused when the schedule was paused at any time in the week).
sample_review_confirm
ChatGPTRecord that the founder confirmed the latest finished sample, by its run_ref, when they accept it or move on without changes. Repeating it keeps the first confirmation. next_step returns the sample review until the latest sample is confirmed. Does not change targeting, start research or authorize outreach. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
sample_review_get
ChatGPTRead the current sample: its five people, grades, run state, reviewed_at once the founder confirmed it and, when failed, the customer reason in error_code.
sample_review_post
ChatGPTQueue a five-person discovery and research sample for the current targeting, reattach an active run, or retry an incomplete failed sample using its saved people. Consumes this week's research volume; when a new sample cannot reserve five places, returns RESEARCH_LIMIT_REACHED and resets_at and starts nothing. Check sample_review_progress or sample_review_get for completion. Never activates weekly research, CRM sync or outreach. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
sample_review_progress
ChatGPTWait up to 25 seconds for a change to this exact run. Pass the last cursor to resume. Returns the complete current bounded cohort, live research count and terminal state; not a persisted event history. A failed run's error_code is a customer reason. Read-only and reauthorized on each poll.
senders_context
ChatGPTRead the public guide for senders: who a sender is, roster-first lookup by id, name, signature and booking link rules, and soft delete. No workspace data.
senders_delete
ChatGPTSoft-delete a person with expected_version and confirm:true. The person leaves the roster and every account they own is disconnected exactly as sending-accounts disconnect; history stays. 200 when Lifty's access was confirmed removed for every account (or not applicable), 202 when the accounts are blocked but removal at the provider is still unconfirmed: repeat the same request to finish it. Not reversible. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
senders_get
ChatGPTRead the selected workspace's senders (named people) with their name, signature, booking link, version and every account they own, including disconnected history. Find a known person here and use the returned id; names are not identifiers. Deleted senders are not listed. Read-only.
senders_patch
ChatGPTChange name, signature and/or booking_url with expected_version. Omitted fields stay; null clears signature or booking_url. A new signature signs newly prepared emails and recomposes still-unapproved previews (recomposing counts them); approved emails keep their exact text. Never sends. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
senders_post
ChatGPTCreate a new person at version 1 with no accounts. Only for someone absent from the senders roster: it never looks up or reuses a person by name, and two people may share a name. Signature is the founder's own words (plain text, at most 500 characters, links only with https). Never connects, activates or sends. After a lost response read the roster before retrying. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
sending_accounts_attempt
ChatGPTCheck and reconcile one connection attempt: pending, connected (account_id), failed (reason) or expired, plus declaration and durable progress. During verifying, this may persist the account connection/reconnection or a verified failure from authorization already received. declaration_required, preparing and sign_in_required mean the person must open the same connection link. A failed or timed-out check is unknown, not a failed connection: use bounded backoff. Continues only the connection/reconnection the user already requested; never creates a new authorization link or starts outreach.
sending_accounts_connect
ChatGPTStart connecting a LinkedIn account or mailbox for an existing sender_id (from the senders roster). Returns connection_url and durable progress: declaration_required, preparing, sign_in_required, verifying or complete. Until verifying, show connection_url: the connect page asks the declaration and opens the sign-in. A live attempt for the same sender and channel is reused (created:false), even when its link text changes; an expired one never blocks a new connect. The account exists only after verified authorization. Connecting never activates a campaign or sends. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
sending_accounts_context
ChatGPTRead the public guide for sending accounts: connect, reconnect, pause, resume, disconnect, observation and the browser declaration. No workspace data.
sending_accounts_deliverability
ChatGPTRead inbox health for an explicit workspace: each inbox's senders, warmup, recent placement tests, campaigns, approval, notes, send checks and today's sends against its daily limit, with the same states and explanations as the Deliverability page. Filter by sender ref or unassigned, or one mailbox; detail=placement reads stored reports for one mailbox_ref. Read-only: never starts a placement test or changes sending.
sending_accounts_disconnect
ChatGPTDisconnect this account with confirm:true: it is paused and disconnected at once (new sends stop; submitted sends keep their history), then Lifty requests removal of its access at the provider. 200 when removal is confirmed (access_revoked_at set) or not applicable, 202 when it is still unconfirmed: repeat the same request to finish it, no new consent needed. Other accounts are unaffected. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
sending_accounts_get
ChatGPTRead sending accounts, optionally filtered by sender_id and channel, including disconnected history: connection status, usage state (active/paused), sending (allowed now, else reason), daily limits, last verified check, observation (verified/unverified), access removal, declaration and sends. Read-only; never checks or changes a provider. Unverified means the last known facts are older than the freshness window, not a disconnection.
sending_accounts_pause
ChatGPTPause this account: nothing new is done with it until resumed; in-flight sends settle and its connection stays. Idempotent. Other accounts and campaigns are unchanged. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
sending_accounts_placement_start
ChatGPTQueue one Mailivery placement test for a warmed mailbox only after the user explicitly agrees: Mailivery sends the given subject/body from that mailbox to roughly 20-40 of its seed inboxes and uses one test credit. Use the first email of the real sequence. A retried start returns the open test. The result never releases a mailbox or starts campaigns. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
sending_accounts_placement_status
ChatGPTRead the latest Mailivery placement test for one warmed mailbox (connection_ref when the workspace has several), whether a new one can be requested, and whether its result gates sending. Read-only.
sending_accounts_reconnect
ChatGPTStart a new authorization of this same account (same mailbox or LinkedIn profile); returns connection_url like connect and reuses its open reconnect attempt. Another identity fails with identity_mismatch. After needs_reconnect the usage state is kept; after disconnect the account returns paused until resumed. Never activates a campaign. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
sending_accounts_resume
ChatGPTResume this account (state active). An already active approved campaign may automatically send to external recipients through it, including pending work, when its connection and all existing readiness, schedule and incident gates allow. Does not approve or activate a campaign or release separate sending holds. Refused with ACCOUNT_DISCONNECTED when disconnected: reconnect first. Idempotent. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
sending_accounts_warmup_pause
ChatGPTPause warmup for the explicit workspace and mailbox (connection_ref = sending account id). Warmup pause, resume and remove never pause or resume outreach campaigns. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
sending_accounts_warmup_remove
ChatGPTRemove warmup for the explicit workspace and mailbox (connection_ref = sending account id). Warmup pause, resume and remove never pause or resume outreach campaigns. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
sending_accounts_warmup_resume
ChatGPTResume warmup for the explicit workspace and mailbox (connection_ref = sending account id). Warmup pause, resume and remove never pause or resume outreach campaigns. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
sending_accounts_warmup_start
ChatGPTStart warmup for a verified mailbox (connection_ref = sending account id, required when the workspace has several email accounts) through Lifty's Google setup link; no password fallback. A dedicated mailbox needs a healthy check after 21 active warmup days before it can send. Starting warmup never pauses or resumes campaigns. Requires the founder's approval; a pending receipt does not confirm completion. Check its status or read back the saved resource.
sending_accounts_warmup_status
ChatGPTRead warmup status for an explicit workspace and mailbox. connection_ref is the sending account id; it is required when the workspace has several email accounts. warmup_ready is warmup's own contribution only: campaign activation, placement and pauses are separate.
setup_delete_draft
ChatGPTDiscard setup only before submission. The database refuses discarding a submitted draft. Does not delete Business resources or history. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
setup_generation_context
ChatGPTRead the confirmed profile, saved server draft, current Scout base text/version and API-owned generation guidance. Generate only Scout criteria.
setup_get_draft
ChatGPTRead the workspace-owned server draft, generated criteria, gates and immutable submission state. The server draft is the only setup source.
setup_patch_draft
ChatGPTReplace the current workspace draft with the supplied complete draft and generated_criteria, or null to clear generated criteria. Uses expected_version and retains prior revisions. The server binds generated criteria to the draft version this save creates. Submitted drafts are immutable. Does not submit or activate work. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
setup_post
ChatGPTSubmit expected_draft_version once: atomically create targeting and criteria at version 1. The same version replays the exact receipt. Changed profile, draft or base returns a conflict; an existing different setup cannot be replaced. Never activates research or outreach. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
setup_status
ChatGPTRead the persisted setup_ref and exact source/resource versions. Imported confirms both resources exist; a lost submit response is resolved by this read.
summary_context
ChatGPTRead the complete current guide, references and operation schemas for a specific requested Lifty stage.
summary_get
ChatGPTRead the selected workspace's typed Business resources and versions, immutable setup receipt, first research run, research schedule, HubSpot and its last sync, senders with their sending accounts, and the saved campaign. Read-only: it never checks or changes a provider. Does not authorize outreach. Unavailable means retry, not missing setup.
targeting_get
ChatGPTRead the versioned neutral targeting resource, including every existing search lane. Search allocation is platform policy.
targeting_patch
ChatGPTSynchronously change lanes: {id,...} patches a lane and keeps omitted filters, {id, remove:true} removes it, a lane without id is added; personas without id are new (the server assigns ids). Filter edits affect the next discovery. Any persona change needs regenerated_criteria (with its expected_version) in the same request; both commit together. Requires the founder's approval. Writes commit synchronously; read back the saved resource or setup receipt after an uncertain response.
whoami
ChatGPTReturn the signed-in Lifty user's ID and the workspaces they belong to. Call this when you do not yet know which workspace the user works in. With one workspace, tools need no workspace input. With several, ask which one, remember the choice in your memory for this user, and pass it as workspace on every tool call; never pick one yourself. workspaces is null when the list could not be read; retry instead of assuming one workspace.