> For the complete documentation index, see [llms.txt](https://docs.borndigital.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.borndigital.ai/digital-agent/tools-reference.md).

# Tools & smart functions

Reference of the tools (smart functions) you can add to nodes: what each one does, its parameters and an example – fetch\_url, current\_time, date, address, phone and more.

**Tools** (also called **smart functions**) are ready-made functions you add to a node: they extract information from the customer's message – a date, an address, a phone number – call a web service, or work with the conversation. Each tool stores its result in a variable that you use later in the flow.

## Add a tool to a node

1. Open a **Function**, **Message**, **Decision** or **Start** node – or an **Answer** node, where tools are in the **Entities** tab (**Before input** and **After input**) and in **Condition** intents.
2. In **Tools**, click **Add**.
3. In **Tool name**, enter the name of the variable that receives the result, for example `customer_city`.
4. In **Name**, choose the tool – start typing its name, for example `fetch` or `date`.
5. Fill in its parameters. Switch on **Optional parameters** to see the rest.
6. Click **Save**.

Tools in a node run from top to bottom; drag them to change the order. How the Function node works is described in [FUNCTION node](/digital-agent/conversation-flow/nodes-explained/function-node.md).

### Variables in parameters

* `{variable}` inserts the value of a variable, for example a URL `https://api.example.com/orders/{order_id}`.
* A parameter that is only `{expression}` is evaluated as Python, for example `{order_id.strip()}`.

### When a tool finds nothing

Extraction tools (dates, addresses, names…) return nothing when the message does not contain the information. Check the variable before using it, for example with a condition `customer_city` in a Decision node or in an Answer node intent.

### Tools in expressions

Some tools can also be called directly in variable values and conditions, for example `current_time().hour < 12`. Their pages say so. Three of them have a different name in expressions: `hash` (String hash), `sanitize` (Sanitize text) and `last_utterance` (Utterance).

### Tools hidden in the list

A few tools are not shown in the list until you type their name – for example `current_time`, `current_date`, `counter` or `utterance`. They work the same as the others.

## Categories

| Category                                                                                            | What it covers                                                                             | Tools |
| --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ----- |
| [Date & time](/digital-agent/tools-reference/date-and-time.md)                                      | Dates, times, working hours and holidays.                                                  | 13    |
| [Names & companies](/digital-agent/tools-reference/names-and-companies.md)                          | Names of people and companies, gender, titles.                                             | 8     |
| [Numbers, amounts & identifiers](/digital-agent/tools-reference/numbers-amounts-and-identifiers.md) | Numbers, amounts, currencies and identifiers such as birth numbers or registration plates. | 14    |
| [Addresses & places](/digital-agent/tools-reference/addresses-and-places.md)                        | Addresses, streets, cities, postcodes and distances.                                       | 15    |
| [Contact details](/digital-agent/tools-reference/contact-details.md)                                | Phone numbers and e-mail addresses.                                                        | 2     |
| [Text & language](/digital-agent/tools-reference/text-and-language.md)                              | Matching, comparing, cleaning and translating text; language recognition.                  | 13    |
| [Web, APIs & data](/digital-agent/tools-reference/web-apis-and-data.md)                             | Calling web services, sending e-mails and working with JSON and files.                     | 10    |
| [Security & encoding](/digital-agent/tools-reference/security-and-encoding.md)                      | Encoding, hashing, checksums and authentication tokens.                                    | 7     |
| [Conversation & state](/digital-agent/tools-reference/conversation-and-state.md)                    | The conversation itself: IDs, messages, intents, counters and history.                     | 11    |
| [Campaigns](/digital-agent/tools-reference/campaigns.md)                                            | Outbound campaign calls.                                                                   | 2     |

{% hint style="info" %}
**Looking for language detection in calls?** It is not a tool: turn on **Enable language detection** in the Answer node (**Configuration** › **Listening**). See [Utterance language](/digital-agent/tools-reference/text-and-language.md#utterance-language).
{% endhint %}

The AI node has its own tools – knowledge base, web search, transfers and MCP servers. See [AI node › Tools](/digital-agent/conversation-flow/nodes-explained/ai-node/tools.md).
