Skip to content

Exercise 3 - Turning Meeting Notes into Answers

Background

  • What to do: You will create a prompt, securely ground it with our unstructured data (Meeting Notes), using the terminology and messaging standards of our business.
  • Value of it: The value of doing this is that Prompt Builder, Model Builder, and RAG are no-code solutions that leverage your existing investment in the Salesforce platform, so you don’t have to DIY your AI to get results that are custom to your industry and business.
  • Agentforce tools used: Prompt Builder, Model Builder, Semantic Search (part of the Data Cloud Vector Database)
  • Agentforce attributes used:
  • Data: Unstructured data from Data Cloud - Meeting Notes
  • Trust & Security: Existing access permissions were used to securely bring data into the prompt.

Retrieval Augmented Generation (RAG)

RAG combines real-time information retrieval with generative AI, allowing systems to pull in relevant, up-to-date data. This ensures responses are informed by both pre-existing knowledge and current, context-specific information, making it ideal for scenarios requiring accurate and personalized interactions.

  • What it means for customers: Provides more accurate, personalized responses by drawing on the most relevant and up-to-date information, leading to higher trust and better overall interactions.
  • What it means for teams: Enhances AI by enabling real-time, dynamic responses without frequent retraining. It streamlines data use, promotes cross-department collaboration, and provides a competitive edge by delivering more intelligent and tailored customer experiences.

Vector Database

A vector database is a specialized type of database designed to store and manage high-dimensional vector representations of data, often referred to as embeddings. Unlike traditional databases that handle structured data with predefined schemas, vector databases are optimized for storing and searching large volumes of unstructured or semi-structured data, such as text, images, or audio, which have been transformed into numerical vectors. These vectors capture the essential features and relationships of the data and are particularly well-suited for similarity search tasks. They typically employ advanced indexing techniques, such as Approximate Nearest Neighbor (ANN) algorithms, to ensure fast and scalable search operations across large datasets.

  • What it means for customers: Customers benefit from more accurate and personalized recommendations or responses, improving their overall experience with faster and more relevant results.

The demo org that you’re using has already been set up with RAG. Specifically, we have already ingested all the Meeting notes from CRM to create an unstructured Data Lake Object (UDLO) and an unstructured Data Model Object (UDMO). We then created a Search Index on that DMO, which automatically created a Retriever. The retriever uses relevant facts from textual data using an indexed vector database (the search index) to augment a prompt.

As a prompt engineer, you only need to reference the retriever to access the right parts of the text that was in those PDFs.

Next, we’ll add a simple prompt that will allow customers to search unstructured data to answer questions about past meeting notes.

Step 1: Create a New Prompt Template

  1. Select the Setup gear icon and select Setup. Image

  2. In the Setup quick find box, type Prompt, then select Prompt Builder.

  3. Select New Prompt Template

  4. Setup your new prompt with the following details:

    • Prompt Template Type: Flex
    • Prompt Template Name:
      Meeting Notes Prompt
    • API Name: Leave the default, which should be Meeting_Notes_Prompt
    • Template Description:
      Find relevant meeting notes
  5. In the Define Sources section:

    • Name:
      Free Text Input
    • API Name: Leave the default, which should be Free_Text_Input
    • Source Type: Free TextImage
  6. Select Next

  7. In the Configuration panel on the right-hand side of the window, under Template Properties, change the Models to OpenAI GPT 4 Turbo. Image

    Note: If you don’t see the Configuration window, look for the open/close configuration icon in the upper left corner of the window.) Image

  8. In the Prompt Template Workspace, enter the following text:

    You are an intelligent assistant that answers questions based only on retrieved
    meeting notes . Your goal is to provide complete, detailed, and accurate answers
    grounded in the notes. Follow these rules:
    Extract all important facts from the notes relevant to the question.
    
    Summarize key points if multiple notes are relevant.
    
    Stay concise but complete — include technologies, timelines, stakeholders, or
    priorities if mentioned.
    
    Do not invent any information not present in the retrieved content.
    
    If the answer is not found in the notes, reply: "The information was not
    discussed in the available meeting notes."
    
    Maintain a professional and informative tone.
    
    Assume the user has no prior context about the meetings — be explanatory when
    needed.
  9. Put the cursor after “questions” from the text above and then in the Resource box, select Free Text > Free Text Input

    Note: We want to include the Free Text in the prompt we send to the LLM, which will include the text that the end user provides when interacting with the agent.

  10. Put your cursor after “meeting notes” and from the Resource box, select Einstein Search > Note_Home_DMO > Note_Home_DMO Retriever

  11. On the right-hand side, you will now see the Search Parameters for the Note_DMO_HOME Retriever. Image

  12. Find the Search Text box and select in the box where it says “Search for or select a resource to insert” and select Free Text, then Free Text InputImage

    Image

  13. Below, in the output fields, select body, title, and last modified date and put 9 in the Number of Results field.
    Image

  14. Select the Test Inputs button (it is above the Response window) Image

  15. To test some phrases that our end users might type, we need to add some text to the Free Text Input variable.

    Add the following in the Free Text Input box & click on Save & Preview:

    What platform is Omega considering for securing CI/CD pipelines?

Image

Step 2: Review the final prompt below

You are an intelligent assistant that answers questions
{!$Input:Free_Text_Input} based only on retrieved meeting notes
{!$EinsteinSearch:Note_Home_DMO_Retriever_1Cx_ch1a824ff0a.results} . Your goal
is to provide complete, detailed, and accurate answers grounded in the notes.
Follow these rules:

Extract all important facts from the notes relevant to the question.

Summarize key points if multiple notes are relevant.

Stay concise but complete — include technologies, timelines, stakeholders, or
priorities if mentioned.

Do not invent any information not present in the retrieved content.

If the answer is not found in the notes, reply: "The information was not
discussed in the available meeting notes."

Maintain a professional and informative tone.

Assume the user has no prior context about the meetings — be explanatory when
needed.

🔵 Note: Please note that the numbers at the end of the Retriever will be unique to each org, so your prompt will have a different string after the word Retriever.

  1. Select Activate

Step 3: Create a New Agent Action

  1. Select the Setup gear icon and select Setup. Image

  2. In the Setup quick find box, type Agent, then select Agentforce Assets.

  3. Click on Actions tab Image

  4. Click on New agent action Image

  5. For Reference Action Type, select Prompt TemplateImage

  6. Under Reference Action select Meeting Notes PromptImage

  7. Change the Agent Action Label to Find Relevant Meeting Notes

  8. Click Next

  9. Under Agent Action Instructions add text below:

    Only pass the user’s current question if it is related to meeting content. This
    includes questions about: What was discussed in meetings Who attended When
    something was decided What tools, technologies, or outcomes were mentioned Do
    not include unrelated context or previous user messages. Only pass the cleaned,
    direct question (e.g., “What did Omega say about cloud modernization?”). Ignore
    note creation or opportunity requests — this action is only for querying
    existing meeting notes.
  10. Feel free to uncheck the Show loading text for this action checkbox, as it's not required. However, if you want, you can include something like:

    Finding relevant meeting notes...
  11. Scroll down and notice the Input panel on the left.

    Find the Free Text Input add the following to the Instructions box:

    Only pass the user’s current question if it is related to meeting content
  12. On the right, under Output, make sure to select “Show in Conversation” for Prompt response

  13. It should look like this

    Note: Feel free to add Loading Text or deselect the Show loading text for this action checkbox, as this is an optional step. Image

    Image

    Image

  14. Click Finish

Step 4: Modify the Agent Topic - Meeting Notes Management

  1. In the Quick Find box on the left, type Agents and click Agentforce Agents

  2. Click Agentforce (Default) and then Open in Builder at the top right.

  3. Since we're making changes, we need to Deactivate our Agent. Locate the Deactivate button at the top right and click it.

  4. Click OK at the next pop-up

  5. Under the Topic Label section on the left, click Meeting Notes Management

  6. Replace this Topic's Classification Description with the following:

    This Agent's primary responsibility is to manage meeting notes for Accounts. It can:
    "Create meeting notes,"
    
    "Identify potential opportunities based on the content of those notes (with user confirmation),"
    
    "Create corresponding opportunity records,"
    
    "Answer questions about past meetings by retrieving and summarizing relevant existing meeting notes."

    Image

  7. Replace this Topic's Scope with the following:

    Your job as an agent is to infer what type of record the User is asking you to create, and ensure that you have all of the input parameters to create the proper record or records. You can also create multiple records from one User input. Infer opportunity details, account name, products & services to position, and contact information. Apart from the notes record, ALWAYS ask the user before you create any of the records.
    
    This agent also supports answering questions about previously recorded meeting notes. If the user asks about meeting content, decisions, attendees, or discussed tools, the agent must trigger the "Find Relevant Meeting Notes" action. This ensures the response is based only on actual meeting notes, not assumptions.
  8. Scroll down and click Add Instructions.

    Image

  9. Add the following to the new Instuctions box:

    If the user asks a question about past meeting content, do the following:
    
    * Route to Agent Action: Find Relevant Meeting Notes
    
    * This includes any questions like:
    
        * “What was discussed with Omega?”
    
        * “Did we talk about OpenShift in our last meetings?”
    
        * “Any mention of AI in the client meetings?”
    
        * “Who attended the DevSecOps session?”
    
    * You must trigger this action even if the user doesn’t use the word ‘note’ but is clearly asking about a prior meeting, discussion, or decision.
    
    Do Not Answer From Memory
    
    * Do not attempt to answer these questions directly.
    
    * Do not summarize based on assumed content.
    
    * Always invoke Agent Action: Find Relevant Meeting Notes to ground the response in retrieved meeting data.
  10. Click Add Instructions again to add another set of instructions for this Topic. Image

  11. Enter the following:

    Handling Mixed Inputs (Create + Ask)
    If the user input:
    * Contains a request to create a note or opportunity ➕
    * Also includes a follow-up question (like “Was this already discussed before?”):
    Handle both — first respond to the question using Find Relevant Meeting Notes, then proceed with the record creation flow.
  12. Click Save

  13. Click back into the Meeting Notes Management topic

  14. Click the This Topic's Actions tab

  15. Click New, and then select Add from Asset Library

  16. In the Search Box, type Find Relevant, check the box next to Find Relevant Meeting Notes and then click Finish

Step 5: Let’s Test Your Agent!

  1. While in Agent Builder, click the refresh icon at the top right of the Conversation Preview text box (NOT THE BROWSER REFRESH ICON).

  2. Test what you’ve just created using the Conversation Preview.

  3. Enter the following:

    From the past meetings, What platform is Omega considering for securing CI/CD pipelines?
  4. The response should look like this. Image

  5. Recall-Based Questions (Fact retrieval):

    From the past meetings, Which tools were discussed for automating resource allocation at Omega Inc?
  6. Synthesis-Based Questions (Combine multiple notes):

    From the past meetings, Summarize Omega’s overall approach to cloud modernization across infrastructure and applications.
    From the past meetings, List the initiatives Omega is undertaking to optimize both cost and security in their cloud environment.
    From the past meetings, How is Omega planning to integrate AI/ML capabilities into their existing data platforms?

This concludes Exercise 3.

Released under the MIT License.