Tool Types
Configuration guide for each tool type
Tool Types
| Type | Description |
|---|---|
| JavaScript | Custom server-side code for business logic |
| SQL | Query relational databases |
| HTTP Call | Call external REST APIs |
| API Connection | Call APIs with pre-configured authentication |
| MongoDB Query | Run MongoDB aggregation pipelines |
| GraphQL | Execute GraphQL queries |
| RAG Search | Semantic search over knowledge bases |
| Notifications | Send Slack or SMS messages |
| Audio/Video Transcription | Convert media to text |
Built-in Tools
| Tool | Description |
|---|---|
| Web Search | Search via Brave Search |
| Geocoding | Address to coordinates |
| Weather | Current conditions and forecasts |
| Slack | Send channel messages |
| Azure Blob | Cloud storage access |
JavaScript
Write custom server-side JavaScript code for complex business logic, data transformations, or calculations.
When to use: You need custom logic that isn't covered by other tool types, or you want to combine multiple operations into a single tool.
Configuration:
- Code - Your JavaScript code runs in a secure server environment
- Connection (optional) - Access database connections from your code
Example:
// Calculate order total with discounts
const subtotal = inputs.items.reduce((sum, item) => sum + item.price * item.quantity, 0);
const discount = inputs.couponCode ? subtotal * 0.1 : 0;
return {
subtotal,
discount,
total: subtotal - discount
};Your code has access to:
inputs- The input values provided by the agent- Database connections (if configured)
SQL
Run SQL queries against your database connections. Perfect for fetching, updating, or analyzing data.
When to use: You need to query a relational database like PostgreSQL, MySQL, or SQLite.
Configuration:
- Connection - Select a database connection (configured in Connections)
- Code - Your SQL query
Example:
SELECT o.id, o.total, c.name as customer_name
FROM orders o
JOIN customers c ON o.customer_id = c.id
WHERE o.status = {{status}}
ORDER BY o.created_at DESC
LIMIT 10Use {{variableName}} syntax to insert input values safely (prevents SQL injection).
HTTP Call
Make HTTP requests to any external API or web service.
When to use: You need to call an external REST API that doesn't have a pre-configured connection.
Configuration:
| Field | Description |
|---|---|
| Method | GET, POST, PUT, PATCH, or DELETE |
| URL | The full URL to call (can include {{variables}}) |
| Headers | Key-value pairs for request headers |
| Content Type | application/json, form-urlencoded, text/plain, or text/xml |
| Body | Request body for POST/PUT/PATCH requests |
Example:
- Method:
POST - URL:
https://api.example.com/users/{{userId}}/orders - Headers:
Authorization: Bearer {{apiKey}} - Body:
{"items": {{items}}}
API Connection
Call APIs using your pre-configured API connections. The connection handles authentication automatically.
When to use: You have a reusable API connection set up and want to make authenticated calls without managing credentials in the tool.
Configuration:
| Field | Description |
|---|---|
| Connection | Select from your configured API connections |
| Path | The endpoint path (appended to the connection's base URL) |
| Method | GET, POST, PUT, or DELETE |
| Headers | Additional headers (connection headers are included automatically) |
| Content Type | Content type for the request body |
| Body | Request body for POST/PUT requests |
This is similar to HTTP Call, but authentication is handled by the connection.
MongoDB Query (MQL)
Run MongoDB aggregate pipeline queries against your MongoDB databases.
When to use: You need to query a MongoDB database with complex aggregation pipelines.
Configuration:
| Field | Description |
|---|---|
| Connection | Select a MongoDB connection, or use custom credentials |
| Database | The database name |
| Collection | The collection to query |
| Aggregate Stages | One or more pipeline stages |
Each aggregate stage has:
- Condition - When to include this stage (use
truefor always) - Stage - The MongoDB aggregation stage as JSON
Example stages:
// Stage 1: Match documents
{ "$match": { "status": "active" } }
// Stage 2: Group and count
{ "$group": { "_id": "$category", "count": { "$sum": 1 } } }GraphQL
Execute GraphQL queries against any GraphQL endpoint.
When to use: You need to query a GraphQL API, especially when you want fine-grained control over the data returned.
Configuration:
| Field | Description |
|---|---|
| Connection | Use a connection, or enter a custom URL |
| URL | GraphQL endpoint URL (if not using connection) |
| Method | POST (standard) or GET |
| AI Generated Query | Let AI write queries based on your schema |
| SDL | GraphQL schema definition (helps AI understand the API) |
| Few-shot Examples | Sample requests and queries to guide AI |
| Operation Name | Name of the operation to execute |
| Query | Your GraphQL query |
| Variables | Query variables as JSON |
| Headers | Additional request headers |
AI Generated Query mode: When enabled, you provide the schema (SDL) and examples. The AI writes queries based on user requests instead of using a fixed query.
RAG Search
Search your knowledge bases using semantic (vector) search. Returns relevant document chunks that the agent can reference.
When to use: You want the agent to answer questions using your uploaded documents.
Configuration:
| Field | Description |
|---|---|
| Knowledge Base | Select from your configured knowledge bases |
The tool automatically:
- Converts the search query to a vector embedding
- Finds the most similar document chunks
- Returns the relevant text for the agent to use
Notifications
Send messages via Slack or SMS.
When to use: You want the agent to notify users or teams about events, alerts, or updates.
Slack Configuration
| Field | Description |
|---|---|
| Webhook URL | Slack incoming webhook URL |
| Channel | Target channel (optional, uses webhook default) |
| Blocks | Message content using Slack Block Kit |
SMS Configuration
| Field | Description |
|---|---|
| Provider | Twilio or AWS SNS |
| Account credentials | Provider-specific authentication |
| From Number | Sender phone number |
| To Number | Recipient phone number (can use {{variable}}) |
| Message | SMS message content |
Audio/Video Transcription
Convert audio or video files to text transcriptions.
When to use: You need to transcribe recordings, podcasts, meeting recordings, or any audio/video content.
Configuration:
| Field | Description |
|---|---|
| Provider | OpenAI Whisper, AssemblyAI, or Google Speech |
| Media URL Expression | Expression that returns the audio/video URL |
| Language | Language code (optional, auto-detected if not set) |
Provider-specific options:
OpenAI Whisper:
- Model: whisper-1
- Response format: json, text, srt, verbose_json, or vtt
AssemblyAI:
- Model: best or nano
- Speaker labels: Identify different speakers
- Include timestamps: Add timing information
All providers:
- Max file size limit (optional)