Skip to main content

Tools & Functions - Complete Guide

Tools (also called "functions") are the instruments available to your agent. Each tool fulfills a specific task and extends your agent's capabilities.

Important Principle

Only activate the tools your agent really needs! Each active tool increases complexity and can extend response time.


Overview of All Available Tools​

ToolCategoryFrequencyCost Impact
get_product_propertiesđŸ›ī¸ Products⭐⭐⭐ High💰 Medium
product_searchđŸ›ī¸ Products⭐⭐⭐ High💰 Low
get_product_detailsđŸ›ī¸ Products⭐⭐⭐ High💰 Low
get_categoriesđŸ›ī¸ Products⭐⭐ Medium💰 Low
get_manufacturerđŸ›ī¸ Products⭐ Low💰 Low
get_meta_informationâ„šī¸ Shop Info⭐⭐⭐ High💰 Low
get_faqsâ„šī¸ Shop Info⭐⭐ Medium💰 Low
fetch_initial_chat_guidelinesâ„šī¸ Shop Info⭐ Low💰 Low
get_chatbot_nameâ„šī¸ Shop Info⭐⭐⭐ High💰 Very low
get_date_timeâ„šī¸ Shop Info⭐⭐ Medium💰 Very low
get_countries🌍 Localization⭐ Low💰 Very low
get_delivery_timesđŸ“Ļ Shipping⭐⭐ Medium💰 Low
get_payment_methodsđŸ’ŗ Payment⭐⭐ Medium💰 Low
get_order_status📋 Orders⭐⭐ Medium💰 Low
fetch_url🌐 External Data⭐ Low💰 Medium
go_to_url🔗 Navigation⭐⭐ Medium💰 Very low
log📝 Knowledge DB⭐⭐ Medium💰 Low
search_logs🔍 Knowledge DB⭐⭐ Medium💰 Low
tags_for_logsđŸˇī¸ Knowledge DB⭐ Low💰 Very low
get_unresolved_logs📊 Backend⭐ Low💰 Low

đŸ›ī¸ Product Tools​

get_product_properties​

What does it do? Loads your shop's complete product filter structure: categories, properties (color, size, material, etc.) and manufacturers/brands.

When to activate? ✅ When your agent should search and filter products ✅ For product advisor agents ✅ When customers ask for "red T-shirts in size M"

When NOT to activate? ❌ For pure FAQ/customer service agents ❌ If you already have get_categories AND get_manufacturer active (redundant!)

Return example:

{
"categories": [
{"name": "Clothing", "id": "...", "breadcrumb": "Home > Clothing"},
{"name": "T-Shirts", "id": "...", "breadcrumb": "Home > Clothing > T-Shirts"}
],
"properties": {
"Color": ["Red", "Blue", "Black"],
"Size": ["S", "M", "L", "XL"],
"Material": ["Cotton", "Polyester"]
},
"manufacturers": ["Nike", "Adidas", "Puma"]
}

Use case example:

Customer: "I'm looking for a red leather jacket"
Agent calls: get_product_properties()
Agent now knows: Color "Red" exists, Material "Leather" exists, Category "Jackets" exists
Agent calls: product_search(category="Jackets", properties={"Color": "Red", "Material": "Leather"})
Tip: Once per Session

This tool should ideally be called only ONCE at the beginning of a conversation. This saves tokens and costs!


What does it do? Searches your product catalog with search terms, filters, categories, price range and more.

When to activate? ✅ ALWAYS when your agent should recommend products ✅ For product advisors, shopping assistants ✅ For "Show me..."-requests

Parameters:

  • query: Free-text search term (e.g., "T-shirt")
  • categories: Category IDs (e.g., ["123", "456"])
  • properties: Filters (e.g., {"Color": ["Red"], "Size": ["M"]})
  • manufacturer: Manufacturer IDs
  • minPrice / maxPrice: Price range
  • sort: Sorting (price-asc, price-desc, name-asc, etc.)
  • limit: Number of results (default: 8)
  • page: Page (for pagination)

Return example:

{
"products": [
{
"id": "abc123",
"productNumber": "SW-1001",
"name": "Red T-Shirt",
"price": 29.99,
"manufacturer": "Nike",
"url": "/detail/abc123"
}
],
"total": 42,
"page": 1,
"limit": 8
}

Best Practice:

❌ Bad: Load all 1000 products at once
✅ Good: Start with limit=8, load more if needed

get_product_details​

What does it do? Loads detailed information about a specific product (by product ID or product number).

When to activate? ✅ When customers ask detailed questions about a product ✅ After product_search for more details ✅ For "Is this product in stock?" questions

Parameters:

  • productId: Product ID OR
  • productNumber: Product number (e.g., "SW-1001")

Return example:

{
"id": "abc123",
"name": "Red T-Shirt Premium",
"description": "High-quality T-shirt made of 100% organic cotton...",
"price": 29.99,
"stock": 15,
"available": true,
"manufacturer": "Nike",
"properties": {
"Color": "Red",
"Size": ["S", "M", "L"],
"Material": "Cotton"
},
"variants": [...],
"images": [...]
}

Use case example:

Customer: "Is the red T-shirt still available in size M?"
Agent previously: product_search("red T-shirt") called
Agent now calls: get_product_details(productId="abc123")
Agent responds: "Yes, the red T-shirt is available in size M. We have 15 in stock!"

get_categories​

What does it do? Provides a list of all categories in your shop (name, URL, breadcrumb navigation).

When to activate? ✅ When customers should browse categories ✅ For "What categories do you have?" questions ✅ BUT: Usually get_product_properties is better!

When NOT to activate? ❌ If you already have get_product_properties active (redundant!)

Return example:

[
{
"id": "cat123",
"name": "T-Shirts",
"url": "/Clothing/T-Shirts",
"breadcrumb": "Home > Clothing > T-Shirts",
"productCount": 42
}
]
Avoid Redundancy

In most cases, get_product_properties already does the same and more. Use get_categories only when you DON'T need product search.


get_manufacturer​

What does it do? Provides a list of all manufacturers/brands in your shop.

When to activate? ✅ When customers ask about brands ("What brands do you carry?") ✅ For "Do you have Nike?" questions

When NOT to activate? ❌ If you already have get_product_properties active (redundant!)

Return example:

[
{
"id": "manu123",
"name": "Nike",
"productCount": 150,
"url": "/Nike"
},
{
"id": "manu456",
"name": "Adidas",
"productCount": 120,
"url": "/Adidas"
}
]

â„šī¸ Shop Information Tools​

get_meta_information​

What does it do? Provides freely configurable shop information: contact, hours, return policy, shipping info, legal notices, etc.

Where to configure? In the plugin configuration, there's a LONGTEXT field "Meta Information". You can store any information here.

When to activate? ✅ HIGHLY RECOMMENDED for customer service agents ✅ For "What are your hours?" questions ✅ For "How does return work?" questions

Configuration example:

CONTACT:
Email: info@myshop.com
Phone: +1 123 456789
Hours: Mon-Fri 9am-6pm

SHIPPING:
- Free shipping over $50
- Delivery time: 2-3 business days
- Shipping cost: $4.90

RETURNS:
- 30-day return policy
- Free returns
Best Practice

If you maintain your shop information well, this tool often overlaps with get_faqs. In practice, usually ONE of the two tools is sufficient.


get_faqs​

What does it do? Provides FAQ content (Frequently Asked Questions and answers).

Where to configure? In the plugin configuration, there's a LONGTEXT field "FAQs".

When to activate? ✅ If you have a FAQ page ✅ For recurring customer questions

Configuration example:

Question: How long does shipping take?
Answer: Usually 2-3 business days within the US.

Question: Can I return my order?
Answer: Yes, you have a 30-day return policy from receipt.

Question: What payment methods do you accept?
Answer: We accept credit card, PayPal, invoice and bank transfer.
Meta vs. FAQ

In practice, get_meta_information and get_faqs often overlap. Choose ONE and maintain it well – that's usually completely sufficient!


fetch_initial_chat_guidelines​

What does it do? Loads chat guidelines/behavior rules at the beginning of a chat.

Where to configure? In the plugin configuration, there's a LONGTEXT field "Initial Chat Guidelines".

When to activate? ✅ If you want to define special chat rules ✅ For tone, address, no-gos

Configuration example:

TONE:
- Be friendly and casual
- Use emojis sparingly

PROHIBITIONS:
- No promises of discounts
- No medical advice
- No political statements

DO's:
- Always stay polite
- Ask when uncertain
- Actively recommend products

get_chatbot_name​

What does it do? Provides the configured name of the chatbot/agent so it can introduce itself correctly.

When to activate? ✅ ALMOST ALWAYS recommended ✅ When the agent should introduce itself ✅ For "What's your name?" questions

Return example:

{
"name": "Product Advisor Max"
}

Use case example:

Customer: "Who are you?"
Agent calls: get_chatbot_name()
Agent responds: "I'm Max, your product advisor! How can I help you?"

Cost: Very low (tiny return)


get_date_time​

What does it do? Provides the current date and time (including timezone).

When to activate? ✅ For time-dependent responses ("Today", "Tomorrow") ✅ For hours checks ✅ For time-bound promotions/shipping deadlines

Return example:

{
"date": "2025-12-29",
"time": "14:30:00",
"timezone": "America/New_York",
"dayOfWeek": "Sunday"
}

Use case example:

Customer: "If I order today, when will the package arrive?"
Agent calls: get_date_time()
Agent knows: Today is Sunday
Agent responds: "If you order by Monday 12pm, you'll receive the package Wednesday!"

🌍 Localization Tools​

get_countries​

What does it do? Provides a list of available countries in your shop (sales channel-specific).

When to activate? ✅ For "Which countries do you ship to?" questions ✅ For international shops

Return example:

[
{"code": "US", "name": "United States"},
{"code": "CA", "name": "Canada"},
{"code": "UK", "name": "United Kingdom"}
]

đŸ“Ļ Shipping Tools​

get_delivery_times​

What does it do? Provides information about delivery times as configured in your shop.

When to activate? ✅ For "How long does shipping take?" questions ✅ When you have different delivery time options

Return example:

[
{
"name": "Standard",
"min": 2,
"max": 3,
"unit": "business days"
},
{
"name": "Express",
"min": 1,
"max": 1,
"unit": "business day"
}
]

đŸ’ŗ Payment Tools​

get_payment_methods​

What does it do? Provides the available payment methods in the current sales channel.

When to activate? ✅ For "What payment methods do you offer?" questions ✅ For checkout support

Return example:

[
{"name": "Credit Card", "active": true},
{"name": "PayPal", "active": true},
{"name": "Invoice", "active": true},
{"name": "Bank Transfer", "active": false}
]

📋 Order Tools​

get_order_status​

What does it do? Retrieves the status of an order – using order number + ZIP code (as security measure).

When to activate? ✅ For "Where is my order?" questions ✅ For customer service agents

Parameters:

  • orderNumber: Order number (e.g., "10001")
  • zipCode: ZIP code for verification (e.g., "12345")

Return example:

{
"orderNumber": "10001",
"status": "In shipping",
"trackingCode": "UPS123456789",
"estimatedDelivery": "2025-12-30"
}

Use case example:

Customer: "Where is my order 10001? ZIP is 12345"
Agent calls: get_order_status(orderNumber="10001", zipCode="12345")
Agent responds: "Your order is already in shipping! Tracking: UPS123456789"
Privacy

The tool only returns the status – NO sensitive customer data like name, address or payment information!


🌐 External Data Tools​

fetch_url​

What does it do? Loads the content of a webpage (not web search!) and makes it readable for the agent.

When to activate? ✅ When your agent should access current content from your own website ✅ For dynamic content (blog, news, promotions) ✅ Only for sites you control or trust!

Parameters:

  • url: The URL to load

Use case example:

You have a news page: https://myshop.com/news/current-promotion
Agent calls: fetch_url("https://myshop.com/news/current-promotion")
Agent reads: "20% off all winter jackets until 12/31/2025"
Agent responds: "We currently have 20% off all winter jackets – valid until year-end!"
Security Notice

Use fetch_url only for websites you trust! The agent can read ANY public content from the site.


🔗 Navigation Tools​

go_to_url​

What does it do? Creates a secure, direct link to shop pages (category, product, service pages).

When to activate? ✅ When the agent should direct customers to specific pages ✅ For "Show me the category..." requests

Parameters:

  • url: Relative or absolute URL
  • label: Link text (Optional)

Return example:

<a href="/Clothing/T-Shirts">Here are our T-shirts</a>

📝 Knowledge Management Tools (Logging)​

log​

What does it do? Allows the agent to write new entries to the knowledge database (Assistant Logs).

When to activate? ✅ When your agent should learn from conversations ✅ To build a FAQ database ✅ For recurring, previously unknown questions

Parameters:

  • question: The question/problem
  • answer: The answer/solution
  • tags: Categorization (e.g., ["shipping", "returns"])
  • isPublic: Public (visible to other agents)?

Use case example:

Customer asks: "Do you offer gift wrapping?"
Agent doesn't know (not in Meta-Info)
Agent asks and learns: "Yes, free upon request"
Agent calls: log(
question="Do you offer gift wrapping?",
answer="Yes, we offer free gift wrapping upon request.",
tags=["service", "gift"],
isPublic=true
)

Next time, search_logs can find this information!


search_logs​

What does it do? Searches the knowledge database (Assistant Logs) for already answered questions.

When to activate? ✅ Use together with log ✅ To reuse knowledge base ✅ Prevents duplicates and hallucinations

Parameters:

  • query: Search term
  • tags: Filter by tags (Optional)
  • limit: Number of results

Return example:

[
{
"question": "Do you offer gift wrapping?",
"answer": "Yes, free gift wrapping upon request.",
"tags": ["service", "gift"],
"createdAt": "2025-12-15"
}
]
Self-Learning Agent

The combination log + search_logs makes your agent self-learning! It continuously builds its own knowledge base.


tags_for_logs​

What does it do? Provides the list of allowed tags for logs (for categorization).

When to activate? ✅ When you use log and search_logs ✅ For consistent categorization

Return example:

["shipping", "returns", "payment", "product", "service", "technical"]

get_unresolved_logs​

What does it do? Provides open/unresolved log entries (for backend agents for triage).

When to activate? ✅ For internal backend agents ✅ For team workflows ("What's still open?")

Target audience: Primarily for employees, not for customer-facing agents!


đŸ›ī¸ Product Advisor Agent​

Must-have:

  • ✅ get_product_properties
  • ✅ product_search
  • ✅ get_product_details
  • ✅ get_chatbot_name
  • ✅ go_to_url

Optional:

  • get_delivery_times
  • get_payment_methods

Not necessary:

  • ❌ get_categories (already in product_properties)
  • ❌ get_manufacturer (already in product_properties)

🎧 Customer Service Agent​

Must-have:

  • ✅ get_meta_information OR get_faqs
  • ✅ get_chatbot_name
  • ✅ get_order_status
  • ✅ get_date_time
  • ✅ search_logs
  • ✅ log

Optional:

  • get_delivery_times
  • get_payment_methods
  • get_countries

Not necessary:

  • ❌ Product tools (except for product questions)

📝 Content Checker (Backend)​

Must-have:

  • ✅ fetch_url
  • ✅ get_chatbot_name

Optional:

  • log (for improvement suggestions)

Not necessary:

  • ❌ All shop frontend tools

Performance & Cost Tips​

⚡ Performance Optimization​

  1. Fewer Tools = Faster Responses

    • Each tool in the list increases complexity
    • Agent needs longer to decide
  2. Use Caching

    • Call get_product_properties only 1x per session
    • Instructions should point this out
  3. Set Limits

    • For product_search: limit=8 (not 100!)
    • For search_logs: limit=5

💰 Cost Optimization​

Expensive Tools:

  • fetch_url (loads external content)
  • get_product_properties (large return)

Cheap Tools:

  • get_chatbot_name (tiny)
  • get_date_time (tiny)
  • go_to_url (no API call)

Rule of thumb: The larger the return of a tool, the more tokens = higher costs.


Frequently Asked Questions​

Q: Can I create custom tools? A: Currently not directly in the UI. Contact 5 Elements for custom development.

Q: Why isn't my agent calling a tool? A: Possible reasons:

  1. Tool not activated
  2. Instructions don't mention the tool
  3. Agent considers it unnecessary

Solution: Explicitly mention in instructions!

Q: Can I temporarily deactivate tools? A: Yes, in the agent configuration you can turn tools on/off anytime.


Next Steps​

You now understand all available tools! Continue with:

âžĄī¸ Agent Configuration - Optimize instructions & settings

âžĄī¸ Vector Stores - Your own documents as knowledge base

âžĄī¸ Best Practices - Tips for optimal tool usage