top of page

Exploring Salesforce Agentforce: My First Impressions, Observations, Lessons Learned, and Key Takeaways

Glenn Montano

Updated: Nov 6, 2024

After spending about a week experimenting with Salesforce Agentforce, I have to say—I’m genuinely blown away by the technology. The potential is enormous, and I’m excited to share some key takeaways and lessons learned from my deep dive into the Agentforce platform.


1) Natural Language Instructions: A Game-Changer

One of the standout features is the ease of instructing the agent using plain, natural language. You can articulate what you want the agent to do in your own words, and it just does it. For example, when I wanted the agent to handle a specific topic area based on a customer inquiry, all I had to do was phrase it as I would to a human, and Agentforce picked up on it effortlessly. Building an autonomous agent using natural language gives new meaning to the phrase "no-code/low-code" and opens up so many possibilities for organizations looking to deploy responsive, tailored support agents without needing technical resources.

2) Fine-Tuning Instructions for Real-World Scenarios

I took a closer look at the inner workings of the agent, specifically analyzing how each instruction functions and how interdependencies play out within the system. During testing, I noticed a gap in the “Get Sessions” action, where the instruction read, “Use the Id of the Experience__c from the 'Get Experience Details'." But what if a returning customer starts a chat and asks for sessions without specifying the experience they're referring to? When I tested it, the agent repeatedly asked for an Experience ID because that's what it was instructed to use. Of course I didn't know the ID and the agent didn't ask me to type in the experience by name. Not the best user experience.

To solve this, I made a minor adjustment in the instruction: I added, “If the customer has not yet mentioned an experience, ask which experience the customer is interested in.” After refreshing, the agent responded as hoped, prompting me for the necessary experience and keeping the conversation on track. This small tweak made a big difference.

3) Leveraging Out-of-the-Box Functionality: Case Management

Next, I wanted to expand the agent's capabilities and explore more of what the Agentforce platform offers so I chose to add the out-of-the-box Case Management topic to the agent. I was intrigued to find it already packed with instructions and actions. Interestingly, the instructions didn’t reference specific action names like in the Trailhead example, but I assume that because it comes out-the-box, Salesforce must have a way of making it all work. While Salesforce prevents editing these out-of-the-box instructions and actions, it does allow you to create a new version if you want to extend or tweak the functionality.

4) Limitations in Experience Search Matching

When testing requests for information on an experience, I encountered a limitation: the agent performs an exact match search. This means that if I don’t type the exact name of the experience, the agent won’t find what I’m asking for. Given the advanced LLM and AI capabilities in other areas, this feels like a shortcoming since customers may know the exact name of an experience (or a particular record in the system). Ideally, it would be helpful if the agent could perform a “fuzzy” search, returning a list of close matches for the customer to select from.

Unfortunately, since the search functionality is powered by the Flow itself, it’s bound to the initial setup, which does an exact match search on experience names. I attempted to modify the Flow to search for experiences containing the customer’s request, which partially resolved the issue. With this adjustment, I could provide a partial name and pull up details about a specific experience. However, I had to rephrase my request to isolate just the name of the experience. If I said, “tell me about the Full Moon Beach experience”, the agent would use "Full Moon Beach Experience" as the search text (i.e. the name), and fail to find the experience.

A more robust solution might lie within the Salesforce API, which I suspect may support fuzzy search on record names. However, a quick search didn’t turn up any quick answers. If Salesforce could incorporate fuzzy matching directly within Flow for use cases like these, it would be a huge improvement. Prompt Templates seem to be another option based on the functionality provided by the 'Get Personalized Schedule' but Prompt Templates is a topic for another day. (As a side note, I had a chance to play with Einstein Copilot and noticed it had an out-of-the-box action called "Identify Record by Name" which would be great if we could use it while building our own agent, but that is not the case yet. My guess is Salesforce will include it in a future release because I think a common use case would be to search for data (records) in the system and an OOTB option would be nice and convenient for simple searches versus creating a Flow to accomplish the same thing)


Key Takeaways


  1. Natural Language. Salesforce's promise of a no-code/low-code solution is real, and it’s game-changing for anyone looking to leverage autonomous, AI-powered agents without needing a background in development. With natural language, you can instruct your agent in your own words to handle simple, routine tasks to much more complex and advanced inquiries.

  2. Planning is the key. The more time you spend planning and designing what the agent will do, the more focused and efficient the agent will be at meeting it's purpose and getting the job done.

  3. Focus. When it comes to Topics, Instructions, and the associated Actions, the jobs-to-be-done framework is a good way to structure your planning and design. Aha! covers a high level explanation of the framework. As a suggestion, I would focus on identifying core functional jobs-to-be-done. These essentially become the Instructions (and associated Actions) that your agent will perform. Then organize the various jobs-to-be-done into groups which essentially become the topic areas that the agent will cover. Prioritization is also an important consideration as your agent should start with the highest value jobs (instructions + actions), and in typical agile fashion, iterate on your agent so that you start on the highest value jobs, get value (ROI) early, and continue to add incremental value from one sprint to the next. And I would be remiss if I didn't mention to always start the planning with business goals and objectives. It's important to clearly understand what business problem(s) your agent will solve along with any KPIs and metrics to measure the success and impact of your agent. As an example, if your company has a business problem where customers are waiting on average X days to get support or answers to simple, routine requests and questions, and you have limited support reps to field requests and inquiries, then the business goals are to reduce the average wait times, provide 24/7 service for the top 10 issues/requests/questions, and increase case deflection by targeting a 50% decrease in support cases.



This initial exploration into Salesforce Agentforce has been incredibly rewarding. It’s remarkable how intuitive the platform is, yet it provides deep customization for those who want it. The Trailhead module was nice to quickly get up and running with an autonomous agent but the wheels in my head really started turning when I went beyond the copying and pasting and started using my own words to instruct the agent to do more and handle edge case scenarios. If you've completed the Agentforce Trailhead module but didn't spend time playing with the instructions, I encourage you to dive in and see what’s possible.

 
 
 

Recent Posts

See All

Why Salesforce Record Types?

Salesforce Record Types have been around for ages, with countless articles, videos, and tutorials explaining what they are and how to use...

Commentaires


bottom of page