Each step has a specific responsibility.
In Elba, workflows start with a Start node and end at one or more End or Transfer nodes. Between those points, teams can add nodes for speaking, collecting information, running logic, booking appointments, using tools, or handing off to humans.
That design makes the agent easier to reason about.
A team can look at the workflow and ask:
- Where does the call begin?
- What happens if the user wants to book an appointment?
- What happens if the user is frustrated?
- What happens outside business hours?
- When do we transfer to a human?
- What is the fallback path?
Those are operational questions. A workflow graph makes them visible.
The building blocks of a regulated AI workflow
A production workflow needs different types of steps.
Some steps are simple and deterministic. Others need AI reasoning. Others need integrations. Others need human escalation.
Elba supports this by separating workflow behavior into node types. The runtime reference describes node types such as Start, Objective, Say, Detail Collection, Appointment, Transfer, Conditional, Code, Realtime, End, and Intent Router.
Here is how those pieces map to real-world operations.
Start node: begin consistently
The Start node controls how the interaction begins.
For example:
“Hello, you’ve reached CityCare Clinic. I’m Elba, the AI assistant. I can help confirm appointments, answer general questions, or connect you to the team.”
This sounds simple, but it matters. In regulated workflows, the first message should clearly set expectations. The user should know who they are speaking with, what the agent can do, and when a human can help.
Objective node: pursue a goal
The Objective node is where the AI works toward a conversational goal.
That goal might be:
“Confirm whether the caller wants to keep, reschedule, or cancel an appointment.”
Or:
“Collect the required intake details for a new patient request.”
Or:
“Understand whether this is a billing, scheduling, support, or emergency issue.”
Elba’s workflow docs describe the Objective node as the primary “smart” node, guided by persona, instructions, and goal.
This is important because the AI is not just responding message by message. It is trying to complete a defined operational task.
Detail collection: gather structured information
Many regulated workflows require specific fields.
A clinic may need:
- Name
- Date of birth
- Phone number
- Appointment type
- Preferred time
A claims workflow may need:
- Policy number
- Incident date
- Location
- Short description
A legal intake workflow may need:
- Case type
- Jurisdiction
- Urgency
- Contact details
The key is that the AI should not merely produce a transcript. It should help collect structured information that the business can act on.
The CallHub runtime reference includes a Detail Collection node for extracting structured data fields from the caller.
That makes the conversation operationally useful after the call ends.
Code and conditional logic: make deterministic decisions
Not every decision should be left to the model.
For example:
- Is the office open right now?
- Does the caller already have a session key?
- Is this account eligible for this workflow?
- Should this route go to the after-hours path?
Elba supports Code nodes for predefined operations such as checking business hours, and Conditional edges for logic-based routing.
This distinction matters.
AI is useful for interpreting human language. Deterministic logic is better for rules.
A regulated workflow should use both.
Edges: where control really happens
Nodes define the steps. Edges define how the agent moves between them.
This is one of the most important parts of workflow design.
Elba supports three edge types:
- Normal edges for direct transitions
- Prompt edges for AI-driven transitions based on conversation context
- Conditional edges for deterministic routing based on session variables
That gives teams a practical way to separate nuance from rules.
Use a Prompt edge when the decision depends on meaning:
- The caller sounds frustrated.
- The caller is asking for a human.
- The caller is describing an urgent medical issue.
- The caller wants to reschedule, not cancel.
Use a Conditional edge when the decision depends on data:
business_hours == true
appointment_found == false
caller_verified == true
language == "de"
This is how you avoid turning every business rule into a prompt. The AI handles language. The workflow handles process.