Creating AI Tools
Give your AI assistant superpowers with custom tools
AI SmartTalk's SmartFlow visual node builder allows you to create custom tools for your AI assistant without writing code. These tools extend your AI's capabilities beyond conversation into real actions.
What Are AI Tools?
Tools (also called "function calling") enable your AI to perform specific tasks during conversations. Instead of just answering questions, your AI can:
- Search your product catalog
- Book appointments
- Create support tickets
- Look up order status
- And much more
Without vs With Tools
| Scenario | Without Tools | With Tools |
|---|---|---|
| Order Status | "Please visit our website to check your order" | AI fetches tracking info and displays it instantly |
| Appointment Booking | "Call us at 555-1234 to schedule" | AI checks availability and books the slot |
| Product Search | "Browse our catalog at..." | AI searches and shows matching products |
Creating Tools with SmartFlow
Use the Conversation Tool trigger to create tools your AI can use during chats.
Step 1: Create a New SmartFlow
- Go to Automation → SmartFlows
- Click + New SmartFlow
- Give it a descriptive name (e.g., "Product Search Tool")
Step 2: Add the Conversation Tool Trigger
Drag the Conversation Tool trigger onto the canvas:

Configure the trigger:
| Field | Description |
|---|---|
| Name | Tool name the AI will recognize |
| Description | Helps AI understand when to use this tool |
| User Targeting | Who can use this tool (all users, connected only, etc.) |
| Tool Variables | Parameters the AI should collect from the user |
Step 3: Define Variables
Add variables that your AI should collect conversationally:
| Variable | Type | Description |
|---|---|---|
productName | String | What product to search for |
maxPrice | Number | Maximum price filter |
category | String | Product category |
The AI will naturally ask users for these values during conversation.
Step 4: Add Actions
Connect actions to perform the actual work:

Common action combinations:
| Use Case | Actions |
|---|---|
| Product Search | Search Knowledge → Set Observation |
| Ticket Creation | JIRA Create Issue → Set Observation |
| Appointment | API Call (calendar) → Send Message |
| Order Lookup | API Call (e-commerce) → Set Observation |
Step 5: Return Results with Set Observation
Use Set Observation to send results back to the AI:

The AI receives the observation and uses it to respond to the user.
Step 6: Test Your Tool
Click ▶ Testing to try your tool:

- Create a test conversation
- Type a message that should trigger your tool
- Watch the flow execute
- Verify the AI responds correctly
Example: Product Search Tool
Goal: Let users search products by asking naturally
Trigger Configuration:
- Name:
searchProducts - Description: "Search the product catalog by name, category, or price"
- Variables:
query(String),maxPrice(Number, optional)
Flow:
Conversation Tool Trigger
↓
Search Knowledge Base
→ Query: {{trigger.query}}
→ Limit: 5 results
↓
Set Observation
→ Results: {{searchResults}}
User Experience:
User: Do you have any blue widgets under €50?
AI: Let me search for that...
I found 3 blue widgets under €50:
1. Blue Widget Basic - €29.99
2. Blue Widget Pro - €45.00
3. Blue Widget Mini - €19.99
Would you like more details on any of these?
Example: JIRA Ticket Creation
Goal: Let users create support tickets from chat

Trigger Configuration:
- Name:
createTicket - Description: "Create a support ticket for technical issues"
- Variables:
title(String),description(String),priority(String)
Flow:
Conversation Tool Trigger
↓
JIRA Create Issue
→ Project: SUPPORT
→ Type: Bug
→ Summary: {{trigger.title}}
→ Description: {{trigger.description}}
↓
Set Observation
→ "Ticket {{jiraIssue.key}} created successfully"
Best Practices
Clear Tool Descriptions
Write descriptions that help the AI understand when to use each tool:
// Good
"Search the product catalog by name, category, or price range"
// Too vague
"Search products"
Meaningful Variable Names
Use descriptive variable names and descriptions:
| Variable | Description |
|---|---|
customerEmail | Email address to look up the order |
appointmentDate | Preferred date for the appointment |
Handle Errors Gracefully
Include error handling in your observations:
// Success
{"found": true, "results": [...]}
// No results
{"found": false, "message": "No products match your search"}
Test Conversationally
Test your tools by chatting naturally, not just clicking buttons. Make sure the AI:
- Asks for required variables naturally
- Uses the tool at the right moment
- Presents results clearly