Welcome to Agentforce Demo Day!

Leah McGowan Hare hosted demos of Salesforce's AgentForce platform from Indeed, Shark Ninja, and LIV Golf. Indeed built a service agent to verify employer accounts, Shark Ninja scaled to 250k chats with an unboxing guide, and LIV Golf's Fan Caddy personalizes merchandise by venue location.
Chapters
AgentForce will have the ability to draw from all the information possible that SharkNinja owns. We want this to handle any type of question or product recommendations that they need.
Whether we're talking about better servicing a consumer that's already purchased something with us or is considering another product, AgentForce is going to help us delight those consumers, always bringing them back in to the Shark Ninja family.
The Genentech solutions allow us to scale some of the things that we want to do at an exponential rate.
This leads to more job seekers having great outcomes.
This is really a digital workforce.
The first agent that we built was a service agent, an agent who can go out and do automated tasks, being able to pull data in by a data cloud that can find insights, that can do a lot of things that humans aren't necessarily going to be the best at. We know it's going to very meaningfully transform the way that we operate.
Hello everyone.
Welcome and thanks for joining Agentforce Demo Day. I'm your host, Leah McGowan Hare, live from Salesforce HQ in San Francisco. Today is all about learning from your peers. This AI world is moving fast, and the best thing we can all do is learn from each other. No gatekeeping. We have a group of amazing builders from Indeed, Shark Ninja, and LivGolf here to share what they've built with AgentForce and share their best practices, their learnings, and their success. We're gonna show you how Headless 360 enables you to build faster than ever with coding agents and deep dive into those use cases that agent script unlocks. During the event, drop your questions in the chat. After the broadcast, stay tuned for live Q&A and a hands-on training where you'll learn to build your very own agent. Joining us today is Oliver Bowden, Senior Technical Product Manager at Indeed. Oliver, welcome.
Thank you for having me. Happy to be here.
Oh, I'm excited to hear about a little bit about Indeed and what you're doing over at Indeed with Agentforce.
Yes. So whenever we talk about Indeed, we talk about our mission.
Okay.
So our mission is very simple. We help people get jobs.
All right.
There's a lot of responsibility with that mission. And the way we help is we have the leading marketplace connecting job seekers with employers, right? And when it comes to numbers, we have millions of job seekers applying and we're connecting those job seekers with employers together. And we, one of the key metrics that we track is hires per minute. And we just announced a big metric where we are doing 31 hires every minute globally.
Oh, wow.
It's a pretty big metric.
It is a pretty big one.
So whenever we think about building agents, we think about how can we build agents that help us improve that metric even further.
OK.
Right?
And to give you a sense of how we think about that in implementation, this diagram is how we built our ecosystem of agents. You can see we have Salesforce as a platform at the top. And then we think there's two key personas that we're working off to whenever we build these agents. One of them is internal-facing employees, which we call them employee agents, where we have two agents that we've been using for IT purposes and also for PTM teams, and we also have external-facing agents as well. We have an SDR agent and we have a service agent, which is the one I'm going to be talking a little bit about today. We then also, we need flexibility when it comes to data, right? So we are able to leverage Data Cloud for certain data points. And whenever somebody posts a job and they're reaching out 5 seconds later to ask for a status, we have flexibility to use MuleSoft to go straight to the source. So we have those options that are very important for us. Then all the way to the left is the big shift that we've done when it comes to building agents, which we're leveraging coding agents. Without realizing it, we started using coding agents. Then we saw ourselves copy-pasting a lot of information to bring that context into the coding agent. So we work very closely with the product team to leverage these skills. We were early adopter of these skills to then use that to give our coding agents more autonomy when it comes to that build.
I would love to see how you're working with coding agents.
Yes, I can show you. Let me give you a quick use case.
Okay.
So you can get a sense of a specific problem that we started fixing with our coding agents. So the service employer agent has a couple of different sub-agents that we provide service for. There's this one use case where you think about employers, they want to post a job quickly, they have to hire somebody. We need to make sure that the company that's posting is a high-quality company.
Right.
So they have to go through a verification process.
Makes sense.
Then whenever the company is vetted, then we have to make sure the job has the right quality standards. So we also have to, evaluate that job. When we launch our agent, we had a situation where we were trying to— somebody asked, hey, why is my job flagged? Which is a very common question that we got in our service channel. We want our agent to investigate the account, make sure the account looks good, and if the account looked good, then investigate the job.
Okay.
What we started seeing is that it was whenever it found the account is active, instead of it going to the job, 75% of the time it was sticking with the account status and telling the user the account is active.
So it would say, hey, your account is whatever active, but it wouldn't even go to the next level and look at the job.
Correct. The job was flagged, so there was a lot of frustration as you can imagine, right? So for that use case, that's when an agent for script comes in.
Okay.
Because we can add that determinism. So I'm going to show you through our coding agent in Cursor how we can use these skills to then do that implementation. All right. Okay. So this is Cursor, which is the IDE that we use to run our coding agents. I'm going to call a skill that we built that I'll talk through in a little bit. I'm going to explain the issue as far as me running the skill. So I can say, you can explain it the way you want it. So you can say when an employer reaches out about their job being flagged, the agent is saying their account is active, active. Instead of investigating the job. Can you fix this? Very simple.
Right.
Right. So at this point, it's running its process using the skills from Salesforce, from Agentforce. And then we have this orchestration skills that are then controlling when do we call this, when do we make sure we understand, make sure the agent, the coding agent has context.
Right.
Because that's where a lot of the times the coding agents fail is that they don't, they start drifting. They don't understand the context and then they, start building quickly before understanding, which is very common with AI. So we add in— this is some tricks that people that are starting to work with coding agents. Write your play— write playbooks and write them as files that then a skill can orchestrate, get the agent to read the file so you don't have to keep briefing the agent over and over again.
Say that whole piece again, because I think that's an amazing best practice.
And it's something—
write those playbooks.
Yeah. And it's— we saw that issue a lot on our end. We saw ourselves briefing the agent over and over again. Then we realized, hey, instead of having to explain it all over again, why don't we create a playbook?
Yes.
Then we literally, it's just a Markdown MD file.
Right.
Through all the conversations we had in the past, we use AI to help us create the playbook.
I love that.
Then now we see the coding agent, when it's drifting, it goes to the playbook and we see it self-correct.
You have to make sure all the developers are using that playbook and not creating their own universal playbook.
Correct. Because that's happened a lot. You have the developers using, so that buying from an architectural standpoint is critical because you had to treat it like a new agent that you're maintaining. Right. So in this case, it takes a long time. It has to do some discovery work, pull metadata, do some baseline testing to make sure that the fix is going to work. It takes time. I ran that already here on a separate tab.
Almost like a cooking show. It's like, I already have the precooked one here, right here.
Exactly. Just to make sure it's ready, and then you can see the history of it. And you can actually pull a report. And that's something we also did for our stakeholders. It exports a report that you can just share your stakeholders with all the go/no-go recommendations, right? Right. So this already ran and I'm going to actually show you how that looks like in Agent 4 script. So this is the agent. What's new is these two variables here that you see at the bottom, employer status active and employer status inactive. So those were added as part of determinism to make sure that we're not accidentally going to the— staying in the account status when we should be investigating the job. I'm going to give you a quick preview so you can see how that looks.
I want to see that.
So here's somebody, very typical question, why Let me just make sure because we want to make sure this answer is personalized. So you can see it's set up to Oliver and this is because it's a builder environment. But obviously in production we use OAuth tokens to identify users. So just you see the Oliver Bowdoin set up as the variable so it's going to be personalized. So let's go ahead and run a question. Like I said, very common question, why is my job flagged? So at this point, AgentScript is going to be running through its process. And you'll see it's much faster now because we're using determinism, where before it would take longer. And now instead of just staying with the account being active, it's now passing to the job and then providing recommended next steps, which is something that we started adding also. You know, not just about what is your current status, but what you can actually do next.
Next, I like that.
And then the agent is able to like understand.
So not just answering questions, but taking actions.
Taking actions after, right? And that, 'cause that's what employers wanna do. Okay, understand, what do I do next, right? And then you can see here on the right, the different steps it took when it actually ran the deterministic approach. If you click on one of these, you'll be able to see the full trace and then do your troubleshooting there if you wanted to.
I love that. Now, that was great testing on one use case, one or one record. But how to ensure that this agent really is performing at par at the right level? How do you test at bulk and do it enterprise level?
That's a very good question because obviously this is unit testing. Right. A human can only do so much when you're human and you're testing manually. We have thousands of conversations happening every day. So how do you evaluate different flavors of the conversation? That's where you can go back to your coding skill and do some testing. So I'm going to show you how that looks. You can either start a new chat or use the same one. We actually baked in testing into our orchestration skill just to make it a little bit easier, but you can run it specifically and say something like, let me go back to the—
I'd say your coding agent is using MCP protocol to—
Yes.
We use MCP to pull data from Jira tickets.
Okay.
And then the skills use CLI to start pulling data from Salesforce.
Love it.
And it's happening all autonomously. And another tip is to do human-in-the-loop logging.
Yes.
So that we also have that being logged so that way we can go back and check, okay, where did the agent fail that the human had to correct it? And we use that to improve the agent afterwards.
And that's like a whole self-healing process.
A self-healing process. That's what we want to get to, to the point where the agent starts self-healing.
Yes.
We remove human-in-the-loop. Actions there. So, right now I'm going to show you real quick how to actually run a bulk test. Again, you can either part— make it part of your orchestration skill or you can call it specifically as a testing agent for skill which runs testing center behind the scenes. And you can say something like bulk test the job status agent and make sure you cover the scenarios of account being active, and being inactive.
That's all you have to give it and it will come up with all the different tests. Yes. I remember when you would have to, as a developer, come up with every single test case and it would take weeks if not days, and now just in like that.
Exactly right. Then we started, it comes up with its utterances and then you want to fine-tune them.
Right.
So we also have our library of utterances within there. Just like we have a playbook.
Yes.
We have baselines.
Another great best practice.
Yeah, because then it starts going and then The next time it'll be closer and closer to what you actually want to test.
That's great. That really covers a lot of it. And the key thing here is like, okay, so we're doing our testing and you're testing at bulk. This is great. The next piece about that after you deploy, right?
Yes.
You then have to observe how are these agents performing? How are you observing their performance and tweaking it? And then you go right back again into the lifecycle. So how are you guys doing over there at Indeed?
Yeah, that's a very good question because you can feel as prepared as you want when you do this.
Right. It's all theory.
It's all theory. When you go to production, you're going to go, okay, it didn't go quite the way I wanted to, right? So our starting point is there are some manual evaluations you have to do at first, right? And we leverage observability.
Okay.
Agentforce observability. Latency is big for us. So we look at latency, we look at quality just to make sure that we don't have any big regression, right, in production. So there's some key metrics and we can see them by sub-agent. Or you can see it by intent, right? And then very here, if you scroll down here at the bottom, we also have SMEs per different sub-agent. So whether it's the account job status, which we call moderation, or the invoice, there's different SMEs. So when we have our weekly sessions with them, we can easily find chats about that topic, review it with them, and then they can help us write the tickets to improve the agent after.
Ah, okay. I love that. So once again, bringing the human in the loop there. That was a lot of goodness.
Yes.
I could sit here and talk to you all day because I just love getting into the details. My inner developer coming out. So thank you, Oliver. Don't go anywhere. We're going to come right back to you. That's the power of the right tools meeting a great idea. The future of work isn't humans clicking buttons. It's intelligent agents taking actions for us. But for an agent to be effective, it needs to talk directly to your data. Let's head to the whiteboard to look at the connective tissue that is making this possible. Here to show us is Nathan Price, Senior Director of Product Management here at Salesforce.
Thank you, Leah. So let's dive a little bit deeper into our agent development lifecycle and specifically look at some of the new awesome features that we have as part of Headless 360. And actually, before we dive in, let's actually talk a little bit about what even that development lifecycle entails, right? So we have some pretty key steps to go over. All right, first off, you start with building your agent. You'll decide what type of agent you want, whether that's an agent that's going to be customer-facing or one that your employees will use. And eventually, after developing it, crafting it over time, you'll want to test and evaluate how the agent will perform, right? You'll kind of test a bunch of different edge cases and really see how that agent might perform and how some of those subagents will work once you deploy this live. And then once you actually get that deployed and live and your customers are using it, you need to go ahead and observe that agent, see how— see what the outcomes are in the real world to feed that information back into the self-learning loop so that you can overall improve the orchestration of your agent. And so one of the key things about Headless 360 is just how open and extensible we're trying to make this platform, right? One of the things that you just heard from Indeed was all these skills that we're making available, right? So we have skills throughout this entire development lifecycle, right? You saw first and foremost skills that are in our build step, right? So we have a variety of ways in which you can build agents. You can build agents using your favorite coding tools, but you can also build agents in Slack and you can build agents in our new Agent Force Builder as well. And what's great about this is these skills and the learning from these skills are, are transferred through all of these different places. And then once you're happy with that agent, right, you can use those same skills to build, uh, test and deploy your agent as well. Right, so you just saw how you can use those skills to run a variety of edge case testing, uh, test a bunch of different scenarios for your agent, really see how it's going to perform in a variety of different scenarios. And then you can actually use those skills to go and deploy the— your agent as well, right? So you can do this all from the comfort of your favorite coding agent. And so again, this is all in the effort to make this really extensible, bring you the power to wherever you're doing work. Then the other side of this is how open we're trying to make this platform. Everything that you just saw here is part of this bedrock of AgentScript. One of the great things and what we're excited about is we've just recently open-sourced AgentScript as well. AgentScript really gives you this power of bridging determinism with the agentic reasoning of LLMs and really gives you a lot of flexibility. Well, not only do you have that flexibility available for all those text-based agents, We're also bringing that now to voice as well. And so we're excited about the GA capabilities for agent script on voice and how you can leverage those same hybrid reasoning capabilities for those voice agents as well. And again, after you deploy all these agents, right, regardless of whether it's a voice agent, a text agent, employee or customer-facing, you're gonna wanna be able to observe how the agents performed. Well, we've— we're cracking open this shell as well and giving you more capability here. So again, you have, you have skills here available, but we're also making it such that the APIs themselves are open standards. And so this means that you can pull in your data to any of your existing workflows and you can really bring those insights again into your coding agent so that you can build and orchestrate your agents even better than you've ever done before. And so all of these insights can feed into one another, right? The insights from the output of one skill can feed into the input of another skill, really bridging this entire entire agent development lifecycle and giving you an opportunity to build self-learning agents and really improve your agentic experiences over time. Now we're really excited about this and we're also really excited to dive more into AgentScript. So let's head over back to Leah as well.
Thanks Nathan for breaking that down. That's the blueprint for an open enterprise, a platform that is headless by design and extendable by default. But the real magic happens when you're able to turn this into outcomes. Joining us now is Imran Rahman, Salesforce Technical Architect at LivGolf, to show us how he built an agent that is fundamentally changing how they support their customers. Imran, thank you so much for being here.
Thank you, Leah, for having me.
Can you tell us a little bit about LivGolf and what you're doing over there with agents?
Yeah, absolutely. So, so at LIV Golf, we're a global golf league. We have some of the best players in the sport, bringing them together to play tournaments all across the world. We're currently in our fourth season at the minute, so it's a really exciting time for us. Now, in golf, we have a caddie, and a caddie essentially supports our players across the course. And so we want to try and replicate that for our fans, hence Fan Caddie. So Fan Caddie helps Thank you. So FanCaddy helps our fans getting information about our latest events or getting information about tickets to get to those events. It can help our fans with leaderboard scores and stats, and it can even show them videos about who scored the last hole-in-one, for instance, right? So it's a really capable agent. And I'm going to quickly go over to our architecture and show you how we've actually achieved that.
I'd love to see that.
So you can see here in the architecture, we've actually got 14 different subagents to help support some of these topics. So all of these All these different sub-agents, they have a specialty which they can cover and answer questions for fans too. Now today, I've actually got my phone with me and I want to show you FanCaddy. So give me a second. Just going to pop it open. So this is FanCaddy, right? And so this is actually the latest version of FanCaddy using AgentScript that we just launched last week. And now one of the things I've been working on is how we can personalize messages based on the location of the user.
Right?
And so I'll give an example. So a question that is commonly asked is, where can I purchase merchandise, you know, before the next event? So our next event right now is Korea. So I've got a question popped into my phone now. So where can I get merchandise from for Korea?
Right.
And now what's going to happen is if we switch back to the architecture diagram, you're going to see that it's going to switch to our merchandise sub-agent, right? And so this is going to redirect the user to our online store to help them make a purchase before the next event. And that's exactly what's happening in the app right now, right? So it's showing us a CTA to visit our website to purchase some of the latest threads before they go into the next event. But wouldn't it be cool if we can actually personalize this message based on where they are? So for instance, if they're actually physically at the Korea event, wouldn't it be better if we could actually show them a message to direct them to a tent nearby?
Right?
So rather than going online, they can buy one physically right there and then.
Give them a more precise location.
Exactly, exactly, right? So I want to show you how we've gone about doing that, right? So I'm going to switch back to AgentForce Builder, and I'm going to show you how we've achieved that. Now, before I ask the same question again, what I'm going to do is I just want to show you some variables that we've set to achieve that kind of personalization. So I'm going to expand the variables tab here, and then I want to show you a few a few things that we've set up. So we have a variable called in venue mode, and we've set this to true. And there's another tag here that we've also set, which is the in venue tournament ID. So this is just an internal identifier to tell us that the person is at the Korean event.
Oh.
Mm. And now what's going to happen is I'm just going to collapse this, and I have the question pre-prepared. So what's going to happen now is, so I told you previously with the app, the agent used Golf merchandise to answer that question.
Right.
But now, so we've got a response now. And so he already knows, you can see from the response. So since you're already at the LIV Golf event in Korea, why don't you go and visit one of the stands or tents nearby? And it tells you exactly where it is, right? So this has been really, really great for our fans because it elevates the experience not only online but also in person.
Right. Yeah, it gives it that sort of personalization for you to go. Wherever you are, it directs you where I need to get that merch. And you know how fans are, they love their merch.
They sure do.
Yeah.
Yeah. And you're using those variables then to like personalize that location, right? Which reminds me of a use case that we have that's kind of a different scenario, but kind of similar. And indeed we have two different business segments. We have small business and enterprise. That's right. Before we built a solution to be able to differentiate them through reasoning. Yeah. But it wasn't deterministic. So we had a lot of scenarios where where somebody wanted to talk to a human, but they were sent to the wrong business segment.
Okay, that would be frustrating.
That was very frustrating, especially for our stakeholders.
Right.
So we had to go back and revert to a single group across the board. But with AgentScript, now we're able to provide that determinism using variables similar to you. And I can show you real quick how that looks like. So this is the canvas view, but let me show you the script view. So what we're doing now is we're pulling the segment data into the agents deterministically. Grabbing that information and then passing it to the escalation process. So that way it's a variable that's independent from reasoning. So that way it doesn't matter how the conversation goes, we're always going to escalate to the right business segment.
That's great. So you guys are both using variables in different ways, but using deterministic logic. What I noticed from both your architecture design and as we stepped through your code, you all have a lot of different subagents. How are you handling orchestration amongst those?
Subagents?
Yeah, I can definitely have a go at answering that, Leah, and I'd love to hear, Oliver, what you guys are doing indeed. So if I switch back to the AgentForce Builder, so as you mentioned, yes, so we've got 14 different subagents, and now AgentForce is pretty good at trying to figure out which agents to use, but using variables, we can actually then really enforce which agents to use to get a better or more accurate answer. So I'm going to go into our agent router, and I'm going to show you how we've achieved that. So in the— we've got a section here called before reasoning. And I mentioned earlier about when we set particular variables, we can then tell it which sub-agent to use. And this is actually how we've defined that, right? So in the before reasoning section, if I expand this, we've got an in venue mode tournament ID. And when this has been set, we activate our in venue mode. Okay. And so if I scroll down, I wanna show you exactly how that works. So if I scroll down into our sub-agent, in-venue concierge. You can see here as soon as we've hit the in-venue mode, we transition the agent directly to the in-venue concierge, right? And so that gives us that accurate answer for customers actually physically in the events. And we're reducing some of that latency required by the agent to figure out which one to use because we've told it deterministically. Now one thing I just wanted to quickly point out also while we're here is, so as part of that before reasoning is we've also preloaded some information. So this is something that's new with AgentScript. That's really kind of improved some of the latency times that we've seen with our customers. By referencing data prior to actually the agent doing any kind of reasoning, we're able to kind of really reduce the time it takes to respond to the answers that our fans are asking.
Well, I mean, that helps once again with latency, right? And accuracy, two huge ingredients for creating a good customer experience.
Exactly.
A great customer experience. Another thing about customer experience, Agents are great, right? And at some point they want to— customers want to talk to a human. We talked about orchestration from agent to agent, but how are you using orchestration for an agent to seamlessly bring in a human into that conversation?
Yeah, I can take a stab at that one. At Indeed, our service channel is also a revenue channel.
Oh, okay.
So when our employers are going through that hiring journey, right, they somehow get stuck somewhere. And then they reach out for help for us to put him back in that hiring journey. And then that's critical for them to stay with us as a customer, right? So making sure that we're very clear on when do we get those signals saying, hey, let's escalate you to a human when it's failing, it's extremely important for us. And I can show you how that looks like real quick. So I'm going to trigger here the chat experience. And here's where we're rendering the service agent. And then we'll see it get populated with with, you know, the greeting and all the information that shows like, hey, I'm an AI agent, I'm here to help you. Let's say the user come in and says something like, I need to verify my account, which like I said before, is very critical for them to post a job. Like they just lost somebody in their company, they need to hire somebody ASAP. So they want to check the status of the verification for their account. And then the first answer they're gonna get from their agent is that there's additional steps they have to take for the account to get verified. And then at that point, But that's where we capture signals, sentiment, and deterministically.
Right. Definitely sentiment.
Sentiment, exactly. Because in this case, they're going to be frustrated.
That's right.
And the AI agent could help them, but they want— they show signals that they want to talk to a human. We don't want to get in the way. We want to escalate.
You don't want to force them into an experience they don't want.
Exactly right. So here's an example of it escalating to a human. So we now are able to deterministically capture that intent. And then we can actually show you here as well how it looks from the human agent side. Because there's two personas here. There's the employer agent and also the human agent as well. So now when you answer the chat, you can see here they have the full context of the conversation, but they also have an AI summary. So that way the human agent can either read the summary, they'll see if that's enough or not. And if they feel they need more context, they can then scroll up.
That's great because they don't have to play catch-up. Everything that they need is right there at their fingertips. That's great.
Exactly right. And this is very important because we want to make sure that average handle time, like it's important for the human agent to be able to save time, which we can do that because the AI did some discovery work. But we also want to track the end-to-end employer-to-human experience to make sure that they're not spending too much time on it because that affects CSAT and other metrics like that.
Well, yeah, speaking of metrics, I mean, like you just talked about, there's two perspectives you're looking at from the customer, reducing their time, and then also from the rep, reducing their time and spending it. And metrics is important in this conversation on this agentic journey. I know for our customer, Grupa Falabella, you know, that 60% 40% of their WhatsApp inquiries are answered autonomously. And then we have, you know, JPW, which is a manufacturing industry. They've gone 40% faster in resolving cases while increasing their workload. So they're seeing really big differences in their work processes. I'd love to hear from you. What are some of the KPIs that you all are looking at or the metrics to measure success with the use of agents?
Yeah, I can definitely answer that for you, Leah. So I live golf. The two most important metrics have been latency and accuracy for us, right? And so with latency, as I mentioned before, because now we've been, we're able to preload some of that information, we're able to use some of the variables to kind of reinforce which agents to use, we've really reduced that latency time. So if you need a figure, I think that in our, in our most recent tests, we've seen a reduction of almost 60% in terms of latency. Wow. Now if I switch to accuracy, so As you can imagine, when our fans are asking about scores, you know, it's important that we get that right. Yeah. And so with our accuracy scores, we've had our QA team vigorously test every single version of our agents. And so what they've said to us is that the latest version of Fan Caddy using agent script has come back with a 94% accuracy rating, which is— 94?
That's big.
Yeah.
94. What about you? What's Indeed? How are they doing?
Yeah, we have two types of metrics that we measure for the service agent. One of them, we have an outcome type of metric to make sure that we're seeing value out of it.
Right.
And then we have a quality metric from the employer's perspective. So we use CSAT for the employer, the employer side, and then we use a resolved, or we call it a containment rate as well for the outcome one. And our containment rate, when we first went live, we were at 4% and now we're at 25% average.
Oh, that's just huge.
Over 6 times increase. And then on CSAT, we also started low at 1.8, and then we were able to improve it, and now we're averaging at 4, which is over 2% increase for CSAT as well.
That's great. That's good.
Yeah.
And you guys are just at the beginning of your journeys, and you're seeing these returns. I can't wait to hear, you know, when you're further down along—
Yeah.
—what the metrics will be. Well, thank you so much for sharing these very useful insights that I'm sure many people are going to be very appreciative of and motivate others to jump on this agentic transformation. So, thank you both. What we just saw is a massive trend, the need for agents to follow complex logic without hallucinating. In industries like financial services and healthcare, a wrong answer isn't just a bad experience, it's a compliant risk. That's why we built a scripting language that gives agents decision-making power while strictly adhering to a business-critical instructions. Let's go back to Nathan at the whiteboard to see how AgentScript blends the creative problem solving of LLMs with the absolute certainty of a deterministic system.
Cool, thank you, Leah. So let's actually do a little bit of a play-by-play on some agent script and go a little bit deeper on this as well so that we can see some of that hybrid reasoning and some of that richness that agent script brings to agents. And actually, before I do that, let's, let's start off with a few high-level pieces, right? We, we often talk about hybrid reasoning, right? What is hybrid reasoning? What is determinism? What do we mean by these terms? So hybrid reasoning is this mentality of going between this deterministic logic of code, right? If this, then that, and the agentic way of thinking, right? Leveraging the LLM's capability to reason. And so what's important is as we've been working with customers like Live Golf and Indeed, we've seen that these agentic use cases need to blend between highly deterministic pieces where your business policies need to be followed accurately, and towards these truly agentic use cases where we can allow our reasoning to take place. And so what's amazing is we've kind of designed this entire scripting language around that. And so what we have here is an example of an agent script file that you might see for processing returns, right? This is something that maybe even, uh, Live Golf has a version of. And so we're going to kind of dive into some of these pieces here. And first off, one of great pieces that we just saw was the ability to gather context. We talked about this before reasoning mentality. We're actually able with agent script to execute logic before an LLM ever becomes involved in the loop. You can do that either through a before reasoning step or you can see that I'm doing that right here as well, right at the top of these instructions. At the top of these instructions, you can see that I'm deterministically running an action, so I can gather some context. You know, in a case of a customer refund, we all know what the context is gonna be most important. It's the customer order, right? We know that customer order is gonna be important. So we know that we have to just bring that information right at the beginning so that the agent has the clear context of what's gone on inside of that order. And so we can pull in that data, we can set these to agent variables, and that gives us the grounding context for all of the subsequent next steps that the agent will do. And so as we go further as well, we can start to see some of the kind of dynamic capabilities that AgentScript offers us, right? So once we've gathered that context, once we've gathered that data, we can actually start building branching logic on top of that, right? So we see we have two conditions here, if and else. And so what we— here we're starting to blend this natural language instructions with these— with agent variables as well. And so this gives us the ability to have true natural language instructions that you're providing, but also to start layering in some of that data, some of that context that we've gathered. And so this provides— this is a great way to give clear instructions to your sub-agent in particular jobs to be done. All right. But we also talked about this notion that certain circumstances take a higher fidelity. Right. You might actually know that if a certain signal comes through, but you might actually want to escalate to a different sub-agent, or maybe you want to escalate to a human being altogether. All right, so you can actually do that deterministic transition as well inside of AgentScript. And so here, right, we can actually see that if the order is less than 30 days, we're going to provide instructions to this sub-agent on how to process that refund, how to actually go through that return flow. But if it's not, if it's actually over 30 days, then in this case, we're going to escalate to a human being. We're going to take that high-touch approach so that we can have a great experience for our user. And AgentScript gives us the ability to kind of go through these two different branches that we have available. And so all of this really gives us a rich opportunity to build highly personalized agentic workflows. You saw some of the kind of benefits as well that AgentScript starts to provide, right? You saw an improved accuracy with the information that Live Golf was able to provide to their customers. And then also that improved CSAT score because now you can be highly specific around those agentic interactions, around choosing the right sub-agent for the job and also choosing the right time to escalate to your human resources. And so all of this are, are just some of a few capabilities that we're bringing with AgentScript and we're really excited to see how more customers utilize these these features, utilize hybrid reasoning, and really bring the most out of AgentScript. So yeah, back to you, Leah.
Thank you, Nathan. Every time we come back from the whiteboard, I feel smarter. Thanks, Nathan. That deep dive really highlights why we built AgentScript to remove the complexities that hold so many projects back. Next, let's welcome Carolyn Derkopp, Technology Transformation Partner at Shark Ninja, We're so excited that you can join us. Welcome. Thank you so much for having me.
It was so inspiring to hear Oliver and Imran's story, and I'm really excited to share what we've achieved at Shark Ninja.
I'd love to hear what you're doing at Shark Ninja with AgentForce.
Great. So at Shark Ninja, we create innovative home appliances from Shark vacuums to Ninja air fryers. We've actually got 39 product categories. Wow. And we've now also got a number of different AgentForce agents. These range from services to shopper to unboxing use cases. And actually, when we were looking at building our first agent, we were facing a pretty real challenge. At SharkNinja, we're launching about 25 new products every single year, which is obviously a hugely exciting pace of innovation, but it's also going to come with a huge demand in customer experience. So whenever we launch a new product, there'll be new pre-purchase questions, new setup journeys, new troubleshooting flows. And what we found is that our customers experience all of those moments in a unified way. So we also wanted a unified platform to address all of those use cases, and that's where Agentforce came in. So we started with a couple of high-volume use cases at the start, like Wismo. All right. Where's my order?
Where's my order? I was gonna say Wismo.
Yeah. Then we moved into shopper pre-purchase journeys and more recently into into unboxing, a more proactive use case. And actually, we brought a gift for you today.
A gift for me? Yeah.
This is the Cafe Luxe. What?
Who told you that coffee is my love language? Thank you.
We really just wanted you to be able to experience our unboxing agent just like a real coffee.
This is amazing. Okay. So we're going to actually go through the— see it live. Yeah.
I'll show you exactly what it looks like. Oh, I'm so excited. So our products come with something like an instruction booklet which has a QR code. This is a QR code-led experience. Love that.
I love the espresso martini on the front there.
Yes. Yeah. He makes a wonderful one. So if I go ahead and scan this QR code, this is going to kickstart the unboxing agent. Right. Then as you can see, it's not a generic welcome at all. The agent already knows exactly the product that we're unboxing. The model number was passed passed through. And actually, this machine is a really great example of why an unboxing agent is so powerful. It's going to get you a great coffee, but there's a few very important steps that you need to do before that. You've got to flush the machine, you've got to do a couple of calibration runs, you've got to find the right grind setting for your beans.
There's only one setting that counts. Strong. Yes, exactly.
And this is where guided setup comes in. So you click through all of these steps and it's going to tell you exactly what to do. And what's great is if you're ever stuck, you can also click to get more help. And on top of that, if you have any other questions about the product, you can just go ahead and type it in. So a lot of our customers might ask, what's the difference between the espresso strength options?
But you type it in and it doesn't take you out of the process of the agents bringing you through?
No, not at all. The context is going to persist. It's going to give you the question. But actually, you can scroll back up and go back into your guided setup journey. I love that. So it was a really simple idea. That's the idea. We want to meet the customer in those first moments. Right. So, it's not just set up, answering questions. It's also going to give you, you know, the best recipes for an espresso macchiato. Uh-huh. Or it's going to, you know, connect you to our social media or help you register your product.
Oh, registering is so important because I always forget. So, that it's part of the process. That's great. Great reminder. I'd love to see, how did you build that agent and that whole experience? Yes.
Let me take you a little bit behind the scenes. So this is our agent. We've built this using AgentScript. Mm. It was really new territory for us. You can see here on the left are our different subagents. This one is product greeting. You saw that in action just now. It's that personalized greeting. So the QR code actually passes the model number to the agent, and it's going to set the tone. A different product with a different model number will again send the right product to the agent. So it's the same agent, but a different experience. You know, it's going to be scalable. Another sub-agent I wanted to show you is Product Assistant. Okay. You just saw that in action as well. This is what powers the guided setup and also those contextual questions. What's really great is that this is all powered by pre-structured data in Data 360. And also really great is that level of determinism that we have here. Really important for those guided setup steps. They have to happen in a very specific sequence, but also the flexibility to ask natural questions for the LLM to kick in. That flexibility is super important to us. And another thing I wanted to show you, flexibility of how we work in this agent has been really amazing. So right now you can see we're in Canvas view. Right. This is the kind of low-code visual way of building. But we also have the option to toggle to script. So this is really good for our developers that want more programmatic and precise way of coding. So it's the exact same agent, it's just a different view. When I first saw this, I was a little bit worried. You know, all of our developers are trained in a different way, but actually there's so much training available, lots of powerful AI tools to help you not only transfer your existing agents, but also build from scratch and troubleshoot. So something that we use is the inbuilt AI assistant. Okay. So it's really useful. For example, when we have an issue like the action isn't triggering or a variable is coming through wrong, we can ask the agent here and it's going to give you a really intelligent response and some tips on how to fix it. So that's been super valuable for our team.
That's amazing. So you guys have gone through the whole evolution of moving into the agent script and then working working in a new way. Yeah. One of the key things to the agents performing, and I like to think of as like a key thing to a good cup of coffee is the bean. The main ingredient for a good performing agent is data, grounded in good data. But at the same time, too much data can be overwhelming. And so I see your, like, your amazing PDFs like that, which my husband would love 'cause he'd read from, you know, top to front. How do you handle unstructured data with your agents without overwhelming it?
Mm-hmm. So, this is actually where we use something called Intelligent Context. Here we ingest all of our product information, FAQs, instruction booklets, manuals. We do have a lot of product data still living in PDFs. Our CX partners are in the process of digitizing that. Obviously, PDF's great in print, But they're in the process of making it great for AI consumption and also digital human consumption. You can see why. This is an example of one of our PDFs. There's so many images, diagrams, lots of information here. Historically, this would have been super hard for an AI to understand. If you imagine you just scraped the raw text from here, it's going to lose— Without the pictures. Yeah. It's going to lose all that context, the diagrams, the sequencing, the images. And what Intelligent Context actually does, it has an LLM run on the PDF and understand the PDF. And then it chunks the understanding and the context rather than chunking the raw text. Okay. And let me show you how that works. I'd love to see that. So if you remember, we asked the agent, what's the difference between espresso strength.
And we all agree that the only strength that matters is strong. Exactly.
So you can see here, this is the answer we got before in the agent as well. But I can click into the chunks that created this answer. And then I can also see the passages of where in the PDF this came from. If I open this up, it's not verbatim copy paste of the PDF. It's that understanding. And that's—
So, it's the agent's understanding of bringing in that data.
Exactly. And all of the context remains here. So, it's like a really verified knowledge base of this PDF.
And if you saw something there, if you were reviewing it, maybe in your processes where you have a human in a loop, is that they review these chunks. If they see something that has been interpreted a little off, they can tweak it.
Exactly. And that transparency is so important for a brand like Shark Ninja. So, it's been super valuable.
This is amazing. I mean, just the whole process and I love the unboxing agent. I can't wait to get home and actually use it and I'll let you know how it goes. Absolutely. Thank you so much for sharing your experience with all of us here and I'm sure many are going to learn from it. All right. Now, let's invite Oliver and Imran on back. Hey. Hey. Coffee. Hey, hands off. That one's mine there, Oliver.
I might take it back. We'll see.
I'll make you a nice cup of coffee.
Oh, then that's fine.
As long as you do that.
Yeah. Thank you all for being here and sharing your amazing journey. I'm sure many of our viewers have learned so much. Um, I've learned a great deal and I'm super inspired by your stories and I'm really hoping that other customers are feeling like I can do this and I don't, there's no more bottlenecks. I know how I can solve this. But as you shared your story, I would love for you to close with what is something you are most proud of? Proud of? And why don't we start with you, Imran?
Sure, Leah. So I think what I've been most proud of is probably how we built Fan Kelly. So this hasn't been your typical Salesforce project built by Salesforce specialists. It's actually been a collaborative effort of our whole entire tech team. Some of them have never even used Salesforce before, right? So it's been a really impressive feat that some of them have come together, we've collaborated, and, you know, share ideas on how we can build agents. And yeah, so that's really my proudest moment in there.
What I love about that is it sounds like you are unleashing the innovation in everybody and everybody's becoming a builder. Yeah, exactly. Yeah, that's awesome. Oliver, what about you?
I think for us is like we weren't really handed a handbook when we did this. We all started from scratch, so it's almost like we're all pioneers. In this. And then we started off by just literally just prompting straight into the system, right? Now we're using coding agents. We're trying to think about that self-healing agent.
That's right, that self-healing. Yeah.
So I think evolving from being able to have that flexibility to change, right, as things advance, the technology advances, and move forward and change our way of working, right? That's been one of the things.
And being, you know, proactive and not reactive in that change. You guys are changing with it. In some cases, you're sort You guys are the trailblazers, the agent blazers in that space. I love that. Carolyn, what about you?
So we've actually reached a super exciting milestone not too long ago, which is 250,000 chats with Agent Forest. What? That deserves some confetti. Confetti. Yes. So it's really the scale that we're proud of. You know, every chat is a new customer interaction, but also a new way to learn how to improve and tweak the agent. That's what we're doing with the Unboxing Agent that you saw as well. We've launched it with two of our products and we're learning from the interactions and we're planning to now launch it at scale with all of our Platinum products. So it's super exciting.
Yeah, I think a lot of companies kind of find that small project and they can make that work. But the big bottleneck is going, you know, from pilot to full-on production at scale and that you've done that. That's huge. So congratulations. Yes. Now, before we close, I have a surprise for you all. And you all have shared your amazing stories and something I feel like each of you are, are amazing agent blazers. So we've got some hoodies coming your way. Oh, wow. Keep your hand off my coffee machine. Okay. Awesome. I think you'll have to sort out the sizes, my friends.
I love it. Thank you so much. Thank you.
Thank you. Thank you. Now, as they're getting all hoodied up, I want to thank you and everyone for joining I'm going to throw it over to our team who will be answering your questions live from Salesforce+. But first, I want to remind you that you can get hands-on with our virtual training, which will begin right after the Q&A, where instructors will show you how to build your own agent. Now, before we go, we want to hear from you. Feedback is a gift. Feedback is important to us. So please take the short survey and tell us about your experience. Thanks for watching.










