Stil spørgsmål med Adaptive kort

Note

Denne artikel beskriver funktioner, der anvendes i agenter eller agentstrømme, drevet af standardledningsnettet.

Brug et Adaptive Card til at indsamle information fra en bruger under en agentsamtale. Et kort kan indeholde tekst, grafik, knapper og inputfelter. Få mere at vide i Brug Adaptive kort i Copilot Studio.

Med en Adaptive kort-node kan din agent vise et adaptivt kort, der indeholder en eller flere send-knapper og eventuelt et eller flere formularinputfelter. Din agent gemmer brugerinput i variabler til brug senere i samtalen.

Note

Copilot Studio understøtter Adaptive kort skemaversion 1.6 og tidligere. Den relevante skemaversion afhænger dog af den målrettede værtsapp:

  • Bot Framework-komponenten Webchat (dvs. standardmønsteret for webstedsintegration) understøtter version 1.6, men understøtter ikke Action.Execute
  • Livechatwidgetten (bruges til Omnichannel til kundeservice) er begrænset til version 1.5
  • Teams er også begrænset til version 1.5

Derudover gengiver Copilot Studio kun version-1.6-kort i testchatten, ikke på lærredet.

Få mere at vide i AdaptiveCard.

Copilot Studio indeholder en indbygget adaptiv kortdesigner, som tilbyder de mest nyttige funktioner fra designeren til adaptive kort.

Du kan eventuelt bruge:

  • Brug en JSON-repræsentation for det kort, du vil vise til brugeren.
  • Brug en Power Fx-formel til at inkludere dynamiske oplysninger på kortet.

Du kan også kontrollere kortets funktionsmåde, f.eks. hvad du skal gøre, når brugeren angiver et ugyldigt svar, eller hvis noden afbrydes.

Noden Adaptive kort er beregnet til interaktive kort, hvor brugeren forventes at sende et svar. Brug Meddelelse- og Spørgsmål-noder til at præsentere brugeren for et ikke-interaktivt kort, der viser oplysninger.

Tip

Omdøb noder for at gøre det nemmere at identificere dem. Vælg nodens navnefelt for at opdatere navnet direkte, eller vælg de tre prikker (...) i noden og vælg Omdøb fra menuen. Du kan også omdøbe noder i kodeeditoren.

Det er ikke muligt at omdøbe udløsernoder og noderne Gå til trin.

Nodenavne kan være på op til 500 tegn.

Tilføje et adaptivt kortnode

  1. Vælg ikonet Tilføj node under den node, som du vil tilføje en Adaptive Card-node efter. Vælg derefter Ask with Adaptive Card.

  2. Vælg de tre prikker (...) i noden, og vælg derefter Egenskaber.

  3. I panelet Adaptive kortnodeegenskaber skal du vælge Rediger adaptivt kort. Designerpanelet for adaptive kort åbnes.

  4. Tilføj de ønskede elementer for dit kort, og konfigurer deres egenskaber. I panelet Editor til kortnyttedata kan du også skifte standardnyttedata til dit kort ved at erstatte den bogstavelige JSON-værdi for dit kort.

    Tip

    Dit kort skal indeholde mindst én send-knap, da det skal være et interaktivt kort, der giver brugeren mulighed for at sende oplysninger tilbage til agenten. Hvis det ikke gør og kun er beregnet til at vise oplysninger, skal du føje dit adaptive kort til en meddelelsesnode.

  5. Når du er færdig med det oprindelige design, skal du vælge Gem og lukke designerpanelet. Der vises et eksempel på dit kort på noden. Copilot Studio opretter automatisk outputvariabler baseret på de input, der er angivet i koden.

    Tip

    Hvis de outputvariabler, der genereres for kortet, er forkerte, kan du manuelt opdatere listen over variabler og deres typer ved at vælge Rediger skema i panelet med Nodens egenskaber for adaptive kort.

    Dit interaktive adaptive kort er klar. Når en bruger af din agent vælger en send-knap på et kort, udfyldes outputvariablerne med de oplysninger, som brugeren har angivet i deres interaktion med kortet.

Andre egenskaber

Brug de andre egenskaber til at kontrollere adfærden af Adaptive Card-noden , såsom:

  • Sådan reagerer agenten på et ugyldigt svar
  • Om den kan afbrydes

Hvis agenten afventer en indsendelse fra et adaptivt kort, og brugeren i stedet sender en sms, betragtes dette svar som ugyldigt, medmindre meddelelsen udløser en afbrydelse. I dette tilfælde bestemmer følgende egenskaber funktionsmåden.

  • Hvor mange genprompter: Det antal gange, din agent forsøger at få en gyldig indsendelse fra kortet. Standarden er Gentag op til 2 gange. Du kan også vælge Gentag én gang eller Gentag ikke. For hvert forsøg sendes kortet til brugeren igen.

  • Prompt om forsøg: Brug denne egenskab til at definere en meddelelse, der skal sendes, når der opstår et nyt forsøg, sammen med en gentagelse af kortet. Hvis du vil definere en meddelelse om et nyt forsøg, skal du vælge Tilpas og derefter angive den nye prompt.

  • Tillad skift til et andet emne: Hvis indstillingen er valgt (standard), udløser en indgående meddelelse fra en bruger, når agenten afventer indsendelse af et kort, en afbrydelse og skifter til et andet emne. Hvis der opstår et emneskift, sendes kortet igen til brugeren, når det afbrydende emne slutter.

Funktionsmåde for indsend knap for agenter med efterfølgende kort

Adaptive kort gør det muligt at vælge deres indsendelsesknapper flere gange. Hvis en agent har fortløbende Adaptive kort, og brugeren vælger en knap på et tidligere kort, kan brugeren opleve en uventet funktionsmåde.

For at skelne indsendelser fra forskellige kort, inkluder identificerende data i hver submit-handling og tjek dem, når svaret behandles. I en brugerdefineret klient håndteres gentagne eller forældede indsendelser separat fra at identificere, hvilken handling der blev valgt.

Brug et afsendelses-id i Action.Submit-data

Hvis din agent sender flere adaptive kort i en samtale (f.eks. efterfølgende kort, nye forsøg eller afbrydelser), kan brugerne vælge Send på et tidligere kort. Inkluder en identifikator i hver indsendelseshandlings datapayload og valider den, når svaret behandles.

Eksempel:

{
  "type": "Action.Submit",
  "title": "Confirm",
  "data": {
    "actionSubmitId": "booking_confirm_card_v3_confirm"
  }
}

Denne faste identifikator adskiller handlingen i dette eksempel. Det identificerer ikke unikt hver renderet forekomst af kortet eller forhindrer automatisk dobbelte indsendelser.

Webchat UX-tip til at undgå forældede klik

Nogle chatklienter holder tidligere kort klikbare efter at en bruger har indsendt et senere kort. Hvis du bygger en tilpasset Webchat-oplevelse, kan du overveje at gøre indsendte kort skrivebeskyttede eller opdatere tidligere kort for at undgå utilsigtede dubletter eller forældede indsendelser.

Brug de handlingshåndterings- og aktivitetsafsendelsesgrænseflader, som din valgte klient understøtter. Hold håndteringen af indsendelse adskilt fra andre handlinger for kort, og giv en mulighed for at prøve igen, når leveringen fejler. At gøre et kort skrivebeskyttet er en brugervenlighedsforanstaltning på klientsiden, ikke en erstatning for validering af indsendelser i din agent eller service.

Brug til Power Fx at gøre kortet dynamisk

Du kan bruge en Power Fx formel til at inkludere dynamiske oplysninger på dit kort ved at referere til variabler fra dit emne eller din agent.

  1. Vælg de tre prikker (...) i noden, og vælg derefter Egenskaber.

  2. I panelet Egenskaber for adaptiv kortnode skal du skifte til Formel. Hvis du vælger Formel , konverteres JSON-repræsentationen af dit kort automatisk til en Power Fx-formel.

    Skærmbillede af indstillingen til at skifte til en Power Fx formel i stedet for JSON i egenskabspanelet for noden til adaptive kort.

    Start f.eks. med følgende JSON-konstant for et kort:

    {
      "$schema": "http://adaptivecards.microsoft.com/schemas/adaptive-card.json",
      "type": "AdaptiveCard",
      "version": "1.5",
      "body": [{
          "type": "ColumnSet",
          "columns": [{
              "type": "Column",
              "width": 2,
              "items": [{
                  "type": "TextBlock",
                  "text": "Tell us about yourself",
                  "weight": "Bolder",
                  "size": "Medium",
                  "wrap": true,
                  "style": "heading"
                }, {
                  "type": "TextBlock",
                  "text": "Enter your name to continue with your booking.",
                  "isSubtle": true,
                  "wrap": true
                }, {
                  "type": "Input.Text",
                  "id": "myName",
                  "label": "Your name",
                  "isRequired": true,
                  "errorMessage": "Please enter your name."
                }
              ]
            }
          ]
        }
      ],
      "actions": [{
          "type": "Action.Submit",
          "title": "Submit",
          "data": {
            "actionSubmitId": "trip_details_submit"
          }
        }
      ]
    }
    

    Her er den resulterende Power Fx-formel, der bruger to variabler Topic.Title og Topic.Subtitle i stedet for den hårdt kodede tekst fra JSON-konstanten. (I dette eksempel antages det, at variablerne er defineret i dit emne.)

    {
      '$schema': "http://adaptivecards.microsoft.com/schemas/adaptive-card.json",
      type: "AdaptiveCard",
      version: "1.5",
      body: [
        {
          type: "ColumnSet",
          columns: [
            {
              type: "Column",
              width: 2,
              items: [
                {
                  type: "TextBlock",
                  text: Topic.Title,
                  weight: "Bolder",
                  size: "Medium",
                  wrap: true,
                  style: "heading"
                },
                {
                  type: "TextBlock",
                  text: Topic.Subtitle,
                  isSubtle: true,
                  wrap: true
                },
                {
                  type: "Input.Text",
                  id: "myName",
                  label: "Your name",
                  isRequired: true,
                  errorMessage: "Please enter your name."
                }
              ]
            }
          ]
        }
      ],
      actions: [
        {
          type: "Action.Submit",
          title: "Submit",
          data: {
            actionSubmitId: "trip_details_submit"
          }
        }
      ]
    }
    

Vigtigt!

Når du begynder at redigere i formelpanelet, kan du ikke gå tilbage til den oprindelige JSON-kode. Hvis du vil tillade iterativt design og ændringer, skal du gemme en kopi af den oprindelige JSON i dine egne noter eller som en kommentar i noden. Denne forholdsregel hjælper dig med at gendanne ændringer, hvis det er nødvendigt.