# Procedures

A **procedure** is the set of steps for one kind of request: a return, a question about an account, a complaint, a change to a booking. The agent's instructions keep one line per procedure, its **trigger**. When a caller's request matches a trigger, the agent loads that procedure's steps and follows them.

- **Shorter instructions.** Long topic sections leave the Instructions tab, so the agent reads less on every turn.
- **Steps only when needed.** A caller who asks about opening hours never loads the return steps.
- **One place per topic.** You edit each procedure on its own, instead of searching a long prompt.

## Create a procedure

1. **Open the agent → Procedures**, right under Instructions.

2. **Click New procedure** and fill in three fields:

   - **Name**: what you call it, e.g. "Product returns".
   - **Trigger**: one sentence describing the caller's request, e.g. "The caller wants to return a product". The agent compares what the caller says with the trigger, so describe the request the way callers make it.
   - **Steps**: what the agent does, in order. Variables such as `{{customer_name}}` work here.

3. **Click Save procedure.** It is saved for your company and added to this agent, which uses it from the next call once you save the agent.

## Start from a preset

The Procedures tab offers ready-made procedures: **Account questions**, **Product returns**, **Complaints** and **Change a booking**. Each one links to an **Identity check**, which is added with it if the agent does not have one yet. Presets come in Greek for Greek agents and in English otherwise. They are a starting point: edit the steps to match how your business works, then save.

A preset never replaces a procedure your company already has with the same key: that one is added instead.

## Use one procedure on several agents

Procedures belong to your company, like workflows. Write one once and add it to every agent that needs it:

- **Add an existing one.** Under **New procedure**, **Your procedures** lists the company's procedures with the number of agents that use each. Pick one to add it to this agent.
- **Edit once.** Saving a procedure changes it on every agent that uses it, from their next call. The editor shows **Also on N agents**, and Save asks before it changes the others.
- **Change it for one agent only.** **Duplicate** makes an independent copy and adds it to this agent. Edit the copy and remove the original from this agent.
- **History.** Every save keeps the previous text (the last 20). **History** shows them and **Restore** puts one back, for every agent that uses it.
- **Remove from this agent.** The procedure stays saved for the company and on the other agents.

Which procedures an agent uses is saved with the agent and its versions. A procedure's text is not: it is the same for every agent and every version that uses it.

## Move sections out of a long prompt

If the Instructions already have a section per topic, move them one at a time:

1. Create a procedure for the topic and paste the section into its **Steps**.
2. Delete that section from **Instructions**, so the agent does not get the same steps twice.
3. Keep in Instructions: who the agent is, the tone, the general rules, how to tell requests apart, transfers and how to close the call.

Facts the agent quotes (prices, opening hours, policies) belong in [Knowledge](https://docs.voicelogica.ai/agent-configuration/memory/), not in procedures. Under the prompt editor, Instructions shows how many characters the procedure list adds, with a link to the Procedures tab.

## Link procedures

In the steps, type `@` and pick another procedure, e.g. "First follow @verify_identity". When the agent reaches that step, it loads the linked procedure the same way.

Turn the **Trigger** off on a procedure that should only be reached through a link, such as an identity check that several procedures use. It is then marked **Linked only** and stays out of the instructions list.

**Used by** shows which procedures link to the one you are viewing. A procedure that others link to cannot be deleted until those links are removed.

## Optional fields

Under **Key, folder, tools**:

- **Key**: made from the name, e.g. `product_returns`. `@` links use it. Lowercase Latin letters, digits and `_`.
- **Folder**: groups procedures in the list. Folders are only for you; the agent sees the same list either way.
- **Uses**: the tools, workflows or MCP tools the steps use. A tool that is later switched off on the agent is marked.

**Remove from this agent** takes a procedure out of this agent's calls; it stays saved for the company and on the other agents that use it.

## Limits

| What | Limit |
|---|---|
| Procedures per agent | 60 |
| Steps of one procedure | 12,000 characters |
| Trigger | One line, 200 characters, no variables |
| Instructions list (all triggers together) | 6,000 characters |

The size bar under the list turns amber above 80% and red over the limit. To make room, shorten triggers, or turn the trigger off on procedures that are only reached through links.

## Test before it goes live

Save the change as a version, then run a [test scenario](https://docs.voicelogica.ai/agent-configuration/test-your-agent/) for each procedure on that version. Every load appears in the call as a `load_procedure` tool step, so a scenario can expect it. If the agent answers without loading the procedure, write the trigger closer to how callers ask. Then put the version live. A change to a procedure's text reaches its agents as soon as you save it. To test new steps first, duplicate the procedure, add the copy in a version and test that.

## From a chat with your AI assistant

With the Voice Logica connector (Claude, ChatGPT or the assistant in the app):

- `procedures_query` lists and reads the company's procedures (`list_procedures`, `get_procedure`) and their history (`list_procedure_revisions`; give it a `revision` number to get that revision's full text), and proposes procedures from the sections of the current prompt (`split_prompt_into_procedures`).
- `procedures_execute` creates, edits (also part of the steps), duplicates, restores and deletes procedures, and adds them to or removes them from an agent (`attach_procedures`, `detach_procedures`). For those two, `destination: "version"` saves into a version to test first; `"prod"` changes the live agent.
- `procedures_query` (action `list_procedure_presets`) shows the presets in the agent's language; `procedures_execute` (action `add_procedure_presets`) adds them.
- `get_guide agent_procedures` walks through the whole move.

For example: "Split my agent's prompt into procedures in a new version, then run a test for each one."

## Frequently asked questions

**What is the difference between a Voice Logica procedure and knowledge?**
Knowledge holds facts the agent looks up and quotes: prices, opening hours, policies. A procedure holds the steps the agent follows for one kind of request, such as a return or a complaint.

**Does the agent load every procedure on every call?**
No. It loads a procedure only when the caller's request matches its trigger, or when steps it already loaded link to it. Steps already loaded in a call are not loaded again.

**Do procedures work on WhatsApp, Viber and the website chat?**
Yes, the same way as on phone calls. Speech-to-speech (realtime) agents cannot load steps on demand, so they receive all active procedures in full instead. Text-mode tests load them like a call, unless the test is set to give them all from the start ([how](https://docs.voicelogica.ai/agent-configuration/test-your-agent/#quick-checks-without-a-call)).

**What happens to procedures when I put an older version live?**
Each version keeps which procedures it uses and runs their current text. A version saved before procedures existed runs without them.

**Can several Voice Logica agents use the same procedure?**
Yes. Procedures belong to the company: add the same one to several agents, and an edit changes it on all of them from their next call. To change it for one agent only, duplicate it.
