Tool catalogue

The suite server's 92 tools, by app, with the scope each one asks for.

The suite server exposes 92 tools: 58 that read and 34 that write (21 create something, 12 update something that exists, and one cancels an event).

Your assistant will not see all of them. The catalogue is trimmed to what your credential may call, so this page is the possible universe, not what you will have in front of you. See Connecting an assistant.

They also all share one argument this table leaves out: workspace (id or slug), optional, for acting in another of the workspaces your connection is authorized for instead of its default. It only shows up for a connected app, never for an API key.

No tool deletes anything, with one exception: swarm_delete_event cancels an event on the caller's own Swarm calendar. It never erases a row, and it never touches anyone else's calendar. Every other destructive action stays inside the apps, where there is a screen that asks first.

The descriptions below carry the same information the assistant reads to decide which tool to use.

Nest

4 tools, 4 read-only.

Tool What it returns or does Scope
nest_get_workspace Reads The API key's own workspace record: id, name, created_at. Every other tool operates inside this workspace; call this to identify where you are. nest:workspace:read
nest_list_members Reads The workspace roster: user_id, name, email, avatar_url, workspace_role (OWNER/ADMIN/MEMBER), and per-app seats. user_id is the id other tools mean by assignee or member; email identifies who someone is, since name may be unset or derived from the address. nest:workspace:read
nest_list_notifications Reads The suite notification bell, newest first, cursor-paginated nest:notifications:read
nest_list_workspaces Reads The workspaces your account belongs to (user tokens only). current marks where this call is acting; authorized marks where this connection may act, pass one of those workspaces (id or slug) as any tool's workspace argument to act there instead. Widen or narrow the authorized list from Nest's connected-apps settings; no reconnect is needed. nest:workspace:read

Wrap

32 tools, 22 read-only.

Tool What it returns or does Scope
wrap_create_company Creates Add a company to the directory: name (required, unique in the workspace), domain, tax_id, and owner_user_id (a member with Wrap access, from nest_list_members). Link contacts to it with wrap_update_contact(company_id). Returns the created company. wrap:contacts:write
wrap_create_contact Creates Add a contact to the directory: at least one of name, email or phone wrap:contacts:write
wrap_create_deal Creates Open a new deal in the pipeline, attached to a contact and/or company (at least one) wrap:deals:write
wrap_create_follow_up Creates Create a follow-up reminder about a Wrap contact: note + due_at, owned by assignee_id wrap:follow-ups:write
wrap_create_note Creates Attach a note to a Wrap contact (from wrap_list_contacts / wrap_get_contact) wrap:notes:write
wrap_get_company Reads One company record by id (from wrap_list_companies) wrap:contacts:read
wrap_get_contact Reads One contact record by id (from wrap_list_contacts) wrap:contacts:read
wrap_get_conversation Reads One conversation record by id wrap:conversations:read
wrap_get_deal Reads One deal record by id (from wrap_list_deals) wrap:deals:read
wrap_link_flow_partner Creates Declare that a Wrap contact or company IS a Flow partner wrap:links:write
wrap_list_companies Reads Company records (the b2b half of the Wrap directory), cursor-paginated, with ids that feed wrap_get_company, wrap_list_contacts(company_id), and wrap_list_deals(company_id). wrap:contacts:read
wrap_list_contacts Reads Contact records from Wrap (the CRM/inbox app), cursor-paginated wrap:contacts:read
wrap_list_conversation_messages Reads The messages of one Wrap conversation, newest first, cursor-paginated: direction (INBOUND/OUTBOUND), body text, subject, author_user_id for outbound (null means the customer wrote it), and attachments as descriptors only, filename, content_type, size_bytes, never a link. Use it to read a thread from wrap_list_conversations. wrap:conversations:read
wrap_list_conversations Reads Conversation records from the Wrap inbox (WhatsApp, Instagram, email, web), cursor-paginated: status, channel, contact_id, assignee, and timestamps. wrap_list_conversation_messages reads the actual thread. A user token reads its own role-gated inbox; a workspace key reads workspace-wide. Filter by status, contact_id, or channel_instance_id. wrap:conversations:read
wrap_list_deal_stages Reads The pipeline board columns in order: id, name, position, and is_terminal_won / is_terminal_lost flags marking the closed columns. Returns the full ladder in one page, with no pagination. stage_id feeds wrap_list_deals(stage_id) and wrap_update_deal(stage_id). wrap:deals:read
wrap_list_deals Reads Deal (pipeline) records, cursor-paginated: title, status (OPEN/WON/LOST), stage, value with currency, contact_id/company_id, expected close, and lost_reason when lost. Filter by status, stage_id, contact_id, or company_id. wrap:deals:read
wrap_list_flow_links Reads A Wrap contact or company's link to a Flow partner, if any (empty means unlinked). The returned flow_partner_id feeds flow_get_partner and flow_list_open_items. wrap:links:write
wrap_list_follow_ups Reads Follow-up reminders, soonest due first, cursor-paginated wrap:follow-ups:write
wrap_list_notes Reads Contact notes across the workspace, newest first, cursor-paginated: id, contact_id, body, created_by, pinned, edited_at, and created_at. Filter by contact_id for one timeline. Contact notes only; notes on deals or conversations are not exposed here. wrap:notes:write
wrap_list_segment_dimensions Reads Dimensions available for wrap_report_segments: the built-in tag dimension plus this workspace's custom fields (id "cf:<uuid>"). Call it before wrap_report_segments. wrap:reports:read
wrap_report_agent_activity Reads Per-agent activity in a period: messages sent, conversations closed, and current open assignments (a snapshot, not a period sum). user_id matches nest_list_members. wrap:reports:read
wrap_report_inbox_snapshot Reads The current state of the inbox: conversations open right now, unassigned, awaiting a reply, and snoozed. It takes no period; it is a point-in-time count, the same figures the team sees on the home page. Use wrap_report_volume instead for a count over a period. wrap:reports:read
wrap_report_lost_reasons Reads Deals lost in a period, grouped by their raw stored reason (a null reason means none was recorded), with count and value per reason. wrap:reports:read
wrap_report_pipeline Reads Deal pipeline state: open count and value are a current snapshot and ignore the period; won, lost, sales cycle, and revenue-by-source respect from/to. Omitting both dates defaults to month-to-date. Pass both dates or neither. wrap:reports:read
wrap_report_segments Reads New contacts and won revenue in a period, grouped by a dimension from wrap_list_segment_dimensions ("tag" or "cf:<uuid>"). wrap:reports:read
wrap_report_sla Reads Response times and SLA compliance for conversations in a period wrap:reports:read
wrap_report_top_contacts Reads Top customers by open deals wrap:reports:read
wrap_report_volume Reads Conversations opened/closed in a period, broken down by channel wrap:reports:read
wrap_update_company Updates Update a company (from wrap_list_companies): name, domain (null clears), tax_id (null clears), or owner_user_id (null unassigns). Send only the fields to change, at least one. wrap:contacts:write
wrap_update_contact Updates Update a contact (from wrap_list_contacts): name, email/phone (null removes the primary handle), lifecycle_stage, company_id (null detaches), or tags (replaces the whole set). An email or phone already owned by another contact comes back as a conflict naming the owning contact_id. wrap:contacts:write
wrap_update_conversation Updates Act on an inbox conversation (from wrap_list_conversations): assign it to a workspace member (assignee_id, null unassigns) and/or set status (CLOSED to close, OPEN to reopen, SNOOZED to snooze). A snoozed conversation waits until the customer writes again or someone changes it. wrap:conversations:write
wrap_update_deal Updates Update a deal (from wrap_list_deals): retitle, move stage, assign or unassign an owner (owner_user_id, null unassigns), change expected_close (null clears), edit value/currency, or close it as WON or LOST with an optional lost_reason. stage_id and status are mutually exclusive. wrap:deals:write

Swarm

37 tools, 19 read-only.

Tool What it returns or does Scope
swarm_add_checklist_item Creates Append one unchecked line to a checklist (id from swarm_list_task_checklists or swarm_create_task_checklist). One call per line. Returns the created item with its id. swarm:tasks:write
swarm_attach_task_image Creates Put an image on a Swarm task, where the app shows it in the task's attachments. Send the bytes as base64 in image_base64 (a data: URL works too): a PNG, JPEG, WebP, GIF or AVIF up to 3MB decoded. content_type is optional and is checked against the bytes. Returns the stored file with its id, size and content_type. swarm:tasks:write
swarm_bulk_update_tasks Updates Apply ONE change to many tasks at once (task_ids from swarm_list_tasks), up to 200 per call swarm:tasks:write
swarm_create_booking_schedule Creates Publish a new bookable event type on the caller's own calendar (a Cal.com-style public booking page). slug is the page's own path segment and must be unique in the workspace (3-40 lowercase letters, digits, or hyphens). availability is a list of weekly windows; questions are extra fields a booker answers. swarm:calendar:write
swarm_create_event Creates Create a one-off or recurring event on the CALLER'S OWN Swarm calendar swarm:calendar:write
swarm_create_label Creates Create a label in a Swarm project (labels are PER PROJECT, not shared workspace-wide) swarm:tasks:write
swarm_create_reminder Creates Set a reminder for yourself that fires once as a notification: give note (in your own words), ref (an EER it's about, e.g. eel:swarm:task:<uuid>), or both. Give exactly one of at (an ISO instant) or preset (in20m, in1h, in3h, tomorrow, nextWeek), resolved in your own profile timezone; at must be in the future. swarm:calendar:write
swarm_create_task Creates Create a task in a workspace-visible Swarm project swarm:tasks:write
swarm_create_task_checklist Creates Add a named, empty checklist to a Swarm task (a task can carry several, Trello-style) swarm:tasks:write
swarm_create_task_comment Creates Add a plain-text comment to a Swarm task swarm:tasks:write
swarm_delete_event Updates Cancel an event the caller owns, the one destructive tool in the Swarm namespace swarm:calendar:write
swarm_find_free_slots Reads Slots where every listed attendee (default: the caller) is free, within a 14-day window swarm:calendar:read
swarm_get_channel Reads One public channel record by id swarm:channels:read
swarm_get_event Reads One event on the caller's own calendar, by id (master record or one occurrence) swarm:calendar:read
swarm_get_project Reads One workspace-visible project by id, with its board columns swarm:tasks:read
swarm_get_task Reads One task record by id (from swarm_list_tasks) swarm:tasks:read
swarm_list_activity Reads What has happened lately across the workspace, newest first: tasks completed, tasks created, and channels started. Each row carries a machine-readable kind, the subject it happened to, and a timestamp. swarm:activity:read
swarm_list_booking_schedules Reads Your OWN public booking-page configs (Cal.com-style bookable event types) swarm:calendar:read
swarm_list_channel_digests Reads Per-channel summaries from the most recent day that HAS them swarm:channels:read
swarm_list_channel_messages Reads Messages in a visible Swarm channel (bodies included), newest first, cursor-paginated swarm:channels:read
swarm_list_channels Reads Non-archived Swarm channels this credential can see, cursor-paginated: PUBLIC ones always; a user token also lists the private channels its user belongs to. DMs never appear. Channel ids feed swarm_list_channel_messages. swarm:channels:read
swarm_list_events Reads Occurrences on YOUR OWN Swarm calendar in a date/time window, max 62 days swarm:calendar:read
swarm_list_labels Reads A Swarm project's label taxonomy: id, name, color swarm:tasks:read
swarm_list_people Reads Everyone who can open Swarm in this workspace and whether each is online right now, with their user_id and app role. It is also the directory: look a person up here to get the user_id that swarm_list_tasks takes as assignee_id. Not the same set as nest_list_members; this is seat-holders plus implicit workspace admins, and only this list carries presence. swarm:people:read
swarm_list_projects Reads Swarm projects with their board columns (statuses, ordered) inline swarm:tasks:read
swarm_list_reminders Reads Your OWN pending Swarm reminders, soonest first: note (your own words, nullable), ref (the EER it points at, nullable) and about (the target's resolved text, null when you may not read it). Reminders that already fired live in nest_list_notifications, not here. swarm:calendar:read
swarm_list_task_checklists Reads A Swarm task's checklists with their items inline (label, done, position), both position-ordered. The whole structure comes back in one call, never paginated. checklist ids feed swarm_add_checklist_item; item ids feed swarm_update_checklist_item. swarm:tasks:read
swarm_list_task_comments Reads Comments on a Swarm task (from swarm_list_tasks), newest first, cursor-paginated: id, author_user_id (null for removed members), body, pinned, created_at, and edited_at. Re-sort by pinned yourself if you want pinned comments first. swarm:tasks:read
swarm_list_tasks Reads Task records from Swarm (the team-chat/tasks app), cursor-paginated: number, title, status, project, assignee, due date, and priority. Covers the projects this credential can see; a user token also sees its own private projects. Filter by project_id, assignee_id, status (open, done, or all; defaults to open), q, or a board column (status_id) or a label (label_id) of one project_id. swarm:tasks:read
swarm_post_channel_message Creates Post a plain-text message to a visible Swarm channel swarm:messages:write
swarm_respond_event Updates RSVP to an event you're invited to (from swarm_list_events/swarm_get_event) swarm:calendar:write
swarm_set_event_invitees Updates Replace the ATTENDEE roster of an event you ORGANIZE, up to 200 ids; scope picks the whole series, one occurrence, or that occurrence onward swarm:calendar:write
swarm_set_event_reminders Updates Replace YOUR OWN reminder rules for an event you own or are invited to, up to 10 rules swarm:calendar:write
swarm_update_checklist_item Updates Check, uncheck or relabel one checklist item (id from swarm_list_task_checklists) swarm:tasks:write
swarm_update_event Updates Update an event the caller owns (from swarm_list_events/swarm_get_event) swarm:calendar:write
swarm_update_task Updates Update a task (from swarm_list_tasks): retitle, move to another status_id, assign or unassign (assignee_id, null unassigns), change due_date or priority (null clears), mark complete or incomplete, or set labels. labels replaces the task's entire label set rather than adding or removing, so send every label it should carry; omit it to leave labels untouched, or send an empty list to clear them. swarm:tasks:write
swarm_who_wrote_to_me Reads People who sent you direct messages or mentioned you, with counts and the most recent time, for a day or a range. This is about the caller; on a workspace key, which has no person behind it, the result is always empty. swarm:dms:read

Flow

17 tools, 11 read-only.

Tool What it returns or does Scope
flow_create_bill Creates Create a DRAFT purchase bill (a human posts it in Flow) flow:bills:write
flow_create_partner Creates Upsert a partner (customer/supplier) by tax id (tax_id_type + tax_id_number) or email flow:partners:write
flow_create_sale Creates The one-call sale: draws stock from a warehouse, invoices the customer, and optionally records the payment. Lines reference products by UPID with a qty and an optional unit_price override. customer is a partner_id or inline identification; payment is CASH or PROCESSOR. flow:sales:write
flow_get_partner Reads One partner (customer/supplier) record by its Flow id flow:partners:write
flow_get_product Reads One product record by UPID (from flow_list_products) flow:catalog:read
flow_get_product_stock Reads Current stock for a product by UPID: per-warehouse on_hand and available-to-sell (on hand minus active reservations). Optionally filter to one warehouse. Eventually consistent with checkout. flow:stock:read
flow_get_sale Reads One sale by id (from flow_create_sale): invoice number and status, outbound reference, and dian_status (e-invoicing), which reads NOT_ENABLED for every sale. flow:sales:write
flow_list_bills Reads Browse AP documents (supplier bills) newest-issued first, cursor-paginated, same shape as flow_list_invoices plus supplier_number (and PENDING_APPROVAL as a status). Filter by status, partner_id, or an issued window. flow:documents:read
flow_list_financial_accounts Reads Active financial accounts (CASH / BANK / PROCESSOR) with ids and currency flow:sales:write
flow_list_invoices Reads Browse AR documents (customer invoices) newest-issued first, cursor-paginated flow:documents:read
flow_list_open_items Reads Open (unpaid) documents with their remaining balance flow:open-items:read
flow_list_products Reads Product catalog records (Eel Flow ERP), cursor-paginated flow:catalog:read
flow_list_warehouses Reads All active warehouses (CENTRAL and STORE) with their ids flow:catalog:read
flow_record_bill_payment Creates Record a supplier payment against one bill (from flow_list_bills or flow_list_open_items with side=AP). Same rules as flow_record_invoice_payment: matching currency, an open document, and an open fiscal month. Payments at or above the workspace approval threshold go through only for admin-minted keys. flow:payments:write
flow_record_invoice_payment Creates Record a customer payment against one issued invoice (from flow_list_invoices or flow_list_open_items with side=AR). amount is a decimal string in the invoice currency, and the financial account must match that currency. Rejected when the invoice is DRAFT, VOID, or already PAID, when the amount exceeds what remains, or when the fiscal month is closed. flow:payments:write
flow_search_partners Reads Search partners by name (contains) or tax id prefix flow:partners:write
flow_update_product Updates Update a catalog product by UPID: name, list_price (decimal string, null clears it), tax_code (null clears), or active. sku and uom are not editable through the API. flow:catalog:write

Across apps

2 tools, 2 read-only.

Tool What it returns or does Scope
suite_resolve_refs Reads Resolve eel:<app>:<entity>:<uuid> references (found in messages, tasks, deals, links) across the suite. Returns, per reference, whether it exists, whether this key may read it (FULL/RESTRICTED/UNKNOWN), a display title, and the in-app path. Any read
suite_search Reads One query across every record type this key may read: Wrap contacts, companies, and conversations; Flow products and partners; Swarm tasks. Results come grouped by type with ids to chain into the per-type tools. Each group matches what that app's own list search matches (names, emails, titles, SKUs, NITs); it is a finder, not full-text search over message bodies. Any read

The two that cross apps

suite_search sends one query to every list that accepts one and returns the results together. It is how you answer "where does this customer show up?" without knowing in advance which app to look in.

suite_resolve_refs turns references shaped eel:app:entity:id into real records, up to 25 per call. Those references appear inside messages and API responses, and this is what makes them readable.

Both appear only if your credential holds at least one read scope somewhere. And in both, a reference you cannot read comes back marked restricted, never with its contents.