MCP App Store
by KeenEthics
Productivity
Ambiguous Workspace icon

Ambiguous Workspace

by Ambiguous AI

Overview

Ambiguous is the workspace for human-AI collaboration. 17 productivity apps rebuilt from scratch to make work flow across Docs, Mail, Chat, Sheets, CRM, Calendar, and more. Each AI coworker has its own identity and works in the same apps and on the same data like the rest of the team. You can send it an email, message it in chat, assign it a task, or @mention it in a comment. Teams of up to five can use all 17 apps for free, and agents can get started through CLI or MCP in under a minute.

Tools

ack_mentions_activity

ChatGPT
Acknowledge the Mentions & reactions inbox after it has been displayed. Marks the caller's unread chat mention notifications read and stamps users.mentions_acked_at, so the projector recomputes both chat.mentions and chat.reactions to 0 durably (the sidebar "Mentions & reactions" item un-bolds and stays cleared across re-fetch). Per-channel read cursors are untouched, so channel message unread counts are unaffected; a reaction that arrives after the ack re-bolds the item.

ack_thread_activity

ChatGPT
Acknowledge the Threads inbox on view-enter. Upserts thread_reads.last_read_at = now() for every subscribed thread that currently has an unread reply, so the projector recomputes chat.threads to 0 durably (the sidebar "Threads" badge clears and stays cleared across re-fetch). Does not move per-thread "New" watermarks in an open view.

add_conditional_format

ChatGPT
Add a conditional formatting rule to a spreadsheet. Provide either a booleanRule (highlight cells matching a condition like NUMBER_GREATER, TEXT_CONTAINS, BLANK, CUSTOM_FORMULA) or a gradientRule (color scale across a range). The server generates a unique ID for the rule.

add_deal_line_item

ChatGPT
Add a line item to a deal. Either reference an existing product (via product_id) or create a custom line by providing name and unit_price. The deal amount is auto-recalculated.

add_forwarding_address

ChatGPT
Add a forwarding address (sends verification email).

add_pipeline_member

ChatGPT
Add (or update the role of) a user or team on a CRM pipeline. Provide either user_id or team_id, plus role (admin | member). Admins/owners and pipeline admins can manage members.

add_shared_drive_member

ChatGPT
Add a member (manager-only).

add_sheet_column

ChatGPT
Add a column to a sheet tab.

add_sheet_rows

ChatGPT
Append rows to a sheet tab. Each row is an object keyed by column ID. Example: [{"A": "Widget", "B": 9.99}].

add_sheet_tab

ChatGPT
Add a new tab to a sheet. Auto-generates the name if not provided.

add_slide

ChatGPT
Add a new slide to an existing presentation. Provide the slide as a JSON object with layout, background, and elements. Each element has a type (text, image, shape, table, video, group), position (x, y), size (w, h), and type-specific properties. IMPORTANT: Create SEPARATE text elements for each visual block (title, each bullet point, each paragraph). Do NOT put multiple lines or bullet points in a single text element — create one element per line with proper positioning. Use bullet character '•' instead of markdown '*' or '-'. Set fontSize and fontWeight per element for visual hierarchy. If the user is currently viewing a presentation, use the presentation ID from the page context.

add_task_attachment

ChatGPT
Attach a Drive file to a task. Idempotent — re-attaching the same file returns the existing row.

add_team_member

ChatGPT
Add a user to a team with an optional role (admin or member). Only team admins or workspace admins can add members. Default role is 'member'. Use this when the user asks to add someone to a team or distribution list.

admin_integration_delete

ChatGPT
disconnect an integration

admin_integration_update

ChatGPT
update integration config

admin_integrations_list

ChatGPT
list all integrations for workspace

admin_integrations_slack_channels

ChatGPT
list Slack channels via bot token

admin_invite_delete

ChatGPT
Revoke (cancel) a pending invite

admin_invite_resend

ChatGPT
Resend invite email + refresh expiry

admin_invites_list

ChatGPT
List unaccepted, unexpired workspace invites

admin_mail_suppression_create

ChatGPT
manually add a suppression

admin_mail_suppression_delete

ChatGPT
remove a suppression

admin_mail_suppressions_list

ChatGPT
list suppressed addresses

admin_notification_defaults_get

ChatGPT
Read workspace-default email notification prefs. Returns sensible defaults (all enabled) when never configured.

admin_notification_defaults_update

ChatGPT
Partially update workspace-default email notification prefs. Emits settings.updated audit event.

admin_usage_export

ChatGPT
Export usage stats as CSV

admin_usage_timeseries

ChatGPT
Daily creation counts (last 14 days, split into "last 7" + "prior 7" windows) for the four hero metrics on the Overview tab. Powers row 13.16 sparkline cards. Returns {users, documents, messages, emails} each with {buckets[7], total, previous_total} so the UI can draw a sparkline + render a 7...

admin_user_get

ChatGPT
Get user details

admin_user_reset_password

ChatGPT
Admin-initiated password reset. Returns the reset outcome — sent is false when the email bounced, in which case reset_url is the only way the caller reaches the link.

admin_user_suspend

ChatGPT
Suspend a user account. Suspended accounts return 403 on all API calls.

admin_user_unsuspend

ChatGPT
Unsuspend a user account. Restores access to all API calls.

admin_workspace_logo_delete

ChatGPT
Remove workspace logo (admin only)

analytics_user_timeline

ChatGPT
Get a user's event timeline with session grouping (30-min inactivity split). Walks the alias graph (depth 5) to include all prior identities.

analytics_users_aggregates

ChatGPT
List analytics user profiles from the materialized view (faster at high volume, nightly refresh). Falls back to direct read when MV is unavailable.

analytics_users_list

ChatGPT
List analytics user profiles (paginated, searchable). Returns traits, first_seen, last_identified.

append_sheet_values

ChatGPT
Append rows of values to a sheet at the first empty row in a range. The server finds the insertion point — no need to read the last row first. Uses OVERWRITE semantics (does not shift existing data).

apply_deal_template

ChatGPT
Create a new deal from a saved deal template. The template provides default pipeline, stage, amount, probability, and line items. Use this when starting a deal that matches a known pattern (e.g., 'Standard Enterprise Plan').

apply_master_to_slide

ChatGPT
Link a master slide to a specific slide by 0-based index. The slide stores a by-reference link, retains its existing elements as child-owned content, and clears prior master-element override markers. Current master elements inherit at render time and future master edits flow through automatically.

apply_task_template

ChatGPT
Create a new task by applying a template's defaults. The template pre-fills status, priority, estimate, assignee, description, and labels. Override any field by passing it explicitly. Title is always required.

apply_transition_to_all

ChatGPT
Apply a slide transition to every slide in the deck. Set transition.type to 'none' to clear transitions on all slides. Prefer duration_s (float seconds, 0.1–10); legacy speed presets map to slow=1.0s, medium=0.5s, fast=0.3s.

archive_mail_thread

ChatGPT
Archive every inbox-folder message in a thread

assign_role

ChatGPT
Assign a role to a user. Requires admin role.

auth_whoami

ChatGPT
Return the current authenticated user's profile (works with both JWT and API-key auth). needs_workspace_setup: true indicates the account has no workspace yet.

batch_archive_emails

ChatGPT
Archive multiple emails in one atomic call. Moves all specified messages to the archive folder. Use this when the user wants to bulk-archive many emails (e.g., inbox-zero cleanup, archiving all messages from a sender).

batch_clear_sheet_values

ChatGPT
Clear all cell values in multiple ranges atomically. Sets cells to null without removing rows or columns. Useful for resetting template sheets or clearing data regions.

batch_file_permissions

ChatGPT
Batch-fetch permissions for up to 50 files by ID. Returns a map of file_id → permissions array.

batch_get_contacts

ChatGPT
Fetch multiple CRM contacts by their IDs in a single request (max 100). Missing or inaccessible IDs are silently omitted from the result.

batch_get_deals

ChatGPT
Fetch multiple CRM deals by their IDs in a single request (max 100). Missing or inaccessible IDs are silently omitted from the result.

batch_get_files

ChatGPT
Batch-fetch up to 50 files by ID. Powers drive:// embed hydration in Chat/Docs/Wiki/CRM.

batch_get_sheet_values

ChatGPT
Fetch multiple disjoint ranges from a spreadsheet in a single request. Avoids N sequential round-trips when reading KPIs from different regions.

batch_modify_emails

ChatGPT
Batch modify multiple emails in one atomic call. Can star/unstar, mark read/unread, add/remove labels, and change folder — all at once for up to 500 messages. Use this when the user wants to bulk-update many emails (e.g., star all from a sender, mark a batch as read, apply labels to multiple messages).

batch_trash_emails

ChatGPT
Trash multiple emails in one atomic call. Moves all specified messages to the trash folder. Use this when the user wants to bulk-trash many emails (e.g., spam cleanup, clearing a project mailbox).

block_sender

ChatGPT
Block a sender (address or domain).

book_event_resources

ChatGPT
Book one or more resources (rooms, equipment) for an existing event. Returns a conflict error if a resource is already booked.

bulk_archive_tasks

ChatGPT
Archive up to 100 tasks at once. Only archives tasks the caller created or is assigned to.

bulk_copy_files

ChatGPT
Copy multiple files to a folder (max 100).

bulk_delete_contacts

ChatGPT
Delete many CRM contacts in a single operation. Returns counts of deleted/skipped/failed items.

bulk_delete_deals

ChatGPT
Delete many deals

bulk_delete_messages

ChatGPT
Soft-delete up to 100 messages in a channel. Deletes only the IDs the caller may delete (own messages, or any message when the caller is a channel admin); every other ID returns in rejected. Emits one bulk message.deleted event, never one per message.

bulk_delete_tasks

ChatGPT
Soft-delete multiple tasks at once by ID. Only deletes tasks the current user created. Max 100 task IDs per call. Subtasks cascade. Use restore_task to recover individually.

bulk_export_contacts

ChatGPT
Export the selected contacts as a CSV string (all core fields + custom properties). Useful for producing a snapshot for downstream analysis.

bulk_export_deals

ChatGPT
Export selected deals as CSV

bulk_move_files

ChatGPT
Move multiple files to a folder (max 100).

bulk_update_contacts

ChatGPT
Update many CRM contacts in a single operation. Useful for re-assigning ownership, updating lifecycle stage on a list of contacts, or reclassifying industry. Provide an array of contact IDs and the fields to apply to all of them.

bulk_update_deals

ChatGPT
Update many CRM deals in a single operation. Useful for moving multiple deals to a new stage, reassigning ownership, or marking a batch of deals as won/lost. Provide an array of deal IDs and the fields to apply.

bulk_update_tasks

ChatGPT
Update multiple tasks at once by ID. Only updates tasks the current user has access to (creator or assignee). Max 100 task IDs per call. Omit fields you do not want to change. Pass null to clear a nullable field (assignee_id, project_id, due_date, goal_id, task_status_id).

calendar_conflicts

ChatGPT
Detect attendee scheduling conflicts.

calendar_event_export_ics

ChatGPT
Export single event as .ics.

calendar_event_meeting_notes_create

ChatGPT
Create a meeting-notes doc for an event, or — when document_id is given — link that existing doc and grant attendees access.

calendar_event_reminders_create

ChatGPT
Add a reminder.

calendar_event_reminders_list

ChatGPT
List event reminders.

calendar_event_reminders_set

ChatGPT
Replace reminder list.

calendar_event_unbook_resources

ChatGPT
Unbook resources.

calendar_export_ics

ChatGPT
Export entire calendar as .ics.

calendar_external_auth_url

ChatGPT
Start external provider OAuth.

calendar_external_calendars_enable_sync

ChatGPT
Enable two-way sync.

calendar_external_calendars_list

ChatGPT
List calendars on connection.

calendar_external_connection_delete

ChatGPT
Disconnect external account.

calendar_external_connections_list

ChatGPT
List connected external accounts.

calendar_external_force_sync

ChatGPT
Pull every mirror calendar on this connection now, rather than waiting for the scheduler. Returns the per-calendar created / updated / deleted counts, plus an errors row for each calendar the run could not reach — a sync can succeed for some mirrors and fail for others.

calendar_external_synced_disable

ChatGPT
Disable sync for one calendar.

calendar_import_ics_url

ChatGPT
Import an .ics feed by URL. Fetches the URL server-side and imports its events into the calendar.

calendar_reminder_delete

ChatGPT
Delete a reminder.

calendar_resource_delete

ChatGPT
Delete a resource.

calendar_resource_get

ChatGPT
Get a resource.

calendar_resource_update

ChatGPT
Update a resource.

calendar_resources_create

ChatGPT
Create a bookable resource.

calendar_upcoming_reminders

ChatGPT
Reminders due to fire within the next window_hours (default 24, max 168), soonest first. Each row carries the event it is about — title, span, status, location and calendar — so the caller renders the row without a second fetch.

calendars_create

ChatGPT
Create a calendar.

calendars_delete

ChatGPT
Delete a calendar.

calendars_update

ChatGPT
Update calendar fields.

cancel_scheduled_email

ChatGPT
Cancel a scheduled email

cancel_scheduled_message

ChatGPT
Cancel a pending scheduled message so it's never sent. Use this when the user says 'never mind' or changes their plan before the scheduled time.

change_coworker_manager

ChatGPT
Reassign the accountable human (manager) for a coworker. Admin-only — the current manager cannot reassign themselves out.

chat_channel_create

ChatGPT
Create channel

chat_channel_delete

ChatGPT
Delete channel

chat_channel_get

ChatGPT
Get a specific channel by UUID, with members.

chat_channel_group_remove

ChatGPT
Remove a group from channel (clean up fan-out rows)

chat_channel_join

ChatGPT
Self-join a public channel (no body required)

chat_channel_last_messages

ChatGPT
Batch-fetch the latest message preview for multiple channels in one request. Pass ids as a comma-separated list of channel IDs (max 100). Returns one entry per channel the caller can read, each carrying its channel_id. Replaces per-channel GET /messages?limit=1 calls so a DMs/channels list renders previews without an N+1 request fan-out.

chat_channel_leave

ChatGPT
Leave a channel

chat_channel_member_remove

ChatGPT
Remove member

chat_channel_members_add

ChatGPT
Add member(s) or a group

chat_channel_notification_preference

ChatGPT
Update the calling user's notification preference for this channel. Controls how unread activity surfaces in the channel list: unread_only (default — bold the channel name when there are unread top-level messages), all_messages (numeric badge), mentions_only (badge only when @mentioned), nothing (no visual). Per-user — does not affect other channel members.

chat_channel_notification_prefs

ChatGPT
Update the caller's per-channel notification preferences (unread_display: count | dot | since_visit).

chat_channel_update

ChatGPT
Update channel

chat_draft_create_saved

ChatGPT
Create a saved (named) draft for the caller.

chat_draft_delete

ChatGPT
Delete a draft owned by the caller.

chat_draft_update

ChatGPT
Update a saved draft owned by the caller.

chat_drafts_list

ChatGPT
The caller's chat drafts (inflight + saved), newest first.

chat_emoji_image

ChatGPT
Serve custom emoji image from GCS

chat_mentions_inbox

ChatGPT
Messages from other users that @-mention the caller. Powers the Mentions tab.

chat_message_delete

ChatGPT
Delete message

chat_message_update

ChatGPT
Edit message or pin/unpin

chat_preferences

ChatGPT
Workspace-level chat preferences readable by any authenticated member (default_reactions).

chat_reactions_inbox

ChatGPT
Messages authored by the caller that carry reactions from other users. Powers the Mentions & Reactions inbox.

chat_saved_ids_list

ChatGPT
Get saved message IDs for a channel (for UI bookmarked state)

chat_sidebar_create_section

ChatGPT
Create a custom chat-sidebar section for the caller.

chat_sidebar_delete_section

ChatGPT
Delete a chat-sidebar section owned by the caller.

chat_sidebar_list_sections

ChatGPT
The caller's custom chat-sidebar sections, ordered by position.

chat_sidebar_reorder_sections

ChatGPT
Reorder the caller's chat-sidebar sections.

chat_sidebar_update_section

ChatGPT
Rename a chat-sidebar section or set its channels.

chat_thread_activity_list

ChatGPT
List thread-activity inbox for the current user. Row 5.1 (D204): powers the sidebar "Threads" inbox entry. Returns threads the user is involved in (authored parent OR replied), ordered by most recent reply desc, with unread_reply_count computed from thread_reads.last_read_at.

chat_thread_get

ChatGPT
Get thread replies

check_availability

ChatGPT
Check free/busy availability for one or more users in a given time range. Returns busy time slots (not event details) for each user. Use this when the user asks to find a free time, check if someone is available, or schedule a meeting. Call this before create_event to avoid scheduling conflicts.

check_resource_availability

ChatGPT
Check if a specific resource (room, equipment) is free in a time range. Call before booking to avoid conflicts.

check_workspace_slug

ChatGPT
Check whether a workspace slug is available.

clear_calendar

ChatGPT
Delete ALL events from a calendar. Owner-only — use for resetting shared calendars at quarter boundaries or wiping test data. Returns the count of deleted events. This is irreversible.

clear_reminder

ChatGPT
Clear a pending reminder on a saved message. The message stays saved; only the reminder is removed.

clear_sheet_validation

ChatGPT
Remove a data validation rule from a spreadsheet by range. The range is matched after normalization (sheet tab defaults to Sheet1 if not specified). Returns 404 if no rule exists for that range.

clear_user_status

ChatGPT
Clear the current user's status (emoji + text + expiresAt). Does NOT change DND — use set_user_dnd with until=null to clear DND separately.

compute_pivot_table

ChatGPT
Compute the result of a persisted pivot table — applies row/column grouping, value aggregation, sort orders, and any matching slicer filters, and returns the rendered cells. The pivot config itself (row/column/value fields, source range) is not modified.

compute_wiki_rollups

ChatGPT
Compute and return rollup values for all rows in the database. Each rollup aggregates a property across related rows.

copy_sheet_to

ChatGPT
Copy a sheet tab from one spreadsheet to another. Deep-copies columns, rows, formulas, formatting, and merges. Cross-document formulas will show as #REF!. Requires viewer access on source and editor access on destination.

coworkers_conversation_get

ChatGPT
Proxy (workspace-isolated): get a single conversation thread.

coworkers_conversations_list

ChatGPT
Proxy (workspace-isolated): list conversations for the coworker in the active workspace.

coworkers_execution_cancel

ChatGPT
Kill switch: cancel an in-flight execution. Flips an active (PENDING/RUNNING/PAUSED) coworker_executions row to CANCELLED; the SPEAR loop aborts at its next action-call boundary. Idempotent no-op on an already-terminal execution.

coworkers_execution_get

ChatGPT
Get one execution with full trace data — task row, parent/children lineage, conversation, SPEAR cycles, and tool-call activities. Powers the Execution Trace debug view.

coworkers_executions_list

ChatGPT
Proxy: list coworker execution history (paginated).

coworkers_monitored_channels_add

ChatGPT
Proxy (workspace-isolated): start monitoring a channel.

coworkers_monitored_channels_list

ChatGPT
Proxy (workspace-isolated): list channels the coworker is monitoring.

coworkers_monitored_channels_remove

ChatGPT
Proxy (workspace-isolated): stop monitoring a channel.

coworkers_playbook_versions_create

ChatGPT
Append a new version. Auto-increments the version number and marks the new version current. Prior versions stay readable for audit.

coworkers_playbook_versions_get

ChatGPT
Get one historical version's instructions and subtasks.

coworkers_playbook_versions_list

ChatGPT
List all versions of a playbook, newest first.

coworkers_playbooks_archive

ChatGPT
Archive a playbook. Archived playbooks are hidden from lists and cannot be selected during dispatch, but remain linked to historical executions for audit.

coworkers_playbooks_create

ChatGPT
Create a playbook and its initial version. instructions and subtasks seed version 1, which becomes the current version.

coworkers_playbooks_delete

ChatGPT
Delete a playbook and its versions. Returns 409 if any coworker_executions still reference the playbook — use the archive endpoint to retire it instead.

coworkers_playbooks_get

ChatGPT
Get one playbook with its current version's instructions and subtasks.

coworkers_playbooks_list

ChatGPT
List the coworker's playbooks (metadata + current version pointer).

coworkers_playbooks_update

ChatGPT
Edit playbook metadata in place (title, objective). Instructions and subtasks are immutable — create a new version instead.

coworkers_rotate_token

ChatGPT
Rotate the management token used to talk to the coworker service.

create_chart

ChatGPT
Embed a chart on a tab of the sheet. Charts visualize a rectangular data range — pick a chart type (bar / line / pie / scatter), the source range, and an overlay position. Returns the created chart with its server-assigned id.

create_contact

ChatGPT
Create a new CRM contact (person or company). Persons can be linked to a company via company_id. IMPORTANT: Before creating a contact, ALWAYS call list_contacts with a search query (q) to check if a contact with the same name or email already exists. If a matching contact is found, use update_contact instead of creating a duplicate. Only create a new contact if no match is found. Use this when the user asks to add a contact, log a lead, or create a company record.

create_contact_group

ChatGPT
Create a named contact group for organizing contacts. Groups allow overlapping membership — a contact can be in multiple groups.

create_crm_property_definition

ChatGPT
Define a typed custom property for contacts or deals. field_type 'relation' (with relation_target contact|company|deal) makes the property a link to another record: values written to custom_properties under this key must be the id of an existing record of the target type.

create_crm_view

ChatGPT
Create a saved CRM view: a named filter+sort preset for contacts, companies, or deals. Useful when the user asks to 'save this filter' or 'create a view for high-value deals'.

create_data_connector

ChatGPT
Create a new data connector that fetches data into specific cells of a sheet. After creating, call run_data_connector to execute it.

create_deal

ChatGPT
Create a new CRM deal (revenue opportunity). Deals belong to a pipeline and sit in a specific stage. Link to a contact and/or company. Use this when the user asks to create a deal, log an opportunity, or start tracking a sale.

create_deal_template

ChatGPT
Create a deal template — a reusable preset for creating deals with standard pipeline/stage/amount and line items. Use when the user has a repeatable sale like 'Standard Enterprise Plan'.

create_draft_email

ChatGPT
Create a draft email without sending it. The draft is saved in the drafts folder for later review, editing, or sending. Use this when the user wants to compose an email for later, save a draft, or prepare a message without sending it immediately.

create_event

ChatGPT
Create a new calendar event. Requires a title, start time, and end time. Optionally add a description, location, attendees, recurrence, and more. Use this when the user asks to schedule a meeting, add an event, or book time. If the user doesn't specify a calendar, use list_calendars to find their default calendar ID first.

create_folder

ChatGPT
Create a new folder in Drive. Returns the created folder with id, name, and path. Use this when the user asks to create, make, or add a new folder for organizing files. Supports nested folders via parent_folder_id.

create_form

ChatGPT
Create a new form for collecting data (surveys, feedback, registrations, quizzes). Returns the created form with id and public slug. Use this when the user asks to create a survey, questionnaire, feedback form, registration form, or any structured data collection. Define fields with types, labels, validation, and optional conditional logic.

create_form_variant

ChatGPT
Create a new A/B test variant by duplicating the parent form. Optionally override fields to change question wording, field types, options, or validation. Traffic weight (0–100) controls the percentage of visitors who see this variant versus the control. Use when the user asks to set up an A/B test or add a variant.

create_mail_label

ChatGPT
Create a label.

create_mail_rule

ChatGPT
Create a mail rule.

create_mail_template

ChatGPT
Create a template.

create_named_range

ChatGPT
Create a named range on a spreadsheet. Named ranges let formulas reference a range by name (e.g., =SUM(Revenue) instead of =SUM(Sheet1!B2:B100)). Accepts A1 notation for the range.

create_pipeline

ChatGPT
Create a new CRM pipeline with ordered stages. Each stage has a name and an optional default probability (0-100). Most workspaces need only one pipeline; create additional ones for distinct sales processes (e.g., 'New Business' vs 'Renewals').

create_pivot_table

ChatGPT
Create a pivot table from sheet data. A new sheet tab is automatically created to hold the pivot. Specify the source data range, which columns to group by (rows/columns), and which columns to aggregate (values).

create_presentation

ChatGPT
Create a new presentation deck. Returns the created SlideDeck envelope with one blank slide. This is the Slides-native alias for POST /api/documents with type:'slide' — both produce the same result.

create_product

ChatGPT
Create a product in the workspace catalog. Products are the reusable items that can be attached to deal line items and quote line items. Set is_active=false to retire without deleting.

create_project

ChatGPT
Create a new project to group related tasks. Use this when the user asks to start a new project or create a container for tasks.

create_project_update

ChatGPT
Post a status update on a project. Use this when the user wants to report progress, flag a risk, or share a status update on a project. The status field captures the health signal (on_track, at_risk, off_track, paused, completed, cancelled).

create_quote

ChatGPT
Create a CRM quote (proposal) with line items. Auto-computes subtotal, tax, discount, and total. Link to a deal/contact/company via IDs. Status defaults to 'draft' — use send_quote to email it.

create_role

ChatGPT
Create a custom role with specific permissions. Requires admin role.

create_scoring_rule

ChatGPT
Create a lead scoring rule. When a contact matches (field + operator + value), the specified points are added to their lead score. Positive points indicate engagement; negative points indicate disqualification signals.

create_sequence

ChatGPT
Create a multi-step CRM sequence (email/wait/task/call/branch steps). Use this when the user asks to build a nurture campaign or outreach cadence.

create_shared_drive

ChatGPT
Create a shared drive. Creator becomes a manager.

create_sheet

ChatGPT
Create a new spreadsheet. Convenience alias for POST /api/documents with type: "sheet" enforced. Returns the full Sheet envelope (id, title, owner, visibility, timestamps, and data body) so the caller can immediately read or edit cells without a second round-trip. Optional content may be a SheetData JSON object or a string that parses as JSON.

create_slicer

ChatGPT
Add a slicer to a tab of the sheet. Slicers filter pivot tables and charts that share the same source range by the values selected for a single column. selectedValues: null passes everything through; [] filters everything out; a non-empty array passes only those values. Returns the created slicer with its server-assigned id.

create_slide_master

ChatGPT
Create a new master slide for a deck. If no elements are provided, a default Title + Subtitle layout is used.

create_subtask

ChatGPT
Create a subtask under the given parent task. Equivalent to POST /api/tasks with parent_task_id pre-filled from the URL parameter.

create_task

ChatGPT
Create a new task. Auto-subscribes the creator and (if assigned) the assignee. Auto-sets SLA due date when priority is set without an explicit due_date. Auto-logs a CRM activity if linked to a contact.

create_team

ChatGPT
Create a new team in the workspace. The caller becomes the team admin. Teams can serve as email distribution lists (when email_local_part is set) and/or permission targets. Use this when the user asks to create a team, distribution list, or mailing list.

create_wiki_page

ChatGPT
Create a new wiki page within a space. Pages use Markdown content and support nested hierarchies via parent_page_id. Use this when the user asks to create a wiki page, add documentation, write a runbook, or add to the knowledge base. Call list_wiki_spaces first to get the space ID.

create_wiki_page_version

ChatGPT
Create a manual snapshot of the current wiki page state. Useful before a risky edit or when the user wants to mark a 'known good' checkpoint. Optional label names the snapshot. Returns the new version's id + metadata.

create_wiki_space

ChatGPT
Create a new wiki space (a top-level container for pages). Use this when the user asks to create a new knowledge base area, team wiki, or documentation section. Spaces organize pages by team or domain (e.g., 'Engineering', 'Product', 'Company Handbook').

create_wiki_synced_block

ChatGPT
Create a synced block — a reusable content fragment that can be embedded in multiple wiki pages and stays in sync everywhere it's used. Returns the new block's id. Use this when the user asks to create a shared snippet, reusable callout, or cross-page content.

create_workspace_invite

ChatGPT
Create one or more workspace invites. Empty body mints a generic shareable link (returns invite_url). {email} or {emails:[...]} creates per-recipient invites and sends emails. Role defaults to member and is forced to member for any value other than admin.

crm_contact_file_attach

ChatGPT
Attach a Drive file to a contact

crm_contact_file_detach

ChatGPT
Detach a file from a contact

crm_contact_files_list

ChatGPT
List files attached to a contact

crm_contact_photo_get

ChatGPT
Serve contact photo

crm_deal_activities

ChatGPT
List activities for deal (owner-scoped)

crm_deal_file_attach

ChatGPT
Attach a Drive file to a deal

crm_deal_file_detach

ChatGPT
Detach a file from a deal

crm_deal_files_list

ChatGPT
List files attached to a deal

crm_quote_pdf

ChatGPT
Export quote as PDF (or printable HTML with ?format=html)

cycles_add_tasks

ChatGPT
Add tasks to the cycle. Body {task_ids: [...]}.

cycles_analytics

ChatGPT
Burndown + summary analytics for the cycle.

cycles_complete

ChatGPT
Complete a cycle. If auto_rollover is set, incomplete tasks are moved to the next cycle.

cycles_create

ChatGPT
Create a new cycle. Body fields: name, start_date, end_date, status?, cooldown_days?, auto_rollover?.

cycles_delete

ChatGPT
Delete a cycle. Tasks attached to the cycle are unlinked, not deleted.

cycles_get

ChatGPT
Get one cycle.

cycles_list

ChatGPT
List cycles in the active workspace. ?status= filters by status; ?limit= (1–200) and ?offset= paginate. has_more is set when the underlying query returned a hint of more rows.

cycles_remove_tasks

ChatGPT
Remove tasks from the cycle. Body {task_ids: [...]}.

cycles_update

ChatGPT
Update cycle fields.

cycles_velocity

ChatGPT
Cross-cycle velocity (last N closed cycles). Default limit=10.

delete_activity

ChatGPT
Delete activity

delete_chart

ChatGPT
Remove a chart from the sheet. Returns { deleted: true } on success.

delete_conditional_format

ChatGPT
Delete a conditional formatting rule from a spreadsheet by its ID. Returns 200 on success, 404 if the rule does not exist.

delete_contact

ChatGPT
Delete a CRM contact (owner-scoped). Permanently removes the contact record. Use with caution — prefer updating lifecycle_stage to 'evangelist' or archiving via merge instead.

delete_contact_group

ChatGPT
Delete a contact group. Memberships are removed but contacts themselves are preserved.

delete_contact_photo

ChatGPT
Delete a CRM contact's profile photo. Clears the avatar_url and removes the stored image.

delete_coworker

ChatGPT
Delete a coworker (revokes API key + tears down config).

delete_crm_property_definition

ChatGPT
Delete a custom-property definition. Existing custom_properties values are left in place; they simply stop being typed.

delete_crm_view

ChatGPT
Delete a saved CRM view.

delete_custom_emoji

ChatGPT
Delete a custom emoji from the workspace. Use this when the user asks to remove or clean up a custom emoji. This does not remove existing reactions or messages that used the emoji — it only stops new usage.

delete_data_connector

ChatGPT
Delete a data connector. Does not affect the cells it previously wrote to.

delete_deal

ChatGPT
Delete a CRM deal (owner-scoped). Permanently removes the deal record and its line items. Prefer updating status to 'lost' with a lost_reason for reporting purposes.

delete_deal_line_item

ChatGPT
Delete a deal line item. By default the deal's total amount is re-synced after deletion.

delete_deal_template

ChatGPT
Delete a deal template (does not affect deals previously created from it).

delete_document_version

ChatGPT
Delete a version snapshot of a document. At least one version must always remain — returns an error if attempting to delete the last version. Requires editor permission.

delete_email

ChatGPT
Delete an email.

delete_event

ChatGPT
Delete a calendar event. This is a destructive action — always confirm with the user before calling. If the user is currently viewing an event, use the event ID from the page context.

delete_file

ChatGPT
Delete a file or folder from Drive. This is a destructive action — always confirm with the user before executing. Deleting a folder also deletes all files inside it. Use this when the user explicitly asks to delete, remove, or trash a file or folder.

delete_form

ChatGPT
Delete a form and all its responses. This is a destructive action — always confirm with the user before executing. Use this when the user explicitly asks to delete or remove a form.

delete_form_response

ChatGPT
Delete a single form response. This is destructive — always confirm with the user before executing. Use when the user asks to remove or delete a specific submission.

delete_form_variant

ChatGPT
Delete an A/B test variant (and its underlying duplicated form). Destructive — always confirm with the user. Use when the user asks to remove a variant or end an experiment.

delete_mail_label

ChatGPT
Delete a label.

delete_mail_rule

ChatGPT
Delete a rule.

delete_mail_template

ChatGPT
Delete a template.

delete_named_range

ChatGPT
Delete a named range from a spreadsheet by name. Names are matched case-insensitively.

delete_pipeline

ChatGPT
Delete a CRM pipeline and all of its stages. Deals in the pipeline must be moved or deleted first.

delete_pivot_table

ChatGPT
Remove a pivot table from the sheet. The host tab itself stays — only the pivot row in pivotTables[] is removed. Returns { deleted: true } on success.

delete_product

ChatGPT
Delete a product from the workspace catalog. Existing deal/quote line items referencing it are NOT deleted, but their product_id is nulled.

delete_project

ChatGPT
Delete a project by ID. Only project admins or workspace admins can delete. Tasks belonging to the project are not deleted — they become unassigned from the project.

delete_quote

ChatGPT
Delete a CRM quote and its line items.

delete_recurring_event_future

ChatGPT
Delete this and all future occurrences of a recurring event by adding an UNTIL clause to the master's RRULE, ending the series the day before the given split_date.

delete_recurring_event_single

ChatGPT
Delete a single occurrence of a recurring event by adding the occurrence date to the master's excluded_dates. The occurrence is suppressed without affecting other instances.

delete_role

ChatGPT
Delete a custom role. System roles cannot be deleted. Requires admin role.

delete_scoring_rule

ChatGPT
Delete a lead scoring rule.

delete_sequence

ChatGPT
Delete a sequence (and all its enrollments).

delete_shared_drive

ChatGPT
Delete a shared drive (destructive, manager-only).

delete_sheet_rows

ChatGPT
Delete rows from a sheet tab by 0-based index.

delete_slicer

ChatGPT
Remove a slicer from the sheet. Returns { deleted: true } on success.

delete_slide_master

ChatGPT
Delete an unused master slide. Returns 409 with the referencing slide count while the master is in use.

delete_team

ChatGPT
Permanently delete a team from the workspace. Only team admins or workspace admins can delete. All memberships are removed. Child teams are orphaned (parent set to null). Use this when the user asks to delete, remove, or dissolve a team.

delete_user

ChatGPT
Deactivate or delete a user from the workspace. Requires admin role. Cannot delete the last remaining owner. Irreversible.

delete_wiki_page

ChatGPT
Delete a wiki page and all its child pages. This is a destructive action — always confirm with the user before executing. Deleting a parent page deletes the entire sub-tree. Use this when the user explicitly asks to delete or remove a wiki page.

delete_wiki_synced_block

ChatGPT
Soft-delete a synced block. Embedded references will show error chips until restored. Use restore_wiki_synced_block to undo.

detach_master_from_slide

ChatGPT
Detach a slide from its master. The slide keeps its current rendered elements but no longer inherits from the master.

docs_create_named_range

ChatGPT
Create a named range (template placeholder) on a document. Named ranges anchor to ProseMirror node positions and are used for template-based document generation. Use replace_named_range_content to fill a named range with content. Name must be alphanumeric + underscore, must not start with a digit (e.g., party_name, companyAddress).

docs_delete_named_range

ChatGPT
Delete a named range (template placeholder) from a document by name. Names are unique per document.

docs_list_named_ranges

ChatGPT
List all named ranges (template placeholders) defined on a document. Returns each range's name and its anchored node positions.

documents_comment_delete

ChatGPT
Delete a comment. Author or document owner only.

documents_comment_reaction_add

ChatGPT
Add an emoji reaction to a comment. Idempotent per (user, emoji). Returns the comment's updated reaction aggregate.

documents_comment_reaction_remove

ChatGPT
Remove the caller's emoji reaction from a comment. Returns the comment's updated reaction aggregate.

documents_comment_resolve

ChatGPT
Resolve or unresolve a comment. Editor permission required.

documents_comments_create

ChatGPT
Add a threaded comment. Commenter permission required. parent_id makes it a reply; anchor carries CRDT-stable position info.

documents_comments_list

ChatGPT
List threaded comments. Response includes per-user unread_count (comments by other users since the requester's last mark-read, not resolved).

documents_comments_mark_read

ChatGPT
Advance the requester's last-seen marker so the unread badge clears. Idempotent.

documents_delete

ChatGPT
Soft-delete a document (move to trash). Owner only.

documents_duplicate

ChatGPT
Make a copy. Title becomes 'Copy of <orig>'. Visibility resets to restricted; labels/pin/star are NOT inherited. Requires viewer access on the source.

documents_permanent_delete

ChatGPT
Permanently delete a trashed document. Irreversible.

documents_pin

ChatGPT
Toggle pinned state. Editor permission required (workspace-wide pin, not per-user).

documents_restore

ChatGPT
Restore a trashed document.

documents_shared_with_me

ChatGPT
Documents shared with the calling account through an explicit permission grant, across every workspace and every identity the account owns. Excludes documents the account owns. Each row names the workspace that shared it and the role the grant carries.

documents_star

ChatGPT
Toggle starred state. Viewer permission is sufficient. Body {starred: bool} is optional — omit to toggle.

documents_thumbnail

ChatGPT
Content-derived thumbnail for doc/sheet/slide cards. Returns SVG by default or PNG for Accept: image/png; cached privately for 60 seconds.

documents_trash_list

ChatGPT
List trashed (soft-deleted) documents owned by the caller. Optional ?type= filter.

documents_version_get

ChatGPT
Get a version's metadata + serialized content snapshot.

documents_version_revert

ChatGPT
Revert the document to a prior version. Force-snapshots current state first.

documents_versions_create

ChatGPT
Create a manual snapshot (forces past the 5-minute throttle).

documents_versions_list

ChatGPT
List version snapshots, newest-first, cursor-paginated (default 50 per page). Walk via next_cursor until has_more is false.

drive_file_confirm_upload

ChatGPT
Confirm a presigned upload completed successfully. Verifies the blob exists in storage, marks the file as confirmed, and emits the upload event. Idempotent — confirming an already-confirmed file returns it unchanged.

drive_file_request_create

ChatGPT
Create a revocable, write-only public file request for a folder. The capability token is returned only in this response.

drive_file_request_remint

ChatGPT
Replace a live file request's capability token without changing its request identity, limits, upload progress, or expiry. The previous token stops working immediately and the replacement token is returned only in this response.

drive_file_request_revoke

ChatGPT
Revoke a folder's public file request immediately.

drive_file_requests_list

ChatGPT
List the caller's file requests for one owned Drive folder.

drive_file_tag_attach

ChatGPT
Attach a tag to a file. Owner-only and idempotent.

drive_file_tag_detach

ChatGPT
Detach a tag from a file. Owner-only.

drive_file_update

ChatGPT
Rename, move, or star/unstar a file. Requires edit access — the owner or an editor/owner share.

drive_file_upload_init

ChatGPT
Initiate a file upload. Reserves a Drive row + storage key and returns a short-lived presigned PUT URL the client uploads the bytes to.

drive_files_recent

ChatGPT
Recently used files for the current user — opened in the last 30 days OR created in the last 24 hours. Sorted by max(createdAt, lastViewedAt) desc.

drive_files_shared_with_me

ChatGPT
Files shared with the current user via an explicit file_permissions row. Excludes files the user owns.

drive_files_starred

ChatGPT
Files the current user has starred.

drive_folder_ancestors

ChatGPT
Breadcrumb chain (root → leaf) for a folder. Powers breadcrumb hydration on deep-link reloads. Viewer permission is sufficient.

drive_shared_drive_folder_create

ChatGPT
Create a folder inside a shared drive. Requires contributor+ on the drive. Pass parent_folder_id to nest.

drive_tag_create

ChatGPT
Create a new tag in the user's catalog.

drive_tag_delete

ChatGPT
Delete a tag (cascades to all file assignments).

drive_tag_files_list

ChatGPT
List files tagged with the given tag.

drive_tag_update

ChatGPT
Rename, recolor, or reorder a tag.

drive_tags_list

ChatGPT
Current user's tag catalog (D117). Each tag carries name, color, and sort order.

duplicate_slide

ChatGPT
Deep-copy a slide within the same deck. The duplicate is inserted immediately after the source slide. All elements (including group children) receive new unique IDs to avoid collisions. Useful for template-based workflows: duplicate a template slide, then update the copy with new content.

duplicate_task

ChatGPT
Clone a task — copies title (appends ' (copy)'), description, priority, project, goal, cycle, estimate, due/start date, recurrence, custom fields, and labels. The clone starts at status 'todo' with a fresh task key.

edit_recurring_event_all

ChatGPT
Edit all occurrences in a recurring series. Updates the master event.

edit_recurring_event_future

ChatGPT
Edit this and all future occurrences of a recurring event by splitting the series at the given date. Use this for 'change the meeting time from next week onwards' or 'update our recurring Friday sync starting next month'.

edit_recurring_event_single

ChatGPT
Edit a single occurrence of a recurring event, creating an exception without affecting other occurrences. Use this when the user says 'move just next Tuesday's meeting to 3pm' or 'cancel only this one occurrence'.

empty_trash

ChatGPT
Permanently delete all trashed files in the user's Drive. Irreversible — confirm with user first. Returns the number of files deleted.

enroll_contact_in_sequence

ChatGPT
Enroll a contact in a CRM sequence so they begin receiving the automated steps (emails, tasks, calls). Use this when the user asks to start a campaign for a specific contact.

ensure_wiki_reverse_relation

ChatGPT
Auto-create the reverse relation property on the target database if missing. Idempotent — returns the existing or newly-created reverse property id.

export_document

ChatGPT
Export a document, sheet, or slide to one of its supported standard formats. Sheets support xlsx, csv, tsv, and ods. Returns the file bytes with Content-Type and Content-Disposition attachment headers.

export_drive_file

ChatGPT
Export a workspace document (Doc, Sheet, or Slide) to a file format via its Drive ID. Docs support: docx, pdf, html, md. Sheets support: xlsx, csv. Slides support: pptx, pdf, html. Binary Drive files (images, archives, etc.) cannot be exported — use download instead.

find_and_replace_in_deck

ChatGPT
Find and replace text across all slides in a presentation. Searches every text element and table cell on every slide. Useful for template-based workflows: create a deck from a template with placeholders like {{company_name}}, then replace them programmatically. Plain string matching only (no regex).

formatter_set

ChatGPT
Set a flat map of fields on the node output. Native equivalent of the n8n Set node — alias n8n-nodes-base.set → formatter_set (Pat8). Pure passthrough: parameters.values is resolved upstream by the dispatcher's resolveActionParameters walker, so JSONLogic rules referencing {var: "<UpstreamNode>.<field>"} produce the literal value the handler echoes back. Downstream nodes reference the result via {var: "<NodeName>.values.<key>"}. Spec line 41: formatters are formatter_* operationIds.

get_activity

ChatGPT
Get a single activity by ID. Useful for reading back a just-created activity via the resource URL in the activity.created event payload.

get_calendar

ChatGPT
Get a single calendar by ID. Returns the calendar's name, color, timezone, default status, and owner. Use this when the user asks about a specific calendar's settings or before creating events to verify the timezone.

get_calendar_colors

ChatGPT
Get the available color palette for calendars and events. Returns 24 calendar colors and 11 event colors, each with a background and foreground hex value. Use this when the user asks what colors are available, or before setting a calendar or event color.

get_channel_messages

ChatGPT
Get recent messages from a chat channel. Returns messages with id, content (Markdown), author info, reactions, thread reply count, and timestamps. Use this when the user asks to read messages, catch up on a channel, or find a specific conversation. If the user is currently viewing a channel, use the channel ID from the page context. Messages are returned in reverse chronological order (newest first).

get_channel_read_receipts

ChatGPT
Get per-member read positions for a channel — who has read up to which message. Useful for reporting on whether an announcement has been seen by everyone.

get_contact

ChatGPT
Get a single CRM contact by ID, including full details: name, email, phone, title, company, lifecycle stage, custom properties, and timestamps. If the user is currently viewing a contact, use the contact ID from the page context.

get_contact_score

ChatGPT
Get a contact's current lead score with a breakdown of which scoring rules matched and how many points each contributed. Use this to explain why a contact is hot/cold.

get_cover_thumbnail

ChatGPT
Get a PNG thumbnail of the first slide (cover image) of a presentation. Convenience endpoint — equivalent to get_slide_thumbnail with index 0.

get_coworker

ChatGPT
Get one coworker.

get_coworker_status

ChatGPT
Get a coworker's runtime status (proxied from coworker service).

get_crm_analytics

ChatGPT
Get comprehensive pipeline analytics: pipeline value by stage, conversion rates between stages, average deal size, sales velocity, deals breakdown. Use this for deeper analysis questions like 'where are deals stuck?' or 'how is the pipeline trending?'.

get_crm_metrics

ChatGPT
Get pipeline metrics summary: total open deals, total deal value, win rate, deals won/lost, and recent activity counts. Useful for high-level pipeline health questions.

get_crm_reports

ChatGPT
Get the workspace-wide CRM reports dashboard: revenue, leaderboards, stage funnel, deals-by-source. Broader than get_crm_metrics/get_crm_analytics, which are owner-scoped.

get_current_workspace

ChatGPT
Get the active workspace (name, slug, logo). Accessible to any authenticated user.

get_data_connector

ChatGPT
Get a single data connector by ID, including its config and last-run status.

get_deal

ChatGPT
Get a single CRM deal by ID, including full details: title, amount, currency, stage, pipeline, contact, company, owner, probability, close date, custom properties, and timestamps. Pass embed=line_items to include the full line-items array. If the user is currently viewing a deal, use the deal ID from the page context.

get_deal_template

ChatGPT
Get a single deal template with its line items and resolved pipeline/stage names.

get_detailed_user_presence

ChatGPT
Get detailed presence for a set of users — online (≤5min), idle (5–30min), or offline — plus the lastActiveAt timestamp. Capped at 100 user IDs. Fallback/cold-hydrate surface only — the primary presence path is the full-state push over the presence /ws/mux channel (D245); poll this on connect or when the socket is down, not on a steady timer.

get_document

ChatGPT
Get a single document by ID, including its full content and comments. If the user is currently viewing a document, use the document ID from the page context.

get_document_footnotes

ChatGPT
Get the footnotes from a document. Returns an array of footnotes, each with a footnoteId, body content (PM JSON), and the positions of inline references (footnoteRef nodes) in the body text.

get_document_headers_footers

ChatGPT
Get the headers and footers from a document. Returns default_header, first_page_header, default_footer, and first_page_footer as ProseMirror JSON nodes (or null if not set). Headers and footers appear on every page of exported documents (.docx, .pdf).

get_document_page_style

ChatGPT
Get the page-level formatting for a document: margins (in PT), page size (letter/A4/legal or custom {width, height} in PT), and orientation (portrait/landscape). Empty object means default formatting.

get_drive_storage

ChatGPT
Get Drive storage usage.

get_drive_storage_breakdown

ChatGPT
Storage breakdown by file type.

get_email

ChatGPT
Get a single email by ID, including full Markdown body, sender, recipients (to/cc/bcc), subject, and timestamps. Use this when the user wants to read an email, see its contents, or reply to a specific message. If the user is currently viewing an email, use the email ID from the page context. Use detail='headers' for envelope fields only (no body), or 'minimal' for id + labels only.

get_email_attachment_url

ChatGPT
Get a presigned download URL for an attachment.

get_email_calendar_invite

ChatGPT
Get calendar invite embedded in an email.

get_email_deliverability

ChatGPT
Get email deliverability statistics (sent/bounced/complained/opened rates) for the past 30 days. Requires admin role.

get_email_opens

ChatGPT
Fetch open events for an email (sender only) Returns the rollup (first/last seen, open count) plus up to the most recent 50 individual open events. 403 if the caller doesn't own the email's mailbox.

get_email_signature

ChatGPT
Get the workspace default email signature (Markdown). Requires admin role.

get_entity_preview

ChatGPT
Look up a hover-card style preview of any referenced entity (document, task, contact, deal, channel, user, event, file, wiki page, form, email). Returns rich details — title, status, owner, due date, amount, etc. — without fetching the full record. Use this when an entity is referenced by ID and you need a quick summary.

get_event

ChatGPT
Get a single calendar event by ID, including full details: title, description, location, start/end times, recurrence rule, status, visibility, and attendees with RSVP status. If the user is currently viewing an event, use the event ID from the page context.

get_event_instances

ChatGPT
List individual occurrences of a recurring event within a date range. Expands the RRULE server-side and returns instance objects with computed start/end times. Use this to find specific occurrences (e.g., 'what meetings are on next Tuesday?') or to list upcoming instances of a series.

get_file_info

ChatGPT
Get detailed information about a file or folder in Drive. Returns id, name, mime_type, size_bytes, storage_key, owner info, parent folder, and timestamps. Use this when the user asks about a specific file's details, size, type, or location. If the user is currently viewing a file in Drive, use the resource ID from page context.

get_form

ChatGPT
Get a form's full details including field schema, settings, publish status, and slug. Use this when the user asks about a form's fields, structure, or configuration. If the user is currently viewing a form, use the resource ID from page context.

get_form_ab_analytics

ChatGPT
Get A/B test comparison analytics for a form with variants. Returns control + each variant with views, responses, completion rate, and traffic weight. Use when the user asks which variant is winning, for A/B test results, or experiment performance comparison.

get_form_analytics

ChatGPT
Get analytics for a form: total views, total responses, completion rate, average completion time, responses-by-day (last 30 days), per-field drop-off funnel, and per-field summaries (option counts for select fields, numeric stats for rating/number fields). Use when the user asks about form performance, response rate, completion rate, or field-level statistics.

get_form_response

ChatGPT
Get a single form response by ID. Returns respondent info, submitted data (keyed by field ID), and timestamp. Use when the user asks about a specific submission or wants to review a particular response.

get_mail_rule

ChatGPT
Get a single rule.

get_mail_signature

ChatGPT
Get the effective email signature.

get_mail_template

ChatGPT
Get a template.

get_mail_thread

ChatGPT
Get all emails in a thread + muted flag.

get_message_readers

ChatGPT
List the users who have read a specific message (i.e. whose read-cursor is at or past this message). Use this to check whether a message (e.g. an important announcement) has been seen by specific people.

get_notification_keywords

ChatGPT
Get the current user's notification keywords. The user receives a mention-style notification whenever any of these words appears in a message they can read.

get_ooo_status

ChatGPT
Check out-of-office status for one or more users. Returns per-user OOO flag and event details when applicable. Call this before scheduling to avoid inviting people who are OOO.

get_presentation

ChatGPT
Get a presentation's full data including all slides and their elements. Returns the SlideDeck envelope: top-level metadata (id, title, slide_count, owner, visibility, timestamps) plus the structured deck body nested under data (see SlideDeckData). Read settings/slides/masterSlides as response.data.slides[…], not at the response root. If the user is currently viewing a presentation, use the presentation ID from the page context.

get_product

ChatGPT
Get product

get_project

ChatGPT
Get a single project by ID, including task count, visibility, and metadata.

get_quote

ChatGPT
Get a single CRM quote with its line items and linked deal/contact/company/owner.

get_read_receipts_default

ChatGPT
Get read-receipts default for new compose.

get_resolved_presence

ChatGPT
Cold-hydrate the resolved presence dot (D245) for a set of users in the current workspace. Returns user_id → { kind, state } — the same already-resolved dot the projector pushes over the presence WebSocket channel. Used on connect and as the WS-down fallback; the client renders the state and computes nothing. Capped at 100 user IDs.

get_security_settings

ChatGPT
Get workspace security settings (require_2fa, session_timeout_hours, password_min_length, ip_allowlist). Requires admin role.

get_sequence

ChatGPT
Get a single sequence with its full step list and current enrollment count.

get_settings

ChatGPT
Get all workspace settings. Requires admin role.

get_shared_drive

ChatGPT
Get shared drive details.

get_sheet

ChatGPT
Get a spreadsheet's structured data including columns, rows, and formulas. Returns the Sheet envelope: top-level metadata (id, title, owner, visibility, timestamps) plus the structured sheet body nested under data (see SheetData). Read tabs/columns/rows as response.data.tabs[…], not at the response root. If the user is currently viewing a sheet, use the sheet ID from the page context.

get_sheet_range

ChatGPT
Get a rectangular range of cell values from a sheet. Useful when you only need a slice of a large sheet (max 10,000 cells). Returns a 2D array of values plus the resolved start/end column letters and row numbers. Use orientation=COLUMNS to get column-major arrays (each inner array is one column). valueRenderOption controls how cells render: STORED (default) returns stored values verbatim — formula cells return the formula string; FORMULA forces formula strings; EVALUATED runs the server-side formula engine and returns computed values (e.g., '=SUM(A1:A3)' becomes 6). Same-sheet refs across tabs (Sheet2!A1) resolve when evaluating; IMPORTRANGE returns #REF! (server cannot recurse cross-document).

get_slide_thumbnail

ChatGPT
Get a PNG thumbnail image of a specific slide. Returns thumbnail metadata (width, height). The actual PNG is served at the URL. Sizes: small (200px), medium (800px, default), large (1600px).

get_snooze_presets

ChatGPT
Get the user's custom snooze quick-presets. Returns defaults when no custom presets are saved.

get_task

ChatGPT
Get a single task by ID, including full details: title, description, status, priority, assignee, due date, labels, and subtask count.

get_team

ChatGPT
Get details of a single team including its first 10 members. Returns team metadata (name, slug, visibility, join policy, email) and an embedded members list with each member's user_id, display_name, email, role, and added_at. Use this when the user asks about a specific team, its members, or 'who is in team X?'.

get_undo_send_setting

ChatGPT
Get undo-send duration preference.

get_unread_counts

ChatGPT
Get the full unread projection (mail inbox, per-channel chat badges with mute/preference resolved, notifications, total). Used for cold-connect / reconnect hydration; live updates arrive on the mux unread channel.

get_usage_stats

ChatGPT
Get workspace usage statistics including storage breakdown by user and module, active user count, API call volume, and per-module adoption metrics. Requires admin or owner role. Use this when the user asks about workspace usage, storage consumption, billing metrics, or capacity planning.

get_user_presence

ChatGPT
Get online status (true = online within the last 5 minutes) for a set of users in the current workspace. Returns user_id → boolean. Capped at 100 user IDs. Fallback/cold-hydrate surface only — the primary presence path is the full-state push over the presence /ws/mux channel (D245); poll this on connect or when the socket is down, not on a steady timer.

get_user_status

ChatGPT
Get the current user's active chat status (emoji + text) and DND-until timestamp. Use this before setting or clearing the status to know the current state.

get_vacation_settings

ChatGPT
Get vacation auto-reply settings.

get_wiki_database_row

ChatGPT
Get a single database row by id.

get_wiki_page

ChatGPT
Get a wiki page's full details including Markdown content, child pages, backlinks (pages that link to this page), and metadata. Use this when the user asks about a page's content, wants to read documentation, or needs to check what links to a specific page. If the user is currently viewing a wiki page, use the resource ID from page context.

get_wiki_page_version

ChatGPT
Get a wiki page version's full content (title + markdown body). Use this when the user asks what a previous version looked like, wants to compare versions, or needs the content of a specific snapshot.

get_wiki_space_graph

ChatGPT
Get backlink graph data for a wiki space. Returns nodes (pages) and edges (links between pages). Use this when the user asks to visualize the knowledge graph, see how pages connect, or find highly-linked 'hub' pages.

get_wiki_synced_block

ChatGPT
Get a synced block by ID. Returns the block's content and metadata. Use this when you need to read the current content of a shared block.

get_workspace

ChatGPT
Get the current workspace details (id, name, slug). Requires admin role.

group_slide_elements

ChatGPT
Group existing top-level elements on a slide into a single group. The group's bounding box is computed automatically from the children. Children positions become relative to the group origin. At least 2 element IDs required. A named element may itself be a group — groupElements validates only that each id is top-level on the slide, so groups nest.

insert_page_break

ChatGPT
Insert a page break into a document at a given position. Forces subsequent content to start on the next page in exported .docx and .pdf files. The page break is inserted as a block node between paragraphs.

insert_page_number

ChatGPT
Insert a page number placeholder into a document. The placeholder renders as the current page number in exported .docx and .pdf files. Commonly used inside headers or footers (e.g., 'Page X') but can also appear inline in the body text. The placeholder is inserted as an inline node within a paragraph.

insert_section_break

ChatGPT
Insert a section break into a document at a given position. Section breaks divide the document into sections that can have different formatting. A 'next_page' section break forces content to the next page (like a page break but marks a new section). A 'continuous' section break starts a new section on the same page.

invite_user

ChatGPT
Invite a human user to the workspace by email. Sends an invite email with a link to accept. Requires admin role.

list_activity

ChatGPT
List recent workspace activity (last 30 days). Scoped to the current user's workspace. Filterable by resource type, resource ID, and acting user.

list_address_book

ChatGPT
List the caller's address book: the shared CRM contacts they can see unioned with their own privately captured addresses, deduplicated on email with the shared record winning. Use this to resolve a recipient the user has written to before instead of asking them to retype an address. Private entries are never visible to another member.

list_archived_threads

ChatGPT
List archived threads (one per thread)

list_blocked_senders

ChatGPT
List all blocked senders for current user's mailbox

list_calendar_events

ChatGPT
List events scoped to a single calendar by its id — the RESTful path variant of list_events (/api/calendars/events?calendar_id=…). Requires at least viewer access to the calendar.

list_calendars

ChatGPT
List the user's calendars. Returns calendar id, name, color, timezone, and whether it's the default. Use this to find the user's default calendar ID before creating events.

list_channels

ChatGPT
List the user's chat channels. Returns channels with id, name, type (public/private/dm), description, member count, and creator info. Use this when the user asks to see their channels, find a specific channel by name, or when you need a channel ID to send a message.

list_charts

ChatGPT
List every chart across every tab of the sheet. Each entry is annotated with the tab name it lives in.

list_conditional_formats

ChatGPT
List all conditional formatting rules on a spreadsheet. Returns each rule's ID, ranges (A1 notation), and either a booleanRule (condition + format) or a gradientRule (minpoint/midpoint/maxpoint).

list_contact_activities

ChatGPT
List activities (notes, calls, emails, meetings, tasks) on a specific contact's timeline. Useful for summarizing recent interactions with a contact before sending an email or making a call.

list_contact_group_members

ChatGPT
List all contacts that are members of a contact group. Returns the contact id, name, email, and type for each member.

list_contact_groups

ChatGPT
List all contact groups in the workspace with their member counts. Groups are named collections for organizing contacts (e.g., 'Conference leads 2026').

list_contacts

ChatGPT
List CRM contacts. Supports filtering by type, lifecycle stage, owner, and text search. Returns contacts with id, name, email, phone, type, lifecycle_stage, company, and timestamps. Use this when the user asks to see their contacts, find a person, or list companies. Also use this with the 'q' parameter to search for existing contacts BEFORE creating new ones to prevent duplicates.

list_crm_property_definitions

ChatGPT
List the workspace's typed custom-property definitions for contacts and deals, including relation properties that link a record to another contact, company, or deal. Optionally filter by entity_type.

list_crm_views

ChatGPT
List the user's saved CRM views (filter + sort presets for contacts/companies/deals). Views personalize how CRM data is displayed without changing the underlying records.

list_crm_workspace_users

ChatGPT
List all users (humans and agents) in the current workspace who can own CRM records. Use before assigning contacts or deals to a specific owner_id.

list_custom_emojis

ChatGPT
List all custom emojis uploaded to the current workspace. Returns each emoji with id, name (without colons), image URL, and creator info. Use this to discover what custom emojis are available before referring to them by name.

list_data_connector_run_history

ChatGPT
List recent execution history for a data connector. Each row records one manual or scheduled run with its status, duration, row count, and error (if any). Use the limit query param to cap the page size (default 20, max 100). Results are ordered by completion time, newest first.

list_data_connectors

ChatGPT
List data connectors registered on a sheet. Connectors fetch data from external sources (URL, CSV, etc.) into specific cells.

list_deal_line_items

ChatGPT
List all line items for a deal, plus the computed total.

list_deal_templates

ChatGPT
List deal templates in the workspace (reusable deal presets: default pipeline, stage, amount, probability, and line items).

list_deals

ChatGPT
List CRM deals. Supports filtering by pipeline, stage, and status. Returns deals with id, title, amount, currency, stage, pipeline, contact, status, and timestamps. Use this when the user asks to see their deals, check the pipeline, or find opportunities.

list_documents

ChatGPT
List the current user's documents. Optionally filter by type. Returns an array of documents with id, type, title, owner, and timestamps.

list_drafts

ChatGPT
List draft emails

list_drive_folders

ChatGPT
List only folders (not files) in Drive — useful for folder pickers. Pass root to scope the listing to My Drive, shared drives, or Shared with me.

list_email_attachments

ChatGPT
List attachments for an email

list_enrollment_events

ChatGPT
Get the event log for a single sequence enrollment (step-executed, email-opened, email-replied, branch-taken, completed). Useful for auditing why a contact moved to a particular step.

list_event_resources

ChatGPT
List resources currently booked for an event (rooms, equipment).

list_events

ChatGPT
List calendar events across all of the user's calendars. Supports filtering by date range, calendar, and free-text search. Returns events with id, title, start/end times, location, status, and attendees. Use this when the user asks to see their schedule, upcoming meetings, or events for a date. Use the q parameter to search for events by keyword (matches title, description, location, and attendee names).

list_files

ChatGPT
List files and folders in the user's Drive. Returns items with id, name, mime_type, size_bytes, is_folder, parent_folder_id, owner info, and timestamps. Use this when the user asks to see their files, browse a folder, find a specific file, or check what's in Drive. If the user is currently viewing Drive, use context for the current folder.

list_form_responses

ChatGPT
List responses submitted to a form. Returns responses with respondent info, submitted data (keyed by field ID), and timestamps. Use this when the user asks to see form results, check submissions, analyze feedback, or export response data.

list_form_variants

ChatGPT
List A/B test variants for a form. Returns each variant's id, name, traffic weight, active status, and variant form ID. Use when the user asks about their A/B tests, variant list, or experiment setup.

list_forms

ChatGPT
List the user's forms. Returns forms with id, title, slug, is_published, response count, and timestamps. Use this when the user asks to see their forms, find a specific form, or check form status.

list_forwarding_addresses

ChatGPT
List forwarding addresses + recent log.

list_identity_api_keys

ChatGPT
List the calling user's own API keys. Scoped to c.var.user.id — does not return keys belonging to other users in the same workspace. Admins managing other users' keys should use GET /api/admin/api-keys.

list_inbox

ChatGPT
List the user's received emails (inbox). Returns emails with id, from, subject, preview, read status, and sent timestamp. Use this when the user asks to check their inbox, see recent emails, or find a specific email. Use detail='headers' for bandwidth-efficient scanning (omits body), or 'minimal' for id + labels only. Use label_ids to filter by specific labels (AND semantics — all listed labels must be present).

list_mail_by_label

ChatGPT
List emails with a specific label

list_mail_labels

ChatGPT
List mail labels.

list_mail_rules

ChatGPT
List mail rules / filters.

list_mail_templates

ChatGPT
List templates.

list_muted_threads

ChatGPT
List muted threads (inbox view for muted conversations)

list_my_teams

ChatGPT
List teams the current user belongs to, with their role (admin or member) in each. Use this when the user asks 'what teams am I in?' or 'my teams' or 'my memberships'.

list_my_workspaces

ChatGPT
List workspaces the current user belongs to (human users may have multiple). Returns workspace id, name, slug, role, and which one is active.

list_named_ranges

ChatGPT
List all named ranges defined on a spreadsheet. Returns each range's name and A1 notation range specification.

list_pinned_messages

ChatGPT
List all pinned messages in a channel. Pinned messages are highlighted by members for ongoing reference (announcements, canonical links, etc.). Returns messages in newest-pin-first order.

list_pipeline_members

ChatGPT
List the members of a CRM pipeline. Deal visibility is pipeline membership: a deal is visible to admins/owners and to members of its pipeline (directly or via a team). Roles are admin (can manage the pipeline + members) or member.

list_pipelines

ChatGPT
List all CRM pipelines with their stages. Each pipeline contains an ordered list of stages with names, sort order, and default probabilities. Use this before creating or moving deals to find valid pipeline_id and stage_id values.

list_pivot_tables

ChatGPT
List every pivot table across every tab of the sheet. Each entry is annotated with the tab name it lives in.

list_products

ChatGPT
List products in the workspace catalog. Use this when the user asks about pricing or available SKUs, or before adding a product as a deal line item.

list_project_updates

ChatGPT
List status updates for a project, newest first. Returns the health timeline with author and timestamp.

list_projects

ChatGPT
List all projects in the current workspace. Returns each project with name, icon, color, visibility, and task count. Use this when the user asks to see their projects or find a project by name.

list_protected_ranges

ChatGPT
List all protected ranges on a spreadsheet. Returns each range with its ID, A1 range, description, warningOnly flag, and editorUserIds allowlist.

list_quotes

ChatGPT
List CRM quotes/proposals. Filter by status (draft, sent, accepted, rejected, expired), deal, or contact. Useful for finding outstanding quotes or recently-accepted ones.

list_resources

ChatGPT
List bookable resources (rooms, equipment) in the workspace. Call before booking a room to see what's available.

list_roles

ChatGPT
List all roles in the workspace (system roles + custom roles). Requires admin role.

list_running_executions

ChatGPT
List in-flight executions across every coworker in the active workspace. Joins coworker_executions → coworkers, filtered by status IN ('PENDING','RUNNING'). Powers the 'Coworkers — running now' saved filter on People & Access.

list_saved_messages

ChatGPT
List all messages the current user has saved (bookmarked) across all channels. Returns messages with saved_at timestamp, channel name, and channel type. Saved messages are private to the current user (unlike pinned messages, which are shared with the channel).

list_scheduled_mail

ChatGPT
List scheduled (unsent) emails

list_scheduled_messages

ChatGPT
List all pending scheduled messages for the current user across all channels. Returns each scheduled message with channel name/type and the scheduled_at timestamp. Use this to review what's queued to send later, or before updating/cancelling a scheduled message.

list_scheduler_bookings

ChatGPT
List all bookings (across all scheduler links) owned by the current user. Useful for summarizing the user's upcoming meetings.

list_scorable_fields

ChatGPT
List the contact fields that can be used in scoring rules (lifecycle_stage, industry, title, website, custom_properties.*, etc.) and the operators each supports.

list_scoring_rules

ChatGPT
List all lead scoring rules for the workspace.

list_send_as_addresses

ChatGPT
List available send-as addresses for current user

list_sent_mail

ChatGPT
List sent emails

list_sequence_enrollments

ChatGPT
List all enrollments for a sequence, including each contact's current step, status, and next execute time. Useful for checking progress or finding an enrollment ID to unenroll.

list_sequences

ChatGPT
List all CRM email/task sequences (multi-step automated outreach campaigns). Returns sequences with their steps, active status, and current enrollment count.

list_shared_drive_files

ChatGPT
List files in a shared drive.

list_shared_drive_members

ChatGPT
List shared drive members.

list_shared_drives

ChatGPT
List shared drives user is a member of.

list_sheet_validations

ChatGPT
List all data validation rules on a spreadsheet. Returns each rule's range (A1 notation) and rule definition (type, values, strict, inputMessage).

list_sheets

ChatGPT
List the current user's spreadsheets (owned + shared). Convenience alias for GET /api/documents?type=sheet. Returns the lightweight SheetSummary shape without the structured data body — call GET /api/sheets/:id to load a specific sheet's tabs/columns/rows.

list_slicers

ChatGPT
List every slicer across every tab of the sheet. Slicers are interactive filter widgets that filter pivots / charts on a shared source range. Each entry is annotated with the tab name it lives in.

list_slide_masters

ChatGPT
List the master slide templates registered on a presentation. Child slides link to masters by reference and resolve current master elements at render time, beneath child-owned elements.

list_snoozed_mail

ChatGPT
List snoozed emails

list_starred_mail

ChatGPT
List starred emails

list_task_attachments

ChatGPT
List Drive files attached to a task.

list_task_templates

ChatGPT
List task templates in the workspace. Templates pre-fill fields when creating tasks. Optionally filter by project. Returns name, default fields (priority, status, estimate, assignee, labels), and creator.

list_tasks

ChatGPT
List tasks in the workspace. Pass assignee_id to filter by assignee (use the caller's user ID for 'my tasks'). Supports filtering by status, priority, project, and free-text query.

list_teams

ChatGPT
List workspace teams visible to the current user. Returns public teams and private teams the user is a member of, with member counts. Filterable by q (case-insensitive substring match on name + slug). Optional limit caps the result count. Use this when the user asks to see teams, distribution lists, or workspace teams.

list_trashed_files

ChatGPT
List all trashed files in the user's Drive. Returns paginated results with id, name, mime_type, size, timestamps. Use this when the user asks to see their trash or wants to restore a file.

list_user_statuses

ChatGPT
List active chat statuses (emoji + text + DND) for users in the workspace. Only returns users who currently have a non-null status or active DND. Useful for 'who's on vacation?', 'is anyone in meetings?', or similar presence queries.

list_users

ChatGPT
List all users and agents in the workspace. Returns users with id, display_name, email, type (human/agent), roles, status, storage usage, and timestamps. Requires admin or owner role. Use this when the user asks to see workspace members, find a specific user, check agent accounts, or audit user activity.

list_wiki_page_databases

ChatGPT
List all inline databases hosted on a wiki page.

list_wiki_page_versions

ChatGPT
List the saved version snapshots for a wiki page (most recent first). Use this when the user asks for revision history, wants to see who edited and when, or needs to find a version to revert to.

list_wiki_space_pages

ChatGPT
List pages in a wiki space with offset/limit pagination. Returns page summaries (id, title, slug, icon, parent_page_id, sort_order). Use this when the user asks to see all pages in a space, or when you need to paginate through a large space.

list_wiki_spaces

ChatGPT
List all wiki spaces. Returns spaces with id, name, slug, description, icon, owner info, privacy setting, and page count. Use this when the user asks to see wiki spaces, browse the knowledge base, or when you need a space ID to create a page.

list_wiki_synced_blocks_by_page

ChatGPT
List synced blocks that were originally created on a specific page. Use this when the user asks what shared content a page publishes, or to audit reuse.

log_activity

ChatGPT
Log an activity on a CRM contact or deal timeline. Activities track interactions like calls, emails, meetings, notes, and tasks. Use this when the user asks to log a call, record meeting notes, or add a note to a contact/deal.

mail_alias_create

ChatGPT
Add a new alias on a verified workspace domain

mail_alias_delete

ChatGPT
Remove alias

mail_alias_set_default

ChatGPT
Set alias as default send-as identity

mail_aliases_list

ChatGPT
List all aliases for current user's mailbox

mail_blocklist_clear

ChatGPT
Unblock by raw pattern (convenience for "Unblock sender" button)

mail_blocklist_remove

ChatGPT
Unblock by entry id

mail_bulk_modify

ChatGPT
POST /api/mail/bulk

mail_external_auth_url

ChatGPT
Start connected-mailbox (Gmail) OAuth — returns the consent URL.

mail_external_connection_delete

ChatGPT
Disconnect a connected mailbox.

mail_external_connection_test

ChatGPT
Verify a connected mailbox by fetching its Gmail profile.

mail_external_connections_list

ChatGPT
List connected mailboxes.

mail_folder_counts

ChatGPT
Per-folder badge counts for sidebar Returns { inbox: unread_count, drafts, scheduled, snoozed } — Gmail-style.

mail_label_counts

ChatGPT
Per-label unread counts for sidebar badges (IH row 6.21). Separate endpoint so the sidebar can refresh counts on read/receive without re-fetching the label definitions themselves. Shape mirrors /folder-counts. rawDb is needed because the count query uses CROSS JOIN LATERAL jsonb_array_elements ...

mail_message_unsubscribe

ChatGPT
One-click unsubscribe. Triggers the List-Unsubscribe URL (RFC 8058) on the user's behalf. Falls back to telling the client to open a mailto: link if no HTTP URL is present.

mail_shared_mailbox_assignees

ChatGPT
The people who can hold a thread in this shared mailbox — team grants flattened to their members.

mail_shared_mailbox_create

ChatGPT
Create a shared mailbox and address it on a workspace domain (admin only)

mail_shared_mailbox_delete

ChatGPT
Retire a shared mailbox (admin only). Soft: stored mail is retained and the address stays reserved.

mail_shared_mailbox_get

ChatGPT
Get one shared mailbox and its members

mail_shared_mailbox_member_add

ChatGPT
Grant a user or a team access to a shared mailbox (admin only)

mail_shared_mailbox_member_remove

ChatGPT
Revoke a user's or team's access to a shared mailbox (admin only)

mail_shared_mailbox_restore

ChatGPT
Restore a retired shared mailbox (admin only). Total — delete cascaded nothing.

mail_shared_mailbox_update

ChatGPT
Rename a shared mailbox's display name; its address is unchanged (admin only)

mail_shared_mailboxes_list

ChatGPT
List the shared mailboxes the caller holds, or every one in the workspace with scope=managed (admin only)

mail_smart_compose

ChatGPT
Stream AI completion suggestions

mail_thread_mute_status

ChatGPT
Check if a thread is muted

mail_trash_list

ChatGPT
List trashed (soft-deleted) emails. deleteEmail moves rows to folder='trash' (D099 per-user-copy model) but until now there was no list endpoint, so trashed mail was effectively invisible in the UI.

mail_unread_summary

ChatGPT
Richer unread feed for the future workspace "Unread across modules" aggregator row 6.35, D205). Returns the mail-side contribution: total count + top N (default 5, max 25) unread inbox rows with sender/subject/preview/timestamp so an aggregator can render a unified list without pulling ...

mark_all_channels_read

ChatGPT
Mark all channels as read for the current user. Advances the read cursor in every channel the user is a member of to the latest message, clearing all unread badges at once. Use this when the user wants to dismiss all chat unreads (e.g. returning from vacation).

mark_channel_read

ChatGPT
Mark a channel as read up to a specific message. This clears the unread badge for the current user. Use this after the user has finished catching up on a channel, or programmatically to dismiss unread counts after the assistant reports on recent messages.

mark_channel_unread

ChatGPT
Mark a channel as unread starting from a specific message. Moves the calling user's read cursor back to just before that message, so the channel shows an unread badge and the message becomes the unread boundary. Use this when the user wants to revisit a conversation later.

mark_email_read

ChatGPT
Update email status (read/unread, starred, snoozed)

mark_thread_read

ChatGPT
Mark a thread as fully read up to the latest reply. Use this after the user has finished catching up on a thread, or when you want to programmatically dismiss unread reply counts for a specific thread.

mark_thread_unread

ChatGPT
Mark a thread as unread so it reappears in the threads inbox with an unread badge. Use this when the user wants to come back to a thread later.

merge_contacts

ChatGPT
Merge two CRM contacts that represent the same person/company. The secondary contact is deleted, and its activities and deals are re-linked to the primary. Use this when you discover duplicates (same email or name). The primary contact is the one kept; the secondary is removed.

modify_contact_group_members

ChatGPT
Bulk add or remove contacts from a contact group. Idempotent — adding an already-present contact or removing an absent one is a no-op.

move_sheet_column

ChatGPT
Move a column to a new position. Rewrites dependent formulas so they follow the moved column to the same logical data, and re-anchors notes and comment anchors.

notifications_dismiss

ChatGPT
Soft-delete (hide from default feed). Preserved for audit / undismiss.

notifications_list

ChatGPT
List notifications for the current user. Supports cursor pagination via ?cursor=; legacy offset pagination still works. Toggles: unread_only, include_dismissed, include_snoozed.

notifications_mark_all_read

ChatGPT
Mark every unread notification as read.

notifications_mark_read

ChatGPT
Mark a single notification read. Returns was_unread — true only if THIS call flipped it. A consumer that gets false skips the work, so two processes on one identity cannot both act on one notification.

notifications_mark_unread

ChatGPT
Convenience alias for PATCH /api/notifications/:id with {read:false}.

notifications_mute_create

ChatGPT
Create or refresh a mute rule. At least one of resourceId / eventType is required (DB CHECK). When a matching rule already exists, the existing row's expiresAt is refreshed.

notifications_mute_delete

ChatGPT
Remove a mute rule by id. Scoped to the owning user.

notifications_mutes_list

ChatGPT
List active mute rules. Pass ?include_expired=true to also see rules whose until has passed (these no longer suppress notifications).

notifications_snooze

ChatGPT
Hide until {until: ISO8601}. Pass {until: null} to clear snooze.

notifications_undismiss

ChatGPT
Restore a dismissed notification.

pause_coworker

ChatGPT
Pause coworker (stops scheduled executions).

permanent_delete_file

ChatGPT
Permanently delete a file. Irreversible — confirm with user first.

poll_close

ChatGPT
Close a poll to further voting (creator or channel admin).

poll_create

ChatGPT
Create a poll in a channel. Creator must be a channel member.

poll_delete

ChatGPT
Delete a poll (creator or channel admin).

poll_get

ChatGPT
Poll details (question, options, the caller's votes).

poll_get_by_message

ChatGPT
Poll results for the poll attached to a chat message.

poll_results

ChatGPT
Tallied poll results (respects anonymity).

poll_unvote

ChatGPT
Remove the caller's vote for a poll option.

poll_vote

ChatGPT
Cast a vote for a poll option.

project_members_add

ChatGPT
Add a member. Body {user_id, role?}. Notifies the new member.

project_members_list

ChatGPT
List project members.

project_members_remove

ChatGPT
Remove a member from the project. Notifies the removed user (unless self-removal).

project_members_update_role

ChatGPT
Change a member's role.

project_notification_pref_get

ChatGPT
Get the caller's notification preference for the project.

project_notification_pref_set

ChatGPT
Set the caller's notification preference (level) for the project.

project_templates_apply

ChatGPT
Create a new project from a template. Pass {name, description} in the body.

project_templates_create

ChatGPT
Create a project template.

project_templates_delete

ChatGPT
Delete a project template.

project_templates_get

ChatGPT
Get a single project template.

project_templates_list

ChatGPT
List project templates in the workspace.

project_updates_delete

ChatGPT
Delete a status update. Author or admin only.

project_updates_edit

ChatGPT
Edit a status update. Author or admin only.

protect_range

ChatGPT
Protect a range in a spreadsheet. Protected ranges restrict editing to users in editorUserIds. Set warningOnly to true for soft warnings instead of hard blocks.

publish_calendar

ChatGPT
Publish a calendar as a public read-only .ics feed URL (no auth required). Returns a shareable feed URL that anyone can subscribe to from Google/Apple/Outlook Calendar.

publish_form

ChatGPT
Publish a form so it accepts public responses. Semantic shortcut for PATCH /api/forms/{id} with is_published=true; same validation (every field needs a non-empty label).

query_wiki_database

ChatGPT
Query rows from an inline database with optional view, filter, and sort. Returns paginated results.

recalculate_lead_scores

ChatGPT
Recalculate lead scores for all contacts in the workspace. Use this after creating or updating scoring rules so existing contacts pick up the new scoring.

register_custom_domain

ChatGPT
Register a custom email domain (e.g., pokermethod.com). Creates a pending domain row; ownership must be verified via DNS TXT before sending is enabled. Requires admin role.

remove_forwarding_address

ChatGPT
Remove a forwarding address

remove_pipeline_member

ChatGPT
Remove a user or team from a CRM pipeline. The principalId is the user_id or team_id of the member to remove.

remove_role

ChatGPT
Remove a role from a user. Requires admin role.

remove_shared_drive_member

ChatGPT
Remove a shared drive member (manager-only; cannot remove last manager).

remove_sheet_column

ChatGPT
Remove a column from a sheet tab by column ID. Use ?sheet= to target a tab other than the first.

remove_sheet_tab

ChatGPT
Remove a sheet tab by name. Cannot remove the last remaining tab.

remove_slide

ChatGPT
Remove the slide at the given zero-based index.

remove_task_attachment

ChatGPT
Remove a file attachment from a task. Does not delete the Drive file.

rename_document_version

ChatGPT
Rename a version snapshot of a document. Useful for labeling meaningful versions (e.g., "Pre-launch draft", "Board approved"). Requires editor permission.

rename_sheet_tab

ChatGPT
Rename an existing sheet tab.

reorder_mail_labels

ChatGPT
Reorder labels.

reorder_mail_rules

ChatGPT
Reorder rules.

reorder_slides

ChatGPT
Reorder slides in a presentation. Provide the full list of slide indices in the desired new order. Example: [2, 0, 1, 3] moves the third slide to the front.

replace_named_range_content

ChatGPT
Replace all content within a named range with new content. Used for template-based document generation — define named ranges as placeholders, then call this to fill each one. The named range must have positional anchors (startNodeId/endNodeId). Content can be Markdown text or PM JSON. Returns 409 if the anchored nodes no longer exist (stale range after CRDT edits).

replace_shapes_with_image

ChatGPT
Replace text placeholder elements with an image across all slides. Finds text elements whose text matches the search string and replaces them with image elements at the same position and size. Like Google Slides ReplaceAllShapesWithImage — useful for template-based workflows where placeholder shapes like {{logo}} are swapped with actual images.

replace_sheet_tab

ChatGPT
Replace a sheet tab's columns and/or rows wholesale. Use for bulk data replacement. Use update_cells for surgical edits.

reschedule_scheduled_email

ChatGPT
Change the delivery time of a pending scheduled email without changing its content.

resend_forwarding_verification

ChatGPT
Resend verification email

restore_file

ChatGPT
Restore a file from trash.

restore_task

ChatGPT
Restore a soft-deleted task when the caller has task editor access.

restore_wiki_synced_block

ChatGPT
Restore a previously deleted synced block. Embedding pages will render the block again instead of showing error chips.

resume_coworker

ChatGPT
Resume a paused coworker.

revert_wiki_page_version

ChatGPT
Revert a wiki page to a previous version snapshot. This replaces the current content with the version's content and clears the CRDT state. A snapshot of the current state is automatically created before reverting. This is destructive for the in-progress edit — always confirm with the user first.

revoke_api_key

ChatGPT
Revoke an API key. Immediate — any requests using the key will fail. Requires admin role.

revoke_identity_api_key

ChatGPT
Revoke (permanently delete) one of the calling user's own API keys. 404 if the key doesn't belong to the calling user. Returns 204 No Content on success.

rsvp_email_invite

ChatGPT
RSVP to a calendar invite on an email.

rsvp_event

ChatGPT
RSVP to a calendar event that the user is invited to. Use this when the user asks to accept, decline, or mark tentative on an event invitation.

run_data_connector

ChatGPT
Execute a data connector: fetch the latest data and write it to the connector's target cells. Returns the connector with updated last-run metadata.

save_message

ChatGPT
Save (bookmark) a chat message for the current user to revisit later. Idempotent — saving an already-saved message is a no-op. Use this when the user asks to bookmark a message or remind themselves of something.

scan_business_card

ChatGPT
OCR a photo of a business card and extract structured contact fields (name, title, company, email, phone, website, address, notes). Returns JSON with each field nullable when not present on the card. Use when the user uploads or references a business card image and wants to add the contact to CRM. The image must be passed as a base64 data URL (data:image/jpeg;base64,...) of an image format Gemini Vision supports (JPEG, PNG, WebP, HEIC). Max 6 MB.

search_calendar_events

ChatGPT
Full-text search across all calendar events for the current workspace. Returns matching events with id, title, start/end times, and calendar info. Use this when the user asks to find a specific event by name or description keyword.

search_chat_messages

ChatGPT
Full-text search messages across the user's accessible channels. Use this to find historical messages by keyword, phrase, or topic. Results include channel context (name and type) for each match.

search_mail

ChatGPT
Full-text + operator search (Gmail-style: from:, to:, cc:, bcc:, subject:, has:attachment, is:read|unread|starred, in:inbox|sent|drafts|trash|archive, label:, after:YYYY-MM-DD, before:YYYY-MM-DD, size:N, larger:N, smaller:N, "phrase"). cc:/bcc: filter by recipient type. size:/larger:/smaller: filter by body byte size.

search_palette

ChatGPT
Cross-module command-palette search. q is the query string; limit caps results (default 30, max 50). Empty query returns an empty response. Module diversity is preserved (per D219).

search_wiki

ChatGPT
Case-insensitive substring search across wiki page titles and Markdown content. Returns only pages the caller can view under the effective page-to-space permission rules, with id, title, space, and content snippets. Use this when the user asks to find information in the wiki, look up documentation, or search the knowledge base. More efficient than reading individual pages.

search_workspace

ChatGPT
Search across every module in the user's workspace (docs, sheets, slides, tasks, contacts, deals, channels, wiki, forms, calendar, users). Returns a flat list of results with module-aware metadata. Optional module filter narrows the search to one or more modules. Use this when the user asks to find something but you don't know which module it lives in.

send_draft_email

ChatGPT
Send a previously created draft email. The draft transitions from the drafts folder to sent, SES delivery is triggered, and recipient inbox copies are created. Use this when the user wants to send a draft they previously saved.

send_email

ChatGPT
Send an email from the current user. The body is written in Markdown and automatically converted to a beautifully formatted HTML email for delivery. Use this when the user asks to send an email, message someone, or share something via email. Supports to, cc, and bcc recipients. Recipients are specified by email address.

send_message

ChatGPT
Send a message in a chat channel. The content is written in Markdown and supports @mentions, code blocks, links, and other rich formatting. Use this when the user asks to send a chat message, post in a channel, reply in a thread, or communicate with a teammate via chat. If the user is currently viewing a channel, use the channel ID from the page context. To reply in a thread, provide the thread_id of the parent message.

send_quote

ChatGPT
Send a CRM quote via email to the contact. Marks the quote as 'sent'. By default, sends to the linked contact's email address.

send_scheduled_message_now

ChatGPT
Deliver a pending scheduled message immediately instead of waiting for its scheduled time. Flips the message to sent and fans it out to the channel right now. Fails if the message has already been sent or cancelled. Use this when the user wants to send a queued message without waiting.

send_test_notification_email

ChatGPT
Send a test notification email (useful for checking email rendering and deliverability). Requires admin role.

set_default_send_as

ChatGPT
Set the user's default send-as address.

set_document_footnotes

ChatGPT
Set footnote body content on a document. Replaces all existing footnoteBody nodes. Each footnote must have a footnoteId and either a text string (auto-wrapped in a paragraph) or a content array (PM JSON). To add inline footnote references in the body text, use update_document with PM JSON content containing footnoteRef nodes with matching footnoteIds.

set_document_headers_footers

ChatGPT
Set headers and footers on a document. Each field accepts a plain text string (auto-wrapped in a paragraph), a ProseMirror JSON node, or null to remove. Omit a field to leave unchanged. A document can have at most one default header, one first-page header, one default footer, and one first-page footer.

set_email_signature

ChatGPT
Set the workspace default email signature. Pass null (or omit markdown) to clear. Requires admin role.

set_mail_signature

ChatGPT
Set personal email signature. Pass null to clear.

set_notification_keywords

ChatGPT
Replace the current user's notification keyword list. Keywords are case-insensitive, whole-word, and capped at 20 entries (each up to 50 characters). Duplicates/empties are dropped. Use this when the user says 'alert me whenever someone mentions X' or 'stop notifying me about Y'.

set_pinned_header_rows

ChatGPT
Set the number of pinned (repeating) header rows on a table in a document. Pinned header rows repeat on every printed page when the table spans multiple pages in exported .docx and .pdf files. Set to 0 to clear the pinned header rows attribute.

set_read_receipts_default

ChatGPT
Toggle the default for new compose windows

set_reminder

ChatGPT
Set a reminder on a chat message. Auto-saves the message if not already saved. The reminder fires a notification at the specified time. Accepts ISO 8601 datetime string; must be in the future.

set_sheet_validation

ChatGPT
Set a data validation rule on a cell range in a spreadsheet. Supports dropdown lists (ONE_OF_LIST), number constraints (NUMBER_BETWEEN, NUMBER_GREATER, NUMBER_LESS, NUMBER_EQUAL), text matching (TEXT_CONTAINS, TEXT_NOT_CONTAINS, TEXT_EQ), date constraints (DATE_AFTER, DATE_BEFORE, DATE_BETWEEN), and custom formulas (CUSTOM_FORMULA). When strict is true, API writes that violate the rule are rejected.

set_snooze_presets

ChatGPT
Set the user's custom snooze quick-presets (up to 10). Pass an empty array to reset to defaults.

set_undo_send_setting

ChatGPT
Set undo-send duration (seconds).

set_user_dnd

ChatGPT
Enable or disable Do-Not-Disturb for the current user. Pass an ISO-8601 timestamp in the future to snooze notifications until that time, or pass null to disable DND immediately. Use this when the user says 'mute me for an hour', 'DND until 5pm', or 'turn off DND'.

set_user_status

ChatGPT
Set the current user's chat status — an emoji, short text (<=100 chars), and optional auto-clear timestamp. All fields are optional; pass null to clear a single field. Use this when the user says things like 'set my status to lunch until 1pm' or 'I'm on vacation'.

set_vacation_settings

ChatGPT
Update vacation auto-reply settings.

sheet_get_data

ChatGPT
Get the spreadsheet as the structured JSON canvas. Returns the Sheet envelope: top-level metadata plus the structured sheet body nested under data (see SheetData). Read tabs/columns/rows as response.data.tabs[…], not at the response root.

sheet_update_cells

ChatGPT
Update specific cells in a spreadsheet. Provide an array of cell updates, each specifying the row index (0-based), column ID, and new value. If the user is currently viewing a sheet, use the sheet ID from the page context.

slide_apply_template

ChatGPT
Apply a built-in slide template to the deck or to a single slide.

slide_layouts_list

ChatGPT
List the slide-level layouts the editor knows about.

slide_star

ChatGPT
Star a deck. Idempotent — re-starring is a no-op.

slide_stars_list

ChatGPT
List IDs of slide decks the current user has starred.

slide_templates_list

ChatGPT
List the built-in slide deck templates.

slide_unstar

ChatGPT
Unstar a deck. Idempotent.

snooze_email

ChatGPT
Snooze an email until a datetime.

snooze_reminder

ChatGPT
Re-snooze an existing saved message by updating its remind_at time. Resets reminded to false so the scheduler picks it up again. Accepts ISO 8601 datetime string; must be in the future.

sort_sheet

ChatGPT
Sort a tab's rows by one column. Re-anchors formulas, comment anchors, and cell notes so nothing orphans.

start_task_timer

ChatGPT
Start a time-tracking timer on a task for the current user. If another timer is already running for this user, it is stopped automatically (only one active timer per user).

stop_task_timer

ChatGPT
Stop the current user's active timer. The duration is accumulated onto the task's time_spent_minutes total. Returns null if no timer is active.

submit_feedback

ChatGPT
Submit a bug report from the workspace app. Auth-gated and rate-limited per user (10/min in production, 200/min in dev). Body shape: {description, priority?, screenshotDataUrl?, attachments?, context} — see FeedbackInput. Returns 200 with a receipt id even when the downstream webhook fails (best-effort GCS screenshot fallback runs in that case so triage retains the evidence). Returns 503 with {error: "Feedback reporting not available"} when the webhook isn't configured (outside the contract error-code enum, surfaced via raw Response).

submit_form

ChatGPT
Submit a response to a published form, identified by its public slug or form ID. Data is a map keyed by field ID with user answers. Use when an agent is filling out a form on behalf of a user or when completing a structured data-entry task.

tasks_activity

ChatGPT
List audit-log activity entries for a task (status changes, assignments, comments, label edits, etc.). Paginated via limit/offset.

tasks_batch

ChatGPT
Batch-fetch up to 50 tasks by ID. Powers LinkedTaskItem hydration in Docs/Wiki (D103).

tasks_by_key

ChatGPT
Resolve a workspace-scoped task key (e.g. WS-123) to its task ID. Used by deep links and integrations.

tasks_delete

ChatGPT
Soft-delete a task. Only the creator can delete.

tasks_export

ChatGPT
Export the caller's tasks as CSV (default) or JSON.

tasks_favorites_add

ChatGPT
Add a sidebar favorite (a view or a project).

tasks_favorites_list

ChatGPT
List the caller's pinned favorites (views or projects).

tasks_favorites_remove

ChatGPT
Remove a sidebar favorite (matched on resource_type + resource_id).

tasks_favorites_reorder

ChatGPT
Reorder the caller's sidebar favorites by passing ordered_ids (top-to-bottom).

tasks_inbox_count

ChatGPT
Count of triage-bucket tasks (untriaged + projects in 'triage' status). Powers the sidebar inbox badge.

tasks_labels_assign

ChatGPT
Assign a label to a task. Returns the task's full label list.

tasks_labels_create

ChatGPT
Create a workspace task label. Returns 409 if a label with the same name already exists in the group.

tasks_labels_delete

ChatGPT
Delete a task label. Existing assignments are removed.

tasks_labels_list

ChatGPT
List task labels visible in the workspace, grouped by group_name. Without project_id, returns workspace-level labels only. With project_id, returns workspace-level labels plus labels scoped to that project.

tasks_labels_remove

ChatGPT
Remove a label assignment from a task. Returns the task's remaining label list.

tasks_labels_update

ChatGPT
Update a task label.

tasks_relations_batch

ChatGPT
Batch-fetch blocking/blocked_by relations for up to 200 tasks. Powers the timeline dependency overlay.

tasks_relations_create

ChatGPT
Create a relation between two tasks. blocking/blocked_by auto-creates the inverse edge. With type=duplicate, mark_as_duplicate=true the source task is cancelled with a system comment.

tasks_relations_delete

ChatGPT
Delete a task relation edge. Auto-deletes the inverse edge for blocking/blocked_by pairs.

tasks_relations_list

ChatGPT
List edges in the task-relations graph for a task (related, blocking, blocked_by, duplicate).

tasks_remove_subscriber

ChatGPT
Remove another user's subscription from a task. Requires task access.

tasks_sla_dashboard

ChatGPT
Aggregate SLA metrics for the workspace (compliance rates, avg times, counts per status). Optionally scope to a project.

tasks_sla_thresholds

ChatGPT
Get the workspace's SLA thresholds (response + resolution times per priority). Auth-only.

tasks_subscribed

ChatGPT
List task IDs the caller is subscribed to (manual + auto-subscribed via creator/assignee/comment).

tasks_subscription_status

ChatGPT
Check whether the current user is subscribed to a task (and the reason if so).

tasks_subscriptions_list

ChatGPT
List all users subscribed to a task (with the reason each is subscribed).

tasks_subtasks

ChatGPT
List immediate subtasks of a task (parent_task_id = :id).

tasks_templates_delete

ChatGPT
Delete a task template. Workspace admins or project admins only.

tasks_templates_get

ChatGPT
Get a single task template by ID.

tasks_templates_update

ChatGPT
Update a task template. Workspace admins or project admins only.

tasks_views_create

ChatGPT
Create a saved task view (filter + layout). Setting is_shared: true exposes it to the workspace.

tasks_views_delete

ChatGPT
Delete a saved task view.

tasks_views_layout_get

ChatGPT
Get the caller's layout preferences for a view, or fall back to the view's defaults. source indicates which.

tasks_views_layout_update

ChatGPT
Upsert the caller's layout preferences for a view (per-project scope optional).

tasks_views_list

ChatGPT
List task views accessible to the caller (own + shared + system defaults).

tasks_views_update

ChatGPT
Update a saved task view (rename, change filters or layout defaults, toggle sharing).

teams_cancel_join_request

ChatGPT
Cancel your own pending join request for this team.

teams_get_subscription

ChatGPT
Get the caller's email-delivery preference for the team. Returns {team_id, user_id, email_delivery}.

teams_join

ChatGPT
Join a team. Open teams grant instant membership; request teams create a pending join request; invite teams reject.

teams_leave

ChatGPT
Leave a team. Cannot leave if you're the last admin.

teams_members_list

ChatGPT
Paginated member list. Private teams visible only to members or admins.

teams_members_remove

ChatGPT
Remove a member. Admin only. Cannot remove the last admin.

teams_members_update_role

ChatGPT
Change a member's role. Admin only. Cannot demote the last admin.

teams_requests_approve

ChatGPT
Approve a join request — adds the user as a member.

teams_requests_deny

ChatGPT
Deny a join request.

teams_requests_list

ChatGPT
List pending join requests. Admin only.

teams_searchable

ChatGPT
Search teams visible to the caller for the share dialog. Returns the union of public teams and private teams where the caller is a member. Supports case-insensitive name filtering via q and a configurable limit.

teams_update_subscription

ChatGPT
Update the caller's email-delivery preference for the team. Body: {email_delivery: 'each' | 'none'}.

trash_mail_thread

ChatGPT
Trash all messages in a thread atomically. Moves every message in the thread to the trash folder.

unblock_sender

ChatGPT
Unblock by id or pattern.

undo_send_email

ChatGPT
Undo an in-flight send within the undo-send window.

unenroll_contact_from_sequence

ChatGPT
Permanently remove a contact from a CRM sequence (terminal — sets status to 'unenrolled'). The contact will not receive any further sequence steps. Returns 409 if already in a terminal status. Provide the enrollment ID (not the contact ID — find it via list_sequence_enrollments).

ungroup_slide_elements

ChatGPT
Dissolve a group element on a slide back into independent top-level elements. Children positions are converted from group-relative to absolute coordinates. The group element is removed and its former children become top-level elements on the slide.

unprotect_range

ChatGPT
Remove a protected range from a spreadsheet by its ID. Returns 200 on success, 404 if the range does not exist.

unpublish_calendar

ChatGPT
Revoke the public .ics feed for a calendar, making it private again.

unpublish_form

ChatGPT
Unpublish a form so it stops accepting public responses. Semantic shortcut for PATCH /api/forms/{id} with is_published=false.

unsave_message

ChatGPT
Remove a saved (bookmarked) message from the user's saved list. The message itself is untouched; only the personal bookmark is deleted.

untrash_email

ChatGPT
Restore a trashed email to inbox

untrash_mail_thread

ChatGPT
Restore all trashed messages in a thread to inbox. Only affects messages currently in trash.

update_api_key

ChatGPT
Update an API key's name, scopes, or rate limit. Requires admin role.

update_channel_member_role

ChatGPT
Change a channel member's role to 'admin' or 'member'. Requires channel admin privileges. Use this when the user asks to promote or demote a member in a channel.

update_chart

ChatGPT
Patch a chart's config — type, title, data range, overlay position, or series styling. Only the fields you send are updated; the rest of the chart config is preserved.

update_conditional_format

ChatGPT
Update a conditional formatting rule on a spreadsheet by its ID. Partial update — provide only the fields to change (ranges, booleanRule, or gradientRule). Setting booleanRule replaces any existing gradientRule and vice versa.

update_contact

ChatGPT
Update an existing CRM contact's fields. Provide only the fields you want to change. If the user is currently viewing a contact, use the contact ID from the page context.

update_contact_group

ChatGPT
Update an existing contact group's name, color, or sort order. Group name must remain unique within the workspace.

update_coworker

ChatGPT
Update coworker metadata (persona, focus areas, display name, avatar).

update_crm_property_definition

ChatGPT
Update a custom-property definition's label or select options.

update_crm_view

ChatGPT
Update a saved CRM view (rename, change filters, toggle default/shared).

update_data_connector

ChatGPT
Update a data connector's name, config, target cells, or refresh schedule.

update_deal

ChatGPT
Update an existing CRM deal's fields. Provide only the fields you want to change. Use this to move a deal to a new stage, update the amount, mark as won/lost, etc. If the user is currently viewing a deal, use the deal ID from the page context.

update_deal_line_item

ChatGPT
Update a deal line item (quantity, price, discount, name/description). Amount auto-recomputed. If sync_deal_amount defaults true, the deal's total is also refreshed.

update_deal_template

ChatGPT
Update a deal template. Providing line_items replaces the entire line-item list.

update_deck_settings

ChatGPT
Update deck-level settings: theme, aspect ratio, default background. Changing aspect ratio rescales every slide's elements proportionally; changing default background updates slides currently using the old default.

update_document

ChatGPT
Edit an existing document inline. Read the document first (get_document), modify the content, then pass the full updated text — content replaces the entire body. Do NOT create a new document to edit; version history preserves prior states. Accepts Markdown or ProseMirror JSON (HTML tolerated but lossy — drops listed in import_warnings). Provide only the fields you want to change.

update_document_page_style

ChatGPT
Set page-level formatting for a document: margins (PT), page size (letter/A4/legal or {width, height} in PT), orientation (portrait/landscape). 72 PT = 1 inch. These settings control export output (.docx, .pdf). Pass an empty object to reset to defaults.

update_draft_email

ChatGPT
Update an existing draft email. Only works on drafts (not sent messages). Use this to refine recipients, subject, or body of a draft across multiple iterations before sending.

update_event

ChatGPT
Update an existing calendar event. Provide only the fields you want to change. Use this to reschedule, change attendees, update the description, or cancel an event. If the user is currently viewing an event, use the event ID from the page context.

update_form

ChatGPT
Update an existing form's title, description, fields, settings, or publish status. Use this when the user asks to edit a form, add/remove fields, publish/unpublish, or change form settings. If the user is currently viewing a form, use the resource ID from page context.

update_form_variant

ChatGPT
Update an A/B test variant's name, traffic weight, or active status. Use when the user asks to rename a variant, adjust the traffic split, or pause/resume an experiment.

update_identity_api_key

ChatGPT
Update name, scopes, or rate_limit on the calling user's own API key. Returns the updated key. 404 if the key doesn't belong to the calling user.

update_mail_label

ChatGPT
Update a label.

update_mail_rule

ChatGPT
Update a rule.

update_mail_template

ChatGPT
Update a template.

update_named_range

ChatGPT
Update where a named range points to. Use after sheet structure changes (e.g., inserted rows) to re-point a named range at the correct cells. Names are matched case-insensitively.

update_pipeline

ChatGPT
Update a pipeline's name or stages. Providing stages replaces the entire stage list — include every stage you want to keep. Reordering is done by the order in the array.

update_pivot_table

ChatGPT
Patch a pivot table's config — source range, row/column/value fields, totals toggles, source-tab name. Only the fields you send are updated; the rest of the pivot config is preserved. Pass a tab field to move the pivot to a different tab.

update_product

ChatGPT
Update product

update_project

ChatGPT
Update a project's name, description, icon, or color. Provide only the fields you want to change.

update_quote

ChatGPT
Update a CRM quote. Providing line_items replaces the entire line-item list. Totals are auto-recomputed.

update_role

ChatGPT
Update a custom role's name or permissions. Requires admin role.

update_scheduled_message

ChatGPT
Edit the content or scheduled send time of a pending scheduled message before it's sent. Fails if the message has already been sent or cancelled. Use this when the user wants to fix a typo in a scheduled message or reschedule it.

update_scoring_rule

ChatGPT
Update a lead scoring rule (name, field, operator, value, points, is_active).

update_security_settings

ChatGPT
Update workspace security settings. Emits a security.updated audit event. Requires admin role. session_timeout_hours takes effect on next login; require_2fa stores the policy flag (enforcement is gated on 2FA implementation).

update_sequence

ChatGPT
Update a sequence (rename, description, toggle active, replace step list). Providing steps replaces the entire step list.

update_settings

ChatGPT
Update workspace settings (name, logo, timezone, etc.). Requires admin role. Pass a flat key-value object.

update_shared_drive

ChatGPT
Update a shared drive (manager-only).

update_shared_drive_member

ChatGPT
Update a member role (manager-only).

update_sheet_merges

ChatGPT
Update the merged cell ranges for a sheet tab. Replaces all existing merges on the tab. Pass an empty merges array to clear all merges.

update_slicer

ChatGPT
Patch a slicer's config — source range, target column, selected values, overlay position, or title. Only the fields you send are updated; the rest of the slicer config is preserved.

update_slide

ChatGPT
Update an existing slide in a presentation. Specify the slide by its 0-based index. You can update the slide properties (background, notes) and/or replace its elements. If the user is currently viewing a presentation, use the presentation ID from the page context.

update_slide_master

ChatGPT
Update a master slide's name, background, or elements. Slides using the master resolve the updated elements by reference.

update_task

ChatGPT
Update a task. Status changes to 'done' auto-spawn the next recurrence (when set), trigger CRM activity logging, and emit task.completed events.

update_team

ChatGPT
Update a team's settings (name, slug, description, email, parent, visibility, join policy, posting policy, icon, color). Only team admins or workspace admins can update. If changing parent, validates no cycle in hierarchy. Use this when the user asks to rename a team, move a team under a different parent, or change team settings.

update_user

ChatGPT
Update a user's role, status, or quota. Requires admin or owner role. Use this when the user asks to change someone's role, deactivate an account, or adjust a user's storage quota. Cannot remove the owner role from the last remaining owner.

update_wiki_page

ChatGPT
Update an existing wiki page's content, title, icon, or parent. Use this when the user asks to edit a wiki page, update documentation, or move a page to a different parent. If the user is currently viewing a wiki page, use the resource ID from page context.

update_wiki_synced_block

ChatGPT
Update a synced block's content. All pages embedding this block will reflect the new content. Use this when the user asks to edit shared content or update a reusable snippet.

update_workspace

ChatGPT
Update workspace name or slug. Requires admin role.

use_mail_template

ChatGPT
Record template use.

users_list

ChatGPT
List users in the active workspace. Powers @mention pickers, assignee dropdowns, etc. Filterable by q (matches display_name + username, case-insensitive). Limit defaults to 50, hard cap 100. Member-accessible — use this to resolve a name to a user_id when assigning tasks or @mentioning people; the admin list_users tool is admin-gated and 403s for members/coworkers.

verify_domain

ChatGPT
Trigger DNS verification for a workspace domain. Requires admin role.

verify_domain_ownership

ChatGPT
Verify custom domain ownership via DNS TXT record. On success, auto-registers with SES to retrieve DKIM/SPF records. Requires admin role.

webhooks_delete

ChatGPT
Delete a webhook.

webhooks_deliveries_list

ChatGPT
List recent delivery attempts (status, response, retries). Paginated via ?limit= (default 25) and ?offset= (default 0).

webhooks_event_types

ChatGPT
List event types an agent can subscribe to. Includes the * wildcard.

webhooks_get

ChatGPT
Get one webhook.

webhooks_test

ChatGPT
Send a test ping payload to the webhook URL.

webhooks_update

ChatGPT
Update a webhook (url, events, description, active). Body shape matches UpdateWebhookInput.

wiki_database_create

ChatGPT
Create an inline database on a wiki page. Requires editor role on the host page.

wiki_database_get

ChatGPT
Get an inline database with its full row set.

wiki_database_row_create

ChatGPT
Append a row to an inline database. Requires editor role on the host page.

wiki_database_row_delete

ChatGPT
Delete a database row.

wiki_database_row_update

ChatGPT
Update properties or sort order on a database row.

wiki_database_update

ChatGPT
Update an inline database's name, schema, or views. Requires editor role on the host page.

wiki_page_children_list

ChatGPT
List the immediate child pages of a wiki page. Use this to traverse the page tree one level at a time, or to count children before a destructive delete.

wiki_page_database_create

ChatGPT
Create an inline database on a specific wiki page.

wiki_page_duplicate

ChatGPT
Duplicate a wiki page (and optionally its descendants) into a target space + parent. Returns the new top-level page.

wiki_page_export

ChatGPT
Export a wiki page to docx, pdf, html, or md. Streams the file with a Content-Disposition attachment header.

wiki_page_permanent_delete

ChatGPT
Permanently delete a trashed wiki page. Irreversible.

wiki_page_restore

ChatGPT
Restore a trashed wiki page and its children.

wiki_space_delete

ChatGPT
Delete a wiki space and all of its pages.

wiki_space_get

ChatGPT
Get a wiki space by slug, with its full page tree. Supports cursor pagination on pages.

wiki_space_member_add

ChatGPT
Add a user as a direct member of a wiki space with a given role.

wiki_space_member_remove

ChatGPT
Remove a direct member from a wiki space.

wiki_space_members_list

ChatGPT
List distinct members of a space — the owner plus everyone with a page-level permission inside it.

wiki_space_update

ChatGPT
Update a wiki space. Only the space owner may change settings.

wiki_trash_list

ChatGPT
List trashed (soft-deleted) wiki pages in the workspace.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

767

Tools

3

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily