web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :
Copilot Studio - Topic Creation & Management
Suggested answer

On Conversation Start: Show Buttons in Adaptive Card for Topics or Allow Text Entry in Main Window

(1) ShareShare
ReportReport
Posted on by 15
Hello Community,

I've been struggling with some YAML configuration issues with the On Conversation Start topic.
 
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.
Categories:
I have the same question (0)
  • Suggested answer
    Arild Aarnes Profile Picture
    242 on at
    On Conversation Start: Show Buttons in Adaptive Card for Topics or Allow Text Entry in Main Window
    Hi,
     
    The Ask with an adaptive card node will wait for you to click one of the buttons, and if you don't it will retry a configurable amount of times.
     
    So for the functionality you are looking for I think I would replace the Ask with adaptive card with a standard message node with three Quick replies buttons. 
    The variable System.Activity.Text and System.LastMessage.Text will contain the text from the Quick reply button or the prompt the user typed. You can than use this in your condition to send them to the correct topic or let the bot answer the question.

    Something like this for the message node:
     
    kind: AdaptiveDialog
    beginDialog:
      kind: OnConversationStart
      id: main
      actions:
        - kind: SendActivity
          id: sendActivity_7K2qjs
          activity:
            attachments:
              - kind: AdaptiveCardTemplate
                cardContent: |-
                  {
                    "$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"
                      }
                    ]
                  }
    
            quickReplies:
              - kind: MessageBack
                text: how do i get a power bi pro license?
    
              - kind: MessageBack
                text: how do i get access to a power bi report / workspace?
    
              - kind: MessageBack
                text: how can semantic models be reused by others?
     
     
    Regards,
    Arild
  • swolfe2 Profile Picture
    15 on at
    On Conversation Start: Show Buttons in Adaptive Card for Topics or Allow Text Entry in Main Window
    @Arild Aarnes thanks for the reply!

    I should have said that this was my original approach. The problem is that it doesn't seem to send the text as user utterances in the quick reply. I have pre-defined topics for each of those three options. If I use a quick reply, I get a different output than if I type the same text into the chat window (which does always pick up the topic) vs. clicking a quick reply button (does not pick up the topic). 

    I really don't want to make things too complicated, but I feel like it would be really helpful for users to click a button for a "most frequent topic" or type their own. If I click a button, I would want it to have the same output as if someone typed it.
  • Suggested answer
    Arild Aarnes Profile Picture
    242 on at
    On Conversation Start: Show Buttons in Adaptive Card for Topics or Allow Text Entry in Main Window
    Hi @swolfe2
     
    Using the Quick Reply should work the same as typing the text into the chat window. 
    Whatever you put into the text property is what is sent to the bot, same as if you typed it directly into the chat yourself. If you select "Send a message" as the Type you will see the text. Ig you select "Send a hidden message" you will not see the text in the chat but it is still sent to the bot.


    I just did a quick test and it does send me to the correct topic every time using quick reply buttons.

     
    Regards,
    Arild
     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Tom Macfarlan – Community Spotlight

We are honored to recognize Tom Macfarlan as our Community Spotlight for October…

Leaderboard > Copilot Studio

Last 30 days Overall leaderboard

Featured topics