Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
09cd0c2
initial pass
ConorWebb96 Jul 2, 2026
43a4d75
Merge branch 'v4.0.0' into codex-large-doc-refactor
ConorWebb96 Jul 8, 2026
461e3d7
second batch update
ConorWebb96 Jul 8, 2026
7d96fbe
third bath rewrite
ConorWebb96 Jul 8, 2026
4120a4f
fourth batch update
ConorWebb96 Jul 8, 2026
0751fec
fifth batched update
ConorWebb96 Jul 8, 2026
49d95af
sixth batched update
ConorWebb96 Jul 8, 2026
4042412
seventh batched update
ConorWebb96 Jul 8, 2026
6fe691d
eighth batched update
ConorWebb96 Jul 8, 2026
877422b
ninth batched update
ConorWebb96 Jul 9, 2026
ededfb4
tenth batched update
ConorWebb96 Jul 9, 2026
5006cf5
eleventh batched update guides
ConorWebb96 Jul 14, 2026
d12e9a8
twelfth batched update
ConorWebb96 Jul 14, 2026
ac4db6f
last batch of guides
ConorWebb96 Jul 14, 2026
483a50f
thirteenth batched update
ConorWebb96 Jul 14, 2026
0553d66
another batched update
ConorWebb96 Jul 14, 2026
0930a15
more batched updates
ConorWebb96 Jul 14, 2026
69f5599
batched update
ConorWebb96 Jul 14, 2026
d59f832
more batched updates
ConorWebb96 Jul 14, 2026
c9e9951
batched update
ConorWebb96 Jul 15, 2026
1c72fca
more batched updates
ConorWebb96 Jul 15, 2026
986487f
large batch update
ConorWebb96 Jul 15, 2026
04579ab
another large batched update
ConorWebb96 Jul 15, 2026
0d8e68b
last batched update
ConorWebb96 Jul 18, 2026
db1f098
component and sources batched update
ConorWebb96 Jul 20, 2026
a925bb6
rest batched update
ConorWebb96 Jul 20, 2026
de08925
large batched update
ConorWebb96 Jul 20, 2026
fcee5f1
generic batched update
ConorWebb96 Jul 20, 2026
fb6c2f6
last batched update
ConorWebb96 Jul 20, 2026
6cd1051
Merge branch 'v4.0.0' into codex-large-doc-refactor
ConorWebb96 Jul 20, 2026
ef5bafd
Merge origin/v4.0.0 into codex-large-doc-refactor
ConorWebb96 Jul 20, 2026
d89fc0f
Merge origin/codex-large-doc-refactor
ConorWebb96 Jul 20, 2026
f7ee339
merge v4.0.0, fix conflicts
ConorWebb96 Aug 4, 2026
9edaa4c
Merge branch 'v4.0.0' into codex-large-doc-refactor
ConorWebb96 Aug 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 19 additions & 21 deletions docs/AI/agent-building-101.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,23 @@ metadata:
description: kba_5v2bm
robots: index
---
In Budibase, Agents enable AI to interact with the data, tools, and automations in your Workspace.
In Budibase, Agents let AI interact with data, tools, and automations in your Workspace.

In this guide, we’ll build a simple AI Service Desk Agent that can:
In this guide, you will build a simple AI Service Desk Agent that can:

* Answer questions about tickets
* Categorise and summarise new tickets
* Update ticket statuses
* Escalate urgent issues automatically

Along the way, we’ll learn how to:
Along the way, you will learn how to:

* Configure an Agent’s instructions
* Connect Workspace data as tools
* Define structured outputs
* Trigger automations from Agent actions
* Test and iterate safely

Let’s jump in.

## Before you start

Make sure you have:
Expand All @@ -49,15 +47,15 @@ Make sure you have:

### Setting up our data layer

In Budibase, Agents can interact with any tables, API calls, or automations within your Workspace, as long as they’re explicitly given access.
In Budibase, Agents can interact with any tables, API calls, or automations within your Workspace, as long as they are explicitly given access.

Before creating an Agent, it’s important to understand the data it will work with and define what actions it should be allowed to perform.
Before creating an Agent, define the data it will work with and the actions it should be allowed to perform.

Take a look at our [Introduction to Data ](https://docs.budibase.com/docs/data) documentation to learn more about how data works in Budibase.
See [Introduction to Data](https://docs.budibase.com/docs/data) for more detail on how data works in Budibase.

#### Our tickets table

For this guide, we’ll use a Budibase DB table called Tickets.
For this guide, use a Budibase DB table called Tickets.

This contains the following columns:

Expand All @@ -74,20 +72,20 @@ This contains the following columns:

### Creating our agent

Onto creating our first Agent. Make sure you have done the initial setup of selecting a provider and configuring a model before doing this. You can find out how to do this [here](doc:agents-config).
To create your first Agent, make sure you have selected a provider and configured a model first. See [Agents config](doc:agents-config).

1. Click on the **Agents** link on the left side of the screen
2. Click the **+ New Agent** button at the top right of your screen
3. Provide a name. We're going with **Service Desk Agent**
3. Provide a name. This guide uses **Service Desk Agent**
4. This will redirect you to a new screen specifically for your Agent

### Configuring instructions

Before configuring instructions, ensure your Agent is connected to an LLM. If you haven’t done this yet, click Connect AI Model at the top of the screen. Alternatively, if you have already set this up, select the LLM you are using. More information on connecting an LLM can be found [here](doc:agents-config).
Before configuring instructions, ensure your Agent is connected to an LLM. If you have not done this yet, click **Connect AI Model** at the top of the screen. If you have already set this up, select the LLM you are using. See [Agents config](doc:agents-config) for more detail.

By default, Budibase provides a structured instruction template to help you define your Agent clearly. More information on this can be found [here](doc:agent-instructions-guide#recommended-template).
By default, Budibase provides a structured instruction template to help you define your Agent clearly. See [Agent instructions guide](doc:agent-instructions-guide#recommended-template) for more detail.

For now we will use the below instructions:
Use the following instructions for this guide:

```markdown instructions
**Agent role**
Expand Down Expand Up @@ -119,13 +117,13 @@ When categorising or prioritising, return structured JSON:
- Use British English where possible
```

After configuring and adding the above instructions, run a test and confirm that everything is working.
After adding the instructions, run a test and confirm that everything works.

### Adding tools

Tools allow an Agent to retrieve and modify real data inside your Workspace.

When you connect data sources to an Agent, Budibase automatically makes relevant operations available as tools. As your Workspace grows, your Agent can be granted access to more tools, but it’s important to only enable what’s necessary for the task.
When you connect data sources to an Agent, Budibase automatically makes relevant operations available as tools. As your Workspace grows, you can grant access to more tools, but only enable what you need for the task.

For this example, we’ll give our Agent access to three tools from the Tickets table:

Expand All @@ -139,7 +137,7 @@ Together, these allow the Agent to:
* Retrieve specific ticket details
* Update ticket status, priority, or resolution notes when required

> As a best practice, only enable the minimum set of tools required. Limiting tool access helps ensure predictable and safe behaviour.
> As a best practice, only enable the minimum set of tools required. Limiting tool access helps keep behaviour predictable and safe.

### Adding Knowledge

Expand All @@ -158,9 +156,9 @@ For more complex configurations, you can use the **Advanced setup** option withi

#### Updating our instructions

Once these tools and knowledge sources are enabled, Budibase injects them into the Agent’s execution context. We now need to guide the Agent on when to use them.
Once these tools and knowledge sources are enabled, Budibase injects them into the Agent’s execution context. You then need to guide the Agent on when to use them.

Here is our updated instruction prompt:
Use the following updated instruction prompt:

```markdown instructions
**Agent role**
Expand Down Expand Up @@ -203,7 +201,7 @@ Optionally, test again with some data and see how it handles the process.

### Managing multiple operations

As your agent grows more complex, you can define multiple **Operations**, each with its own niche instructions and set of tools.
As your agent grows more complex, you can define multiple **Operations**, each with its own instructions and set of tools.

When an agent has multiple live operations, Budibase uses an internal router to detect the intent of the user's request. It will:
- **Select a specific operation** if the request clearly matches one operation's focus.
Expand All @@ -214,7 +212,7 @@ You do not need to manually configure this routing; it is handled automatically

### Testing the agent

Now that our Agent has instructions and tools, we can test whether it behaves safely and predictably.
Now that your Agent has instructions and tools, you can test whether it behaves safely and predictably.

Start with a few representative prompts:

Expand Down
69 changes: 28 additions & 41 deletions docs/Apps/actions/application-actions.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
---
title: Application actions
excerpt: >-
These actions can be anything from notifications, to triggering automations or
navigating between screens.
excerpt: Actions for navigation, notifications, modals, and automations.
deprecated: false
hidden: false
metadata:
Expand All @@ -16,69 +14,58 @@ next:
slug: form-actions
title: Form actions
---
## Navigate To

Use this action if you want to go to another web page or app screen.\
For example: [Navigation on row button click](doc:url-parameters)

When the *Destination* is set to 'URL', you have the option to open the link in a new tab.

![](https://files.readme.io/8f018e8-new_tab.png)
Use application actions when a user interaction should change screens, open UI, show feedback, or trigger automation.

Alternatively, if the *Destination* is set to 'Screen', then you can select a screen to navigate to from the dropdown. The screen can optionally be opened in the current tab, or in a [modal](https://docs.budibase.com/docs/screens#modal-screen).
## Navigate To

You can learn more about using URL parameters with the `Navigate To` action [here](https://docs.budibase.com/docs/url-parameters).
Use this action to open a URL or another screen.

![](https://files.readme.io/a455654-open_modal.png)
If the destination is a URL, you can open it in a new tab.

## Trigger Automations
If the destination is a screen, you can open it in the current tab or in a modal.

Often there are times where you would like to trigger a automation after a user has performed an action. There are a range of different [Automations](doc:custom-automations). You are able reference any created automations by clicking the `Use an existing automation` radio button and then selecting an existing previously created automations to use and run.
## Trigger automations

<Image align="center" src="https://files.readme.io/d09d42c-224bfaf-Screenshot_2023-05-19_at_11.27.45.png" />
Use this action to run an existing automation.

Lastly, creating fields within the automation itself allows data/bindings to be sent to it, this can then be used in your automation to perform whatever task you require. An example of this would be passing an `_id` of a row to the automation to then update the row's state e.g. from `Pending` to `In progress`.
Pass values into the automation with fields on the action.

<Image align="center" src="https://files.readme.io/15a00b5-6bfc5bc-Screenshot_2023-05-19_at_11.50.58.png" />
This is useful when a user action should kick off a background process.

## Logout

If you want to log a user out, you can use this action. It has redirect functionality built in meaning you can redirect to whatever url you desire.

## Close Screen Modal

If the current screen has been opened as a [Modal](https://docs.budibase.com/docs/screens#modal-screen), then close it. Additionally, you can navigate to a new screen or open a different screen modal afterwords also using this action.
Use this action to sign the current user out and optionally redirect them.

## Close Modal
## Close screen modal

This action takes no settings, and will close any modal component open on screen.
Use this action to close the current screen modal.

## Open Modal
You can also navigate to another screen after closing.

Opens a modal component on a screen - different to a "Navigate to" action with "Open screen in modal", which opens an entire screen in a modal, this action opens a modal component that is already on the current screen. See [modal component]()
## Close modal

## Show Notification
Use this action to close the currently open modal component.

This allows you to show a popup notification, of which there are four different types; `Success`, `Warning`, `Error` and `Info`. Changing the type will change the styling of the popup for example: success will be have a green background where as error will have a red background. Additionally you can make use of the bindings to output more informative messages. E.g. `Hi {{ Current User.email }} welcome to Budibase.`
## Open modal

<Image align="center" src="https://files.readme.io/5045b379a19194c916869fcab88a0fde2a2bd7e099318bb67e02e715fcbb66d0-Screenshot_2024-09-04_at_16.03.18.png" />
Use this action to open a modal component that already exists on the current screen.

### Logic within notifications
## Show notification

It is possible to use some logic with the notification - if the result of the logic running is falsy, no message will show. This can be used in conjunction with a "Continue if/Stop If" step to show the user some feedback explaining why the action has stopped.
Use this action to show a success, warning, error, or info message.

## Prompt User
You can include bindings in the message text.

This action adds an additional step before other actions are run. The title, message, and button text can all be customised. It provides a prompt to the user, and won't run any other action after it unless they click the confirm button. This is very useful for a longer chain of actions, as it provides context and gives the option to cancel the process before it starts
## Prompt user

![](https://files.readme.io/8499167ec5c02eb383158fb8bf283960a3e4426483ae9edb667a76707e8179df-image.png)
Use this action to confirm a user decision before continuing a chain of actions.

<br />
If the user cancels, later actions do not run.

## Open Side Panel
## Open side panel

Provides a list of all side panels within a current screen, selecting one will open that side panel whenever the action is hit.
Use this action to open one of the screen's side panels.

## Close Side Panel
## Close side panel

Closes the currently open side panel.
Use this action to close the currently open side panel.
Loading