Got AI trust issues? Me too. So let’s fix that in this visual step-by-step guide.
Look, I love a good surprise as much as the next person, but not the kind where my AI agent cancels a customer subsription just to "resolve the issue faster."
AI agent are making decisions, calling APIs, and triggering real-world actions. Exciting and scary.
And what if they open a support ticket twice or pull the wrong customer's data? Or if they take a series of actions you didn’t anticipate or approve?
So the questions is: Can we build an AI agent that’s smart, helpful, and still plays by the rules YOU set?
Yes. Yes we can.
This build-along guide shows you how easy it is to create a smart and secure AI agent using Conductor.
AI is unlocking powerful new ways to automate and solve tasks intelligently.
But with great power comes ... you guessed it, serious security concerns.
We’ll walk step-by-step through building a Customer Success AI Agent, complete with guardrails. Basically, you stay in control while it does the work.
You’ll be surprised how fast this comes together by just clicking through the Conductor UI.
By the end of this post, you’ll have a working AI agent with decision logic, memory, guardrails, and actions, all wrapped inside a structured and visual workflow.
Not a fan of reading? Hit play. Prefer to go step-by-step? Scroll on.
So let's build something powerful and trustworthy.
In this demo, I’ll show you how to build a simple AI agent using the Conductor UI, no coding required. If you follow along, you’ll have the basic framework for a customer success agent that you can keep building onto.
Here are some foundational details about the workflow:
"CustomerSuccessAgent"
This workflow is made of multiple connected tasks, each designed to do one thing well.
You'll need:
That's it!
CustomerSuccessAgent
.
SET_VARIABLE
TaskSET_VARIABLE
as your first task.memory
,type to Object/Array
, and value to []
.
SET_VARIABLE
task
Do_While
Loopset_variable
task to create the next one.DO_WHILE
operator task.number
, value=5
, type=Number
.(function () {
return true;
})();
5
.
DO_WHILE
loop
Do not save the workflow yet. You need to create the first task inside the DO_WHILE
loop to be able to save it.
DO_WHILE
loopdo_while
component.
DO_WHILE
loop — an LLM_TEXT_COMPLETE
task
LLM_Text_Complete
TaskYou need to create an LLM integration for the LLM Provider and Model fields.
<YOUR_COHERE_API_KEY>
→ You can get this from your Cohere dashboard, under API keys, under Trial Keys.https://api.cohere.ai/v1
→ this is the default API endpoint for Cohere.CustomerSuccessLLM
(the one you just set up in integrations)command-a-03-2025
Now it's time to set up the Prompt template so your LLM knows what to do.
This template helps your LLM act like a customer success agent, using past info to decide the best next step from a list of actions to keep the customer happy.
You are a customer success agent for a Software-as-a-Service company, handling the relationship with a particular customer. Your goal is to keep the customer happy.
This is the customer information: ${CUSTOMER_INFO}.
Here is everything that has been done so far: ${CONTEXT}. It contains a list of your previous responses, as well as the results of some actions you have taken.
The only actions you might take multiple times are `WAIT` and `ESCALATE`. Each other action should be taken AT MOST ONCE. If an action responds with dummy data, try taking a different action instead.
The actions you have available to you are:
- `ESCALATE`: If you have low confidence on your next action or get lost, return the message `ESCALATE` to ask a human for help.
- `GET_HUBSPOT_DATA`: You can get more information about a customer by returning the string `GET_HUBSPOT_DATA` on a line by itself. In reality this will let you call a variety of hubspot APIs, but for the purposes of this demo it does not actually work.
- `GET_SLACK_HISTORY`: Get the 100 most recent messages from the Slack channel with this customer.
- `OPEN_ZENDESK_TICKET`: Open a support ticket for the customer. This action should ONLY EVER BE CALLED ONCE PER WORKFLOW. If you are thinking about opening another Zendesk ticket, ESCALATE INSTEAD.
In your Workflow, in the LLM_TEXT_COMPLETE
task you can now set up the Prompt template to your new prompt: CustomerSuccessPrompt
${workflow.input}
and the type to string
${workflow.variables.memory}
and the type to string
SET_VARIABLE
taskLLM_TEXT_COMPLETE
to create a new task, still inside the the DO_WHILE
loopSET_VARIABLE
task["${llm_text_complete_ref.output.result}"]
SWITCH
taskset_variable_1
, still inside the DO_WHILE
loopSWITCH
task${llm_text_complete_ref.output.result}
to switchCaseValue keyGET_HUBSPOT_DATA
GET_SLACK_HISTORY
OPEN_ZENDESK_TICKET
(function () {
if ($.switchCaseValue.includes("ESCALATE")) {
return "ESCALATE";
}
let actions = ["GET_HUBSPOT_DATA", "GET_SLACK_HISTORY", "OPEN_ZENDESK_TICKET"];
for (const action of actions) {
if ($.switchCaseValue.includes(action)) {
return action;
}
}
return "ESCALATE";
}())
SWITCH
task
This is what you should have so far:
Human
taskSWITCH
task, leading to the defaultCase.HUMAN
task
HUMAN
task for defaultCase
HTTP
task for OPEN_ZENDESK_TICKETFor the OPEN_ZENDESK_TICKET, you can set up an HTTP
task, which (when configured with your ZENDESK API) will create the ticket for you from the workflow. For this demo, I am not setting it up to keep the demo simple. But you get the idea. You can use the HTTP
task to interact with APIs. 🤗
HTTP
task, for the OPEN_ZENDESK_TICKET switch case
HTTP
task for GET_SLACK_HISTORY and save the output into a variableYou can use the HTTP
task here to get your slack history, and then set up a follow up SET_VARIABLE
task to save the output of the HTTP
task to be used in the workflow.
Here is what this would look like:
HTTP
and SET_VARIABLE
tasks, for the GET_SLACK_HISTORY switch case
HTTP
task for GET_HUBSPOT_DATA and save the output into a variableYou can follow the same steps as step 10 to set up an HTTP task to get your hubspot data and then use a SET_VARIABLE
task to isolate the output from that data to be used in the workflow.
The final output for the entire workflow should look like this:
Wow, all done! You now have yourself a Customer Success AI Agent
Sure, AI makes things faster and smarter. But once it starts taking real actions? The stakes go way up.
You have to ask:
Without constraints, AI can expose sensitive data or take actions it shouldn’t. That’s a hard pass, especially in industries like finance, healthcare, or customer support.
Good news. You don’t have to choose between power and control. You just have to find the right balance.
With Orkes, you can build AI agents that are smarter and safer. With guardrails like:
Bottom line: Security in building AI agents is paramount. Orkes helps you harness AI without losing control. That’s the kind of automation you can actually trust.
The Customer Success Agent is an AI Agent.
Why? Because it works toward a goal on its own. It makes decisions along the way and adapts as needed. The path it takes can change. You don’t know exactly what it will do or when it will finish. You only know it’s moving toward its goal.
So what's the difference between AI Agents and Agentic Workflows?
That said, some argue the distinction doesn’t really matter. The important thing is to build useful, reliable features, whether you call them agents, workflows, or something in between.
→ Want to learn more about the difference between them? Check out this super useful article, written by our writer Liv: Agentic AI Explained: Workflows vs Agents
Here’s the TL;DR:
So yes, our Customer Success Agent is an AI Agent built within a workflow. Blending the structure of workflows with the flexibility and intelligence of agents.
Who said you can't have it all? Not me, that's for sure. ; )
If you get stuck, have questions, or just want to see how others are building their own AI agents, you're not alone.
We’ve got an entire community of builders, creators, and curious minds ready to help—and cheer you on. Already built something? We definitely want to see it.
Drop your Customer Success AI Agent build here
Whether it’s a full production setup or a scrappy weekend experiment, we’re here for it.
AI is powerful, there is no doubt about it. But power without control is a risk.
That's why the real breakthrough isn't just building AI agents at random. It's building them responsibly. That includes guardrails and transparency, with the occassional human oversight.
What you saw in this demo is a foundation for a customer facing AI agent that respects boundaries.
With an orchestration engine like Orkes Conductor, you don't need to gamble with autonomy. You can design workflows that are:
And whether you’re just exploring AI agents or already rolling them out across your organization, building your agents within a workflow offer the clarity and control you’ll need as things scale.
So go and build something bold. Just make sure it's built to be trusted.
See you in the next demo!
—
Orkes Conductor is an enterprise-grade orchestration platform for process automation, API and microservices orchestration, agentic workflows, and more. Check out the full set of features, or try it yourself using our free Developer Playground.