add_campaign_recipients
ChatGPTAdd leads to a campaign's audience (not for completed or cancelled campaigns). Leads already in it are skipped. Nothing is sent by adding them.
add_contact
ChatGPTAdd a contact person to a lead or a customer account. At least one of phone or email is required.
assign_lead
ChatGPTAssign (or reassign) a lead to a team member. The previous owner keeps read-only access. Find the user id with list_team_members. The new assignee is notified (in-app, and by email or push per their notification settings).
cancel_follow_up
ChatGPTCancel a pending follow-up task that is no longer needed. If the assignee has connected Google Tasks, the cancellation is also synced there.
cancel_project_card_approval
ChatGPTWithdraw a pending client approval request on a project card.
claim_follow_up
ChatGPTTake a follow-up from your team's queue so it becomes yours. Only members of that team can claim it, and only the first claim succeeds.
complete_follow_up
ChatGPTMark a follow-up task as completed with an optional outcome summary. If the assignee has connected Google Tasks, completion is also mirrored there.
confirm_duplicate
ChatGPTConfirm that a lead flagged as a possible duplicate really is one (it stays flagged for merging).
convert_lead_to_customer
ChatGPTConvert an existing lead into a customer account, preserving its history — the correct tool whenever a lead is reported as won, signed, or otherwise converted. Every field is an optional override; anything omitted carries over from the lead unchanged.
create_campaign
ChatGPTCreate a new campaign for lead attribution. Campaigns here are attribution-only records (name, dates, budget, channel, tags) — not an ad platform; there's no targeting/content/scheduling to set. Use launch_campaign separately once it's ready to go live.
create_custom_object_record
ChatGPTCreate a new record of a custom object type. Call list_custom_objects first — its field keys are what data must use; anything else is rejected. Never guess a key from a display label. A lookup field's value is the id of the linked record: for a field whose linksTo is CustomObject, find it with search_custom_object_records on that field's linksToDefinitionId.
create_custom_report
ChatGPTSave a new custom report (columns, filters, grouping, totals, chart). Run it afterwards with run_custom_report.
create_customer
ChatGPTCreate a standalone customer account directly, without going through an existing lead. Use convert_lead_to_customer instead whenever the customer already exists as a lead in the system — that preserves its history, notes, and deals; this tool starts a brand-new record with none of that.
create_deal
ChatGPTCreate a new deal. Must be linked to either an existing lead or an existing customer — call search_leads/search_customers first to find the real id if the user hasn't given you one.
create_document_request
ChatGPTRequest a business document from a customer (e.g. a signed contract, completed form, or proof of address) — the request is published to the customer-facing portal, where the external customer sees it and uploads the file. This tool only creates the request; it never asks for or stores sensitive identifiers such as ID numbers in chat.
create_email_template
ChatGPTCreate an email template (name, subject and HTML body).
create_event
ChatGPTCreate a calendar event such as a customer meeting, demo, site visit or team meeting. Invite teammates individually (participant_ids) or a whole team (team_ids); only people in your organization can be invited. If the organizer has connected Google Calendar, the event is also added there.
create_follow_up
ChatGPTSchedule a follow-up task on one lead, customer or deal, for example a call back or an email to send. Assign it to a person (assignedTo) or give it to a whole team (team_id) so the first member to claim it owns it. If the assignee has connected Google Tasks, the task is also added there. To follow up on several records, call this once per record.
create_lead
ChatGPTCreate a new lead in the CRM. Use this when a user reports a new inquiry or prospect that isn't already in the system. If the user names the campaign it came from, call list_campaigns to find its sourceCampaign id; otherwise leave sourceCampaign out and the CRM files it under the organization's "Unattributed" campaign. If you need to set any custom field (e.g. 'Industry', 'Company Name' — anything not in this tool's own parameters), call get_lead_custom_fields first to find the real key — never guess one from a display name.
create_note
ChatGPTAdd a note to a lead or customer, such as a call summary or a meeting outcome. Adding a note to a lead can also run your organization's automations (for example a workflow waiting for a new note) and notifies the lead's owner.
create_product
ChatGPTCreate a catalog product or service.
create_project
ChatGPTCreate a project board. The creator is a member; the owner defaults to the creator.
create_project_card
ChatGPTAdd a card (task) to a project board. column is a column id from get_project; omitted puts it in the first column.
create_proposal
ChatGPTCreate a DRAFT proposal for a customer (nothing is sent). Line items use name/quantity/unitPrice; totals are computed by the CRM.
create_ticket
ChatGPTRaise a new support ticket on behalf of a customer. Get customer_id from search_customers/get_customer first — never guess one. Auto-assigns to whichever rep already owns that customer relationship. Creating a ticket can send the customer an automatic acknowledgement message and notify support staff by email, depending on the organization's ticket settings.
dismiss_duplicate
ChatGPTClear a lead's duplicate flag — it is not a duplicate.
duplicate_sequence
ChatGPTCopy an email sequence into a new DRAFT (e.g. to reuse an archived one). The copy is not active.
get_activity_timeline
ChatGPTFetch the recent activity timeline for a lead — calls, notes, emails, status changes, assignments. Use this to understand lead history at a glance.
get_assignment_rules
ChatGPTShow how new leads, deals or accounts are automatically assigned, and which stage-handoff rules move them between teams. Read-only here: change them in Configuration under Auto Assignment and Stage Handoff, or ask Worxley's in-app assistant to change them.
get_call_logs
ChatGPTRetrieve call history logs. Filter by lead, customer, direction, status, or a fromDate/toDate window. Use this to review past call attempts, confirm a lead was contacted, or answer 'calls today/this week'.
get_campaign
ChatGPTGet one campaign's full details — dates, budget, channel, tags, status. Get campaign_id from search_campaigns/list_campaigns first. For performance numbers (leads generated, conversion), use get_campaign_stats instead.
get_campaign_stats
ChatGPTGet one campaign's performance numbers — leads attributed to it, conversion outcomes. Use this to answer 'how did campaign X do' or 'which campaign is converting best' (call it per-candidate campaign, there's no single all-campaigns comparison endpoint).
get_client_approval_status
ChatGPTAn account's client approval chains at work: each proposal or record sent through the chain, its status, progress, who still has to answer and who answered what (approved or asked for changes, when, comment). Pending ones first.
get_communication_history
ChatGPTEmails or WhatsApp messages exchanged with a lead or customer. Use for 'what did we last send them?' style questions.
get_contract
ChatGPTGet the full detail of one contract, including offline-execution and signature state; for an e-signed contract, signing lists each signer's status (sent, viewed, signed, declined) and reminders sent.
get_custom_object_calendar
ChatGPTList dated custom records (bookings, appointments, visits…) of every scheduled custom object type in a date range.
get_custom_object_record
ChatGPTGet one custom object record's full details.
get_custom_object_schedule
ChatGPTOne day's schedule of a scheduled custom object type (e.g. appointments by slot).
get_custom_report_fields
ChatGPTList the fields a custom report can show, filter and group by, for one entity (or all). Call it before create_custom_report to use real field keys.
get_customer
ChatGPTGet the complete profile of a specific customer account — stage, health score, renewal date, source, and the lead it converted from.
get_customer_custom_fields
ChatGPTList your organization's custom customer fields that are enabled for AI use — each with its real key, display label, type, and options. Call this before setting customFields on create_customer or update_customer; a display label is almost never the same as its key — never guess.
get_customer_health
ChatGPTGet a customer account's health score, its trend and the signals behind it (engagement, payments, tickets).
get_dashboard
ChatGPTGet the user's personalised dashboard summary. For admins this includes sections.leads.byStatus — an exact count of leads in EVERY pipeline stage your organization actually uses (each entry is {status: <slug>, count}), covering custom stages like 'evaluation' or 'trial_request' just as much as the defaults. This is the tool for 'how many leads are in X stage' or 'break down my pipeline by status' — do not try to answer that from get_report_summary, which only has a single lead total with no per-stage breakdown, or from repeated search_leads calls, which is slower and easy to leave incomplete. Also includes today's follow-ups, upcoming events, recent activity, and (for admins) revenue and top performer stats.
get_deal
ChatGPTGet the complete profile of a specific deal — title, stage, value, currency, probability, close date, and the linked lead/customer.
get_deal_activities
ChatGPTThe activity history of a deal (stage moves, edits, notes).
get_deal_custom_fields
ChatGPTList your organization's custom deal fields that are enabled for AI use — each with its real key, display label, type, and options. Call this before setting customFields on create_deal or update_deal; a display label is almost never the same as its key — never guess.
get_email_template
ChatGPTGet one email template's subject and body.
get_lead
ChatGPTGet the complete profile of a specific lead — personal details, academic interests, current status, scores, SLA info, and enrollment timeline.
get_lead_custom_fields
ChatGPTList your organization's custom lead fields that are enabled for AI use — each with its real key, display label, type, and options (for select/multiselect). Call this before setting customFields on create_lead or update_lead; a field's display label (what a user calls it, e.g. 'Company Name') is almost never the same as its key (e.g. 'company_name' or an auto-generated slug) — never guess. A field configured in the CRM but NOT returned here means your organization hasn't enabled it for AI access; it cannot be read or set through this connection regardless of what the user asks.
get_product
ChatGPTGet the full detail of one catalog product/service.
get_project
ChatGPTGet one project: owner, members, linked account and its columns (the column ids that create_project_card and move_project_card need).
get_project_card_approvals
ChatGPTList the client approval requests on a project card and their answers.
get_proposal
ChatGPTGet the full detail of one proposal.
get_report_summary
ChatGPTGet a consolidated analytics snapshot: total lead count (not broken down by stage — use get_dashboard for a per-status breakdown), revenue collected, SLA breach rate, and conversion rate. Optionally filter by date range.
get_revenue_summary
ChatGPTGet your organization's overall revenue summary — total collected, pending, and refunded across all customers, plus what its issued invoices still owe (outstanding, overdue, not yet due) when the user can read invoices. Use this for 'what's our revenue' style questions, not tied to one customer.
get_sales_forecast
ChatGPTGet the sales forecast: projected revenue for a period, computed from weighted open-deal value plus deals already won in that period. Good for 'what's my forecast?', 'how am I tracking against quota?' or 'what is likely to close this quarter?'. Defaults to your own pipeline for the current month; use scope to forecast a team or the whole organization.
get_sequence
ChatGPTGet one email sequence's full detail: its steps (emails, waits, tasks, branches), settings (send window, exit rules, AI personalisation mode), and current published version. Get sequence_id from list_sequences first — never guess one.
get_sequence_stats
ChatGPTGet one sequence's funnel numbers: enrolled, sent, delivered, open rate, click rate, reply rate (including the AI-read positive-reply rate), bounce/unsubscribe/completion, meetings booked and deals created. Use this for 'how is X sequence doing?'. Get sequence_id from list_sequences first.
get_ticket
ChatGPTGet one support ticket's full message thread (customer + staff + internal notes), status, and priority. Get ticket_id from search_tickets first — never guess one.
get_upcoming_renewals
ChatGPTList customer accounts whose renewal date falls within the next N days (default 30, always includes today). This is the correct tool for 'who renews this month?' or 'what's coming up for renewal' — search_customers has no renewal-date filter, so do not try to answer this by paging through it or guessing from stage.
get_workflow
ChatGPTGet one automation workflow's complete graph — its trigger and every condition/action node, wired together exactly as configured. Renders as a visual diagram for the user to review, with a link to open the same workflow in the full builder. Get the workflow_id from list_workflows first — never guess one.
global_search
ChatGPTSearch leads, customers, deals, and contacts all at once by name/email/phone — the same lookup behind the app's own search bar. Use this when the user names a person and it isn't yet clear which entity type they are ('find John Doe', 'anything on Acme Corp'), instead of guessing and calling search_leads/search_customers/search_deals separately. Each entity type is silently omitted from the response if the user lacks permission to view it — don't treat an empty section as 'doesn't exist.' Once you know which entity type the match is, use that entity's own get_/search_ tool for full detail — this only returns a lightweight preview of each match.
list_campaign_recipients
ChatGPTList the leads added to a campaign, optionally only PENDING or CONVERTED ones.
list_campaigns
ChatGPTList the organization's campaigns (id, name, dates, active status). Use this to find a campaign id before calling create_lead, or to answer questions about what campaigns exist.
list_contacts
ChatGPTList contact people. With ref_model + ref_id, lists the contacts on that one lead or customer account (use this to get a contact_id before update_contact / remove_contact). Without them, searches contacts across the organization by name, email or phone (q).
list_custom_objects
ChatGPTList your organization's custom object types (e.g. 'Property', 'Vehicle') — each with its id, the fields on it that are enabled for AI use, its pipeline stages (if any) and, in stageDetails, which stages are terminal and what entering a stage does (a Cancelled stage settles the record's invoices, a billing stage raises an invoice, some move linked records), plus its sidebar group (navGroup) and whether it shows in the navigation (showInNav). Call this first: it's how you discover both what custom object types exist at all, and the real field keys for creating/updating a record of one. Not every organization has any — an empty list is normal, not an error.
list_custom_reports
ChatGPTList your organization's saved custom reports (ad-hoc reports built with custom filters/grouping/charts) — use this before run_custom_report to find the right one by name.
list_customer_contracts
ChatGPTList the contracts on a customer account — each with its status (DRAFT/ACTIVE/EXPIRED/TERMINATED/...), agreementStatus, whether the organization and the customer have each agreed (orgAgreement.agreed / customerAgreement.agreed), signedAt, and renewal terms. This is the correct tool for 'has X signed the/an agreement', 'is there a contract with X', or 'when does X's contract renew' — never answer those from the customer profile alone, and never say no agreement exists without calling this first.
list_customer_documents
ChatGPTList the files uploaded on a customer account (name, type, who uploaded it, when).
list_customer_proposals
ChatGPTList the proposals sent to a customer account — a commercial proposal document, distinct from a Deal's 'PROPOSAL' pipeline stage and from a contract. Use this for 'did we send X a proposal' or 'what did we quote X'.
list_customer_transactions
ChatGPTList a customer's payment transactions — amount, status, method, date. Use this for 'has X paid', 'what payments has X made', or 'when was X last billed'.
list_document_requests
ChatGPTList the document requests sent to a customer (e.g. asking them to upload a signed contract, completed form, or proof of address) and whether each is still pending, submitted, verified, or rejected. Use this for 'did we ask X for their documents' or 'are X's documents complete'.
list_duplicate_leads
ChatGPTList leads flagged as possible or confirmed duplicates, with the leads they match. Use it before confirm_duplicate, dismiss_duplicate or merge_leads.
list_email_templates
ChatGPTList the organization's email templates (used by sequences, workflows and emails).
list_events
ChatGPTList calendar events the current user is a participant in, recurring events expanded into one row per occurrence, oldest first. ALWAYS pass start and end for a period: with neither, the window is just 'now' to 90 days ahead, so 'this month' would miss everything earlier in the month. 'This month' = the 1st 00:00 to the last day 23:59:59 of the current month in the organization's timezone, sent with a UTC offset. Returns totalResults — if it exceeds what was returned, tell the user 'showing N of M' and offer the rest (page=2…); never present a partial list as the whole month.
list_follow_ups
ChatGPTList follow-up tasks, optionally filtered by lead/application, status, priority, or action type. Use this to show today's tasks or overdue items — pass startDate/endDate computed from the current date/time to scope to 'today' or a specific window; don't try to eyeball that from an unfiltered list.
list_merged_leads
ChatGPTList the leads that were merged into a lead (the ones merge_leads absorbed). Use it to get the id unmerge_lead needs.
list_notes
ChatGPTList notes on a lead or application. Can filter by note type. Returns content, type, author, and timestamp.
list_pending_approvals
ChatGPTList records waiting on a client's approval (custom records in their review stage), longest-waiting first. An item going through the account's approval chain also carries its progress (approved / total steps) and waitingOn (the steps still to answer).
list_project_cards
ChatGPTList the cards on a project board, optionally filtered by text, assignee, label or priority.
list_projects
ChatGPTList projects the user can see, optionally for one customer account or matching a name.
list_quotas
ChatGPTList sales quotas (targets) — for the organization, a team or a person, optionally for one period. Use it to answer 'what is my quota?' and to get a quota_id before update_quota / delete_quota.
list_recurrence_rules
ChatGPTList the organization's recurring rules (e.g. renewal reminders, monthly retainers): what each creates or sends, how often, whether it is on, and how it messages the client.
list_roles
ChatGPTList the organization's roles (name and slug). invite_user and change_user_role take the slug.
list_scheduled_reports
ChatGPTList reports that are emailed on a schedule, with their recipients and frequency.
list_sequence_review_queue
ChatGPTList sequence emails waiting for a person to review before they send (steps that need approval).
list_sequences
ChatGPTList your organization's email sequences (multi-step outreach that sends a series of emails and stops itself the moment someone replies). Use this to answer 'what sequences do I have' or 'is X still running' — returns each one's name, status (draft/active/paused/archived), record type (Lead or Account), and headline stats. Call get_sequence for one sequence's actual steps, or get_sequence_stats for its funnel numbers.
list_team_members
ChatGPTList the people in your organization. Use it to look up a person's user ID before assigning a lead, follow-up or event to them.
list_team_queue
ChatGPTList follow-up tasks given to a team you belong to that nobody has claimed yet, for example to answer 'what is waiting for my team?'.
list_teams
ChatGPTList your organization's teams with their lead and members. Use it to get a team's ID, or to answer 'who is on the Sales team?'. A team ID is not a user ID.
list_transactions
ChatGPTList payment transactions across ALL customers — e.g. 'which payments are pending?', 'payments this month', 'failed payments'. For one customer's history list_customer_transactions is simpler.
list_whatsapp_templates
ChatGPTList the organization's WhatsApp message templates and their Meta approval status.
list_workflow_executions
ChatGPTList recent runs of one automation workflow — which record it ran for, status (RUNNING, PAUSED, COMPLETED, FAILED, CANCELLED), when, and errors. Use it for 'did my workflow run?' or 'why did it fail?'.
list_workflows
ChatGPTList your organization's saved automation workflows (called 'Workflows' in Configuration → Automation → Workflows). They are fixed, deterministic automations, not AI agents. Each is a trigger-driven graph of conditions and actions — e.g. 'when a lead's SLA breaches, send a WhatsApp and notify the rep' — that runs on its own once turned on. Use this to answer 'what automations do I have' or 'is anything running for X' — returns name, trigger, and active/inactive status for each, not the full graph. Call get_workflow for one workflow's actual steps.
log_manual_call
ChatGPTLog a manual call record when a call was made outside the system (e.g. personal phone). Use this to keep the lead's or customer's call history accurate.
move_custom_object_record_stage
ChatGPTMove a custom object record to another stage of its pipeline. The stage must be one of the type's stages (list_custom_objects lists them).
move_project_card
ChatGPTMove a card to another column of its board (e.g. to Done). column is a column id from get_project.
pin_note
ChatGPTPin a note to the top of its record, or unpin it (pinned: false). Use list_notes to find the note id.
reject_document_request
ChatGPTReject a document the customer submitted (status SUBMITTED → REJECTED), e.g. wrong or unreadable file. Give the reason in note.
remove_from_sequence
ChatGPTTake one lead or account out of the email sequence it is in. It stops receiving that sequence's emails immediately and can be enrolled elsewhere. The first call, without confirmed set to true, returns a preview naming the sequence and step; show it to the user and wait for their agreement, then call again with confirmed set to true. If the record is not in a sequence you are told so instead of getting an error.
renew_customer
ChatGPTRecord that a customer account renewed: its renewal date moves forward by the organization's renewal period (and its stage may move to the renewed stage). The account must have a renewal date. Nothing is sent to the customer.
reply_to_ticket
ChatGPTPost a reply on a support ticket as the signed-in user. Set is_internal_note to true to add a note only staff can see (it is never sent to the customer). Replying to a closed ticket fails: reopen it first with update_ticket.
reschedule_follow_up
ChatGPTReschedule a follow-up to a new datetime. Marks the original as RESCHEDULED and creates a linked replacement. This is what to use for 'move/reschedule/change the time of that call or meeting' — never create_follow_up, which would leave the old one pending and double-book. Get the follow_up_id from list_follow_ups (pass the person's ref_id; leave status at PENDING) or from the create_follow_up result earlier in this conversation. If the assignee has connected Google Tasks, the change is also mirrored there.
restore_customer
ChatGPTBring back a deleted customer account (undo delete_customer), within the retention window. Use the id from the earlier delete.
restore_deal
ChatGPTBring back a deleted deal (undo delete_deal), within the retention window. Use the id from the earlier delete.
restore_lead
ChatGPTBring back a deleted lead (undo delete_lead), within the retention window. Deleted leads do not appear in search_leads, so use the id from the earlier delete in this conversation.
rsvp_event
ChatGPTAnswer a calendar invitation for the user: accepted, declined or tentative. For a recurring event, scope chooses all occurrences, just one, or one and the following (the last two need occurrence_start).
run_custom_report
ChatGPTRun a saved custom report and return its result rows. Call list_custom_reports first to find the report's id by name.
search_campaigns
ChatGPTList your organization's campaigns with their real status (DRAFT, SCHEDULED, ACTIVE, PAUSED, COMPLETED, CANCELLED) — not just the id/name dropdown list_campaigns returns. Use for 'what campaigns are running', 'show me paused campaigns'.
search_custom_object_records
ChatGPTSearch/list records of one custom object type. Call list_custom_objects first to get the definition_id.
search_customers
ChatGPTSearch and filter customer accounts (converted, paying relationships — distinct from Leads, which are prospects). Use this to find customers by name/email/phone, account stage, or assignee. Returns a paginated list, capped at 50 per call, with totalResults for the full count. Call this before answering questions like 'which accounts are at risk?' or 'who renews this month?'. For 'list all my accounts/customers' there is no export tool — use limit 50 and page through (up to ~3 pages), then say 'showing N of totalResults' if there are more.
search_deals
ChatGPTSearch and filter deals. Use this to find deals by pipeline stage, coarse status (OPEN/WON/LOST), assignee, the lead they came from, or the account (customer) they belong to — use customer for 'everything about <account>'. Returns a paginated list, capped at 50 per call. Call this before answering questions like 'what deals are closing this week?' or 'show me my open pipeline'. There is no free-text title search on this endpoint — filter by stage/status/assignee instead.
search_leads
ChatGPTSearch and filter leads by name, email or phone, status, priority, source, SLA breach, assignee or team. Returns up to 50 per call (use page for more). Good for questions like 'who are my hot leads?' or 'which leads are overdue?'.
search_products
ChatGPTSearch your organization's product/service catalog by name — price, SKU, category, unit, tax rate. Use this for 'what does X cost', 'do we sell Y', or when building a quote/proposal that needs real pricing rather than a guessed number.
search_tickets
ChatGPTSearch support tickets by status, priority, customer, team or text, for example 'which tickets are open?' or 'tickets for Acme'. People without organization-wide visibility only see tickets assigned to them, whatever filters are used, so a low count can be expected.
set_deal_forecast_category
ChatGPTSet a deal's forecast category manually, or pass null to go back to the automatic category.
simulate_workflow
ChatGPTDry-run a workflow against a real lead, customer, or deal, with zero side effects — no message is actually sent, no status actually changed. Walks the graph from the trigger, showing what each node would do, which condition/switch branches it would take, and where it would pause (delay / wait_for_event / approval). Use this to answer 'test this before turning it on' or 'what would happen to X'. Get workflow_id from list_workflows and subject_id by searching leads/customers/deals for the one named — never guess either. Set subject_type to match the workflow's own triggerType (check get_workflow first if unsure) — CUSTOMER for any CUSTOMER_/TICKET_CREATED/INVOICE_OVERDUE trigger, DEAL for any DEAL_ trigger (find the deal via search_deals, not search_leads/search_customers), otherwise leave it as the LEAD default. Leads/customers/deals are different collections — the wrong subject_type for this workflow's trigger means the subject_id won't be found. A CUSTOM_OBJECT_RECORD_CREATED workflow's real subject is whichever Lead/Customer/Deal its custom object's trigger field points to — set subject_type/subject_id for THAT record, not the custom object record itself.
update_campaign
ChatGPTUpdate a campaign's own details — name, dates, budget, channel, tags. Use launch_campaign/pause_campaign for state changes, not this.
update_contact
ChatGPTEdit a contact person on a lead or customer account (name, title, phone, email, primary flag). Use list_contacts with the record's ref_model + ref_id to find the contact_id.
update_contract
ChatGPTEdit a customer's contract: title, terms, value, dates, status, renewal settings or links. Use list_customer_contracts to find the id. Some fields are frozen once the contract is signed.
update_custom_object_record
ChatGPTUpdate an existing custom object record's field values or assignee.
update_custom_report
ChatGPTEdit a saved custom report. Use list_custom_reports to find the id.
update_customer
ChatGPTUpdate a customer account's own fields — name, contact info, health score, renewal date, and more. Use update customer stage via search/UI for pipeline moves not covered here.
update_customer_stage
ChatGPTMove a customer account to another stage (e.g. 'at_risk'). Stage names are the organization's own; match case/spacing-insensitively.
update_deal
ChatGPTUpdate a deal's own fields — title, value, close date, priority, owner, forecast category, and more. Use update_deal_stage instead for moving pipeline stage; this tool does NOT touch stage.
update_deal_stage
ChatGPTMove a deal to a different pipeline stage. Probability and won/lost status are derived automatically from the target stage's configuration — don't set them separately. Use this instead of a generic edit whenever the ask is to advance, close, or otherwise move a deal along the pipeline. Moving a deal to a won stage can email the linked customer a confirmation and report the conversion to the connected ad platform (e.g. Google Ads), per the organization's settings.
update_email_template
ChatGPTEdit an email template's name, subject, body, audience or active flag.
update_event
ChatGPTReschedule, edit, or cancel a calendar event. To cancel but keep it on the calendar, set status to 'cancelled'; to remove it entirely, use delete_event. Changes are also synced to the organizer's connected Google Calendar, if any.
update_follow_up
ChatGPTEdit a pending follow-up task: title, description, type, priority, assignee or due time. To move only the due time with a reason on record, reschedule_follow_up is better. Use list_follow_ups to find the id and list_team_members for an assignee's id. Synced to the assignee's Google Tasks if connected.
update_lead
ChatGPTUpdate mutable fields on a lead: priority, category, address, next follow-up date, expected enrollment date, source, custom fields. Only include fields you want to change. To change status, use update_lead_status instead — category is a separate classification (Cold/Warm/Hot/Existing Customer/Lost), not the pipeline stage.
update_lead_status
ChatGPTChange a lead's status through a validated transition (e.g. NEW → CONTACTED → QUALIFIED → WON or LOST). Use this instead of update_lead when the user wants to move a lead forward or mark it as lost.
update_note
ChatGPTEdit an existing note's content, type or tags, for example to correct or expand a note you added earlier.
update_product
ChatGPTUpdate a catalog product or service (price, description, active state...). Use search_products to find the id.
update_project
ChatGPTEdit a project: name, description, linked account, owner, members (the full list replaces the old one), colour, or archive it (isArchived true). Only its owner or a project manager can change settings.
update_project_card
ChatGPTEdit a card: title, description, assignees, labels, priority, due date or internal flag. To move it to another column use move_project_card.
update_proposal
ChatGPTEdit a customer's proposal: title, description, line items (the full list replaces the old one), discount, tax, validity, notes, linked deal, or revise a SENT one back to DRAFT. Only a DRAFT can have its content changed (a SENT one must be revised first). Accepting or declining is the customer's answer and is not done here. Totals are recomputed by the CRM. Use list_customer_proposals to find the id. Sending a proposal to the customer is not done here.
update_ticket
ChatGPTChange a ticket's status, priority, or assignee. Use reply_to_ticket instead to post a message in the thread — this tool only changes metadata, it never posts a reply.
verify_document_request
ChatGPTAccept a document the customer submitted for a document request (status SUBMITTED → VERIFIED). Use list_document_requests to find the id.