Agent tool reference
Tools are the actions an agent can take beyond writing text: searching your knowledge base, booking an appointment, sending a Square invoice, writing to a spreadsheet, replying on a channel. During a run, the agent decides on its own which of its attached tools to call, in what order, within its budget.
You attach tools three ways:
- Check them under Tools in Workflow Settings (the fastest way).
- Connect tool nodes to the agent's purple tool handle on the designer canvas.
- Install a recipe that ships with them.
An agent only sees the tools attached to it. If a conversation needs a capability the agent does not have, attach the tool and save the workflow.
Quick reference
| Tool | What it does | Requires |
|---|---|---|
knowledge_base.search | Answers from your indexed documents | Documents in the knowledge base |
research.deep | Multi-query research with a cited report | Documents in the knowledge base |
appointment.book | Books a calendar event and invites the customer | Connected Google Calendar |
invoice.create | Creates a Square quote or invoice with a payment link | Connected Square account, customer email |
invoice.status | Checks whether a quote or invoice was paid | Connected Square account |
customer.find | Looks up an existing customer | Nothing extra |
customer.create | Converts a lead into a customer profile | The contact's email |
customer.linkConversation | Links a conversation to a customer profile | A customer id from find or create |
customer.task.send | Assigns a published task and returns a no-login link | A published task; the customer's email or userId |
frontdesk.config | Reads the org's front-desk settings and onboarding task order | Nothing extra |
followups.list | Lists today's due follow-ups per the Setup cadence | Follow-ups enabled in Workflow → Setup |
followups.record | Records a follow-up as sent, restarting its cadence | A candidate from followups.list |
knowledge.note | Files a markdown note into the knowledge base | Nothing extra |
dataset.query / dataset.write | Reads and writes collection records | The collection exists |
data.query / data.sync | Reads and writes the connected data source | A bound data source connector |
messaging.respond | Replies on the channel the conversation came from | The channel's connector |
sheets.* | Google Sheets operations | Connected Google Sheets |
slack.* | Slack messaging and lookups | Connected Slack bot |
mcp.tools.list / mcp.tools.call | Uses tools from an MCP server | Connected MCP server |
Knowledge and research
knowledge_base.search
Searches your indexed documents by meaning (vector similarity) and returns the matching passages, which the agent uses to ground its answer. This is the tool behind every "answers from your documents" chatbot.
- When the agent uses it: whenever a question might be answered by your uploaded content.
- Key inputs: the search query; optionally a specific knowledge base, folders, and a result limit. When not specified, it searches the agent's bound knowledge base or the project default.
- Requires: documents uploaded and indexed in the Knowledge Base. An empty knowledge base returns nothing.
research.deep
Deep research over the knowledge base: it breaks a research question into several focused retrieval queries, gathers evidence, and synthesizes a cited report. Slower and more thorough than a single search.
- When the agent uses it: broad or analytical questions that one search cannot cover, such as "compare our three service tiers."
- Key inputs: the research question; optionally the knowledge base and folders.
- Requires: an indexed knowledge base. Expect longer run times (up to two minutes), so give the agent a roomier budget.
Customer management
These tools let one agent carry a contact from first message to customer, without you ever handing it an id: the current conversation and the contact's details ride along in the execution automatically.
customer.find
Looks up an existing customer of your organization by email or phone.
- When the agent uses it: before creating a customer, to avoid duplicates; or to recognize a returning contact.
- Key inputs: an email or phone number. If neither is given, it falls back to the contact details of the current conversation.
- Requires: nothing extra.
customer.create
Converts the person in the current conversation into a customer profile. The conversation is linked to the new profile automatically, and your onboarding workflows apply just as if they had signed up in the portal.
- When the agent uses it: the moment a lead shows real interest and has shared their email.
- Key inputs: the contact's email (required; the agent is instructed to ask for it), plus name and phone when known.
- Requires: an email address. Without one, the tool refuses and tells the agent to ask first.
customer.linkConversation
Associates the current conversation (or a named one) with an existing customer profile.
- When the agent uses it: after
customer.findconfirms the contact is already a customer. - Key inputs: the customer id returned by
customer.findorcustomer.create. - Requires: a conversation to link; channel and chat runs always have one.
customer.task.send
Assigns a published task (an intake form, an NDA, terms and conditions) to a customer and returns a secure no-login /t/<token> link the agent can share in chat on any channel. In the workflow tool picker this is Send customer task.
- When the agent uses it: to hand a new customer their paperwork mid-conversation. A typical flow: a lead DMs on Instagram, the agent asks for their email, calls
customer.create, reads the enabled task order withfrontdesk.config, callscustomer.task.sendfor the next task, and shares the returned link in the DM. - Key inputs: the task, and the customer's userId or email. The secure link is emailed to the customer automatically; pass
sendEmail: falsewhen you will hand the link over yourself (for example in the chat). - Requires: a published task. Signature, file-upload, and payment steps on the link hand off to the signed-in portal; see Onboarding tasks.
customer.email
- What it does: sends the customer a plain email from the business (subject plus a short body with one clear call to action). Used for next steps after onboarding, proposals, or when the customer has no messaging channel.
- Key inputs: the customer's userId or email,
subject,body. - Good to know: the email carries your portal branding; keep it short and personal, and never invent prices.
Follow-ups and front desk
Three tools power the daily follow-up round and the agent-driven onboarding flow, all configured on the Workflow page's Setup tab. In the workflow tool picker, followups.list and followups.record appear together as Follow-ups, while frontdesk.config ships with customer.task.send as Send customer task. The Follow-up Agent recipe is built on them.
followups.list
Lists today's due follow-ups: quiet leads, quotes waiting on an answer, and unpaid invoices, per the cadence set under Workflow, Setup. Each candidate says why it is due and comes with its origin channel and ready-made reply routing, so the agent can respond on the channel the conversation came from.
- When the agent uses it: at the start of a scheduled follow-up run.
- Key inputs: none; the cadence and cap come from the Setup tab.
- Requires: follow-ups enabled under Workflow, Setup. Customers whose journey is marked Completed or Lost are never listed.
followups.record
Records that a follow-up was sent, so the candidate's cadence window restarts and the next run does not nudge them again immediately.
- When the agent uses it: right after each follow-up message goes out.
- Key inputs: the candidate's conversationId and/or invoiceId from
followups.list. - Requires: nothing extra.
frontdesk.config
Returns the organization's front-desk settings from the Setup tab, including the ordered list of enabled onboarding tasks, so the agent knows which task to send next.
- When the agent uses it: before sending onboarding paperwork with
customer.task.send. - Key inputs: none.
- Requires: nothing extra.
Business operations
appointment.book
Books an appointment on the organization's connected calendar. A Google Calendar event is created and the customer is invited by email, and the appointment is linked to the customer profile and the conversation.
- When the agent uses it: after confirming the date, time, timezone, and the customer's email.
- Key inputs: a title and start time; optionally duration (default 30 minutes), timezone, location, notes, and the customer's email and name. The email falls back to the conversation's contact when the agent omits it.
- Requires: a connected Google Calendar (see Connectors). Without one, the appointment is only recorded internally, no calendar event or invite is created, and the tool tells the agent to say so rather than claim a booking.
invoice.create
Creates a Square quote or invoice for a customer and returns its hosted payment link.
- When the agent uses it: after confirming the line items and amounts with the customer. A quote returns a payment link the agent shares in the conversation; an invoice is additionally emailed to the customer by Square, so they can pay from their inbox.
- Key inputs: quote or invoice, a title, and the line items (name, quantity, unit price in cents, so $150.00 is 15000); optionally a due date and a note. The customer's email is required; it falls back to the conversation's contact.
- Requires: a connected Square account and a customer email. The connected Square account's own currency always wins over any currency the agent passes.
invoice.status
Checks whether a Square quote or invoice has been paid.
- When the agent uses it: before following up with a customer about payment.
- Key inputs: the invoice id returned by
invoice.create. - Requires: a connected Square account and an invoice created earlier.
knowledge.note
Writes a markdown note into the knowledge base and queues it for indexing, so knowledge search can retrieve it later. This is how agents build durable memory: meeting captures, lead context, decisions.
- When the agent uses it: at the end of meaningful conversations, or whenever it is told to file something.
- Key inputs: a title and the note body in markdown; optionally a specific knowledge base and folder.
- Requires: nothing extra. Where the note lands follows this order: a Vault node on the canvas binds its folder (the Meeting Vault recipe files into a "Meetings" folder this way); the workflow's Chat memory folder in Workflow Settings sets the folder for the chatbot's conversation abstracts and memory notes; otherwise the note goes to the agent's knowledge base, in the built-in "Vault" folder by default.
Collections (structured data)
Agents read and write collections, the workspace's structured datasets, through these tools. On the canvas, a Collection node connected to the agent's tool handle binds a specific collection in read or write mode.
dataset.query
Reads records from a collection, filtered by key, field values (with comparison operators), or a time range for series data. Results are capped, so the agent asks for what it needs.
dataset.write
Stores records in a collection. A latest collection keeps one record per key (repeat writes update in place); a series collection appends a point per write for history and charts. Records are plain objects, keyed by the collection's key fields (for example, symbol).
- Requires: the collection must already exist (recipes create theirs automatically), unless the agent explicitly asks to create it on first write.
There is also dataset.query_bound, which reads a compact evidence view from every collection bound to the agent in one call; analysis workflows use it to start from all their inputs at once.
Connected data sources
data.query
Reads rows from the data source already bound to the agent: Google Sheets, Airtable, Google Reviews, or Reddit. The spreadsheet or table is fixed by the connector binding, so the agent never asks you for a spreadsheet id; it just describes what to read.
data.sync
Writes or appends rows to the bound data source (Google Sheets, Airtable). Each row is an object whose keys become columns.
- Requires: a data source connector bound to the agent (through a tool node or the Tools checkboxes).
Messaging
messaging.respond
Delivers the agent's reply through a channel connector: messaging, email, or social. In a multi-channel workflow the run is told which channel the conversation came from, and the agent is instructed to reply with the respond tool matching that channel, so a customer who writes on Instagram gets the answer on Instagram even when Telegram and WhatsApp are connected too. It replies in-thread by default and can send a new message instead.
- Key inputs: the response text; the connector and reply mode usually come from the channel binding.
- Requires: the channel's connector. Checking a channel in Workflow Settings attaches its respond tool to the agent automatically.
Google Sheets tools
With a Google Sheets connector attached, the agent gets the sheets.ops tool, which covers the connected spreadsheet end to end. Its operations: list_tabs, create_tab, delete_tab, read_headers, read (a range or a whole tab), write (overwrite cells), append (add rows keyed by column header), clear, and delete_column. Each operation is also exposed as its own skill (sheets.read, sheets.append, and so on), so you can grant a narrower set. The spreadsheet is fixed by the connector, and the agent is instructed to check tab names and headers before writing.
- Requires: a connected Google Sheets connector bound to a spreadsheet.
Slack tools
With a Slack connector attached, the agent can work inside your Slack workspace:
| Tool | What it does |
|---|---|
slack.post_message | Posts a new message to a channel, by name or id |
slack.reply_thread | Replies inside an existing thread |
slack.send_dm | Sends a direct message to one person, by id, handle, or email |
slack.list_channels | Lists the channels the bot can see, with ids |
slack.read_thread | Reads a thread's replies, or recent channel history |
slack.lookup_user | Finds a user by email so the agent can DM them |
- Requires: a connected Slack connector with a bot token, and the bot invited to the channels it should use.
Automation and advanced tools
These tools mostly power workflow nodes rather than conversational agents, but they are part of the same registry:
mcp.tools.listandmcp.tools.call: discover and call the tools exposed by a connected MCP server, such as Financial Market Prep for market data. Requires an MCP Server connector.workflow.invoke: runs another workflow, synchronously or queued in the background. Takes the target workflow's id (shown in Workflow Settings).mq.publish: publishes a message to a message bus queue, pairing with the Message Bus Listener trigger to chain workflows.trigger.receive: a passthrough that hands the incoming message to the next state; trigger nodes use it under the hood.pipeline.python: runs a Python script with connector bindings, for custom transforms on connector data.
Troubleshooting
- The agent says it cannot do something. Check that the tool is attached: open the agent node's gear and look at Connected Tools, or check the Tools list in Workflow Settings.
- Bookings or invoices fail. The Google Calendar or Square connector is missing or disconnected. Fix it under Connectors; the tools report the reason to the agent, and the agent is designed to tell the customer honestly rather than pretend it succeeded.
- Answers ignore your documents. The knowledge base is empty, still indexing, or the agent is bound to the wrong one. See Knowledge Base.
- A tool ran out of room. Tool-heavy conversations need turns; raise the agent's budget on the Budget tab, described in Workflows and Agents.