Skip to main content

Operations

2025.1.01+

An operation is a single AI invocation as part of an agent. It is possible to define multiple operations on a single agent instance, allowing to reuse model and other settings. Depending on the agent type, like orchestrator agents and document agents there are pre-defined operations. Those pre-defined agents are used as part of automatic invocation within Flowable.

Creating a new operation

To create a new operation, operations must be selected on the left hand side and then press the 'Add operation' button below the list of operations. A modal opens to add operations, to fill in the basic information.

The name describes the purpose of this operation and is used to identify it when linking it to an agent task in BPMN and CMMN. With the key, a unique identifier, the agent is linked to the task, and it is used to execute the agent.

Input and output mapping

The "Input type" and "Output type" allows to define the different types available. There are two main options available:

  • Text: Simple, potentially unstructured text is used as input/output. For inputs the text is available as part of the prompt with the expression ${text}.
  • Structured: A structure is specified for input/output. A new tab will be visible to define the structure.

For the document agent there are different input and outputs, they are described as part of the document agent reference.

Text input

The text input can be used in the system and user message with the pre-defined variable ${text}

Structured input/output

For a structured input/output there is a separate corresponding tab, in which it's possible to add parameters:

There are three different fields which need to be provided:

  • Label: A human-readable label of the property, this name will be shown for example inside the agent task in BPMN and CMMN when linking the operation. Furthermore, for output parameter the name will be also sent to the AI as part of the schema to clarify which data is required.
  • Name: A name, will be automatically generated based on the label. This name is a variable and should not contain any spaces etc. Assuming the name is city, the corresponding attribute will be available in the user and system message with the expression ${city}.
  • Type: The type of the variable, this can be a string, date, boolean etc. It will be used provide an appropriate input field to the user, as well as for output fields to tell the LLM which format is required.

2026.1.0+ Input parameters can also use a Data Dictionary type, so a structured object defined by a data dictionary can be passed into the agent as an input parameter. When an operation is invoked, the value provided for each input parameter is converted to its declared type — for a data dictionary parameter it is resolved into the referenced data dictionary type. If a value cannot be converted to the declared type, the invocation fails with an error rather than passing an invalid value on to the agent.

Parameter Constraint Types

2026.1.0+

Parameters can have guardrail constraints that validate values before or after the LLM call. The following constraint types are available:

ConstraintApplies ToDescription
minLengthStringValue must have at least this many characters
maxLengthStringValue must have at most this many characters
patternStringValue must match this regular expression
blocklistStringValue must not contain any of the specified literal substrings (case-insensitive)
allowlistStringValue must exactly match one of the allowed values
minNumberValue must be greater than or equal to this number
maxNumberValue must be less than or equal to this number
minDateDateDate must be on or after this date
maxDateDateDate must be on or before this date

Prompt

There are up to three different prompt types available, depending on the context: default prompt, simple prompt, prompt template.

For the prompt simple prompt and prompt template it is possible to specify a system message and user message. A user message is an input provided by the end user that initiates interaction with the AI. A system message is a special instruction used to guide or control the behavior of the AI, only visible through Flowable Control in case audit for exchanges is enabled. System messages can set context, define tone, or impose rules on how the AI should respond, helping shape the overall interaction without being part of the user-facing conversation.

note

For external agents the system message can't be defined since this should be defined in the external agent itself. Only a user message needs to be provided

Simple prompt

A simple prompt is the direct way to define the prompt directly in the operation. This allows to use JUEL expressions inside the template.

For a structured prompt the name is available as variables, while for a simple text prompt the input can be referred to with ${text}.

Prompt template

The prompt template allows to link a text based template model. With a template model there is the option to use a Freemarker template with more options to specify if conditions etc.

For a structured prompt the name is available as variables, while for a simple text prompt the input can be referred to with ${text}.

Default prompt

The default prompt is only available for pre-defined operations. It allows to use a prompt which is from Flowable engineered and maintained over the time of the releases. There is the possibility that this prompt template gets improved in the releases, when we find better prompts based on our tests. To customize prompts use either a simple prompt or a prompt template, both options will disable the default prompt and will not get adapted and changed automatically in new versions.

Generating prompts with AI

2026.1.0+

When AI-assisted modeling is enabled, the AI Prompt Helper can draft the system and user message of a simple prompt for you. This removes the need to switch to an external chat tool and copy prompts back and forth into Design.

An AI Prompt Helper button is shown in the top-right corner of the system message and user message fields.

The AI Prompt Helper buttons on the system and user message of a simple prompt

note

The AI Prompt Helper is only available for the simple prompt type, not for a prompt template or the default prompt. As with a regular simple prompt, external agents and A2A agents only offer it for the user message, since they don't define a system message.

Clicking the button opens a chat panel next to the message that is being edited. Describe in natural language what the message should do, and the assistant drafts a suggestion. The assistant is aware of the operation it belongs to — its name, key and the configured input and output parameters — and of the current content of the message, so the generated prompt can reference the available variables (such as ${city}) and build on what you already wrote.

The AI Prompt Helper drafting a user message

Every suggestion is shown as a Generated prompt block. Press Apply to System Message or Apply to User Message to insert it into the corresponding field. You can keep chatting to refine the result — for example "make it more concise" or "add error handling instructions" — and apply a later suggestion once you are happy with it.

Finding where an operation is used

To see which models call an agent, open the agent model and click the Usage button in the toolbar, or select Usage from the model's actions menu. This opens the Model usage dialog. See Model Usage for a general description of the Uses and Used by tabs.

For an agent model, the Used by tab lists every process, case, form and page that calls it. Each entry can be expanded to show which elements reference the agent, grouped by the specific operation that is called. This makes it easy to see which operations are used and where.

Agent model usage