diff --git a/force-app/main/default/aiEvaluationDefinitions/jokeTest.aiEvaluationDefinition-meta.xml b/force-app/main/default/aiEvaluationDefinitions/jokeTest.aiEvaluationDefinition-meta.xml
new file mode 100644
index 0000000..efec461
--- /dev/null
+++ b/force-app/main/default/aiEvaluationDefinitions/jokeTest.aiEvaluationDefinition-meta.xml
@@ -0,0 +1,77 @@
+
+
+ jokeTest
+ Joke_Teller
+ AGENT
+ v2
+
+
+ action_sequence_match
+
+
+ A joke is delivered
+ bot_response_rating
+
+
+ Tell_Joke_16jHE00000005e1
+ topic_sequence_match
+
+
+ Tell me a joke
+
+ 1
+
+
+
+ action_sequence_match
+
+
+ A joke is delivered
+ bot_response_rating
+
+
+ Tell_Joke_16jHE00000005e1
+ topic_sequence_match
+
+
+ Can you make me laugh
+
+ 2
+
+
+
+ ['Joke_179ac9e3c2c30fc']
+ action_sequence_match
+
+
+ A programming-related joke is delivered
+ bot_response_rating
+
+
+ Tell_Joke_16jHE00000005e1
+ topic_sequence_match
+
+
+ I need a joke about programming
+
+ 3
+
+
+
+ ['Joke_179ac9e3c2c30fc']
+ action_sequence_match
+
+
+ A dad joke is delivered
+ bot_response_rating
+
+
+ Tell_Joke_16jHE00000005e1
+ topic_sequence_match
+
+
+ Tell me a dad joke
+
+ 4
+
+
diff --git a/force-app/main/default/bots/Joke_Teller/Joke_Teller.bot-meta.xml b/force-app/main/default/bots/Joke_Teller/Joke_Teller.bot-meta.xml
new file mode 100644
index 0000000..b158c60
--- /dev/null
+++ b/force-app/main/default/bots/Joke_Teller/Joke_Teller.bot-meta.xml
@@ -0,0 +1,192 @@
+
+
+ false
+ EmployeeCopilot__AgentforceEmployeeAgent
+ AgentforceEmployeeAgent
+
+
+ Joke_Teller
+
+ None
+
+ Id
+ This variable may also be referred to as VoiceCall Id
+ VoiceCallId
+ true
+
+
+
+
+ MessagingSession
+ MessagingSession.MessagingEndUserId
+ AppleBusinessChat
+
+
+ MessagingSession
+ MessagingSession.MessagingEndUserId
+ Facebook
+
+
+ MessagingSession
+ MessagingSession.MessagingEndUserId
+ WhatsApp
+
+
+ MessagingSession
+ MessagingSession.MessagingEndUserId
+ Text
+
+
+ MessagingSession
+ MessagingSession.MessagingEndUserId
+ Custom
+
+
+ MessagingSession
+ MessagingSession.MessagingEndUserId
+ EmbeddedMessaging
+
+
+ MessagingSession
+ MessagingSession.MessagingEndUserId
+ Line
+
+ Id
+ This variable may also be referred to as MessagingEndUser Id
+ EndUserId
+ true
+
+
+
+
+ MessagingSession
+ MessagingSession.Id
+ Line
+
+
+ MessagingSession
+ MessagingSession.Id
+ Facebook
+
+
+ MessagingSession
+ MessagingSession.Id
+ WhatsApp
+
+
+ MessagingSession
+ MessagingSession.Id
+ Text
+
+
+ MessagingSession
+ MessagingSession.Id
+ Custom
+
+
+ MessagingSession
+ MessagingSession.Id
+ EmbeddedMessaging
+
+
+ MessagingSession
+ MessagingSession.Id
+ AppleBusinessChat
+
+ Id
+ This variable may also be referred to as MessagingSession Id
+ RoutableId
+ true
+
+
+
+
+ MessagingSession
+ MessagingSession.EndUserLanguage
+ Line
+
+
+ MessagingSession
+ MessagingSession.EndUserLanguage
+ Facebook
+
+
+ MessagingSession
+ MessagingSession.EndUserLanguage
+ WhatsApp
+
+
+ MessagingSession
+ MessagingSession.EndUserLanguage
+ Text
+
+
+ MessagingSession
+ MessagingSession.EndUserLanguage
+ Custom
+
+
+ MessagingSession
+ MessagingSession.EndUserLanguage
+ EmbeddedMessaging
+
+
+ MessagingSession
+ MessagingSession.EndUserLanguage
+ AppleBusinessChat
+
+ Text
+ This variable may also be referred to as MessagingSession EndUserLanguage
+ EndUserLanguage
+ false
+
+
+
+
+ MessagingEndUser
+ MessagingEndUser.ContactId
+ Line
+
+
+ MessagingEndUser
+ MessagingEndUser.ContactId
+ Facebook
+
+
+ MessagingEndUser
+ MessagingEndUser.ContactId
+ WhatsApp
+
+
+ MessagingEndUser
+ MessagingEndUser.ContactId
+ Text
+
+
+ MessagingEndUser
+ MessagingEndUser.ContactId
+ Custom
+
+
+ MessagingEndUser
+ MessagingEndUser.ContactId
+ EmbeddedMessaging
+
+
+ MessagingEndUser
+ MessagingEndUser.ContactId
+ AppleBusinessChat
+
+ Id
+ This variable may also be referred to as MessagingEndUser ContactId
+ ContactId
+ false
+
+
+ Tell jokes
+
+ false
+ true
+ 0
+ InternalCopilot
+
diff --git a/force-app/main/default/bots/Joke_Teller/v1.botVersion-meta.xml b/force-app/main/default/bots/Joke_Teller/v1.botVersion-meta.xml
new file mode 100644
index 0000000..f43fa64
--- /dev/null
+++ b/force-app/main/default/bots/Joke_Teller/v1.botVersion-meta.xml
@@ -0,0 +1,118 @@
+
+
+ v1
+ false
+
+
+
+ Hi, I’m Agentforce! I use AI to search trusted sources, and more. Ask me “What else can you do?” to see how I can simplify your workday. How can I help?
+ 27ccc99f-55c2-4282-9a60-9595143d2d40
+
+ 409063f8-1420-4992-93d9-2a25168c17fa
+ Message
+
+
+ 76a5aff1-103f-4db9-a64a-d67c2c346eb2
+ Wait
+
+ Welcome
+ false
+
+ false
+
+
+
+
+ Something went wrong. Try again.
+ 9dbaab3f-24cc-457d-991c-68c3873ea7c3
+
+ 9101e5fc-3b8f-432a-8cdf-5f165d87531c
+ Message
+
+
+ 9638411b-5c2a-44fc-b75d-88b6e22f069a
+ Wait
+
+ Error_Handling
+ false
+
+ false
+
+
+
+
+ One moment while I connect you to the next available service representative.
+ fb6549eb-b2ab-42bc-9f79-78e8906a6493
+
+ 16b73c0f-e981-41d9-bf2a-35916fa79520
+ Message
+
+
+
+ Transfer
+
+ 42b3c583-3f46-4b3a-9210-7eecf230be36
+ SystemMessage
+
+ Transfer_To_Agent
+ false
+
+ false
+
+ false
+ Clown company
+
+ Joke_Teller
+
+
+ Text
+ This variable may also be referred to as VerifiedCustomerId
+ VerifiedCustomerId
+ false
+
+ Internal
+
+
+ Text
+ The API name of the Salesforce object (such as Account or Opportunity) associated with the record the user wants to interact with. Do not use this if the user is already talking about another object in the conversation.
+ currentObjectApiName
+ true
+
+ External
+
+
+ Text
+ Salesforce Application Name.
+ currentAppName
+ true
+
+ External
+
+
+ Text
+ The ID of the record on the user's screen. It may not relate to the user's input. Only use this if the user input mentions 'this', 'current', 'the record', etc. If in doubt, don't use it.
+ currentRecordId
+ true
+
+ External
+
+
+ Text
+ Type of Salesforce Page.
+ currentPageType
+ true
+
+ External
+
+ Welcome
+ false
+ false
+ false
+ false
+ You tell jokes
+ false
+ false
+ false
+ false
+ Casual
+
diff --git a/force-app/main/default/bots/Joke_Teller/v2.botVersion-meta.xml b/force-app/main/default/bots/Joke_Teller/v2.botVersion-meta.xml
new file mode 100644
index 0000000..05a3977
--- /dev/null
+++ b/force-app/main/default/bots/Joke_Teller/v2.botVersion-meta.xml
@@ -0,0 +1,118 @@
+
+
+ v2
+ false
+
+
+
+ Hi, I’m Agentforce! I use AI to search trusted sources, and more. Ask me “What else can you do?” to see how I can simplify your workday. How can I help?
+ 27ccc99f-55c2-4282-9a60-9595143d2d40
+
+ 409063f8-1420-4992-93d9-2a25168c17fa
+ Message
+
+
+ 76a5aff1-103f-4db9-a64a-d67c2c346eb2
+ Wait
+
+ Welcome
+ false
+
+ false
+
+
+
+
+ Something went wrong. Try again.
+ 9dbaab3f-24cc-457d-991c-68c3873ea7c3
+
+ 9101e5fc-3b8f-432a-8cdf-5f165d87531c
+ Message
+
+
+ 9638411b-5c2a-44fc-b75d-88b6e22f069a
+ Wait
+
+ Error_Handling
+ false
+
+ false
+
+
+
+
+ One moment while I connect you to the next available service representative.
+ fb6549eb-b2ab-42bc-9f79-78e8906a6493
+
+ 16b73c0f-e981-41d9-bf2a-35916fa79520
+ Message
+
+
+
+ Transfer
+
+ 42b3c583-3f46-4b3a-9210-7eecf230be36
+ SystemMessage
+
+ Transfer_To_Agent
+ false
+
+ false
+
+ false
+ Clown company
+
+ Joke_Teller_v2
+
+
+ Text
+ Salesforce Application Name.
+ currentAppName
+ true
+
+ External
+
+
+ Text
+ The API name of the Salesforce object (such as Account or Opportunity) associated with the record the user wants to interact with. Do not use this if the user is already talking about another object in the conversation.
+ currentObjectApiName
+ true
+
+ External
+
+
+ Text
+ Type of Salesforce Page.
+ currentPageType
+ true
+
+ External
+
+
+ Text
+ The ID of the record on the user's screen. It may not relate to the user's input. Only use this if the user input mentions 'this', 'current', 'the record', etc. If in doubt, don't use it.
+ currentRecordId
+ true
+
+ External
+
+
+ Text
+ This variable may also be referred to as VerifiedCustomerId
+ VerifiedCustomerId
+ false
+
+ Internal
+
+ Welcome
+ false
+ false
+ false
+ false
+ You tell jokes
+ false
+ false
+ false
+ false
+ Casual
+
diff --git a/force-app/main/default/genAiPlannerBundles/Joke_Teller/Joke_Teller.genAiPlannerBundle b/force-app/main/default/genAiPlannerBundles/Joke_Teller/Joke_Teller.genAiPlannerBundle
new file mode 100644
index 0000000..17fdc41
--- /dev/null
+++ b/force-app/main/default/genAiPlannerBundles/Joke_Teller/Joke_Teller.genAiPlannerBundle
@@ -0,0 +1,101 @@
+
+
+ Tell jokes
+
+ AnswerQuestionsWithKnowledge_16jHE00000005e1
+
+
+ Tell_Joke_16jHE00000005e1
+
+
+ Tell_Joke_16jHE00000005e1
+ true
+ This topic handles requests where the user asks the Agent to tell a joke or share something humorous.
+ Tell_Joke_16jHE00000005e1
+
+ Provide a concise and appropriate joke in response to the user's request.
+ instruction_1
+
+ Instruction 1
+ 0
+
+
+ Avoid offensive or inappropriate humor, and ensure jokes are suitable for a general audience.
+ instruction_2
+
+ Instruction 2
+ 1
+
+
+ If the user does not specify a type of joke, provide a general or light-hearted joke.
+ instruction_3
+
+ Instruction 3
+ 2
+
+
+ If the user asks for a specific type of joke, tailor the response to match their request.
+ instruction_4
+
+ Instruction 4
+ 3
+
+ en_US
+
+ Joke_179HE00000008yT
+
+
+ GetRecordDetails_179HE00000008yT
+
+
+ GetRecordDetails_179HE00000008yT
+ Generates a text blob containing record details, including object fields and values and records from related lists.
+ GetRecordDetails_179HE00000008yT
+ getDataForGrounding
+ standardInvocableAction
+ false
+ true
+ GetRecordDetails
+ Get Record Details
+ Getting details
+ EmployeeCopilot__GetRecordDetails
+
+
+ Joke_179HE00000008yT
+ joke on theme
+ Joke_179HE00000008yT
+ Joke
+ generatePromptResponse
+ false
+ true
+ Joke
+ Joke
+ joking
+
+ Tell_Joke
+ Tell Joke
+ Topic
+ Your job is only to provide a joke or humorous response when requested by the user. Do not address unrelated topics or provide non-humorous responses.
+
+ Joke_Teller
+
+ AnswerQuestionsWithKnowledge_16jHE00000005e1
+ Answers questions about company policies and procedures, troubleshooting steps, or product information. For example: “What is your return policy?” “How do I fix an issue?” or “What features does a product have?”
+ AnswerQuestionsWithKnowledge_16jHE00000005e1
+ streamKnowledgeSearch
+ standardInvocableAction
+ false
+ true
+ AnswerQuestionsWithKnowledge
+ Answer Questions with Knowledge
+ Getting answers
+ EmployeeCopilot__AnswerQuestionsWithKnowledge
+
+
+ true
+ false
+ SurfaceAction__Messaging
+ Messaging
+
+ AiCopilot__ReAct
+
diff --git a/force-app/main/default/genAiPlannerBundles/Joke_Teller/localActions/Tell_Joke_16jHE00000005e1/GetRecordDetails_179HE00000008yT/input/schema.json b/force-app/main/default/genAiPlannerBundles/Joke_Teller/localActions/Tell_Joke_16jHE00000005e1/GetRecordDetails_179HE00000008yT/input/schema.json
new file mode 100644
index 0000000..0c0df4d
--- /dev/null
+++ b/force-app/main/default/genAiPlannerBundles/Joke_Teller/localActions/Tell_Joke_16jHE00000005e1/GetRecordDetails_179HE00000008yT/input/schema.json
@@ -0,0 +1,16 @@
+{
+ "required" : [ "recordId" ],
+ "unevaluatedProperties" : false,
+ "properties" : {
+ "recordId" : {
+ "title" : "{!$Label.InvocableActionGetRecordDetails.InvocableActionInputRecordIdLabel}",
+ "description" : "{!$Label.InvocableActionGetRecordDetails.InvocableActionInputRecordIdDesc}",
+ "lightning:type" : "lightning__recordIdType",
+ "einstein:description" : "The single ID of a CRM record to get the record details for.",
+ "lightning:isPII" : false,
+ "copilotAction:isUserInput" : false
+ }
+ },
+ "lightning:type" : "lightning__objectType",
+ "lightning:textIndexed" : true
+}
\ No newline at end of file
diff --git a/force-app/main/default/genAiPlannerBundles/Joke_Teller/localActions/Tell_Joke_16jHE00000005e1/GetRecordDetails_179HE00000008yT/output/schema.json b/force-app/main/default/genAiPlannerBundles/Joke_Teller/localActions/Tell_Joke_16jHE00000005e1/GetRecordDetails_179HE00000008yT/output/schema.json
new file mode 100644
index 0000000..8e1866e
--- /dev/null
+++ b/force-app/main/default/genAiPlannerBundles/Joke_Teller/localActions/Tell_Joke_16jHE00000005e1/GetRecordDetails_179HE00000008yT/output/schema.json
@@ -0,0 +1,16 @@
+{
+ "unevaluatedProperties" : false,
+ "properties" : {
+ "snapshot" : {
+ "title" : "{!$Label.InvocableActionGetRecordDetails.InvocableActionRecordDetailsOutputLabel}",
+ "description" : "{!$Label.InvocableActionGetRecordDetails.InvocableActionRecordDetailsOutputDesc}",
+ "lightning:type" : "lightning__textType",
+ "einstein:description" : "A text blob containing record details, including object fields and values, records from related lists, and more.",
+ "lightning:isPII" : false,
+ "copilotAction:isDisplayable" : false,
+ "copilotAction:isUsedByPlanner" : true
+ }
+ },
+ "lightning:type" : "lightning__objectType",
+ "lightning:textIndexed" : true
+}
\ No newline at end of file
diff --git a/force-app/main/default/genAiPlannerBundles/Joke_Teller/localActions/Tell_Joke_16jHE00000005e1/Joke_179HE00000008yT/input/schema.json b/force-app/main/default/genAiPlannerBundles/Joke_Teller/localActions/Tell_Joke_16jHE00000005e1/Joke_179HE00000008yT/input/schema.json
new file mode 100644
index 0000000..fc397af
--- /dev/null
+++ b/force-app/main/default/genAiPlannerBundles/Joke_Teller/localActions/Tell_Joke_16jHE00000005e1/Joke_179HE00000008yT/input/schema.json
@@ -0,0 +1,14 @@
+{
+ "required" : [ "Input:theme" ],
+ "unevaluatedProperties" : false,
+ "properties" : {
+ "Input:theme" : {
+ "title" : "theme",
+ "description" : "theme of the joke",
+ "lightning:type" : "lightning__textType",
+ "lightning:isPII" : false,
+ "copilotAction:isUserInput" : false
+ }
+ },
+ "lightning:type" : "lightning__objectType"
+}
\ No newline at end of file
diff --git a/force-app/main/default/genAiPlannerBundles/Joke_Teller/localActions/Tell_Joke_16jHE00000005e1/Joke_179HE00000008yT/output/schema.json b/force-app/main/default/genAiPlannerBundles/Joke_Teller/localActions/Tell_Joke_16jHE00000005e1/Joke_179HE00000008yT/output/schema.json
new file mode 100644
index 0000000..c0a9283
--- /dev/null
+++ b/force-app/main/default/genAiPlannerBundles/Joke_Teller/localActions/Tell_Joke_16jHE00000005e1/Joke_179HE00000008yT/output/schema.json
@@ -0,0 +1,15 @@
+{
+ "unevaluatedProperties" : false,
+ "properties" : {
+ "promptResponse" : {
+ "title" : "Prompt Response",
+ "description" : "The prompt response generated by the action based on the specified prompt and input.",
+ "lightning:type" : "lightning__textType",
+ "lightning:isPII" : false,
+ "copilotAction:isDisplayable" : true,
+ "copilotAction:isUsedByPlanner" : true,
+ "copilotAction:useHydratedPrompt" : false
+ }
+ },
+ "lightning:type" : "lightning__objectType"
+}
\ No newline at end of file
diff --git a/force-app/main/default/genAiPlannerBundles/Joke_Teller/plannerActions/AnswerQuestionsWithKnowledge_16jHE00000005e1/input/schema.json b/force-app/main/default/genAiPlannerBundles/Joke_Teller/plannerActions/AnswerQuestionsWithKnowledge_16jHE00000005e1/input/schema.json
new file mode 100644
index 0000000..075b8d8
--- /dev/null
+++ b/force-app/main/default/genAiPlannerBundles/Joke_Teller/plannerActions/AnswerQuestionsWithKnowledge_16jHE00000005e1/input/schema.json
@@ -0,0 +1,56 @@
+{
+ "required" : [ "query" ],
+ "unevaluatedProperties" : false,
+ "properties" : {
+ "query" : {
+ "title" : "Query",
+ "description" : "Required. A string created by generative AI to be used in the knowledge article search.",
+ "const" : "",
+ "lightning:type" : "lightning__textType",
+ "lightning:isPII" : false,
+ "copilotAction:isUserInput" : true
+ },
+ "citationsUrl" : {
+ "title" : "Citations Url",
+ "description" : "The URL to use for citations for custom Agents.",
+ "const" : "",
+ "lightning:type" : "lightning__textType",
+ "lightning:isPII" : false,
+ "copilotAction:isUserInput" : true
+ },
+ "ragFeatureConfigId" : {
+ "title" : "RAG Feature Configuration Id",
+ "description" : "The RAG Feature ID to use for grounding this copilot action invocation.",
+ "const" : "",
+ "lightning:type" : "lightning__textType",
+ "lightning:isPII" : false,
+ "copilotAction:isUserInput" : true
+ },
+ "citationsEnabled" : {
+ "title" : "Citations Enabled",
+ "description" : "Whether or not citations are enabled.",
+ "const" : false,
+ "lightning:type" : "lightning__booleanType",
+ "lightning:isPII" : false,
+ "copilotAction:isUserInput" : true
+ },
+ "mode" : {
+ "title" : "The mode to run in.",
+ "description" : "The mode to use (Professor/Smart/Basic). Determines which prompt template to use.",
+ "const" : "BASIC",
+ "lightning:type" : "lightning__textType",
+ "lightning:isPII" : false,
+ "copilotAction:isUserInput" : false
+ },
+ "retrieverMode" : {
+ "title" : "The retriever mode to use.",
+ "description" : "The retriever mode to use (Simple/Augmented). Determines whether to do query regeneration",
+ "const" : "SIMPLE",
+ "lightning:type" : "lightning__textType",
+ "lightning:isPII" : false,
+ "copilotAction:isUserInput" : false
+ }
+ },
+ "lightning:type" : "lightning__objectType",
+ "lightning:textIndexed" : true
+}
\ No newline at end of file
diff --git a/force-app/main/default/genAiPlannerBundles/Joke_Teller/plannerActions/AnswerQuestionsWithKnowledge_16jHE00000005e1/output/schema.json b/force-app/main/default/genAiPlannerBundles/Joke_Teller/plannerActions/AnswerQuestionsWithKnowledge_16jHE00000005e1/output/schema.json
new file mode 100644
index 0000000..984e384
--- /dev/null
+++ b/force-app/main/default/genAiPlannerBundles/Joke_Teller/plannerActions/AnswerQuestionsWithKnowledge_16jHE00000005e1/output/schema.json
@@ -0,0 +1,25 @@
+{
+ "unevaluatedProperties" : false,
+ "properties" : {
+ "knowledgeSummary" : {
+ "title" : "Knowledge Summary",
+ "description" : "A string formatted as rich text that includes a summary of the information retrieved from the knowledge articles and citations to those articles.",
+ "maxLength" : 100000,
+ "lightning:type" : "lightning__richTextType",
+ "lightning:isPII" : false,
+ "copilotAction:isDisplayable" : true,
+ "copilotAction:isUsedByPlanner" : true,
+ "copilotAction:useHydratedPrompt" : true
+ },
+ "citationSources" : {
+ "title" : "Citation Sources",
+ "description" : "Source links for the chunks in the hydrated prompt that's used by the planner service.",
+ "lightning:type" : "@apexClassType/AiCopilot__GenAiCitationInput",
+ "lightning:isPII" : false,
+ "copilotAction:isDisplayable" : false,
+ "copilotAction:isUsedByPlanner" : true
+ }
+ },
+ "lightning:type" : "lightning__objectType",
+ "lightning:textIndexed" : true
+}
\ No newline at end of file
diff --git a/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/Joke_Teller_v2.genAiPlannerBundle b/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/Joke_Teller_v2.genAiPlannerBundle
new file mode 100644
index 0000000..dc7c75b
--- /dev/null
+++ b/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/Joke_Teller_v2.genAiPlannerBundle
@@ -0,0 +1,101 @@
+
+
+ Tell jokes
+
+ AnswerQuestionsWithKnowledge_16j2f3faf2e6180
+
+
+ Tell_Joke_16jec9509d758d6
+
+
+ Tell_Joke_16jec9509d758d6
+ true
+ This topic handles requests where the user asks the Agent to tell a joke or share something humorous.
+ Tell_Joke_16jec9509d758d6
+
+ Provide a concise and appropriate joke in response to the user's request.
+ instruction_1
+
+ Instruction 1
+ 0
+
+
+ Avoid offensive or inappropriate humor, and ensure jokes are suitable for a general audience.
+ instruction_2
+
+ Instruction 2
+ 1
+
+
+ If the user does not specify a type of joke, provide a general or light-hearted joke.
+ instruction_3
+
+ Instruction 3
+ 2
+
+
+ If the user asks for a specific type of joke, tailor the response to match their request.
+ instruction_4
+
+ Instruction 4
+ 3
+
+ en_US
+
+ Joke_179ac9e3c2c30fc
+
+
+ GetRecordDetails_17916d02769eab6
+
+
+ Joke_179ac9e3c2c30fc
+ joke on theme
+ Joke_179ac9e3c2c30fc
+ Joke
+ generatePromptResponse
+ false
+ true
+ Joke
+ Joke
+ joking
+
+
+ GetRecordDetails_17916d02769eab6
+ Generates a text blob containing record details, including object fields and values and records from related lists.
+ GetRecordDetails_17916d02769eab6
+ getDataForGrounding
+ standardInvocableAction
+ false
+ true
+ GetRecordDetails
+ Get Record Details
+ Getting details
+ EmployeeCopilot__GetRecordDetails
+
+ Tell_Joke
+ Tell Joke
+ Topic
+ Your job is only to provide a joke or humorous response when requested by the user. Do not address unrelated topics or provide non-humorous responses.
+
+ Joke_Teller
+
+ AnswerQuestionsWithKnowledge_16j2f3faf2e6180
+ Answers questions about company policies and procedures, troubleshooting steps, or product information. For example: “What is your return policy?” “How do I fix an issue?” or “What features does a product have?”
+ AnswerQuestionsWithKnowledge_16j2f3faf2e6180
+ streamKnowledgeSearch
+ standardInvocableAction
+ false
+ true
+ AnswerQuestionsWithKnowledge
+ Answer Questions with Knowledge
+ Getting answers
+ EmployeeCopilot__AnswerQuestionsWithKnowledge
+
+
+ true
+ false
+ SurfaceAction__Messaging
+ Messaging
+
+ AiCopilot__ReAct
+
diff --git a/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/localActions/Tell_Joke_16jec9509d758d6/GetRecordDetails_17916d02769eab6/input/schema.json b/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/localActions/Tell_Joke_16jec9509d758d6/GetRecordDetails_17916d02769eab6/input/schema.json
new file mode 100644
index 0000000..0c0df4d
--- /dev/null
+++ b/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/localActions/Tell_Joke_16jec9509d758d6/GetRecordDetails_17916d02769eab6/input/schema.json
@@ -0,0 +1,16 @@
+{
+ "required" : [ "recordId" ],
+ "unevaluatedProperties" : false,
+ "properties" : {
+ "recordId" : {
+ "title" : "{!$Label.InvocableActionGetRecordDetails.InvocableActionInputRecordIdLabel}",
+ "description" : "{!$Label.InvocableActionGetRecordDetails.InvocableActionInputRecordIdDesc}",
+ "lightning:type" : "lightning__recordIdType",
+ "einstein:description" : "The single ID of a CRM record to get the record details for.",
+ "lightning:isPII" : false,
+ "copilotAction:isUserInput" : false
+ }
+ },
+ "lightning:type" : "lightning__objectType",
+ "lightning:textIndexed" : true
+}
\ No newline at end of file
diff --git a/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/localActions/Tell_Joke_16jec9509d758d6/GetRecordDetails_17916d02769eab6/output/schema.json b/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/localActions/Tell_Joke_16jec9509d758d6/GetRecordDetails_17916d02769eab6/output/schema.json
new file mode 100644
index 0000000..8e1866e
--- /dev/null
+++ b/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/localActions/Tell_Joke_16jec9509d758d6/GetRecordDetails_17916d02769eab6/output/schema.json
@@ -0,0 +1,16 @@
+{
+ "unevaluatedProperties" : false,
+ "properties" : {
+ "snapshot" : {
+ "title" : "{!$Label.InvocableActionGetRecordDetails.InvocableActionRecordDetailsOutputLabel}",
+ "description" : "{!$Label.InvocableActionGetRecordDetails.InvocableActionRecordDetailsOutputDesc}",
+ "lightning:type" : "lightning__textType",
+ "einstein:description" : "A text blob containing record details, including object fields and values, records from related lists, and more.",
+ "lightning:isPII" : false,
+ "copilotAction:isDisplayable" : false,
+ "copilotAction:isUsedByPlanner" : true
+ }
+ },
+ "lightning:type" : "lightning__objectType",
+ "lightning:textIndexed" : true
+}
\ No newline at end of file
diff --git a/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/localActions/Tell_Joke_16jec9509d758d6/Joke_179ac9e3c2c30fc/input/schema.json b/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/localActions/Tell_Joke_16jec9509d758d6/Joke_179ac9e3c2c30fc/input/schema.json
new file mode 100644
index 0000000..fc397af
--- /dev/null
+++ b/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/localActions/Tell_Joke_16jec9509d758d6/Joke_179ac9e3c2c30fc/input/schema.json
@@ -0,0 +1,14 @@
+{
+ "required" : [ "Input:theme" ],
+ "unevaluatedProperties" : false,
+ "properties" : {
+ "Input:theme" : {
+ "title" : "theme",
+ "description" : "theme of the joke",
+ "lightning:type" : "lightning__textType",
+ "lightning:isPII" : false,
+ "copilotAction:isUserInput" : false
+ }
+ },
+ "lightning:type" : "lightning__objectType"
+}
\ No newline at end of file
diff --git a/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/localActions/Tell_Joke_16jec9509d758d6/Joke_179ac9e3c2c30fc/output/schema.json b/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/localActions/Tell_Joke_16jec9509d758d6/Joke_179ac9e3c2c30fc/output/schema.json
new file mode 100644
index 0000000..c0a9283
--- /dev/null
+++ b/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/localActions/Tell_Joke_16jec9509d758d6/Joke_179ac9e3c2c30fc/output/schema.json
@@ -0,0 +1,15 @@
+{
+ "unevaluatedProperties" : false,
+ "properties" : {
+ "promptResponse" : {
+ "title" : "Prompt Response",
+ "description" : "The prompt response generated by the action based on the specified prompt and input.",
+ "lightning:type" : "lightning__textType",
+ "lightning:isPII" : false,
+ "copilotAction:isDisplayable" : true,
+ "copilotAction:isUsedByPlanner" : true,
+ "copilotAction:useHydratedPrompt" : false
+ }
+ },
+ "lightning:type" : "lightning__objectType"
+}
\ No newline at end of file
diff --git a/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/plannerActions/AnswerQuestionsWithKnowledge_16j2f3faf2e6180/input/schema.json b/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/plannerActions/AnswerQuestionsWithKnowledge_16j2f3faf2e6180/input/schema.json
new file mode 100644
index 0000000..075b8d8
--- /dev/null
+++ b/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/plannerActions/AnswerQuestionsWithKnowledge_16j2f3faf2e6180/input/schema.json
@@ -0,0 +1,56 @@
+{
+ "required" : [ "query" ],
+ "unevaluatedProperties" : false,
+ "properties" : {
+ "query" : {
+ "title" : "Query",
+ "description" : "Required. A string created by generative AI to be used in the knowledge article search.",
+ "const" : "",
+ "lightning:type" : "lightning__textType",
+ "lightning:isPII" : false,
+ "copilotAction:isUserInput" : true
+ },
+ "citationsUrl" : {
+ "title" : "Citations Url",
+ "description" : "The URL to use for citations for custom Agents.",
+ "const" : "",
+ "lightning:type" : "lightning__textType",
+ "lightning:isPII" : false,
+ "copilotAction:isUserInput" : true
+ },
+ "ragFeatureConfigId" : {
+ "title" : "RAG Feature Configuration Id",
+ "description" : "The RAG Feature ID to use for grounding this copilot action invocation.",
+ "const" : "",
+ "lightning:type" : "lightning__textType",
+ "lightning:isPII" : false,
+ "copilotAction:isUserInput" : true
+ },
+ "citationsEnabled" : {
+ "title" : "Citations Enabled",
+ "description" : "Whether or not citations are enabled.",
+ "const" : false,
+ "lightning:type" : "lightning__booleanType",
+ "lightning:isPII" : false,
+ "copilotAction:isUserInput" : true
+ },
+ "mode" : {
+ "title" : "The mode to run in.",
+ "description" : "The mode to use (Professor/Smart/Basic). Determines which prompt template to use.",
+ "const" : "BASIC",
+ "lightning:type" : "lightning__textType",
+ "lightning:isPII" : false,
+ "copilotAction:isUserInput" : false
+ },
+ "retrieverMode" : {
+ "title" : "The retriever mode to use.",
+ "description" : "The retriever mode to use (Simple/Augmented). Determines whether to do query regeneration",
+ "const" : "SIMPLE",
+ "lightning:type" : "lightning__textType",
+ "lightning:isPII" : false,
+ "copilotAction:isUserInput" : false
+ }
+ },
+ "lightning:type" : "lightning__objectType",
+ "lightning:textIndexed" : true
+}
\ No newline at end of file
diff --git a/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/plannerActions/AnswerQuestionsWithKnowledge_16j2f3faf2e6180/output/schema.json b/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/plannerActions/AnswerQuestionsWithKnowledge_16j2f3faf2e6180/output/schema.json
new file mode 100644
index 0000000..984e384
--- /dev/null
+++ b/force-app/main/default/genAiPlannerBundles/Joke_Teller_v2/plannerActions/AnswerQuestionsWithKnowledge_16j2f3faf2e6180/output/schema.json
@@ -0,0 +1,25 @@
+{
+ "unevaluatedProperties" : false,
+ "properties" : {
+ "knowledgeSummary" : {
+ "title" : "Knowledge Summary",
+ "description" : "A string formatted as rich text that includes a summary of the information retrieved from the knowledge articles and citations to those articles.",
+ "maxLength" : 100000,
+ "lightning:type" : "lightning__richTextType",
+ "lightning:isPII" : false,
+ "copilotAction:isDisplayable" : true,
+ "copilotAction:isUsedByPlanner" : true,
+ "copilotAction:useHydratedPrompt" : true
+ },
+ "citationSources" : {
+ "title" : "Citation Sources",
+ "description" : "Source links for the chunks in the hydrated prompt that's used by the planner service.",
+ "lightning:type" : "@apexClassType/AiCopilot__GenAiCitationInput",
+ "lightning:isPII" : false,
+ "copilotAction:isDisplayable" : false,
+ "copilotAction:isUsedByPlanner" : true
+ }
+ },
+ "lightning:type" : "lightning__objectType",
+ "lightning:textIndexed" : true
+}
\ No newline at end of file
diff --git a/force-app/main/default/genAiPromptTemplates/Joke.genAiPromptTemplate-meta.xml b/force-app/main/default/genAiPromptTemplates/Joke.genAiPromptTemplate-meta.xml
new file mode 100644
index 0000000..2c00b70
--- /dev/null
+++ b/force-app/main/default/genAiPromptTemplates/Joke.genAiPromptTemplate-meta.xml
@@ -0,0 +1,22 @@
+
+
+ 1N9eG8XTLrkmzZp6A+tPfCXoNLUeJbZtnCRIa+Eh8zY=_1
+ Joke
+ Joke
+
+ Tell a joke on the theme: {!$Input:theme}
+
+
+ theme
+ primitive://String
+ theme
+ Input:theme
+ true
+
+ sfdc_ai__DefaultOpenAIGPT4OmniMini
+ Published
+ 1N9eG8XTLrkmzZp6A+tPfCXoNLUeJbZtnCRIa+Eh8zY=_1
+
+ einstein_gpt__flex
+ Global
+
diff --git a/jokeTest.csv b/jokeTest.csv
index a25011e..037dd3d 100644
--- a/jokeTest.csv
+++ b/jokeTest.csv
@@ -1,5 +1,5 @@
Utterance,Expected Topic,Expected Actions,Expected Response
-Tell me a joke,Joke_Telling_16j720000002ufd,,A joke is delivered
-Can you make me laugh,Joke_Telling_16j720000002ufd,,A joke is delivered
-I need a joke about programming,Joke_Telling_16j720000002ufd,"['ThemedJoke']",A programming-related joke is delivered
-Tell me a dad joke,Joke_Telling_16j720000002ufd,"['ThemedJoke']",A dad joke is delivered
\ No newline at end of file
+Tell me a joke,Tell_Joke_16jHE00000005e1,,A joke is delivered
+Can you make me laugh,Tell_Joke_16jHE00000005e1,,A joke is delivered
+I need a joke about programming,Tell_Joke_16jHE00000005e1,"['Joke_179ac9e3c2c30fc']",A programming-related joke is delivered
+Tell me a dad joke,Tell_Joke_16jHE00000005e1,"['Joke_179ac9e3c2c30fc']",A dad joke is delivered
\ No newline at end of file