Output
The Output Step is the final step in your workflow, responsible for returning results from the tool's execution to the agent or end-user. It provides flexibility in defining the type of output, injecting dynamic values, and including additional files or media generated during the workflow.
Key Features of the Output Step
Output Types:
The Output Step supports multiple output types to suit different use cases:
Text: Return plain text responses, optionally including dynamic values
JSON: Return structured data in JSON format, which can include variables
Dynamic Value Injection:
You can inject dynamic values from the workflow runtime into the output. These values can be:
Variables defined earlier in the workflow.
Tool Parameters
You can not output Context Variables
Unified or Separate Outputs:
If the workflow has multiple branches, you can:
Return outputs from each branch separately.
Combine outputs into a unified response by merging branches before the Output Step and then use a JSON output to pick the desired fields.
Optional Media Attachments:
You can attach files or media to the output as additional knowledge for the agent or end-user.
Example use cases:
Sending a generated report as a PDF.
Returning an image or video is processed during the workflow.
Providing supplementary documentation or resources.
Set Contexts
You can set context in an output node, which allows you to assign any tool variable value to context. This newly created context value can then be utilised by agents or other tools. More information on context can be found on the Context in HALO Page and the Agent Editor Page. Note that you are not allowed to set system context variables.
Example Use Case:
When an API call retrieves user information (such as name, email, age, etc.), this information can be made available for use across all agents and tools.

End Conversation
As you can tell by the name, by enabling “End Conversation”, the conversation ends and resets and the last output of the tool is used as the last utterance of the conversation. Consecutively, it was two distinct behaviours for chat and voice:
For voice it simply utters the output of the tool and hangs up the call immediately.
For chat it will send the output of the tool as the last response of the conversation. However, if the user continues on the next interaction a new conversation will spin up, meaning that all previous interactions are now disregarded in the new conversation.