Catálogo de herramientas
Las 92 herramientas del servidor de la suite, por aplicación, con el permiso que pide cada una.
El servidor de la suite expone 92 herramientas: 58 de lectura y 34 que escriben (21 crean algo, 12 actualizan algo existente y una cancela un evento).
Tu asistente no las verá todas. El catálogo se recorta a lo que tu credencial puede llamar, así que esta página es el universo posible, no lo que vas a tener enfrente. Ver Conectar un asistente.
Todas comparten además un argumento que no aparece en esta tabla:
workspace (id o slug), opcional, para actuar en otro de los espacios que tu
conexión tiene autorizados en vez de en el que trae por defecto. Solo
aparece con una app conectada, nunca con una clave de API.
Ninguna herramienta borra nada, con una excepción: swarm_delete_event cancela
un evento en el calendario propio de quien llama. Nunca borra una fila, y nunca
toca el calendario de otra persona. Todo lo demás destructivo se queda dentro de
las aplicaciones, donde hay una pantalla que pregunta antes.
Las descripciones de abajo se dejan en inglés: llevan la misma información que lee el asistente para decidir qué herramienta usar.
Nest
4 herramientas, 4 de solo lectura.
| Herramienta | Qué trae o hace | Permiso | |
|---|---|---|---|
nest_get_workspace |
Lee | 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 |
Lee | 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 |
Lee | The suite notification bell, newest first, cursor-paginated | nest:notifications:read |
nest_list_workspaces |
Lee | 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 herramientas, 22 de solo lectura.
| Herramienta | Qué trae o hace | Permiso | |
|---|---|---|---|
wrap_create_company |
Crea | 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 |
Crea | Add a contact to the directory: at least one of name, email or phone | wrap:contacts:write |
wrap_create_deal |
Crea | Open a new deal in the pipeline, attached to a contact and/or company (at least one) | wrap:deals:write |
wrap_create_follow_up |
Crea | Create a follow-up reminder about a Wrap contact: note + due_at, owned by assignee_id | wrap:follow-ups:write |
wrap_create_note |
Crea | Attach a note to a Wrap contact (from wrap_list_contacts / wrap_get_contact) | wrap:notes:write |
wrap_get_company |
Lee | One company record by id (from wrap_list_companies) | wrap:contacts:read |
wrap_get_contact |
Lee | One contact record by id (from wrap_list_contacts) | wrap:contacts:read |
wrap_get_conversation |
Lee | One conversation record by id | wrap:conversations:read |
wrap_get_deal |
Lee | One deal record by id (from wrap_list_deals) | wrap:deals:read |
wrap_link_flow_partner |
Crea | Declare that a Wrap contact or company IS a Flow partner | wrap:links:write |
wrap_list_companies |
Lee | 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 |
Lee | Contact records from Wrap (the CRM/inbox app), cursor-paginated | wrap:contacts:read |
wrap_list_conversation_messages |
Lee | 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 |
Lee | 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 |
Lee | 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 |
Lee | 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 |
Lee | 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 |
Lee | Follow-up reminders, soonest due first, cursor-paginated | wrap:follow-ups:write |
wrap_list_notes |
Lee | 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 |
Lee | 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 |
Lee | 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 |
Lee | 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 |
Lee | 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 |
Lee | 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 |
Lee | 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 |
Lee | Response times and SLA compliance for conversations in a period | wrap:reports:read |
wrap_report_top_contacts |
Lee | Top customers by open deals | wrap:reports:read |
wrap_report_volume |
Lee | Conversations opened/closed in a period, broken down by channel | wrap:reports:read |
wrap_update_company |
Actualiza | 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 |
Actualiza | 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 |
Actualiza | 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 |
Actualiza | 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 herramientas, 19 de solo lectura.
| Herramienta | Qué trae o hace | Permiso | |
|---|---|---|---|
swarm_add_checklist_item |
Crea | 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 |
Crea | 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 |
Actualiza | 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 |
Crea | 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 |
Crea | Create a one-off or recurring event on the CALLER'S OWN Swarm calendar | swarm:calendar:write |
swarm_create_label |
Crea | Create a label in a Swarm project (labels are PER PROJECT, not shared workspace-wide) | swarm:tasks:write |
swarm_create_reminder |
Crea | 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 |
Crea | Create a task in a workspace-visible Swarm project | swarm:tasks:write |
swarm_create_task_checklist |
Crea | Add a named, empty checklist to a Swarm task (a task can carry several, Trello-style) | swarm:tasks:write |
swarm_create_task_comment |
Crea | Add a plain-text comment to a Swarm task | swarm:tasks:write |
swarm_delete_event |
Actualiza | Cancel an event the caller owns, the one destructive tool in the Swarm namespace | swarm:calendar:write |
swarm_find_free_slots |
Lee | Slots where every listed attendee (default: the caller) is free, within a 14-day window | swarm:calendar:read |
swarm_get_channel |
Lee | One public channel record by id | swarm:channels:read |
swarm_get_event |
Lee | One event on the caller's own calendar, by id (master record or one occurrence) | swarm:calendar:read |
swarm_get_project |
Lee | One workspace-visible project by id, with its board columns | swarm:tasks:read |
swarm_get_task |
Lee | One task record by id (from swarm_list_tasks) | swarm:tasks:read |
swarm_list_activity |
Lee | 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 |
Lee | Your OWN public booking-page configs (Cal.com-style bookable event types) | swarm:calendar:read |
swarm_list_channel_digests |
Lee | Per-channel summaries from the most recent day that HAS them | swarm:channels:read |
swarm_list_channel_messages |
Lee | Messages in a visible Swarm channel (bodies included), newest first, cursor-paginated | swarm:channels:read |
swarm_list_channels |
Lee | 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 |
Lee | Occurrences on YOUR OWN Swarm calendar in a date/time window, max 62 days | swarm:calendar:read |
swarm_list_labels |
Lee | A Swarm project's label taxonomy: id, name, color | swarm:tasks:read |
swarm_list_people |
Lee | 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 |
Lee | Swarm projects with their board columns (statuses, ordered) inline | swarm:tasks:read |
swarm_list_reminders |
Lee | 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 |
Lee | 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 |
Lee | 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 |
Lee | 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 |
Crea | Post a plain-text message to a visible Swarm channel | swarm:messages:write |
swarm_respond_event |
Actualiza | RSVP to an event you're invited to (from swarm_list_events/swarm_get_event) | swarm:calendar:write |
swarm_set_event_invitees |
Actualiza | 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 |
Actualiza | 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 |
Actualiza | Check, uncheck or relabel one checklist item (id from swarm_list_task_checklists) | swarm:tasks:write |
swarm_update_event |
Actualiza | Update an event the caller owns (from swarm_list_events/swarm_get_event) | swarm:calendar:write |
swarm_update_task |
Actualiza | 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 |
Lee | 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 herramientas, 11 de solo lectura.
| Herramienta | Qué trae o hace | Permiso | |
|---|---|---|---|
flow_create_bill |
Crea | Create a DRAFT purchase bill (a human posts it in Flow) | flow:bills:write |
flow_create_partner |
Crea | Upsert a partner (customer/supplier) by tax id (tax_id_type + tax_id_number) or email | flow:partners:write |
flow_create_sale |
Crea | 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 |
Lee | One partner (customer/supplier) record by its Flow id | flow:partners:write |
flow_get_product |
Lee | One product record by UPID (from flow_list_products) | flow:catalog:read |
flow_get_product_stock |
Lee | 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 |
Lee | 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 |
Lee | 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 |
Lee | Active financial accounts (CASH / BANK / PROCESSOR) with ids and currency | flow:sales:write |
flow_list_invoices |
Lee | Browse AR documents (customer invoices) newest-issued first, cursor-paginated | flow:documents:read |
flow_list_open_items |
Lee | Open (unpaid) documents with their remaining balance | flow:open-items:read |
flow_list_products |
Lee | Product catalog records (Eel Flow ERP), cursor-paginated | flow:catalog:read |
flow_list_warehouses |
Lee | All active warehouses (CENTRAL and STORE) with their ids | flow:catalog:read |
flow_record_bill_payment |
Crea | 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 |
Crea | 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 |
Lee | Search partners by name (contains) or tax id prefix | flow:partners:write |
flow_update_product |
Actualiza | 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 |
Entre aplicaciones
2 herramientas, 2 de solo lectura.
| Herramienta | Qué trae o hace | Permiso | |
|---|---|---|---|
suite_resolve_refs |
Lee | 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. | Cualquiera |
suite_search |
Lee | 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. | Cualquiera |
Las dos que cruzan aplicaciones
suite_search manda una misma búsqueda a todas las listas que la aceptan y
devuelve los resultados juntos. Es la forma de contestar "¿dónde aparece este
cliente?" sin saber de antemano en qué aplicación buscar.
suite_resolve_refs convierte referencias con la forma
eel:aplicacion:entidad:id en registros de verdad, hasta 25 por llamada. Esas
referencias aparecen dentro de mensajes y de respuestas de la API, y esto es lo
que las hace legibles.
Las dos aparecen solo si tu credencial tiene al menos un permiso de lectura en alguna aplicación. Y en las dos, una referencia que no puedes leer vuelve marcada como restringida, nunca con su contenido.