Hooman Labs DocsGuideReference

Tools

Tools enable your agents to make external API calls during a call to fetch or send data and take actions. For example, checking order status, retrieving user details, or performing calculations.

Basics

Go to Tools → Create Tool and fill in the basic details:

Field

Description

Example

Name

An explanatory name for the tool

get_order_by_phone

Category

Logical grouping

custom

Description

Clear explanation of what the tool does and when the agent should use this.

Use to fetch order history using registered phone number

Parameters

Define the inputs your API will expect. These are passed during runtime by the agent.

Field

Description

Example

Name

Parameter name

phone

Type

string, string(enum), boolean or number

string

Required

Whether this parameter is mandatory or optional

true

Validation

An optional regex forumla for input validation

^\d{10}$

Description

What this input represents and how it's used

Valid 10 digit phone number without any country code

Use regex to enforce strict parameter format. For example:

  • ^\d{10}$ ensures a 10-digit phone number

  • ^GI\d{4}$ ensures order ID starts with GI followed by 4 digits

Use string(enum) when you want users to pick from a dropdown list of predefined values like delivered, cancelled, etc.

API configuration

Configure how the agent should call the external API.

Field

Description

Example

Method

HTTP method

POST

URL

Endpoint to call

https://api.example.com/orders/by-phone

Timeout

Milliseconds before aborting

15000

Headers

Key-value headers

Content-Type: application/json

Body (Raw)

JSON body. Use ${...} to inject parameter or context variables.

{ "phone": "${phone}" }

Available variables:

  • Tool parameters (e.g., ${phone})

  • Pre-call API and task context variables

  • System variables like ${callSid}, ${agent}

Response variable mapping

Specify which parts of the API response should be available to the agent. Use . dot notation for referencing nested keys.

Example response:

{
  "customer": {
    "name": "Tarun",
    "totalSpent": 20000
  },
  "orders": [
    { "orderId": "GI1234", "total": 1234, "status": "delivered" }
  ]
}

Variable name (agent)

JSON path in response

customerName

customer.name

lifetimeSpend

customer.totalSpent

latestOrderId

orders[0].orderId

latestOrderTotal

orders[0].total

Calculated variables

Use logic to derive new variables from response variables only. This helps classify or format data for better LLM prompting.

Calculated Variable

Logic

highValueCustomer

If lifetimeSpend > 10000true, else false

Only response variables (not tool input parameters) can be used in calculations. You can build complex conditional logic using nested IF → ELSE IF → ELSE paths.

Special built-in endpoints

These are internal tools that don’t hit external APIs:

Endpoint

Purpose

Example

identity

Returns input as-is

Use to echo tool input, e.g., validate input directly in flow

sum, product, average, maximum, minimum

Perform arithmetic on input parameters

Let the agent calculate totals, percentage, averages, etc.

LLMs are not great at maths. Use these built-in endpoints for doing maths reliably. For example, calculate final price of a product by calling a tool with product endpoint with inputs as itemPrice and discount .

Using tools in agent

Once you’ve created a tool, it becomes available for use inside your voice agents. How and where you use the tool depends on whether your agent is configured as a Single Prompt Agent or a Multi Prompt Agent.

Single prompt agent

In single prompt agents, tools can be added via Think Settings → Tools and are accessible globally.

Multi prompt agent

In multi prompt (flow-based) agents, tools can be configured and used more flexibly. They are available in two places:

a. Inside a node

  • These tools are available to the agent only while it's in that node.

  • They do not cause a node switch when invoked.

  • Tools added to the global node are available across all nodes.

Use case: Checking eligibility or fetching customer details while staying in the same node.

b. Transition

  • When invoked, they trigger the transition and call the tool.

  • Tool output becomes available in the destination node.

Use case: Routing logic based on tool output—e.g., verify KYC, and then decide which node to go next.

Tool messages

When adding a tool, you can configure two types of messages:

Type

Purpose

Example

Start

What the agent says before using the tool. You can write a fixed line or provide instructions for the LLM to generate it contextually.

Give me a moment to fetch your latest order.”

Interrupt

What the agent says if the user tries to interrupt while the tool is running. Tools are uninterruptible, and this message is played in that case.

"Hold on just a second, I’m getting your order details."