bulk_lead_action
ChatGPTaction=create queues a bulk operation (mass SMS, mass email, bulk tag change, or bulk pipeline-stage change) against up to 5000 leads at once. This is asynchronous: the result confirms a plan was queued, not that any message was sent or any lead was updated - those happen afterward, over time. Always confirms before queuing, since a plan cannot be recalled once mass-action starts sending/updating. action=status checks a previously-queued plan's progress (task counts by outcome) using the 'planId' a create call returned.
create_saved_search
ChatGPTCreate a property alert or market snapshot for a lead - a saved search Lofty emails the lead on a schedule. A property alert emails the lead its first alert right away unless fields.sendFirstEmailNow is false. List a lead's saved searches and their ids with search_leads (scope="saved_searches", lead_id).
delete_saved_search
ChatGPTPermanently delete one or more of a lead's saved searches (property alerts / market snapshots); the lead stops receiving their emails. Always returns needsConfirmation first. To stop the emails but keep the search, use pause_saved_searches instead. List a lead's saved searches and their ids with search_leads (scope="saved_searches", lead_id).
generate_lead_insight
ChatGPTGenerate a new AI artifact for a lead: a call script, a pre-call insight, a call summary, or a lead analysis task. Always a write, even for a kind that also has a cached read in search_lead_insights.
manage_leads
ChatGPTAll lead writes: create, update, assign (or preview an assignment), trash, update the property address, add an inquiry or website-activity entry, and create/edit/delete notes and manual log entries. See search_lead_activities to read notes, logs and other activity back. Actions past a risk threshold return needsConfirmation - see the tool result, not this schema, for which ones.
manage_sales_agent
ChatGPTAdd leads to the AI working pool, mute or unmute a working lead, update the AI assistant's settings, send SMS via its AI number, or batch-create plan tasks.
manage_tasks
ChatGPTCreate, update, delete, complete and un-complete tasks and calendar events.
manage_team_config
ChatGPTAdd a custom field, update lead routing rules, add or update an office, update company info, or create/tag/deactivate/reactivate an agent account. Note the one place Lofty's REST API inverts convention: PUT on the office endpoint adds a new office, POST updates an existing one - this tool hides that behind add_office/update_office so the HTTP verb is never something you need to know.
manage_transactions
ChatGPTCreate or update a transaction, or write its property address. There is no delete - no such endpoint exists in the real API.
manage_webhooks
ChatGPTRegister a new webhook subscription, or remove an existing one. Both change what an external system is told about this account - confirm with the user before calling either.
notify_agent
ChatGPTPush an app notification, system SMS or system email to an internal agent, or fire an opportunity alert. Never reaches a lead. Always confirms before sending. agent_id redirects sms/email to a specific teammate; app_push and opportunity_alert always go to the task's assignee or the lead's resolved contact instead, by design.
pause_saved_searches
ChatGPTStop the emails of a lead's saved searches (property alerts / market snapshots) without deleting them - either the ones in 'ids', or every one of the kinds in 'categories'. resume_saved_searches switches them back on. List a lead's saved searches and their ids with search_leads (scope="saved_searches", lead_id).
resume_saved_searches
ChatGPTSwitch a lead's paused saved searches (property alerts / market snapshots) back on; each resumes at the cadence it ran at before it was paused. List a lead's saved searches and their ids with search_leads (scope="saved_searches", lead_id).
search_lead_activities
ChatGPTEverything that happened on a lead, or across every lead one agent touched: calls, texts, emails, notes, manual log entries, system events (stage changes, assignment/routing, subscriptions, smart-plan tasks), and the unified activity timeline. Writing a note or manual log entry is manage_leads (actions add_note/update_note/delete_note/add_manual_log/delete_manual_log) - this tool is read-only.
search_lead_insights
ChatGPTRead a previously generated call summary, or list lead analysis tasks. To generate a new one, use generate_lead_insight.
search_leads
ChatGPTFilter leads by status, source, tag, owner or custom field; fetch one or many by id; read the property searches a lead has saved (scope="saved_searches" with lead_id). Set group_by (optionally with metric) instead of paging through records yourself when the question is a count or sum, not a list - e.g. "how many leads per source last month". Notes, manual logs, calls, texts, emails and the activity timeline live in search_lead_activities, not here; writes live in manage_leads.
search_listings
ChatGPTPublished listings by agent or office, or the published feed. Read-only at this layer - listing creation and maintenance isn't part of this API surface. scope=agent/office returns JSON; scope=published returns the feed's own XML verbatim (CHIME-70594), not JSON - that endpoint is an XML-only syndication feed, not a per-team JSON search.
search_sales_agent
ChatGPTThe AI working-lead pool, membership and mute status, quota, current agent, settings, and plan tasks for a lead.
search_tasks
ChatGPTTasks and calendar events - list, fetch one by id, the caller's own tasks across every lead, or open meeting slots. Writes live in manage_tasks.
search_team_config
ChatGPTEvery read-only piece of team and organization configuration: your own profile (kind=members.me - call this once at the start of a session, every 'my tasks' or 'my leads' query depends on knowing who is asking), team members, tags, custom field definitions, pipelines, ponds, vendors, organization info, permission profiles, and lead routing rules and roles. A lead's own system event log is search_lead_activities (channel=system_log), not this tool - it's per-lead data, not team/organization configuration.
search_transactions
ChatGPTSearch transactions globally or for one lead, fetch one or many by id, read a transaction's property address, or the team's transaction custom field definitions. Set group_by (optionally with metric) for a count/sum instead of a record list.
search_webhooks
ChatGPTList the caller's currently subscribed webhook event callbacks.
send_message
ChatGPTSend SMS or email to one lead from the authenticated agent. Always confirms - the recipient and the full rendered body are shown before sending, and this cannot be undone once sent.
update_saved_search
ChatGPTChange the name, schedule, filters, recipients or other settings of one or more of a lead's saved searches (property alerts / market snapshots). Setting fields.alertFrequency to NEVER pauses one, like pause_saved_searches. List a lead's saved searches and their ids with search_leads (scope="saved_searches", lead_id).