Utilisez Ambiguous MCP avec Sokko.
Connectez Ambiguous MCP et dites à Sokko quoi faire. Il exécute les actions que vous demandez et réagit à ce qui se passe. Sans workflows, sans code.
Fonctionne avec plus de 1 000 outils · Aucun code requis
Actions
Tout ce que Sokko peut faire dans Ambiguous MCP
Chaque action Ambiguous MCP que Sokko peut exécuter. Demandez-en une en une phrase et c'est fait.
Ack mentions activity
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
Acknowledge readable Threads inbox activity on entry without advancing personal read cursors or clearing explicit manual unread intent.
Add conditional format
Add a conditional formatting rule to a spreadsheet. Provide one of booleanRule, gradientRule, iconSetRule, or dataBarRule. The server generates a unique ID for the rule.
Add connected element
Extend a flow: place a new node beside an existing element and connect them in one call — the server computes the position unless you pass `drop_point`. Use this instead of create_canvas_element + a manual connector when building a flowchart, product map, or swimlane step-by-step. Give `source_element_id` and a `direction` (n/s/e/w); the new node lands one standard gap on that side and is nudged clear of any overlap, and a connector is created pre-attached from the source to it. For a drag-to-empty gesture, supply optional `drop_point: { x, y }` to center the new node at that board-space point instead of automatic placement. Provide `element` for the new node's type (connector/frame/swimlane not allowed here), or omit it to duplicate the source. Coordinates: board units, top-left origin, +x right / +y down. Example: add_connected_element({ id: "<boardId>", source_element_id: "<elId>", direction: "e", element: { type: "shape", shape: "diamond" } }) → { element, connector }.
Add deal line item
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
Add a forwarding address (sends verification email).
Add pipeline member
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
Add a member (manager-only).
Add sheet column
Add a column to a sheet tab.
Add sheet rows
Append rows to a sheet tab. Each row is an object keyed by column ID. Example: [{"A": "Widget", "B": 9.99}].
Add sheet tab
Add a new tab to a sheet. Auto-generates the name if not provided.
Add slide
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
Attach a Drive file to a task. Idempotent — re-attaching the same file returns the existing row. Attaching makes the file readable by everyone who can read the task, so a file you do not own needs the share right on it (403 `file_attach_requires_share` when you can only view it).
Add team member
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
disconnect an integration
Admin integrations list
list all integrations for workspace
Admin integrations slack channels
list Slack channels via bot token
Admin integration update
update integration config
Admin invite delete
Revoke (cancel) a pending invite. Pending only — an accepted or expired invite is refused `409 invite_not_pending`; its row is history, not a live grant.
Admin invite resend
Resend invite email + refresh expiry. The email carries a freshly minted link, so every link sent before for this invite stops working. Pending invites only — an accepted or expired invite is refused `409 invite_not_pending`.
Admin invites list
List pending, accepted, and expired workspace invites, pending first and then newest. Paginated; `pending_total` counts invites awaiting acceptance. Each row also carries `delivery` — what the provider said about the latest send of that invite email, so a bounced invite is distinguishable from an ignored one.
Admin mail suppression create
manually add a suppression
Admin mail suppression delete
remove a suppression
Admin mail suppressions list
list suppressed addresses
Admin notification defaults get
Read workspace-default email notification prefs. Returns sensible defaults (all enabled) when never configured.
Admin notification defaults update
Partially update workspace-default email notification prefs. Emits settings.updated audit event.
Admin usage export
Export usage stats as CSV
Admin usage timeseries
Daily creation counts (last 14 days, split into "last 7" + "prior 7" windows) for the four hero metrics on the Overview tab. 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
Get one workspace user's full admin record by id.
Admin user reset password
Create and email a one-hour password-reset link. On delivery failure, returns `sent: false` with `reset_url`.
Admin user suspend
Suspend a user account. Suspended accounts return 403 on all API calls.
Admin user unsuspend
Unsuspend a user account. Restores access to all API calls.
Admin workspace logo delete
Remove workspace logo (admin only)
Analytics annotations list
List a project's annotations, oldest date first: each is a date, an optional end date, a short text and its author, drawn on every time-series chart in the project. `from`/`to` keep only annotations overlapping that range.
Analytics catalog overrides list
List catalog metadata overrides for the workspace.
Analytics catalog stats
Per-event last_seen_at and 30-day volume for the workspace's tracked events.
Analytics cohorts get
Read a saved cohort's name, stored criteria and member-count snapshot by ID, without recomputing its audience. Use analytics_cohorts_list to find cohort IDs. Requires a role on the report's project; `404` otherwise.
Analytics cohorts list
List saved cohort reports in the active workspace, including their definitions and stored member counts. Lists one Analytics project (`project_id`) and requires a role on it.
Analytics dashboards get
Read a saved analytics dashboard's name, stored query and tile layout by ID. Requires a role on the dashboard's project; unavailable dashboards return not found. Use analytics_dashboards_list to find accessible IDs. Requires a role on the report's project; `404` otherwise.
Analytics dashboards list
List the saved analytics dashboards of one Analytics project (`project_id`), including their tile layouts. Everyone who can view the project sees every dashboard in it. Requires a role on the report's project; `404` otherwise.
Analytics events get
Read one Analytics evidence event owned by the caller's source workspace. Foreign and missing IDs return 404.
Analytics events list
List source-owned Analytics evidence with bounded filters and stable pagination. Measured group IDs never grant access.
Analytics funnels get
Read a saved funnel report's name and stored conversion query definition by ID, without running the funnel. Use analytics_funnels_list to find report IDs. Requires a role on the report's project; `404` otherwise.
Analytics funnels list
List saved funnel reports in the active workspace, including their names and conversion query definitions. Lists one Analytics project (`project_id`) and requires a role on it.
Analytics insights get
Read a saved insights report's name and stored query definition by ID, without executing the query. Use analytics_insights_list to find report IDs. Requires a role on the report's project; `404` otherwise.
Analytics insights list
List saved insights reports in the active workspace, including their names and query definitions. Lists one Analytics project (`project_id`) and requires a role on it.
Analytics metric definitions list
List metric definitions visible in the named Analytics project, or its workspace default when omitted. management=true instead reads the workspace-wide admin catalog. Each definition includes its newest stored period.
Analytics metrics upsert
Upsert external metric rows (ad spend, cloud spend, incident minutes) keyed by metric, grain, period and dimensions. A row replaces the live value only when its observed_at is newer; an older observation is kept in the restatement history and reported as stale. Requires workspace admin rank and the analytics.write scope; the public write key is refused.
Analytics metric value
Read one number from a saved insight or funnel over a window: the value, the same metric over the window before it, a sparkline and a link to the report. Embedded metrics on canvas, in chips and in sheets read through this. Example: report=insights:<id>&from=today-28d&to=now.
Analytics mv metadata
Get materialized view name and last refresh time.
Analytics projects access request create
Ask the project's owners for access at viewer or editor. Must ask higher than the role held (`400 access_role_not_higher`); `409 access_request_open` while one is open; `404` for an unknown project.
Analytics projects access request current
Return whether the caller has an open access request for the project.
Analytics projects access request decide
Approve at viewer or editor, or decline, an open access request. Project owners only. Returns 409 once decided.
Analytics projects get
Read one Analytics project, its view and the caller's role. `404` when the caller holds no role on it.
Analytics projects list
List the Analytics projects the caller holds a role on, each with its view and the caller's role. Workspace admins hold no implicit role: a private project an admin was not added to is not listed.
Analytics projects permissions list
List the project's members: users and teams with their roles. The Everyone team row is the workspace tier.
Analytics query execute
Execute an ad-hoc analytics query (events/insights/funnel/retention/cohort). Returns structured results over the project's view (the workspace default project when project_id is omitted).
Analytics restricted marks list
List the workspace's restricted event names, trait keys and metric keys. Workspace admin only.
Analytics retentions get
Read a saved retention report's name and stored query definition by ID, without computing retention. Use analytics_retentions_list to find report IDs. Requires a role on the report's project; `404` otherwise.
Analytics retentions list
List saved retention reports in the active workspace, including their names and query definitions. Lists one Analytics project (`project_id`) and requires a role on it.
Analytics settings get
Get the workspace's analytics settings — the timezone calendar windows such as today-7d and day/week/month buckets resolve in.
Analytics users aggregates
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
List analytics user profiles (paginated, searchable). Returns traits, first_seen, last_identified.
Analytics user timeline
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 write key list
List all writeKeys for the workspace (plaintext never returned on list).
Append sheet values
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
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
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
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
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
Archive every inbox-folder message in a thread
Asset get content
An image inside a doc, sheet, slide deck, canvas board, wiki page or task description is an asset of that container, not a Drive file: it never appears in Drive, and it is readable exactly when its container is. Returns the image bytes when the caller can read the container — through the document's role, the wiki page's role or the task's access check, collaborators in other workspaces included. Bytes are proxied, never redirected, with `Cache-Control: no-store`; an active type such as SVG is served as a download. Every miss is the same 404.
Assign role
Assign a role to a user. Requires admin role.
Auth whoami
Return the current authenticated user's profile (works with both JWT and API-key auth), including active workspace name + ID and agent kind + manager when applicable. needs_workspace_setup: true indicates the account has no workspace yet.
Automations enqueue
Queue an enabled automation for background execution. Send a JSON object with an optional payload object containing the trigger data. Returns 202 Accepted with run_id, status and status_url; the Location response header points to GET /api/automations/runs/{run_id}. Poll with the same credential until success, failed, filtered, cancelled or depth_exceeded. The durable scheduler resumes queued work. Dry runs use /api/automations/{id}/test instead; _test_mode is rejected on this endpoint.
Batch archive emails
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
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
Batch-fetch permissions for up to 50 files by ID. Returns a map of file_id → permissions array.
Batch get contacts
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
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
Batch-fetch up to 50 files by ID. Powers drive:// embed hydration in Chat/Docs/Wiki/CRM.
Batch get sheet values
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
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
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
Block a sender (address or domain).
Book event resources
Book one or more resources (rooms, equipment) for an existing event. Returns a conflict error if a resource is already booked.
Browse public channels
Browse the workspace's public channels, including the ones the caller has not joined, each with a `joined` flag and member count. `list_channels` returns memberships only, so this is the only way to discover a public channel you are not in and get the id `chat_channel_join` needs. Private channels and DMs are never listed. Use this when the user asks what channels exist, or asks to join a channel by name.
Bulk archive tasks
Archive up to 100 tasks at once. Only archives tasks the caller created or is assigned to.
Bulk copy files
Copy multiple files to a folder (max 100). The destination needs editor access (contributor in a shared drive); a folder the caller cannot see answers 404 like one that does not exist, and a visible one they cannot write to answers 403. A copy into a shared-drive folder belongs to that drive.
Bulk delete contacts
Delete many CRM contacts in a single operation. Returns counts of deleted/skipped/failed items.
Bulk delete deals
Delete many CRM deals at once by their ids.
Bulk delete messages
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
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
Export selected contacts as CSV or vCard. CSV includes core fields and custom properties; vCard preserves imported RFC 6350 properties and parameters.
Bulk export deals
Export selected deals as CSV
Bulk move files
Move multiple files to a folder (max 100). The destination needs editor access (contributor in a shared drive); a folder the caller cannot see answers 404 like one that does not exist, and a visible one they cannot write to answers 403. Per-file failures come back in `errors`: "File not found" for a file the caller cannot view, "Forbidden" for one they can view but not edit. An item whose sharing is restricted (editors can't share, on it or a folder above it) moves only with its owner.
Bulk update contacts
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
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
Update multiple tasks at once by ID. Only updates tasks the current user has access to (creator or assignee). Max 200 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
Detect attendee scheduling conflicts.
Calendar event export ics
Export single event as .ics.
Calendar event meeting notes create
Create a meeting-notes doc for an event, or — when `document_id` is given — link that existing doc and grant attendees access.
Calendar event meeting notes unlink
Unlink meeting-notes doc.
Calendar event reminders create
Add a reminder to a calendar event.
Calendar event reminders list
List event reminders.
Calendar event reminders set
Replace reminder list.
Calendar event unbook resources
Release every resource booked for a calendar event.
Calendar export ics
Export entire calendar as .ics.
Calendar external auth url
Start external provider OAuth.
Calendar external calendars enable sync
Enable two-way sync.
Calendar external calendars list
List calendars on connection.
Calendar external connection delete
Disconnect external account.
Calendar external connections list
List connected external accounts.
Calendar external force sync
Schedule every mirror calendar on this connection for an immediate background pull. Poll the connection's `last_sync_at`; completion is any value at or after `requested_at`.
Calendar external synced disable
Disable sync for one calendar.
Calendar import ics url
Import an .ics feed by URL. Fetches the URL server-side and imports its events into the calendar.
Calendar reminder delete
Delete one calendar event reminder by id.
Calendar resource delete
Delete a bookable calendar resource by id.
Calendar resource get
Get one bookable calendar resource by id.
Calendar resources create
Create a bookable resource.
Calendar resource update
Update a bookable calendar resource's details.
Calendars create
Create a calendar in the current workspace.
Calendars delete
Delete a calendar and every event on it.
Calendars permissions get
Get a single user's permission entry on a calendar, including their role, display name, and email. Useful for checking if a specific user has access without listing all permissions.
Calendars update
Update calendar fields.
Calendar upcoming reminders
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.
Cancel scheduled email
Cancel a scheduled email
Cancel scheduled message
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.
Cancel scheduler booking
Cancel a booking as its host. The booked event is cancelled and the booker is always emailed the cancellation, with the optional message.
Change coworker manager
Reassign the accountable human (manager) for a coworker. Admin-only — the current manager cannot reassign themselves out. Changing manager revokes the coworker's existing API keys and realtime sessions; the new manager must reconnect it. An unchanged manager keeps keys.
Chat channel create
Create a chat channel in the workspace.
Chat channel delete
Delete a chat channel and its messages.
Chat channel get
Get a specific channel by UUID, with members.
Chat channel group remove
Remove a group from channel (clean up fan-out rows)
Chat channel join
Self-join a public channel (no body required)
Chat channel last messages
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
Leave a chat channel you belong to.
Chat channel member remove
Remove a member from a chat channel.
Chat channel members add
Add member(s) or a group
Chat channel notification preference
Choose your channel notification preference, not mute/unmute; use set_channel_muted for that. unread_only (default) surfaces unread activity; all_messages also notifies on unmuted messages. mentions_only shows mention badges; nothing hides channel unread/badge indicators and suppresses keyword and subscribed-thread alerts. Direct mention and broadcast notification delivery remains separate. This does not change the mute indicator or expiry. Per-user; other members are unchanged.
Chat channel notification prefs
Update the caller's per-channel notification preferences (unread_display: count | dot | since_visit).
Chat channel update
Update a chat channel's name, topic or settings.
Chat draft create saved
Create a saved (named) draft for the caller.
Chat draft delete
Delete a draft owned by the caller.
Chat drafts list
The caller's chat drafts (inflight + saved), newest first.
Chat draft update
Update a saved draft owned by the caller.
Chat emoji image
Serve custom emoji image from GCS
Chat mentions inbox
Messages from other users that @-mention the caller. Powers the Mentions tab.
Chat message delete
Delete one message from a chat channel.
Chat message update
Edit message or pin/unpin
Chat preferences
Workspace-level chat preferences readable by any authenticated member (default_reactions).
Chat reactions inbox
Messages authored by the caller that carry reactions from other users. Powers the Mentions & Reactions inbox.
Chat saved ids list
Get saved message IDs for a channel (for UI bookmarked state)
Chat sidebar create section
Create a custom chat-sidebar section for the caller.
Chat sidebar delete section
Delete a chat-sidebar section owned by the caller.
Chat sidebar list sections
The caller's custom chat-sidebar sections, ordered by position.
Chat sidebar reorder sections
Reorder the caller's chat-sidebar sections.
Chat sidebar update section
Rename a chat-sidebar section or set its channels.
Chat thread activity list
List thread-activity inbox for the current user. Powers the sidebar "Threads" inbox entry. Returns readable threads the user participates in or explicitly marked unread, with peer-only unread counts and own-inclusive unread anchors.
Chat thread get
Get the replies in a chat message's thread.
Check availability
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
Check if a specific resource (room, equipment) is free in a time range. Call before booking to avoid conflicts.
Check workspace slug
Check whether a workspace slug is available.
Claim document
Make an unclaimed document yours. A document, spreadsheet, presentation or board created without an account returns a single-use `claim_key`; call this with it after signing in and the document moves into your active workspace with you as owner, keeping its id and URL. Its link drops to view-only, which you can raise again. A second claim of the same document, or a wrong key, is refused with 409 `claim_rejected`, which does not say which.
Clear calendar
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
Clear a pending reminder on a saved message. The message stays saved; only the reminder is removed.
Clear sheet validation
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
Clear the current user's status (emoji + text + expiresAt). Does NOT change DND — use set_user_dnd with until=null to clear DND separately.
Code comment update
Edit or delete an owned comment; maintainers may delete published comments. Concurrent edits require the last observed body. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`.
Code connections list
List repositories offered by the workspace GitHub installation. Workspace administrators only.
Code pull auto merge
Enable or cancel durable Code auto-merge using the PR review policy and GitHub checks. Requires merge authority and the last read version. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`.
Code pull changes since review
Compare the caller's last reviewed head with the current head. Historical or truncated source is explicitly reported.
Code pull comment
Start a discussion or reply to a thread. Inline comments retain their original revision and source excerpt. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`.
Code pull commit
Read the diff for one commit in this pull request.
Code pull create
Create or adopt a GitHub pull request with an accountable Ambiguous author. An omitted base uses the repository's default target branch. Retries use the same idempotency key. autoMerge arms auto-merge on the new pull request in the same call, so it needs no version and cannot race the first check update; it requires merge authority on the repository and is ignored when the key or number returns an existing Code pull request. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`.
Code pull export
Export the complete review record with original anchors and attribution as versioned JSON or Markdown.
Code pull get
Read a native review, its revision, discussion, checks and merge blockers. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`.
Code pull merge
Merge the confirmed pull request version into its existing target after fresh revision, authorization, review-policy and GitHub checks. No target branch is accepted. The provider confirms the outcome; uncertain requests remain pending. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`.
Code pull refresh
Reconcile with current GitHub state. Never interprets an older webhook as current source truth. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`.
Code pull review
Submit a review for the specified comparison as an authenticated user or agent with repository review permission. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`.
Code pulls list
Permission-filtered pull request inbox.
Code pull update
Edit metadata, assign reviewers, follow, close, reopen or mark ready. Requires the last read version. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`.
Code repositories list
List repositories the caller can read, with their Code role.
Code repository compare
Compare two repository refs before opening a pull request.
Code repository connect
Connect a repository from this workspace's existing GitHub installation. Workspace admin only; grants the connector repository ownership.
Code repository grant
Grant or revoke a workspace user or team. Null role revokes. Repository owner only.
Code repository grants
Read repository access grants. Repository owner only.
Code repository metadata
Read the repository labels and milestones available for pull requests.
Code repository principals
List workspace users and teams available for an explicit repository grant. Repository owner only.
Code repository reviewers
List currently eligible Ambiguous reviewers, including agents.
Code repository update
Update the default target branch, review policy or connection. A null target resets to GitHub's default branch. Repository owner only.
Code review dismiss
Dismiss a blocking review with an auditable reason. Maintainer only. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`.
Code review resolve
Resolve or reopen a review without changing its verdict. The PR author or maintainer may resolve another reviewer's feedback. The response carries every file patch, thread and activity entry. Pass `fields` to return only what you need, for example `id,version,blockers,data(autoMerge,mergeIntent,syncError,provider(state,headSha,baseSha,baseRef,mergeable,checks))`.
Compute pivot table
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
Compute and return rollup values for all rows in the database. Each rollup aggregates a property across related rows.
Copy sheet to
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
Proxy (workspace-isolated): get a single conversation thread.
Coworkers conversations list
Proxy (workspace-isolated): list conversations for the coworker in the active workspace.
Coworkers execution cancel
Kill switch: cancel an in-flight execution. Flips an active (PENDING/RUNNING/PAUSED) coworker_executions row to CANCELLED; the coworker's execution loop aborts at its next action-call boundary. Idempotent no-op on an already-terminal execution.
Coworkers execution get
Get one execution with full trace data — task row, parent/children lineage, conversation, reasoning cycles, and tool-call activities. Powers the Execution Trace debug view.
Coworkers executions list
Proxy: list coworker execution history (paginated).
Coworkers monitored channels add
Proxy (workspace-isolated): start monitoring a channel.
Coworkers monitored channels list
Proxy (workspace-isolated): list channels the coworker is monitoring.
Coworkers monitored channels remove
Proxy (workspace-isolated): stop monitoring a channel.
Coworkers playbooks archive
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
Create a playbook and its initial version. `instructions` and `subtasks` seed version 1, which becomes the current version.
Coworkers playbooks delete
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
Get one playbook with its current version's instructions and subtasks.
Coworkers playbooks list
List the coworker's playbooks (metadata + current version pointer).
Coworkers playbooks update
Edit playbook metadata in place (title, objective). Instructions and subtasks are immutable — create a new version instead.
Coworkers playbook versions create
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
Get one historical version's instructions and subtasks.
Coworkers playbook versions list
List all versions of a playbook, newest first.
Coworkers rotate token
Rotate the management token used to talk to the coworker service.
Create canvas
Create a new (empty) canvas — a Miro-style infinite whiteboard. Use when starting a fresh flowchart, product map, or swimlane flow; returns the canvas envelope with an empty `data.elements`, then add objects with create_canvas_element. Coordinates: board units, top-left origin, +x right / +y down. Example: create_canvas({ title: "Q1 product map" }) → { id: "<boardId>", data: { elements: [] } }.
Create canvas element
Add one element to a board — a sticky, text, shape, image, codeBlock, frame, swimlane, connector, or metric. Use when placing a new object; to attach a connector so it re-routes when shapes move, set each endpoint to an existing element id with an anchor (n/s/e/w) — free-form points stay fixed and never follow a move, so use them only for unattached lines. Provide `type` and geometry; the server mints the element id and returns it, and every other element on the board is untouched. Fields are flat, never nested under `element`, and `id` is the board. Send only the fields of that type: sticky and text take `content`; shape takes `shape` and `content`; image takes `src`; codeBlock takes `code` and `language`; frame takes `name` and an optional `metricWindow`; metric takes `report` (insights:<id> or funnels:<id>, a saved analytics report), optional `step`, `title` and `window` ({ from, to } like today-28d / now) and renders that report's live value; connector takes `from` and `to` as `{ element, anchor }` or `{ point: { x, y } }`, with `x`,`y`,`w`,`h` all 0. Coordinates: board units, top-left origin, +x right / +y down — pass `x`,`y` (the element's top-left corner) with `w`,`h`. Example: create_canvas_element({ id: "<boardId>", type: "sticky", x: 100, y: 80, w: 160, h: 120, content: "Idea" }).
Create chart
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
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
Create a named contact group for organizing contacts. Groups allow overlapping membership — a contact can be in multiple groups.
Create crm property definition
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
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
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
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
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 doc
Create a new doc. `content` is Markdown (recommended) or a ProseMirror JSON string. Returns the created document; read, update, share and trash it through the `/api/documents/{id}` operations. For a spreadsheet use `create_sheet`, for a deck `create_presentation`, for a whiteboard `create_canvas`.
Create draft email
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
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
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
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
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
Create a mail label for organizing threads.
Create mail rule
Create a mail rule that acts on matching messages.
Create mail template
Create a reusable mail template for composing.
Create named range
Create a named range or named expression on a spreadsheet. Send either an A1 range or an exact literal Excel expression, such as a structured table reference. External-workbook expressions are preserved verbatim and remain unresolved.
Create pipeline
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
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
Create a new presentation deck. Omit `content` for a deck with one blank slide, or pass deck JSON to create it with its slides in place: `{ slides: [{ elements: [{ type: "text", x: 80, y: 60, w: 800, h: 80, text: "Q1 review", fontSize: 44 }] }] }`. A slide is 960 by 540 units with a top-left origin, and elements take the shape `add_slide` accepts. Returns the created `SlideDeck` envelope.
Create product
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
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
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
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 resource comment
Create a comment on a document, task, wiki page, mail conversation, pull request, or code review. Replies use parent_id. Documents, wiki pages and Code support anchor; documents, tasks, wiki pages and Code support idempotency_key. Unsupported fields are rejected by the owning module. Mail comments are internal notes and cannot be sent as email.
Create role
Create a custom role with specific permissions. Requires admin role.
Create scheduler link
Create a scheduler link (booking page). Returns the public URL slug and availability settings. If auto_create_contact is true, every booking auto-creates a CRM contact + deal.
Create scoring rule
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
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
Create a shared drive. Creator becomes a manager.
Create sheet
Create a new spreadsheet. 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 sheet image
Create editable floating images with cell anchors and CSS pixel geometry. Image src must reference an image asset owned by this sheet.
Create sheet picture group
Create editable picture groups with cell anchors and CSS pixel geometry. Every leaf references an image asset owned by this sheet; native group transforms use EMU coordinates.
Create sheet shape
Create editable floating shapes with editable text, cell anchors and CSS pixel geometry.
Create sign document
Create a draft signing document.
Create sign template
Create a reusable signing template from field layout and signer roles.
Create slicer
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
Create a new master slide for a deck. If no elements are provided, a default Title + Subtitle layout is used.
Create subtask
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
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
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
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
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
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
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
Create workspace invites. With no recipient it mints a generic shareable invite link (returned as `invite_url`) and emails nobody; with recipients it creates one invite per address and emails each. Role defaults to `member` and is forced to `member` for any value other than `admin`.
Crm contact file attach
Attach a Drive file to a contact. The file becomes readable by every workspace member who can read the contact, so a file you do not own needs the share right on it (403 `file_attach_requires_share` when you can only view it).
Crm contact file detach
Detach a file from a contact
Crm contact files list
List files attached to a contact
Crm contact photo get
Serve the photo image stored for a CRM contact.
Crm deal activities
List activities for deal (owner-scoped)
Crm deal file attach
Attach a Drive file to a deal. The file becomes readable by everyone who can read the deal, so a file you do not own needs the share right on it (403 `file_attach_requires_share` when you can only view it).
Crm deal file detach
Detach a file from a deal
Crm deal files list
List files attached to a deal
Crm quote pdf
Export quote as PDF (or printable HTML with ?format=html)
Cycles add tasks
Add tasks to the cycle. Body `{task_ids: [...]}`.
Cycles analytics
Burndown + summary analytics for the cycle.
Cycles complete
Complete a cycle. If `auto_rollover` is set, incomplete tasks are moved to the next cycle.
Cycles create
Create a new cycle. Body fields: name, start_date, end_date, status?, cooldown_days?, auto_rollover?.
Cycles delete
Delete a cycle. Tasks attached to the cycle are unlinked, not deleted.
Cycles get
Get one task cycle and its dates by id.
Cycles list
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
Remove tasks from the cycle. Body `{task_ids: [...]}`.
Cycles update
Update cycle fields.
Cycles velocity
Cross-cycle velocity (last N closed cycles). Default `limit=10`.
Decide access request
Approve an open access request at a named role, or decline it. Only principals entitled to share the resource may decide. Returns 409 once decided.
Decide mail approval
Approve and send, request changes, reject, or (as the sender) withdraw one submitted email. The decision names the revision it applies to: exactly one decision per revision succeeds, and a decision on a superseded revision conflicts rather than releasing content the caller has not read. Approving records the human and time against that revision; it authorizes nothing else — not the thread, not a reply, not a later email.
Delete activity
Delete one logged CRM activity by id.
Delete canvas element
Delete one element from a board by id. Use when removing an object; connectors attached to it are not auto-deleted, so patch or delete those separately. Every other element is untouched. Coordinates: board units, top-left origin, +x right / +y down (unchanged by a delete). Example: delete_canvas_element({ id: "<boardId>", elId: "<elId>" }).
Delete chart
Remove a chart from the sheet. Returns `{ deleted: true }` on success.
Delete conditional format
Delete a conditional formatting rule from a spreadsheet by its ID. Returns 200 on success, 404 if the rule does not exist.
Delete contact
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
Delete a contact group. Memberships are removed but contacts themselves are preserved.
Delete contact photo
Delete a CRM contact's profile photo. Clears the avatar_url and removes the stored image.
Delete coworker
Delete a coworker (revokes API key + tears down config).
Delete crm property definition
Delete a custom-property definition. Existing custom_properties values are left in place; they simply stop being typed.
Delete crm view
Delete a saved CRM view.
Delete custom emoji
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
Delete a data connector. Does not affect the cells it previously wrote to.
Delete deal
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
Delete a deal line item. By default the deal's total amount is re-synced after deletion.
Delete deal template
Delete a deal template (does not affect deals previously created from it).
Delete document version
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
Delete one email message by id.
Delete event
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. Guests are emailed a cancellation only when `send_updates` asks for it.
Delete file
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
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
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
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
Delete one mail label from this mailbox.
Delete mail rule
Delete one mail rule by id.
Delete mail template
Delete one saved mail template by id.
Delete named range
Delete a named range from a spreadsheet by name. Names are matched case-insensitively.
Delete pipeline
Delete a CRM pipeline and all of its stages. Deals in the pipeline must be moved or deleted first.
Delete pivot table
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
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
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
Delete a CRM quote and its line items.
Delete recurring event future
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
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 resource comment
Delete an existing document, task, wiki, mail-thread or Code comment by its comment ID. Existing author, ownership, and parent-resource permissions apply; each module's reply-deletion behavior is preserved.
Delete role
Delete a custom role. System roles cannot be deleted. Requires admin role.
Delete scheduler link
Delete a scheduler link. Existing confirmed bookings remain but the public booking page stops accepting new bookings.
Delete scoring rule
Delete a lead scoring rule.
Delete sequence
Delete a sequence (and all its enrollments).
Delete shared drive
Delete a shared drive (destructive, manager-only).
Delete sheet columns
Delete columns atomically and return the bounded change receipt for undo or redo.
Delete sheet image
Delete editable floating images with cell anchors and CSS pixel geometry. Image src must reference an image asset owned by this sheet.
Delete sheet picture group
Delete editable picture groups with cell anchors and CSS pixel geometry. Every leaf references an image asset owned by this sheet; native group transforms use EMU coordinates.
Delete sheet rows
Delete rows from a sheet tab by 0-based index.
Delete sheet shape
Delete editable floating shapes with editable text, cell anchors and CSS pixel geometry.
Delete slicer
Remove a slicer from the sheet. Returns `{ deleted: true }` on success.
Delete slide master
Delete an unused master slide. Returns 409 with the referencing slide count while the master is in use.
Delete team
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
Irreversibly delete a member. Requires admin and refuses the last owner. Reassigns CRM contacts to `successor_user_id` (default: acting admin); an ineligible successor aborts before mutation.
Delete wiki page
Move a wiki page to Trash, together with every page beneath it. Trashed pages leave the tree and search, and can be brought back with `wiki_page_restore`; only `wiki_page_permanent_delete` removes them for good. A page that has child pages answers 409 with `requires_cascade` and `children_count` unless `cascade=true` is passed, so confirm with the user before trashing a sub-tree. Use this when the user asks to delete or remove a wiki page.
Delete wiki synced block
Soft-delete a synced block. Embedded references will show error chips until restored. Use restore_wiki_synced_block to undo.
Detach master from slide
Detach a slide from its master. The slide keeps its current rendered elements but no longer inherits from the master.
Docs create named range
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
Delete a named range (template placeholder) from a document by name. Names are unique per document.
Docs list named ranges
List all named ranges (template placeholders) defined on a document. Returns each range's name and its anchored node positions.
Documents asset create
Add an image to a doc, sheet, slide deck or canvas board as one of its own assets and get back the URL its body should store (`/api/assets/{id}/content`). Send the bytes as `content_base64`, `source_file_id` to copy a Drive file the caller can view, or `source_url` to import a public HTTPS image through the SSRF guard; neither source is referenced afterwards. The type is decided from the bytes and only images are accepted (415 otherwise); SVG uploads are sanitized before storage and refused with 415 when malformed. Stored SVG is sanitized on every read and served inline as image/svg+xml under a restrictive Content-Security-Policy; malformed stored SVG is refused with 404. Drive SVG downloads remain attachments. The bytes count against the container owner's storage (413 past it). The same image added to the same container again returns the asset already held. The asset is never visible in Drive and is readable exactly when the container is.
Documents comment delete
Delete a comment. Author or document owner only.
Documents comment reaction add
Add an emoji reaction to a comment. Idempotent per (user, emoji). Returns the comment's updated reaction aggregate.
Documents comment reaction remove
Remove the caller's emoji reaction from a comment. Returns the comment's updated reaction aggregate.
Documents comment resolve
Edit your own comment or resolve a thread. Content edits require commenter access; resolution requires editor access. expected_content rejects stale edits with 409.
Documents comments create
Add a threaded comment. Commenter permission required. `parent_id` makes it a reply; `anchor` carries CRDT-stable position info.
Documents comments list
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
Advance the requester's last-seen marker so the unread badge clears. Idempotent.
Documents comment thread mark read
Mark one comment thread read for the requester, clearing its unread badge. Idempotent. `commentId` must be a root comment on this document; a reply id or a comment on another document is refused 404.
Documents comment thread mark unread
Mark one comment thread unread for the requester so it stays flagged until reopened, even when its only comments are the requester's own. `commentId` must be a root comment on this document; a reply id or foreign-document id is refused 404, and a resolved thread is refused 409 `comment_resolved`.
Documents delete
Soft-delete a document (move to trash). Owner only.
Documents duplicate
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
Permanently delete a trashed document. Irreversible.
Documents pin
Toggle pinned state. Editor permission required (workspace-wide pin, not per-user).
Documents restore
Restore a trashed document.
Documents shared with me
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. `scope=workspace` narrows discovery to resources in the authenticated current workspace without changing access.
Documents star
Toggle starred state. Viewer permission is sufficient. Body `{starred: bool}` is optional — omit to toggle.
Documents thumbnail
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
Find all deleted native Docs, Sheets, Slides and Canvas items owned by the caller. Returns their document IDs for documents_restore or documents_permanent_delete; optional type filters doc, sheet, slide or canvas. Uploaded Drive files and folders use list_trashed_files, which can also include materialized native-document shadow rows but is not a complete native-document trash list. An empty Drive-file trash result does not mean this document trash is empty.
Documents version get
Get a version's metadata + serialized content snapshot.
Documents version revert
Revert the document to a prior version. Force-snapshots current state first.
Documents versions create
Create a manual snapshot (forces past the 5-minute throttle).
Documents versions list
List version snapshots, newest-first, cursor-paginated (default 50 per page). Walk via `next_cursor` until `has_more` is false.
Drive file confirm upload
Confirm a presigned upload completed successfully. Verifies the blob exists, rechecks its real size and stored bytes, then marks the file as confirmed and emits the upload event. A retryable storage-inspection failure leaves the upload pending and returns 503; a missing object removes the pending row and returns 410. Idempotent — confirming an already-confirmed file returns it unchanged without repeating the upload event.
Drive file content
A file's bytes. A browser is redirected to a short-lived signed storage URL where signing is available and is otherwise sent the bytes; an MCP tool call always gets the bytes, refused 413 above the MCP result size limit. Pass `?download=true` for `Content-Disposition: attachment`; default is inline. Content retrieval failures can return 503/504 via raw Response because those statuses are outside the typed contract error-code enum.
Drive file import
Add a file to Drive from JSON, for clients that cannot send multipart: give either an https `url` to fetch (up to 100 MB) or the bytes as `content_base64` (up to 25 MB decoded), plus a `name`. The file goes through the same checks as a browser upload: its type is decided from the bytes, blocked types are refused, and it counts against the caller's storage quota. Links to private network addresses are refused, including through redirects. Returns the stored file.
Drive file request create
Create a revocable, write-only public file request for a folder. The capability token is returned only in this response.
Drive file request remint
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
Revoke a folder's public file request immediately.
Drive file requests list
List the caller's file requests for one owned Drive folder.
Drive files recent
Recently used files for the current user — files they opened in the last 30 days (their own views, including files shared with them that they can still open) OR files they own created in the last 24 hours. Sorted newest first by their own last view, or creation for their own new files.
Drive files shared with me
Files shared with the current user through a direct, team or external grant, newest share first (`sort=modified` orders by last modified instead). Each row carries `shared_at` and `shared_by`. Excludes files the user owns.
Drive files starred
Files the current user has starred.
Drive files suggested
Files the current user is likely to want next, each with the reason it is suggested: they opened it (`opened`), someone shared it with them (`shared`), or someone else added it to a folder they own or an agent they manage created it (`added`). Covers the last 14 days, newest reason first, at most one entry per file and only files the caller can still open. Stars never influence it. Use this for the My Drive home, not for a full history; use `drive_files_recent` for everything the user opened.
Drive file tag attach
Attach one of your tags to a Drive file, a doc/sheet/slide, or a form, so one tag can group a PDF with the document it belongs to. Owner-only (anyone else gets 404) and idempotent. Pass `resource_type` to name the kind, or omit it to infer it from the id.
Drive file tag detach
Detach a tag from a Drive file, a doc/sheet/slide, or a form. Owner-only. Pass `?resource_type=` to name the kind, or omit it to infer it from the id.
Drive file update
Rename, move, or star/unstar a file. Requires edit access — the owner or an editor/owner share. A move also needs editor access on the destination folder (contributor in a shared drive), and an item whose sharing is restricted moves only with its owner (403 `drive_move_requires_owner`).
Drive file upload init
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 folder ancestors
Breadcrumb chain (root → leaf) for a folder. Powers breadcrumb hydration on deep-link reloads. Viewer permission is sufficient.
Drive publish gallery
Publish a folder as an anyone-with-link gallery: stamp link visibility plus the given password/expiry onto the folder and its direct-child non-folder files, skipping legal records (reported as skipped_legal). An omitted password or expires_at keeps the folder's current value, so re-publishing to admit new files keeps the gallery's protection; an explicit null (or empty password) clears it. Owner-only. Materialized, not a cascade — files added after publishing stay restricted until republished.
Drive revoke gallery
Revoke a folder gallery: restore the folder and its direct-child files to restricted and clear link settings. Owner-only. Legal-record children are left untouched.
Drive shared drive folder create
Create a folder inside a shared drive. Requires contributor+ on the drive. Pass `parent_folder_id` to nest.
Drive tag create
Create a new tag in the user's catalog.
Drive tag delete
Delete a tag (cascades to all file assignments).
Drive tag files list
List everything you tagged with the given tag: Drive files, docs/sheets/slides and forms you own, newest first. Docs and forms carry `document_type`.
Drive tags list
Current user's tag catalog. Each tag carries name, color, and sort order.
Drive tag update
Rename, recolor, or reorder a tag.
Duplicate slide
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
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
Edit all occurrences in a recurring series. Updates the master event.
Edit recurring event future
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
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
Permanently delete the trashed files the user holds the owner rung on. Shared-drive files are included only for drives the user manages. Irreversible — confirm with user first. Returns the number of files deleted.
Enroll contact in sequence
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
Auto-create the reverse relation property on the target database if missing. Idempotent — returns the existing or newly-created reverse property id.
Export document
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
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.
Export form responses
Download all matching form responses as CSV with field labels, display values, blank unanswered cells, and ISO submission timestamps. Streams beyond the response-list page size.
Find and replace in deck
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
Set a flat map of fields on the node output. Native equivalent of the n8n `Set` node — alias `n8n-nodes-base.set → formatter_set`. 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 account erasure outcome
Read a deleted member's durable erasure outcome and notice-delivery state. Requires admin or owner.
Get activity
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 billing bonuses
Return the workspace's full earned-bonus history, newest-first — perpetual activation bonuses merged with one-time activation grants. Powers the Home Action-bonuses card, which needs the whole history the notification feed cannot show. Any authenticated caller in the workspace.
Get billing quota
Return the workspace's unified action-meter view: plan, base/earned/topup quota, consumed-this-month, reset_at, member count + cap, trial state, active bonuses, auto-recharge config. Replaces the deprecated /api/billing/usage + /api/billing/ai-usage endpoints. Any authenticated caller in the workspace.
Get calendar
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
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 canvas
Get a full canvas by id, including every element in `data.elements`. Use when you need the complete board; for a large board prefer get_canvas_manifest (ids/types/bounds only) or get_canvas_frame to stay within context budget. Coordinates: board units, top-left origin, +x right / +y down. Example: get_canvas({ id: "<boardId>" }) → the board with all elements.
Get canvas elements
Batch-fetch specific elements of a board by id — pass `ids` as a comma-separated list (max 500) and only those elements are returned, never the whole board. Use to refresh just the elements that changed (a collaborator's edit named in a `canvas.updated` change-feed frame carries their ids), staying element-scoped rather than reloading the board body. A requested id that is ABSENT from the response means the element was deleted — drop it locally. Coordinates: board units, top-left origin, +x right / +y down. Example: get_canvas_elements({ id: "<boardId>", ids: "el-a,el-b" }) → { elements: [{ id: "el-a", … }] } (el-b was deleted).
Get canvas frame
Get a frame (or swimlane) element and its children — every element whose `frameId` points at it. Use to read one region of a large board in full detail. Coordinates: board units, top-left origin, +x right / +y down. Example: get_canvas_frame({ id: "<boardId>", frameId: "<frameId>" }) → { frame, elements: [...] }.
Get canvas manifest
Get a bounded manifest of a board — element ids, types, and bounds only (no style/content). Use this to survey a large board cheaply, then fetch a specific frame or the full board for detail. Coordinates: board units, top-left origin, +x right / +y down. Example: get_canvas_manifest({ id: "<boardId>" }) → { element_count, elements: [{ id, type, x, y, w, h }] }.
Get channel messages
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
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
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
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
Get the PNG thumbnail bytes for the first slide (cover image) of a presentation. Convenience endpoint — equivalent to get_slide_thumbnail with index 0.
Get coworker
Get one AI coworker's configuration by id.
Get coworker status
Get a coworker's runtime status (proxied from coworker service).
Get crm analytics
Get analytics for accessible deals, optionally scoped to one pipeline: pipeline value by stage, conversion rates, average deal size, sales velocity, and deals breakdown.
Get crm metrics
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
Get CRM revenue, deals-by-source, pipeline-by-owner, and activity reports for accessible records, optionally scoped to one pipeline. Each report preserves its own timestamp axis.
Get current workspace
Get the active workspace (name, slug, logo). Accessible to any authenticated user.
Get data connector
Get a single data connector by ID, including its config and last-run status.
Get deal
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
Get a single deal template with its line items and resolved pipeline/stage names.
Get detailed user presence
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; poll this on connect or when the socket is down, not on a steady timer.
Get docs page layout default
Get the caller's default layout for new Docs: `pageless_default: true` (the default) means new Docs start pageless, `false` means they start in pages.
Get document
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
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
Get the default, first-page, and even-page headers and footers from a document as ProseMirror JSON nodes (or null if not set).
Get document page style
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
Get Drive storage usage.
Get drive storage breakdown
Storage breakdown by file type.
Get email
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
Get an attachment download URL: signed in cloud storage, authenticated API content in local storage.
Get email calendar invite
Get calendar invite embedded in an email.
Get email deliverability
Get email deliverability statistics (sent/bounced/complained/opened rates) for the past 30 days. Requires admin role.
Get email opens
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
Get the workspace default email signature (Markdown). Requires admin role.
Get entity preview
Look up a hover-card style preview of any referenced entity (document, task, contact, deal, channel, chat message, user, event, file, wiki page, form, email). Module keys include `docs`, `tasks`, `channels`, `messages`, `users`. 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
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
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 feedback
Read back one submission by its receipt. Answers only the submitter — anyone else, including other members of the submitter's workspace, gets 404. Returns the public projection: a status word (`filed` | `accepted` | `declined` | `shipped`, derived from the task Ambiguous works), the title, the priority, the task key, and timestamps. Nothing else on the task is exposed.
Get file info
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
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
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
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
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 approval
Read one submitted email exactly as it will send — From, Reply-To, the complete To/Cc/Bcc set, subject, body with signature applied, attachment manifest, threading and requested schedule. A caller without access gets 404, never 403.
Get mail approval attachment url
Presigned URL for one frozen attachment, addressed by its position in the manifest. The bytes are the copy taken at submit time, so a later edit of the source Drive file does not change what the reviewer reads. The URL is minted only after the review access check.
Get mail rule
Get one mail rule's conditions and actions by id.
Get mail signature
Get the effective email signature.
Get mail template
Get one saved mail template by id.
Get mail thread
Get all emails in a thread + muted flag.
Get message readers
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 module availability
Which productivity modules are enabled for the caller's workspace: module key → boolean. Bootstrap gate for nav + routes.
Get my access request
Whether you have an open access request for a document, spreadsheet, presentation, canvas, Drive item, form, wiki page, or calendar, task, project, or CRM pipeline.
Get notification keywords
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
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 pipeline
Get a single CRM pipeline by ID with its ordered stages and its `visibility` — `workspace` when the pipeline is shared with the whole workspace, `private` when only its members reach its deals. A caller who is not a member receives 404.
Get presentation
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
Get one CRM product from the catalog by id.
Get project
Get a single project by ID, including task count, visibility, and metadata.
Get quote
Get a single CRM quote with its line items and linked deal/contact/company/owner.
Get read receipts default
Get read-receipts default for new compose.
Get resolved presence
Cold-hydrate the resolved presence dot 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 scheduler link
Get a single scheduler link (owner-scoped) with its settings and booking count.
Get security settings
Get workspace security settings (require_2fa, session_timeout_hours, password_min_length, ip_allowlist). Requires admin role.
Get sequence
Get a single sequence with its full step list and current enrollment count.
Get settings
Get all workspace settings. Requires admin role.
Get shared drive
Get shared drive details.
Get sheet
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 the tab list as `response.data.sheets`; columns and rows are under `response.data.sheets[0]`, not at the response root. If the user is currently viewing a sheet, use the sheet ID from the page context.
Get sheet range
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 sign audit
Get the append-only audit trail for a visible signing document.
Get sign document
Get a signing document with signers and fields.
Get slide thumbnail
Get the PNG thumbnail bytes for a specific slide. Sizes: small (200px), medium (800px, default), large (1600px).
Get snooze presets
Get the user's custom snooze quick-presets. Returns defaults when no custom presets are saved.
Get swipe actions
Get the caller's own mail-row swipe actions. Returns the defaults (right archive, left trash) when nothing is saved.
Get task
Get a single task by ID, including full details: title, description, status, priority, assignee, due date, labels, and subtask count.
Get team
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
Get undo-send duration preference.
Get unread counts
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
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
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; poll this on connect or when the socket is down, not on a steady timer.
Get users notification preferences
Return the user's notification preferences, merged with defaults so newly-added keys always render.
Get user status
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
Get vacation auto-reply settings.
Get wiki database row
Get a single database row by id.
Get wiki page
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
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
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
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
Get the current workspace details (id, name, slug). Requires admin role.
Grant access
Share a document, spreadsheet, presentation, canvas, Drive item, form, wiki page, or calendar with exactly one user_id or named team_id (workspace members/teams), or email (anyone; sends an invitation). For all current/future workspace humans and agents use set_visibility(visibility=workspace, workspaceRole), not per-person grants or the Everyone entry. invite_to_workspace=true sends a membership invite (admin-only); message applies only to email. Unsupported roles are rejected; re-sharing cannot lower a live grant.
Group slide elements
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.
Home digest
Workspace-home roll-up: trailing-window task velocity (with prior-window deltas) plus the actor-aggregated team digest, visibility-gated per viewer. The `window` param selects the trailing window (7d default, or 1d for Today). Accessible to any authenticated workspace member.
Insert page break
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
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
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
Invite a human by email with a member or admin role. Requires admin.
Leave resource
Remove your own direct grant on a document, spreadsheet, presentation, canvas, Drive item, form, wiki page, or calendar. The owner cannot leave. Returns an undo_token that shared_with_me_undo_leave accepts for ten minutes.
List access
List named/team grants, workspace/link tiers and pending invitations for a document, spreadsheet, presentation, canvas, Drive item, form, wiki page, or calendar. id names the resource; grant IDs name recipients. To remove broad access but keep explicit collaborators and their roles, use set_visibility(visibility=restricted). The Everyone entry mirrors workspace access, not a named share. Resource kind is inferred from id.
List activity
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
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
List archived threads (one per thread)
List blocked senders
List all blocked senders for current user's mailbox
List calendar events
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
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
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
List every chart across every tab of the sheet. Each entry is annotated with the `tab` name it lives in.
List conditional formats
List all conditional formatting rules on a spreadsheet. Returns each rule's ID, ranges (A1 notation), and one canonical rule payload.
List contact activities
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
List all contacts that are members of a contact group. Returns the contact id, name, email, and type for each member.
List contact groups
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
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 activities
List recent CRM activity visible to the current user across contact and deal timelines.
List crm property definitions
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
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
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
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
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
List data connectors registered on a sheet. Connectors fetch data from external sources (URL, CSV, etc.) into specific cells.
List deal line items
List all line items for a deal, plus the computed total.
List deals
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 deal templates
List deal templates in the workspace (reusable deal presets: default pipeline, stage, amount, probability, and line items).
List documents
List the current user's documents. Optionally filter by type. Includes externally owned documents by default; `scope=workspace` limits discovery to the authenticated current workspace.
List drafts
List the unsent draft emails in this mailbox.
List drive folders
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
List attachments for an email
List enrollment events
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
List resources currently booked for an event (rooms, equipment).
List events
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 feedback
List the caller's own submissions, newest first, as public projections (see `get_feedback`). Paginated with `limit` (default 50) and `offset`.
List files
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. A `parent_id` the caller cannot view answers 404, exactly as an absent folder does; a folder shared from another workspace is browsed through `GET /api/drive/{id}/children` instead.
List folder children
List the direct children of one folder, named in the path. Use this to browse into a folder — including one shared with you from another workspace, which the `parent_id` form of the list endpoint cannot return. Answers 404 for a folder the caller cannot view, exactly as an absent one does.
List form responses
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 forms
List the user's forms. Returns forms with id, title, slug, is_published, response count, timestamps, and the caller's own star and Drive tags. Pass `starred=true` for only the forms you starred. Use this when the user asks to see their forms, find a specific form, or check form status.
List form variants
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 forwarding addresses
List forwarding addresses + recent log.
List identity api keys
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
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 approvals
List email submissions awaiting a human decision. Returns the caller's own submissions plus the ones they may decide — as the submitting agent's current manager, or as a workspace admin/owner. A former manager sees nothing.
List mail by label
List emails with a specific label
List mail labels
List every mail label in this mailbox.
List mail rules
List mail rules / filters.
List mail templates
List the saved mail templates in this mailbox.
List muted threads
List muted threads (inbox view for muted conversations)
List my teams
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
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
List named ranges and named expressions on a spreadsheet. Each entry returns its name and either an A1 range or an exact literal expression. External-workbook expressions remain unresolved.
List pinned messages
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
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
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
List every pivot table across every tab of the sheet. Each entry is annotated with the `tab` name it lives in.
List products
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 projects
List accessible projects in the current workspace, optionally filtering by a case-insensitive name query before pagination. 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 project updates
List status updates for a project, newest first. Returns the health timeline with author and timestamp.
List protected ranges
List all protected ranges on a spreadsheet. Returns each range with its ID, A1 range, description, warningOnly flag, and editorUserIds allowlist.
List quotes
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 resource comments
Read comments on a document, task, wiki page, mail conversation, pull request, or code review. Resource type is resolved from ID; a mail conversation can use its thread key with mailbox_id. result preserves threading, pagination, unread counts, and entity references supplied by its owning module.
List resources
List bookable resources (rooms, equipment) in the workspace. Call before booking a room to see what's available.
List roles
List all roles in the workspace (system roles + custom roles). Requires admin role.
List running executions
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
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
List scheduled (unsent) emails
List scheduled messages
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
List all bookings (across all scheduler links) owned by the current user. Useful for summarizing the user's upcoming meetings.
List scheduler link bookings
List all bookings for a single scheduler link (owner-scoped).
List scheduler links
List the user's scheduler links (Calendly-style booking pages). Each link has a shareable slug, duration, availability hours, and optionally auto-creates a contact + deal when booked.
List scorable fields
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
List all lead scoring rules for the workspace.
List send as addresses
List available send-as addresses for current user
List sent mail
List the emails sent from this mailbox.
List sequence enrollments
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
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
List files in a shared drive.
List shared drive members
List shared drive members.
List shared drives
List shared drives user is a member of.
List sheet images
List editable floating images with cell anchors and CSS pixel geometry. Image src must reference an image asset owned by this sheet.
List sheet picture groups
List editable picture groups with cell anchors and CSS pixel geometry. Every leaf references an image asset owned by this sheet; native group transforms use EMU coordinates.
List sheets
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 sheet shapes
List editable floating shapes with editable text, cell anchors and CSS pixel geometry.
List sheet validations
List all data validation rules on a spreadsheet. Returns each rule's range (A1 notation) and rule definition (type, values, strict, inputMessage).
List sign documents
List signing documents in the workspace.
List sign templates
List reusable signing templates.
List slicers
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
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
List the snoozed emails in this mailbox.
List starred mail
List the starred emails in this mailbox.
List task attachments
List Drive files attached to a task.
List tasks
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 task templates
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 teams
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
Find deleted Drive file rows and folders the caller owns, trashed themselves, or holds the owner rung on (a folder above it is theirs, or they manage its shared drive). Returns paginated file IDs and metadata for restore_file or permanent_delete_file. Can include materialized native-document shadow rows, but does not list every native Docs, Sheets, Slides or Canvas item: use documents_trash_list for the complete native-document trash owned by the caller. An empty result does not mean the whole workspace trash is empty.
List users
List workspace members and agents with identity, role, status, storage usage, and timestamps. Requires admin or owner.
List user statuses
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 wiki page databases
List all inline databases hosted on a wiki page.
List wiki page versions
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
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
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
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
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
Add a new alias on a verified workspace domain
Mail alias delete
Delete a send-from alias address by id.
Mail aliases list
List all aliases for current user's mailbox
Mail alias set default
Set alias as default send-as identity
Mail blocklist clear
Unblock by raw pattern (convenience for "Unblock sender" button)
Mail blocklist remove
Unblock a sender by their blocklist entry id.
Mail bulk modify
Apply one bulk action to emails chosen by id or search query.
Mail export eml
Export a message as RFC 5322 EML, returning retained source octets when available.
Mail external auth url
Start connected-mailbox (Gmail) OAuth — returns the consent URL.
Mail external connection delete
Disconnect a connected mailbox.
Mail external connections list
List connected mailboxes.
Mail external connection test
Verify a connected mailbox by fetching its Gmail profile.
Mail folder counts
Per-folder badge counts for sidebar Returns { inbox: unread_count, drafts, scheduled, snoozed } — Gmail-style.
Mail label counts
Per-label unread counts for sidebar badges. A separate endpoint so the sidebar can refresh counts on read/receive without re-fetching the label definitions themselves. Shape mirrors /folder-counts.
Mail message unsubscribe
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
The people who can hold a thread in this shared mailbox — team grants flattened to their members.
Mail shared mailbox create
Create a shared mailbox and address it on a workspace domain (admin only)
Mail shared mailbox delete
Retire a shared mailbox (admin only). Soft: stored mail is retained and the address stays reserved.
Mail shared mailboxes list
List the shared mailboxes the caller holds, or every one in the workspace with `scope=managed` (admin only)
Mail shared mailbox get
Get one shared mailbox and its members
Mail shared mailbox member add
Grant a user or a team access to a shared mailbox (admin only)
Mail shared mailbox member remove
Revoke a user's or team's access to a shared mailbox (admin only)
Mail shared mailbox restore
Restore a retired shared mailbox (admin only). Total — delete cascaded nothing.
Mail shared mailbox update
Rename a shared mailbox's display name; its address is unchanged (admin only)
Mail smart compose
Suggest a short continuation of an email draft being written. Takes the text typed so far, optionally the subject and the earlier messages of the thread being replied to, and streams the suggested next words.
Mail thread mute status
Check if a thread is muted
Mail trash list
List trashed (soft-deleted) emails — the caller's own rows in folder='trash'. Restore one with `untrash_email`; nothing is purged automatically.
Mail unread summary
Unread mail summary for a cross-module unread view: the total unread count plus the top N (default 5, max 25) unread inbox rows with sender, subject, preview and timestamp, so a unified list can render without pulling the full inbox.
Mark all channels read
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
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
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
Update email status (read/unread, starred, snoozed)
Mark thread read
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
Mark a thread as unread so it reappears in the threads inbox with an unread badge. An optional reply_id marks that reply onward unread. Omit it to mark the whole thread unread. Restore accepts the prior cursor and its expected current cursor; a newer intent returns 409.
Merge contacts
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.
Migrate document source
Activate source-preserving editing on an existing document. Only its owner may migrate; the expected content hash prevents stale activation and the command ID makes retries idempotent.
Modify contact group members
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
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.
Move sheet row
Move a row to a new zero-based position, carrying its values, formatting, geometry and dependent references.
Notifications dismiss
Soft-delete (hide from default feed). Preserved for audit / undismiss.
Notifications list
List notifications for the current user. Supports cursor pagination via `?cursor=`; legacy offset pagination still works. Filters: `resource_types`, `excluded_resource_types`, `event_types`, `unread_only`; visibility toggles: `include_dismissed`, `include_snoozed`.
Notifications mark all read
Mark every unread notification in the optional resource/event scope as read.
Notifications mark read
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
Convenience alias for `PATCH /api/notifications/:id` with `{read:false}`.
Notifications mute create
Create or refresh your in-app/live notification suppression rule for resourceId, eventType, or both. Matching direct mentions are suppressed there too; email and push delivery are unchanged. This does not change a chat channel's mute setting or notification preference. For ordinary channel mute/unmute use set_channel_muted. At least one selector is required; resourceId also requires resourceType. until=null or omitted means indefinite. A matching rule's expiry is refreshed.
Notifications mute delete
Remove a mute rule by id. Scoped to the owning user.
Notifications mutes list
List active mute rules. Pass `?include_expired=true` to also see rules whose `until` has passed (these no longer suppress notifications).
Notifications snooze
Hide until `{until: ISO8601}`. Pass `{until: null}` to clear snooze.
Notifications undismiss
Restore a dismissed notification.
Patch canvas element
Update one element's fields (geometry, style, text, connector endpoints, lock). Use when moving, restyling, relabeling, or re-anchoring a single element. Provide only the fields to change; the element's id and type stay fixed and every other element is untouched (per-element diff — never a full-board replace). Coordinates: board units, top-left origin, +x right / +y down — set `x`,`y` to move the top-left corner. Example: patch_canvas_element({ id: "<boardId>", elId: "<elId>", x: 240, y: 80 }) moves an element right by 140 units.
Patch users notification preferences
Partial update of notification preferences. Unknown keys → 400. Non-boolean values → 400.
Pause coworker
Pause coworker (stops scheduled executions).
Permanent delete file
Permanently delete a trashed file. Needs the owner rung; shared-drive content additionally needs a manager of that drive. A caller who can see the file without that authority gets 403. Irreversible — confirm with user first.
Poll close
Close a poll to further voting (creator or channel admin).
Poll create
Create a poll in a channel. Creator must be a channel member.
Poll delete
Delete a poll (creator or channel admin).
Poll get
Poll details (question, options, the caller's votes).
Poll get by message
Poll results for the poll attached to a chat message.
Poll results
Tallied poll results (respects anonymity).
Poll unvote
Remove the caller's vote for a poll option.
Poll vote
Cast a vote for a poll option.
Project members add
Add a member. Body `{user_id, role?}` — or `{team_id, role?}` for a team share. A project editor may add, capped at its own role: granting a role above it is refused `403`. Notifies the new member.
Project members list
List project members.
Project members remove
Remove a grant from the project. The path id is the principal id: a user by default, or a team with `?type=team`. Notifies the removed user (unless self-removal). The Everyone team's row is refused — workspace access is set through the project's visibility, which is its only control.
Project members update role
Change a member's role.
Project notification pref get
Get the caller's notification preference for the project.
Project notification pref set
Set the caller's notification preference (`level`) for the project.
Project templates apply
Create a new project from a template. Pass `{name, description}` in the body.
Project templates create
Create a project template.
Project templates delete
Delete a project template.
Project templates get
Get a single project template.
Project templates list
List project templates in the workspace.
Project updates delete
Delete a status update. Author or admin only.
Project updates edit
Edit a status update. Author or admin only.
Protect range
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
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. Anyone holding the URL can read every event on the calendar until it is unpublished or its URL is rotated.
Publish form
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
Query rows from an inline database with optional view, filter, and sort. Returns paginated results.
Realtime exchange connection capability
Exchange the caller's normal credential (JWT or `ak_` API key) for a short-lived realtime connection capability scoped to exactly the caller's own workspace and credential session. Takes no input — workspace, principal and session are read off the authenticated credential, never a request field, so the endpoint has no field a caller could set to another principal's value. The capability names no resource, channel or operation: object-scoped channels each need their own resource capability, and every durable mutation is independently re-authorized API-side. Refused with 429 + `Retry-After` when the per-principal rate budget or this instance's concurrent database-admission budget is exhausted.
Realtime exchange resource capability
Exchange the caller's normal credential for a short-lived capability over ONE object-scoped channel. The caller names the channel; it never names its own authority — the granted operations are resolved from the caller's real role on that object through the same `can()` seam the REST surface authorizes with, so the capability and a later durable commit cannot disagree about what this principal may do. `operations` may narrow that set and may never widen it: a request naming an operation the caller does not hold is refused rather than quietly reduced, because a clamped token lets a client believe it may write and discover otherwise only as frames dropped at the edge. An object the caller cannot reach answers 404 exactly as an absent one does.
Recalculate lead scores
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
Register a custom email domain as a pending row; ownership must be verified via DNS TXT before sending is enabled. Requires admin role.
Remove access
Remove a named grant, pending invitation or link access on a document, spreadsheet, presentation, canvas, Drive item, form, wiki page, or calendar. Give exactly one user_id, team_id, pending_share_id (unaccepted invitation), or link=true (restricts the link tier; unavailable on calendars). To remove broad access while retaining explicit collaborators use set_visibility(visibility=restricted), not Everyone removal.
Remove forwarding address
Remove a forwarding address
Remove pipeline member
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
Remove a role from a user. Requires admin role.
Remove shared drive member
Remove a shared drive member (manager-only; cannot remove last manager).
Remove sheet column
Remove a column from a sheet tab by column ID. Use `?sheet=` to target a tab other than the first.
Remove sheet tab
Remove a sheet tab by name. Cannot remove the last remaining tab.
Remove slide
Remove the slide at the given zero-based index.
Remove task attachment
Remove a file attachment from a task. Does not delete the Drive file.
Rename document version
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
Rename an existing sheet tab.
Reorder mail labels
Reorder the mail labels shown in the sidebar.
Reorder mail rules
Reorder the mail rules to change which runs first.
Reorder slides
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
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
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
Replace a sheet tab's columns and/or rows wholesale. Use for bulk data replacement. Use update_cells for surgical edits.
Request access
Ask the owner of a document, spreadsheet, presentation, canvas, Drive item, form, wiki page, or calendar, task, project, or CRM pipeline for access at a role higher than any you hold. Documents, Drive items and wiki pages offer viewer, commenter and editor; forms and calendars viewer and editor; projects commenter and editor; tasks editor; pipelines member. Returns 409 while a request is already open.
Reschedule scheduled email
Change the delivery time of a pending scheduled email without changing its content.
Resend forwarding verification
Resend verification email
Restore file
Restore a file from trash. Needs the owner rung (the owner, the owner of a folder above it, or a manager of its shared drive); a caller who can see the file without it gets 403.
Restore sheet structure
Undo or redo a structural change receipt without overwriting unrelated later edits.
Restore task
Restore a soft-deleted task when the caller has task editor access.
Restore wiki synced block
Restore a previously deleted synced block. Embedding pages will render the block again instead of showing error chips.
Resume coworker
Resume a paused coworker.
Revert wiki page version
Revert a wiki page to a previous version snapshot. This replaces the current content with the version's content and rebuilds the page's collaborative state from it. 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
Revoke an API key. Immediate — any requests using the key will fail. Requires admin role.
Revoke identity api key
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.
Rotate calendar publish url
Rotate a published calendar's read-only subscription URL. The previous URL is revoked immediately.
Rsvp email invite
RSVP to a calendar invite on an email.
Rsvp event
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
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
Bookmark an EXISTING chat message in the current user's private Later/saved list. Resolve the original message_id with search_chat_messages or get_channel_messages when it is not supplied. Does not post or copy a message, and does not set a timed reminder (use set_reminder for that). Saving an already-saved message is a no-op.
Scan business card
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
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
Find existing chat messages by keyword, phrase, or topic across the caller's accessible channels. Results include the message id and channel context needed to bookmark, remind, react, reply, or edit that message. Use channel_id to restrict the search to a known channel; this read does not post messages.
Search mail
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
Cross-module command-palette search — every module including chat messages. `q` is the query string; `limit` caps results (default 30, max 50). Empty query returns an empty response. Module diversity is preserved. `counts` carries the per-module match total before the per-module cap.
Search wiki
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
Search across every module in the user's workspace (docs, sheets, slides, canvas, tasks, contacts, deals, channels, chat messages, wiki, forms, calendar, users, mail, files, teams, and saved Analytics reports for callers who can read them). Returns a flat list of results with module-aware metadata, plus `counts` — the per-module match total before the per-module cap. Optional module filter narrows the search to one or more modules; `sort` picks relevance or recency. Use this when the user asks to find something but you don't know which module it lives in.
Send draft email
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. A send is not always a delivery: when the sender is an agent limited to workspace recipients and any To/Cc/Bcc address is external, the WHOLE email is queued for a human decision instead of being sent — the response carries `delivery_status: pending_approval` and `pending_approval.review_id`, and nothing has reached the recipients. Report that state; do not report it as sent, and do not re-send it.
Send email
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. A send is not always a delivery: when the sender is an agent limited to workspace recipients and any To/Cc/Bcc address is external, the WHOLE email is queued for a human decision instead of being sent — the response carries `delivery_status: pending_approval` and `pending_approval.review_id`, and nothing has reached the recipients. Report that state; do not report it as sent, and do not re-send it.
Send message
Post a NEW message visible to the chat channel's members, or send a thread reply. Use for requested communication, not for finding, bookmarking, or reminding about an existing message: those actions use search_chat_messages/get_channel_messages then save_message/set_reminder on the returned message id. Content is Markdown with @mentions, code blocks, and links. Use the current channel ID when supplied by page context. To reply, set thread_id to the original parent message's id. To attach a file, upload it with drive_file_upload_proxy (source=chat) and include [name](drive://<file_id>) in content.
Send quote
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
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
Send a test notification email (useful for checking email rendering and deliverability). Requires admin role.
Set channel archived
Archive or unarchive a chat channel. Archiving freezes writes for everyone. Requires the same administrative authority as the individual archive and unarchive actions.
Set channel muted
Mute or unmute a chat channel for yourself, including DMs, temporarily or indefinitely. Muting silences ordinary message, keyword and subscribed-thread alerts and removes the channel-presence badge contribution; direct mentions and broadcasts still reach you. This changes the channel mute setting, not its notification preference or a delivery-suppression rule. muted=true optionally accepts until or duration_ms; omit both for indefinite mute. muted=false cannot include timing fields.
Set deck fonts
Set the heading and/or body font across a whole presentation: every text box, shape and table on every slide and master, group children and per-run rich-text fonts included. Text at 28px or larger takes the heading font; smaller text and tables take the body font. Fonts are a closed list. The saved deck is re-read before responding: a 409 means some elements still use another font, so the change is incomplete and must not be reported as done.
Set default send as
Set the user's default send-as address.
Set docs page layout default
Set the caller's default layout for new Docs (`pageless_default: true` = pageless, `false` = pages). Affects only Docs created afterwards; existing Docs keep their layout.
Set document footnotes
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
Set default, first-page, and even-page headers and footers. 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.
Set email archived
Archive an email or return it to the inbox. archived=true archives; false unarchives. Existing mailbox access rules apply.
Set email signature
Set the workspace default email signature. Pass null (or omit markdown) to clear. Requires admin role.
Set mail signature
Set personal email signature. Pass null to clear.
Set mail thread assignee
Assign a shared-mailbox conversation to a member, or clear its assignment with user_id=null. Does not change its folder.
Set mail thread muted
Mute or unmute a mail conversation. muted=true moves it out of the inbox and keeps future replies muted; false restores it. mailbox_id selects a shared mailbox.
Set notification keywords
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
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 reaction
Add or remove your emoji reaction on a chat message or a document, task, wiki, mail-thread or Code comment. The target is resolved from ID. present=true adds; false removes. Existing parent visibility, workspace custom-emoji rules, broadcast-message identity, and missing-reaction errors apply.
Set read receipts default
Toggle the default for new compose windows
Set reminder
Remind only the signed-in user about an existing chat message at a future time. A channel named in a personal reminder request locates the source message; it is not an audience or a request to post there. When message_id is unknown, first find the original with search_chat_messages or get_channel_messages; an unknown ID does not mean the message is absent. If the target cannot be identified, ask for clarification instead of publishing a replacement. Automatically bookmarks the original in Later. remind_at is an ISO 8601 datetime and must be in the future.
Set resource starred
Add or remove favorites (star/unstar) for documents, spreadsheets, presentations, canvases, Drive items, forms, channels or teams. Resource type is resolved from ID; existing starring/access rules apply. Tasks-sidebar view/project pins use tasks_favorites_add/remove instead.
Set sheet validation
Set a data-validation rule on a spreadsheet cell range in A1 notation. Supports dropdown/range lists, numeric/text/date conditions, checkbox values, and custom formulas. Numeric constraints use JSON numbers, not numeric strings. Strict configures invalid-entry rejection rather than warnings in the editor; API cell writes do not enforce these rules.
Set snooze presets
Set the user's custom snooze quick-presets (up to 10). Pass an empty array to reset to defaults.
Set swipe actions
Set the caller's own mail-row swipe actions — one action per direction, chosen from archive, trash, read, star, snooze.
Set task archived
Archive or unarchive a task. Archive is separate from Trash; archived=false does not restore a trashed task. Existing project and task permissions apply.
Set task subscription
Subscribe or unsubscribe yourself from a task's notifications. When subscribed=true, user_id may select another subscriber under the existing subscription rules; unsubscribe applies only to yourself. Subscription does not grant task access.
Set undo send setting
Set undo-send duration (seconds).
Set user dnd
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
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
Update vacation auto-reply settings.
Set visibility
Set broad access to a document, spreadsheet, presentation, canvas, Drive item, form, wiki page, or calendar: restricted removes broad tiers but keeps owner and explicit collaborators; workspace covers current/future workspace humans and agents at workspaceRole; link/public use linkPermission, optionally behind linkPassword until linkExpiresAt. Use this for Everyone/workspace access, not individual grants or the Everyone entry. Calendars allow only restricted/workspace; forms publish responder links separately. Unsupported fields are rejected.
Shared with me hide
Hide one row from the caller's own Shared-with-me list. Revokes nothing — the grant is untouched and the resource stays reachable by its id or link; only the list entry goes. 404 when the caller holds no live grant or the key lacks that resource's read scope. Idempotent.
Shared with me list
Everything shared with the calling account through a direct grant, a team grant, or a bound external grant, across docs / sheets / slides, Drive, Wiki, Forms and Calendar — and across every workspace and identity the account owns. Excludes what the account owns, and excludes workspace-tier access, which is standing authority rather than a share. An API key sees only resource families within its read scopes. Newest share first. `scope=workspace` narrows discovery to resources in the authenticated current workspace without changing access.
Shared with me undo leave
Undo a "Remove me": restore the exact grant the caller removed, from the `undo_token` the leave call returned. The token is bound to the caller, single-use, and lasts ten minutes. An outside grant is re-checked against the workspace's current outside-sharing policy. 400 `undo_token_invalid` / `undo_token_expired` / `undo_token_used`; 403 `outside_sharing_off` / `outside_sharing_domain_not_allowed`; 404 when the resource is gone or the key lacks its read scope.
Sheet get data
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 the tab list as `response.data.sheets`; columns and rows are under `response.data.sheets[0]`, not at the response root.
Sheet update cells
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.
Sign add field
Add a signature field to a signing document.
Sign add signer
Add a signer or CC recipient. An agent user can be a CC recipient but never a signer; adding one as a signer is refused.
Sign get certificate
Download the Certificate of Completion for a completed document.
Sign get references
List signing documents that use this document as a source.
Sign prepare send
Validate signers and render the PDF preview (draft → preview_pending).
Sign remove field
Remove a field from a signing document.
Sign remove signer
Remove a signer or CC recipient from a draft signing document.
Sign reorder signers
Atomically set the sequential signing order: the full ordered list of the document's signer-role ids. Draft only.
Sign update field
Reassign, reposition, resize, or change requiredness for a field on a draft signing document. The field id is stable — updates never re-create the field.
Sign verify document
Verify the integrity and signature of a completed document.
Slide apply template
Apply a slide template — built-in or workspace — to the deck or to a single slide.
Slide layouts list
List the slide-level layouts the editor knows about.
Slide save as template
Save an existing deck as a reusable workspace template. Deep-copies the deck with fresh element IDs into a new workspace-visible template document; the source deck is left untouched. Returns the new template's ID.
Slide star
Star a deck. Idempotent — re-starring is a no-op.
Slide stars list
List IDs of slide decks the current user has starred.
Slide templates list
List the built-in slide deck templates.
Slide unstar
Unstar a deck. Idempotent.
Slide use template
Start a new deck from a template — built-in or workspace. Deep-copies the template deck with fresh element IDs into a new deck, substitutes `{{key}}` placeholders to bracketed prompts (e.g. `{{client_name}}` → `[Client Name]`), and returns the new deck's ID.
Snooze email
Snooze an email until a datetime.
Snooze reminder
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
Sort a tab's rows by one column, optionally within an exact filter range. Re-anchors formulas, comment anchors, and cell notes so nothing orphans.
Start task timer
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
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
Tell Ambiguous what happened in your own words. Only description is required; do not choose a report category or supply a goal outcome. Optional context and attachments are welcome, never required. Ambiguous handles classification and triage. Accepts unauthenticated REST calls; valid credentials optionally identify the submitter. Rate-limited per user when authenticated and per IP otherwise. Body shape: `{title?, description, priority?, screenshotDataUrl?, attachments?, context?}` — see `FeedbackInput`. The submission is stored as a task in Ambiguous's own Feedback project and the 200 carries that task's id as the receipt; there is no receipt without a record, so a storage failure is a 500 and the caller should retry. Returns 503 with `{error: "Feedback reporting not available"}` when the intake is not configured (outside the contract error-code enum, surfaced via raw Response).
Submit form
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.
Task asset create
Add an image to a task description as one of its own assets and get back the URL its body should store (`/api/assets/{id}/content`). Send the bytes as `content_base64`, `source_file_id` to copy a Drive file the caller can view, or `source_url` to import a public HTTPS image through the SSRF guard; neither source is referenced afterwards. The type is decided from the bytes and only images are accepted (415 otherwise); SVG uploads are sanitized before storage and refused with 415 when malformed. Stored SVG is sanitized on every read and served inline as image/svg+xml under a restrictive Content-Security-Policy; malformed stored SVG is refused with 404. Drive SVG downloads remain attachments. The bytes count against the container owner's storage (413 past it). The same image added to the same container again returns the asset already held. The asset is never visible in Drive and is readable exactly when the container is.
Task collaborators add
Share a task with one workspace member: grants `editor` on this task and its subtasks (never on its project) and subscribes them. A projectless task is shared by its creator or assignee; a project task by an editor on that project.
Task collaborators list
List the collaborators on a task — the people holding `editor` on it (and its subtasks) without a role on its project.
Task collaborators remove
Revoke a task collaborator's grant. The add-time subscription is left in place — it grants no access on its own.
Tasks activity
List audit-log activity entries for a task (status changes, assignments, comments, label edits, etc.). Paginated via `limit`/`offset`.
Tasks batch
Batch-fetch up to 50 tasks by ID. Powers LinkedTaskItem hydration in Docs/Wiki.
Tasks by key
Resolve a workspace-scoped task key (e.g. `WS-123`) to its task ID. Used by deep links and integrations.
Tasks delete
Soft-delete a task. Only the creator can delete.
Tasks export
Export authorized tasks matching the selected filters as CSV (default) or JSON. CSV includes human-readable columns and a task_json column containing the complete public task representation. Owned description images are embedded; an unavailable or malformed owned image refuses the export with its task reference.
Tasks favorites add
Pin a saved task view or project in your Tasks sidebar. For document, Drive, channel or team favorites, use set_resource_starred.
Tasks favorites list
List your Tasks-sidebar pins: saved views and projects, not starred documents, Drive items, channels or teams.
Tasks favorites remove
Unpin a saved task view or project from your Tasks sidebar, matching resource_type and resource_id. For other resource favorites, use set_resource_starred.
Tasks favorites reorder
Reorder your Tasks-sidebar view/project pins using ordered_ids (favorite-row IDs, top-to-bottom), not resource IDs.
Tasks inbox count
Count of triage-bucket tasks (untriaged + projects in 'triage' status). Powers the sidebar inbox badge.
Tasks labels assign
Assign a label to a task. Returns the task's full label list.
Tasks labels create
Create a workspace task label. Returns 409 if a label with the same name already exists in the group.
Tasks labels delete
Delete a task label. Existing assignments are removed.
Tasks labels list
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
Remove a label assignment from a task. Returns the task's remaining label list.
Tasks labels update
Update a task label.
Tasks pr links
List GitHub pull requests linked to a task (via the integration-links service).
Tasks relations batch
Batch-fetch every relation type for up to 200 tasks. Powers relation overlays and sweeps.
Tasks relations create
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
Delete a task relation edge. Auto-deletes the inverse edge for blocking/blocked_by pairs.
Tasks relations list
List edges in the task-relations graph for a task (related, blocking, blocked_by, duplicate).
Tasks remove subscriber
Remove another user's subscription from a task. Requires task access.
Tasks sla dashboard
Aggregate SLA metrics for the workspace (compliance rates, avg times, counts per status). Optionally scope to a project.
Tasks sla thresholds
Get the workspace's SLA thresholds (response + resolution times per priority). Auth-only.
Tasks subscribed
List task IDs the caller is subscribed to (manual + auto-subscribed via creator/assignee/comment).
Tasks subscriptions list
List all users subscribed to a task (with the reason each is subscribed).
Tasks subscription status
Check whether the current user is subscribed to a task (and the reason if so).
Tasks subtasks
List immediate subtasks of a task (`parent_task_id = :id`).
Tasks templates delete
Delete a task template. Workspace admins or project admins only.
Tasks templates get
Get a single task template by ID.
Tasks templates update
Update a task template. Workspace admins or project admins only.
Tasks views create
Create a saved task view (filter + layout). Setting `is_shared: true` exposes it to the workspace.
Tasks views delete
Delete a saved task view.
Tasks views layout get
Get the caller's layout preferences for a view, or fall back to the view's defaults. `source` indicates which.
Tasks views layout update
Upsert the caller's layout preferences for a view (per-project scope optional).
Tasks views list
List task views accessible to the caller (own + shared + system defaults).
Tasks views update
Update a saved task view (rename, change filters or layout defaults, toggle sharing).
Teams cancel join request
Cancel your own pending join request for this team.
Teams get subscription
Get the caller's email-delivery preference for the team. Returns `{team_id, user_id, email_delivery}`.
Teams join
Join a team. Open teams grant instant membership; request teams create a pending join request; invite teams reject.
Teams leave
Leave a team. Cannot leave if you're the last admin.
Teams members list
Paginated member list. Private teams visible only to members or admins.
Teams members remove
Remove a member. Admin only. Cannot remove the last admin.
Teams members update role
Change a member's role. Admin only. Cannot demote the last admin.
Teams requests approve
Approve a join request — adds the user as a member.
Teams requests deny
Deny a join request.
Teams requests list
List pending join requests. Admin only.
Teams searchable
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
Update the caller's email-delivery preference for the team. Body: `{email_delivery: 'each' | 'daily_digest' | 'weekly_digest' | 'none'}`. `none` is refused on the workspace-wide all-members list, which has no opt-out.
Transfer ownership
Make another principal owner of a document, spreadsheet, presentation, canvas, Drive item or form. The new owner needs a live explicit share: check list_access and do not re-grant an existing share. The previous owner keeps editor. Wiki and calendars cannot transfer ownership.
Trash mail thread
Trash all messages in a thread atomically. Moves every message in the thread to the trash folder.
Unblock sender
Unblock by id or pattern.
Undo send email
Undo an in-flight send within the undo-send window.
Unenroll contact from sequence
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).
Unfurl link
Fetch OpenGraph / link-preview metadata for a URL (title, description, image, site name, favicon). Useful for generating rich previews of shared links, or inspecting what a URL would look like when shared in chat. Only http(s) URLs are allowed, and internal/private addresses are blocked.
Ungroup slide elements
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
Remove a protected range from a spreadsheet by its ID. Returns 200 on success, 404 if the range does not exist.
Unpublish calendar
Revoke the public .ics feed for a calendar, making it private again.
Unpublish form
Unpublish a form so it stops accepting public responses. Semantic shortcut for PATCH /api/forms/{id} with is_published=false.
Unsave message
Remove a saved (bookmarked) message from the user's saved list. The message itself is untouched; only the personal bookmark is deleted.
Untrash email
Restore a trashed email to inbox
Untrash mail thread
Restore all trashed messages in a thread to inbox. Only affects messages currently in trash.
Update access
Change an existing named user/team grant on a document, spreadsheet, presentation, canvas, Drive item, form, wiki page, or calendar. id names the resource; exactly one user_id or team_id names the recipient. For the workspace tier use set_visibility and workspaceRole, not the Everyone entry. role and expires_at are set exactly, including shorter expiry.
Update api key
Update an API key's name, scopes, or rate limit. Requires admin role.
Update canvas
Update canvas-level metadata (title, preview cover). Use to rename a canvas or set its preview; never touches elements — use the element ops for board content. Coordinates: board units, top-left origin, +x right / +y down. Example: update_canvas({ id: "<boardId>", title: "Renamed board" }).
Update canvas timer
Control a board's shared brainstorm countdown. Use to time-box a round: start (with duration_ms), pause (banks remaining time), resume (from banked time), or reset (clear). The server stamps `ends_at` from its own clock, so every participant renders the same countdown regardless of local clocks; the timer touches no elements. Coordinates: board units, top-left origin, +x right / +y down (unaffected by the timer). Example: update_canvas_timer({ id: "<boardId>", action: "start", duration_ms: 300000 }) starts a 5-minute countdown.
Update channel member role
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
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
Update a conditional formatting rule by ID. Partial update: ranges or one canonical rule payload; replacing the kind clears the previous kind.
Update contact
Update an existing CRM contact's fields. Provide only the fields you want to change. For interrupted sync recovery, read the contact and send expected_updated_at with only remaining changes. A 409 means the contact changed: read again and reconcile; never replay an earlier snapshot over newer values. If the user is currently viewing a contact, use the contact ID from the page context.
Update contact group
Update an existing contact group's name, color, or sort order. Group name must remain unique within the workspace.
Update coworker
Update coworker metadata (persona, focus areas, display name, avatar).
Update crm property definition
Update a custom-property definition's label or select options.
Update crm view
Update a saved CRM view (rename, change filters, toggle default/shared).
Update data connector
Update a data connector's name, config, target cells, or refresh schedule.
Update deal
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
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
Update a deal template. Providing `line_items` replaces the entire line-item list.
Update deck settings
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
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
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
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
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
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
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
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
Update a mail label's name, color or sidebar order.
Update mail rule
Update a mail rule's conditions or actions.
Update mail template
Update a saved mail template's subject or body.
Update named range
Update a named range or named expression with either an A1 range or an exact literal Excel expression; optionally rename it with newName. Names are matched case-insensitively. External-workbook expressions are preserved verbatim and remain unresolved.
Update pipeline
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
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
Update a CRM product's name, price or other fields.
Update project
Update a project's name, description, icon, or color. Provide only the fields you want to change.
Update quote
Update a CRM quote. Providing `line_items` replaces the entire line-item list. Totals are auto-recomputed.
Update resource comment
Update an existing task, wiki, mail-thread or Code comment by its comment ID. content edits text; expected_content checks the original text and rejects stale edits with 409; resolved changes thread resolution. Code content and resolution changes are separate updates. Existing author and resource permissions apply.
Update role
Update a custom role's name or permissions. Requires admin role.
Update scheduled message
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 scheduler link
Update a scheduler link (rename, change availability, toggle active, etc.).
Update scoring rule
Update a lead scoring rule (name, field, operator, value, points, is_active).
Update security settings
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
Update a sequence (rename, description, toggle active, replace step list). Providing `steps` replaces the entire step list.
Update settings
Update workspace settings (name, logo, timezone, etc.). Requires admin role. Pass a flat key-value object.
Update shared drive
Update a shared drive (manager-only).
Update shared drive member
Update a member role (manager-only).
Update sheet image
Update editable floating images with cell anchors and CSS pixel geometry. Image src must reference an image asset owned by this sheet.
Update sheet merges
Replace the complete merged-cell range collection for a sheet tab using zero-based inclusive startRow, startCol, endRow and endCol coordinates. Read the current sheet and retain unrelated entries when changing one merge. An empty merges array clears all merges on that tab.
Update sheet picture group
Update editable picture groups with cell anchors and CSS pixel geometry. Every leaf references an image asset owned by this sheet; native group transforms use EMU coordinates.
Update sheet shape
Update editable floating shapes with editable text, cell anchors and CSS pixel geometry.
Update sheet validation settings
Set worksheet validation prompt suppression without replacing cells, rules, or presentation. Send disablePrompts=null to restore the absent default setting.
Update sign document
Update a draft signing document.
Update slicer
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
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
Update a master slide's name, background, or elements. Slides using the master resolve the updated elements by reference.
Update task
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
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
Update a member's role, status, or storage quota. Requires admin or owner; the last owner cannot lose ownership.
Update wiki page
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
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
Update workspace name or slug. Requires admin role.
Use mail template
Record template use.
Users list
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.
Use sign template
Create a new draft document from a template, populating fields with placeholder signer roles.
Verify domain
Trigger DNS verification for a workspace domain. Requires admin role.
Verify domain ownership
Verify custom domain ownership via DNS TXT record. On success, auto-registers with SES to retrieve DKIM/SPF records. Requires admin role.
Webhooks create
Register a new webhook. Body shape matches `CreateWebhookInput` (url + events + optional description + optional `headers`, e.g. an `Authorization: Bearer …` a receiver requires). Returns the webhook record plus the HMAC signing `secret` (one-time visibility — store it; subsequent reads omit `secret`). Custom header values are likewise write-only — reads carry only `header_names`.
Webhooks delete
Delete one webhook subscription by id.
Webhooks deliveries list
List recent delivery attempts (status, response, retries). Paginated via `?limit=` (default 25) and `?offset=` (default 0).
Webhooks event types
List event types an agent can subscribe to. Includes the `*` wildcard.
Webhooks get
Get one webhook subscription's config by id.
Webhooks list
List webhook registrations owned by the caller.
Webhooks test
Send a test ping payload to the webhook URL.
Webhooks update
Update a webhook (url, events, description, active, headers). Body shape matches `UpdateWebhookInput`. `headers` replaces the whole custom-header map; `null` or `{}` clears it.
Wiki database create
Create an inline database on a wiki page. Requires editor role on the host page.
Wiki database get
Get an inline database with its full row set.
Wiki database row create
Append a row to an inline database. Requires editor role on the host page.
Wiki database row delete
Delete a database row.
Wiki database row update
Update properties or sort order on a database row.
Wiki database update
Update an inline database's name, schema, or views. Requires editor role on the host page.
Wiki native backup
Export a separately labeled, digest-bound native Wiki backup containing the complete workspace Wiki graph. This is not DOCX.
Wiki native restore
Restore a native Wiki backup into its empty source workspace. Preserves spaces, hierarchy, page content, databases, backlinks, synced blocks, permissions, versions, and comments.
Wiki page asset create
Add an image to a wiki page (its body or its cover) as one of its own assets and get back the URL its body should store (`/api/assets/{id}/content`). Send the bytes as `content_base64`, `source_file_id` to copy a Drive file the caller can view, or `source_url` to import a public HTTPS image through the SSRF guard; neither source is referenced afterwards. The type is decided from the bytes and only images are accepted (415 otherwise); SVG uploads are sanitized before storage and refused with 415 when malformed. Stored SVG is sanitized on every read and served inline as image/svg+xml under a restrictive Content-Security-Policy; malformed stored SVG is refused with 404. Drive SVG downloads remain attachments. The bytes count against the container owner's storage (413 past it). The same image added to the same container again returns the asset already held. The asset is never visible in Drive and is readable exactly when the container is.
Wiki page backlinks list
List wiki pages that contain `[[link]]` references to this page. Use this to see what pages cite a given page, or to find inbound knowledge links.
Wiki page children list
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
Create an inline database on a specific wiki page.
Wiki page duplicate
Duplicate a wiki page (and optionally its descendants) into a target space + parent. Returns the new top-level page.
Wiki page export
Export a wiki page to docx, pdf, html, or md. Streams the file with a Content-Disposition attachment header.
Wiki page permanent delete
Permanently delete a trashed wiki page. Irreversible.
Wiki page restore
Restore a trashed wiki page and its children.
Wiki space delete
Delete a wiki space and all of its pages.
Wiki space get
Get a wiki space by slug, with its full page tree. Supports cursor pagination on `pages`.
Wiki space member add
Add a user as a direct member of a wiki space with a given role.
Wiki space member remove
Remove a direct member from a wiki space.
Wiki space members list
List distinct members of a space — the owner plus everyone with a page-level permission inside it.
Wiki space update
Update a wiki space. Only the space owner may change settings.
Wiki trash list
List trashed (soft-deleted) wiki pages in the workspace.
Tout connecter
Dans votre Slack en deux minutes.
Aucun workflow à configurer. Activez les outils que vous utilisez déjà et votre agent se met au travail.
Ajouter à Slack
1
Ajoutez Sokko à Slack
Un clic depuis la marketplace Slack. Toute votre équipe a Sokko d'un coup.
2
Connectez vos outils
Sokko fonctionne avec plus de 1 000 apps et n'importe quel serveur MCP.
Martin
9:53 AM
@Sokko
Que peux-tu faire avec Ambiguous MCP ?
3
Mettez Sokko au travail
@mentionnez Sokko dans n'importe quel canal et c'est parti. Quelques minutes, pas un week-end.
Vos questions, nos réponses.
Sokko est un assistant IA qui vit dans votre Slack. Connectez vos applis, demandez ce dont vous avez besoin en langage courant, et Sokko s'occupe du travail à votre place.
Inscrivez-vous à Sokko, demandez à Sokko de se connecter à Ambiguous MCP, et approuvez la connexion quand on vous le demande. Ensuite, vous pouvez demander à Sokko d'agir dans Ambiguous MCP dès que vous en avez besoin.
Non. Il n'y a rien à créer ni à configurer. Vous demandez à Sokko dans Slack comme vous le demanderiez à un collègue, et Sokko s'occupe du reste.
Oui. Demandez une fois et dites à Sokko quand le répéter, par exemple chaque lundi à 9 h, et cela devient une routine qui tourne sans vous.
Lire et agir sur les données dans Ambiguous MCP, et déclencher des workflows quand quelque chose y change. Dites à Sokko le résultat que vous voulez et il s'occupe du reste.
Oui. Sokko se connecte à plus de 1 000 applis et à n'importe quel serveur MCP : vous pouvez donc confier des tâches qui couvrent Ambiguous MCP et le reste de votre stack en une seule demande.