activities_create
ChatGPTCreate a new activity
activities_list
ChatGPTList activities with filters. Use IMMEDIATELY when user asks about activities, interactions, history, or timeline. Supports filtering by type, contact, company, deal, or date range.
agents_send_sms
ChatGPTSend one SMS through the connected workspace Twilio sender to the stored phone of its contactId. Requires agents:send_sms and literal text; phone overrides and templates are unsupported. May consume messaging credits. Returns message_id and accepted status, not proof of delivery. Requires explicit user confirmation of the affected recipients/records and final content/action. Provide one stable idempotency_key per confirmed operation and reuse it with identical arguments on retries (24-hour retention); a different key can repeat the action. On an unknown/pending result, reconcile the returned record/request ID before any retry; never create a new key to bypass an error.
agents_start_call
ChatGPTStart an outbound voice call to a contact or phone number. Platform calling requires idempotencyKey; reuse it for retries of the same call. Calls use the published voice agent settings. Requires explicit user confirmation of the affected recipients/records and final content/action. Provide one stable idempotency_key per confirmed operation and reuse it with identical arguments on retries (24-hour retention); a different key can repeat the action. On an unknown/pending result, reconcile the returned record/request ID before any retry; never create a new key to bypass an error.
analytics_kpis
ChatGPTGet analytics KPIs
appointments_availability
ChatGPTRead availability for a date using existing active service and staff records in the connected workspace. Optional serviceOfferingId/staffId default to the earliest-created active records; the response identifies the selected service/staff. Requires appointments:availability. Dates are YYYY-MM-DD and returned slot timestamps are ISO instants with UTC offsets. Does not create defaults or book anything; an unconfigured workspace returns an error.
appointments_cancel
ChatGPTCancel an appointment
appointments_create
ChatGPTCreate a new appointment. Use this to schedule meetings or appointments with contacts. CRITICAL: If user provides contact name instead of contactId, use leads_search first to find the contact. Resolve natural language dates like "next Thursday" yourself using date_calculate tool. Requires staffId, startAt (ISO 8601), and endAt (ISO 8601). serviceOfferingId is optional — when omitted, the organization's default service is used (zero-config orgs get a "General" 30-min service automatically).
appointments_list
ChatGPTList appointments with filters. Use IMMEDIATELY when user asks about appointments, schedule, meetings, or calendar. Supports filtering by status, staff, date range, contact, or company. For "today", set startDate and endDate to today. For "upcoming", set startDate to today. For "past", set endDate to today.
appointments_update
ChatGPTUpdate an existing appointment
booking_create
ChatGPTCreate an appointment end-to-end. Accepts bookingKey, service name or ID (optional when the calendar has exactly one active service — e.g. the zero-config default), optional staff name or ID, and either startAt/endAt or just date+timezone (it will pick the first available slot).
bulk_delete_companies
ChatGPTSoft-delete companies by setting deletedAt only in the connected workspace. Requires bulk:delete_companies and an explicit ID list. This changes existing CRM records; it does not contact customers. Returns deletedCount, affected IDs and failed entries for missing or inaccessible IDs. Partial completion is possible; inspect failed before retrying. Requires explicit user confirmation of the affected recipients/records and final content/action. Provide one stable idempotency_key per confirmed operation and reuse it with identical arguments on retries (24-hour retention); a different key can repeat the action. On an unknown/pending result, reconcile the returned record/request ID before any retry; never create a new key to bypass an error.
bulk_delete_deals
ChatGPTSoft-delete deals by setting deletedAt only in the connected workspace. Requires bulk:delete_deals and an explicit ID list. This changes existing CRM records; it does not contact customers. Returns deletedCount, affected IDs and failed entries for missing or inaccessible IDs. Partial completion is possible; inspect failed before retrying. Requires explicit user confirmation of the affected recipients/records and final content/action. Provide one stable idempotency_key per confirmed operation and reuse it with identical arguments on retries (24-hour retention); a different key can repeat the action. On an unknown/pending result, reconcile the returned record/request ID before any retry; never create a new key to bypass an error.
bulk_hide_contacts
ChatGPTHide contacts by marking them internal only in the connected workspace. Requires bulk:delete_contacts and an explicit ID list. This changes existing CRM records; it does not contact customers. Returns deletedCount, affected IDs and failed entries for missing or inaccessible IDs. Partial completion is possible; inspect failed before retrying. Requires explicit user confirmation of the affected recipients/records and final content/action. Provide one stable idempotency_key per confirmed operation and reuse it with identical arguments on retries (24-hour retention); a different key can repeat the action. On an unknown/pending result, reconcile the returned record/request ID before any retry; never create a new key to bypass an error.
calendar_create_appointment
ChatGPTCreate an appointment using public booking by bookingKey
calendar_get_config
ChatGPTGet public calendar configuration by bookingKey
calendar_get_slots
ChatGPTGet available slots by bookingKey for a date/service
calls_list
ChatGPTList calls with filters. Use IMMEDIATELY when user asks about calls, phone calls, or call history. Filter supports: contactId, phone, status, startDate, endDate, or direction (inbound/outbound).
companies_create
ChatGPTCreate a new company. CRITICAL: Always use companies_list first to check if company already exists before creating. Only create if search returns no results.
companies_list
ChatGPTList companies with filters. Use IMMEDIATELY when user asks about companies, organizations, or businesses. Always search before creating - do not create companies when user asks to see existing ones.
deals_search
ChatGPTSearch for deals by filters. Use IMMEDIATELY when user asks about deals, urgent deals, follow-ups, pipeline, or sales opportunities. Supports filtering by stage, status, owner, contact, company, pipeline, or search text. Returns deals with stage, pipeline, owner, contact, and company info.
emails_analytics
ChatGPTGet email analytics
emails_get_thread
ChatGPTGet email thread history
emails_schedule
ChatGPTSchedule one email with the configured provider at sendAt (ISO timestamp with timezone) to the explicit to address. Requires emails:schedule; consumes email credits. Uses the platform sender/workspace name; related IDs do not change recipient or body. Returns emailId, queued status, scheduledFor and provider acknowledgement, not delivery. Open/click tracking defaults true. Requires explicit user confirmation of the affected recipients/records and final content/action. Provide one stable idempotency_key per confirmed operation and reuse it with identical arguments on retries (24-hour retention); a different key can repeat the action. On an unknown/pending result, reconcile the returned record/request ID before any retry; never create a new key to bypass an error.
emails_send
ChatGPTSend one email to the explicit to address using the configured platform sender and connected workspace name. Requires emails:send, subject and body; consumes email credits. Related contact/company/deal/template IDs must belong to this workspace and do not replace the recipient or body. Returns emailId, provider acceptance status and message; acceptance is not inbox delivery. Open/click tracking defaults to true; disclose it or disable it as requested. Requires explicit user confirmation of the affected recipients/records and final content/action. Provide one stable idempotency_key per confirmed operation and reuse it with identical arguments on retries (24-hour retention); a different key can repeat the action. On an unknown/pending result, reconcile the returned record/request ID before any retry; never create a new key to bypass an error.
emails_send_bulk
ChatGPTCreate email records and immediately attempt provider delivery to 1–100 explicit recipientIds in this workspace using the owned templateId and subject. Requires emails:send_bulk; consumes credits. No filter-based audience expansion. Missing addresses and opted-out contacts are skipped. Returns batchId, queuedCount, skipped and skippedReasons; queuedCount is the number attempted, not proof of delivery. Read email history to verify outcomes. Requires explicit user confirmation of the affected recipients/records and final content/action. Provide one stable idempotency_key per confirmed operation and reuse it with identical arguments on retries (24-hour retention); a different key can repeat the action. On an unknown/pending result, reconcile the returned record/request ID before any retry; never create a new key to bypass an error.
export_companies
ChatGPTExport companies data
export_contacts
ChatGPTExport contacts data
export_deals
ChatGPTExport deals data
jobs_schedule
ChatGPTSchedule a job/appointment
leads_search
ChatGPTSearch for contacts/leads by filters. Use when the user asks to look up a ServiceAgent contact. Filter supports: { name: "..." }, { email: "..." }, { phone: "..." }, { firstName: "...", lastName: "..." }, or combinations. Do not ask the user for details you can look up.
leads_upsert
ChatGPTCREATE CONTACT: Create or update a contact/lead. Use this to add new contacts or update existing ones. Accepts contact info with name (or firstName/lastName), email, and phone. Example: { contacts: { name: "John Doe", email: "john@example.com", phone: "+1234567890" } }
quotes_generate
ChatGPTGenerate quote from intake/transcript
reviews_request
ChatGPTSubmit a review request for a workspace contact via email or SMS, using workspace review settings and template. Requires reviews:request. Creates tracked review-request records and may send immediately or queue for the configured time; consumes communication credits. Returns review_request_ids and per-request statuses, not guaranteed delivery. Confirm recipient, channel and template before calling. Requires explicit user confirmation of the affected recipients/records and final content/action. Provide one stable idempotency_key per confirmed operation and reuse it with identical arguments on retries (24-hour retention); a different key can repeat the action. On an unknown/pending result, reconcile the returned record/request ID before any retry; never create a new key to bypass an error.
tasks_complete
ChatGPTMark a task as completed
tasks_create
ChatGPTCreate a new task. CRITICAL: If user asks to "see tasks" or "list tasks", use tasks_list instead. Only create when user explicitly asks to create/remember/follow-up. Resolve natural language dates like "tomorrow" or "next week" yourself using date_calculate tool.
tasks_list
ChatGPTList tasks with filters. Use IMMEDIATELY when user asks about tasks, overdue tasks, or task status. Supports filtering by status (e.g., "open", "completed"), priority, contact, company, deal, owner, or overdue (set overdue=true to get tasks past their due date).
tasks_update
ChatGPTUpdate an existing task
workflows_create
ChatGPTCreate a new workflow automation
workflows_executions
ChatGPTGet workflow execution history
workflows_get
ChatGPTGet workflow details
workflows_list
ChatGPTList workflows with filters
workflows_trigger
ChatGPTTrigger workflow execution Requires explicit user confirmation of the affected recipients/records and final content/action. Provide one stable idempotency_key per confirmed operation and reuse it with identical arguments on retries (24-hour retention); a different key can repeat the action. On an unknown/pending result, reconcile the returned record/request ID before any retry; never create a new key to bypass an error.
workflows_update
ChatGPTUpdate an existing workflow