Since this is the very first thing users will see when looking at the agent in SharePoint, it's critical for to make it as easy for people to use as possible. I've built 3 other topics and enabled buttons for them. The functionality works perfectly when someone clicks on one of the buttons, it does find the correct topic and provide the output. The issue is that if someone types a prompt in the main window, it will just keep cycling through the On Conversation Start message over and over until they click a button. After it provides an output, they can prompt with anything and it will start providing results.
I have tried using Copilot for a couple of hours to help (the only AI service I have access to at work), but even the GPT-5 model is really struggling with the YAML schema validation and it's just a cascade of errors from there when it starts.
Here's the YAML I currently have, and any guidance/advice would be greatly appreciated:
kind: AdaptiveDialog
beginDialog:
kind: OnConversationStart
id: start
actions:
- kind: AdaptiveCardPrompt
id: ac_welcome
card: |-
{
"$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.5",
"body": [
{
"type": "ColumnSet",
"columns": [
{
"type": "Column",
"width": "auto",
"verticalContentAlignment": "Center",
"items": [
{
"type": "TextBlock",
"text": "Hello, I'm **VizBot**!",
"maxLines": 1,
"size": "large"
}
]
},
{
"type": "Column",
"width": "auto",
"verticalContentAlignment": "Center",
"items": [
{
"type": "Image",
"url": "https://company-name.sharepoint.com/sites/H999/Shared%20Documents/Copilot%20Studio%20Agents/VizBot/Images/Vizbot-transparent-48x48_v1.png",
"width": "48px",
"height": "48px",
"altText": "VizBot",
"spacing": "None"
}
]
}
]
},
{
"type": "TextBlock",
"text": "I'm a virtual assistant to help with all things Power BI at Company-Name.",
"wrap": true,
"spacing": "Medium"
},
{
"type": "TextBlock",
"text": "I always start by searching our [**Power BI Central**](https://company-name.sharepoint.com/Sites/H999/SitePages/Power-BI-Central.aspx) documentation for the most accurate, K-C specific guidance. I’ll also add trusted external resources like [Microsoft docs](https://learn.microsoft.com/en-us/power-bi/), [SQLBI](https://www.sqlbi.com/), and [approved learning channels](https://company-name.sharepoint.com/Sites/H999/SitePages/Power-BI-Training.aspx#external-learning-content) when needed.",
"wrap": true,
"spacing": "Medium"
},
{
"type": "TextBlock",
"text": "Choose a prompt below or type your own and submit!",
"wrap": true,
"weight": "Bolder",
"spacing": "Medium"
}
],
"actions": [
{
"type": "Action.Submit",
"title": "How do I get a Power BI Pro license?",
"associatedInputs": "none",
"data": {
"prompt": "How do I get a Power BI Pro license?"
}
},
{
"type": "Action.Submit",
"title": "How do I get access to a Power BI report / Workspace?",
"associatedInputs": "none",
"data": {
"prompt": "How do I get access to a Power BI report / Workspace?"
}
},
{
"type": "Action.Submit",
"title": "How can semantic models be reused by others?",
"associatedInputs": "none",
"data": {
"prompt": "How can semantic models be reused by others?"
}
}
]
}
output:
binding:
actionSubmitId: Topic.actionSubmitId
prompt: Topic.prompt
outputType:
properties:
actionSubmitId: String
prompt: String
- kind: SetVariable
id: set_query
variable: Topic.Query
value: =Topic.prompt
- kind: ConditionGroup
id: branch_on_query
conditions:
- id: when_pro_license_exact
condition: =Text(Lower(Trim(Topic.Query))) = "how do i get a power bi pro license?"
actions:
- kind: BeginDialog
id: UQVFS4
dialog: crd3b_vizBot.topic.PowerBIProLicense
- id: when_access_exact
condition: =Text(Lower(Trim(Topic.Query))) = "how do i get access to a power bi report / workspace?"
actions:
- kind: BeginDialog
id: DKVpJe
dialog: crd3b_vizBot.topic.PowerBIAccess
- id: when_shared_exact
condition: =Text(Lower(Trim(Topic.Query))) = "how can semantic models be reused by others?"
actions:
- kind: BeginDialog
id: ggGjUP
dialog: crd3b_vizBot.topic.BuildPermissionsSharedSemanticModels
- id: when_query_present
condition: =!IsBlank(Topic.Query)
actions:
- kind: AnswerQuestionWithAI
id: answer_ai
userInput: =Topic.Query
- id: when_query_blank
condition: =IsBlank(Topic.Query)
actions:
- kind: SendActivity
id: nudge_user
activity: Please click a prompt or type into the field and press Ask this.