# Tools
Tools explains how this part of Flowline works and how to use it in a real workflow. Provide detailed guidance and examples to support users in building with Tools.
Note: Flowline is a fictional automation product. Section: Build › AI.
## Prerequisites
- A Flowline account (cloud or self-hosted)
- Editor access to the project
- About 22 minutes
## How it works
Every workflow starts with a **trigger**, passes *items* from node to node, and ends when the last node finishes. Tools fits in the middle of that chain: it receives items, does its work, and hands the result to the next node. Use `$json` to read the current item and `$node["Name"]` to reach an earlier node.
## Step-by-step
1. Open the workflow editor and select **Add node**.
2. Search for **Tools** and add it to the canvas.
3. Fill in the required parameters (see the table below).
4. Select **Test step** to run it with sample data.
5. Check the output panel, then **Save** the workflow.
## Parameters
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| Name | string | Yes | A label shown on the canvas |
| Mode | option | Yes | `run once` or `run per item` |
| Timeout | number | No | Seconds before the step fails (default 87) |
| Retry on fail | boolean | No | Retries up to 3 times with back-off |
## Example
```javascript
// Tools: return one item per order
const items = $input.all();
return items
.filter((i) => i.json.total > 100)
.map((i) => ({ json: { id: i.json.id, total: i.json.total * 1.2 } }));
```
Warning: Changing tools on a running production workflow takes effect on the next execution. Test in a copy first.
## Troubleshooting
| Symptom | Likely cause | Fix |
| --- | --- | --- |
| Step shows *No output* | The previous node returned zero items | Pin sample data on the previous node |
| `401 Unauthorized` | Expired credential | Reconnect it under **Credentials** |
| Execution times out | Large payload | Split items with **Split Out** |
## Related
- **Build your first workflow**
- **Expressions**
- **Error handling**