A tool is one specific thing the agent can do mid-conversation: list a schema, run a query, send an email, post to Slack, build a chart, save an analysis. Whenever it uses one, a tool card lands in the chat. Some get a custom UI, the rest fall back to a small generic card showing the inputs and the result.

What an agent has in its toolbox depends on two things:

  1. The permissions you've switched on.
  2. The blocks (SQL queries, email templates, Slack messages, Tableau views, Google Slides decks) you've shared with it.

The rest of this page is the full list, grouped by what the tools actually do.


At a glance

Database
Browse schemas and tables, sample rows, run read-only SQL.
Metrics
Define and query reusable metrics views.
Charts
Turn query results into interactive Plotly charts.
Email
Draft and send email with embedded charts, CSV attachments, the lot.
Slack
Post to a channel or reply in a thread.
Tableau & Slides
Search Tableau and export views; edit Google Slides decks.
Reports
Browse, read, create, update, schedule, and trigger PushMetrics reports.
Conversation
Ask a clarifying question, post a status update, or stay quiet when a Slack message wasn't meant for it.
Recipients
Look up someone in the contact list, add a new one if needed.
Memory & Library
Read and write the agent's memory notes; list and edit shared library blocks.

Database tools

Always available. This is where the agent goes first when it needs to understand a database before writing SQL.

Tool What it does
list_schemas List the schemas in a database.
list_tables List the tables in a schema.
describe_table Columns, types, and metadata for one table.
batch_describe Describe several tables in a single call. Saves round trips.
search_tables Find tables by name pattern.
select_star Pull a handful of sample rows. The agent uses this to see what the data actually looks like, not just what the schema claims.
check_table_exists Confirm a table is there before the agent commits to it in SQL.
get_column_values Distinct values in a single column.
get_all_column_values Same, but for every column at once. Useful for getting a feel for categorical fields.
list_function_names The SQL functions this database supports.
apply_sql_limit Wrap a query with a LIMIT if there isn't one already.
detect_columns Pull out the column references from a query. Helps the agent validate against the schema.
run_sql The actual run. Read-only: the only first keywords accepted are SELECT, WITH, EXPLAIN, SHOW, DESCRIBE, DESC, and VALUES. The agent gets back an inline preview capped at ~10k characters; bigger results come with a CSV download link.
💡
Don't be surprised if the agent spends a turn or two poking around before it runs anything. It's checking columns and types so the SQL is right first time, instead of looping through "fix the typo, run again" three times.

How a SQL run works

1. AGENT WRITES picks the database drafts the SQL 2. READ-ONLY CHECK SELECT / WITH / EXPLAIN writes are rejected 3. RUNS honors workspace SQL Lab limits 4. RESULTS ~10k char preview CSV download URL

Metrics tools

Available when the Content permission is on. Metrics views are reusable definitions of measures and dimensions: saved once, queried many times.

Tool What it does
save_metrics_view Define a new metrics view: a model SQL, plus measures, dimensions, an optional time grain, parameters, and thresholds.
list_metrics_views Show every metrics view the agent has access to.
query_metrics Pull numbers out of a metrics view. Pick measures, dimensions, filters, a time range, and a grain. The SQL gets generated and run for you.

Tableau tools

Tableau works a bit differently. Instead of one shared tool, each Tableau block you share with the agent gets its own pair of tools, named after the block. Share a block called "Sales Dashboard" and the agent sees search_tableau_sales_dashboard and export_tableau_sales_dashboard. The suffix is a lowercased, alphanumeric-and-underscore slug of the block name, capped at 20 characters.

Tool What it does
search_tableau_<slug> Search the Tableau site behind that block for workbooks or views by keyword.
export_tableau_<slug> Export a view as an image, PDF, CSV, Excel, or crosstab, or a whole workbook as PDF or PowerPoint. Filters can be applied at export time.
🧩
The agent only ever sees the Tableau sites you've explicitly shared with it via blocks. There's no generic "any Tableau" tool, that's by design.

Slack tools

Tool What it does
send_slack_message Post a Slack message via one of the Slack blocks shared with the agent. The block determines the workspace and default channel; if more than one block is shared, the agent picks via an integration parameter.

No matter how many Slack blocks you share, there's still only one send_slack_message. The agent decides which block to route through at call time.


Email tools

Tool What it does
send_email Send email via one of the email blocks shared with the agent. Supports CSV attachments, embedded chart images, and any other file attachments. If multiple email blocks are shared, the agent picks via an integration parameter.

Same pattern as Slack: one tool, the agent chooses the block per call.


Chart tools

Tool What it does
generate_chart Build an interactive Plotly chart from data. Takes a Plotly JSON spec and, optionally, a SQL result to pull data from.

Google Slides tools

Same dynamic-naming idea as Tableau: each Google Slides block you share gets its own tool, named after the block.

Tool What it does
google_slides_action_<slug> Add a slide, drop in a chart, edit text, or rearrange the deck. The <slug> part is the slugged block name.

Reports tools

Available when the Reports permission is on. End-to-end report management: browse, read, write, schedule, run.

Tool What it does
list_reports Show reports in the workspace, with optional search.
list_folders List report folders.
get_report_yaml Open a report and read its full YAML: blocks, schedule, recipients, the lot.
create_report_yaml Create a new report from YAML.
update_report_yaml Update an existing one.
preview_schedule Show the next few times an RRULE would fire. Sanity check before you save a schedule.
run_report Kick off a one-off run right now.
get_report_run_status Check whether a run is still going, finished, or failed.

Conversation tools

Available when the matching permission is on. Scheduled runs are non-interactive by definition, so they get none of these.

Tool What it does
ask_user_question Pause and ask, with optional multiple-choice buttons.
send_interim_reply Drop a quick "still working on it…" update so the user (or the channel) knows the agent hasn't fallen over.
no_response In a busy Slack thread, decide a message wasn't meant for the agent and stay quiet. Only available when there's more than one participant or the conversation came from Slack.

Recipient tools

Tool What it does
search_recipients Look up someone by name or tag. Returns their email and Slack handle.
add_recipient Add a new person to the workspace recipient list. Off if the agent doesn't have the Create Recipients permission.

Library tools

Skills, metrics views, and other workspace content live as blocks. The agent uses one set of tools to work with all of them.

Tool What it does
list_blocks List blocks of a given type: skill, metrics_view, and so on.
read_block Open one block by UID and read it in full.
create_block Create a new block of the given type.
edit_block Update an existing block.

Memory tools

The agent's private notebook, scoped to /memories/. Available when the Memory permission is on.

Tool What it does
read_file Open one of the agent's saved memory notes.
write_file Create a new memory note.
edit_file Update an existing one.

See Agent Memory for what memory's good for and how to set it up.


What tools do I have right now?

Every agent gets one extra tool, list_tools, that returns its own toolbox. Ask "what can you do?" or "what reporting tools do you have?" and the agent calls it and tells you. You can filter by category: sql, email, slack, tableau, memory, skill, db, report, interaction, chart, google_slides, block, base.