Inaktivitetsudløser

Få mere at vide om, hvordan du konfigurerer inaktivitetsudløsere med vejledning om konfiguration, kanalsupport, begrænsninger og fejlfinding.

Oversigt

Inaktivitetsudløseren, der også kaldes OnInactivity eller Brugeren er inaktiv i et stykke tid er en systemudløser i Copilot Studio, der automatisk udløser et emne, når en bruger ikke sender nogen meddelelse for en bestemt varighed. Den kører på serversiden, så agenten evaluerer timeren og udfører emnet, selvom brugerens klient er inaktiv.

Almindelige anvendelsestilfælde omfatter:

  • Send en påmindelse, hvor du bliver spurgt, om brugeren stadig er der
  • Frigør agentkapacitet ved automatisk at lukke inaktive samtaler
  • Indsaml feedback (f.eks. en kundetilfredshedsundersøgelse), før en session slutter
  • Ryd op i sessionstilstanden for afbrudte samtaler

Sådan fungerer inaktivitetsudløseren

I dette afsnit forklares det, hvordan Copilot Studio evaluerer inaktivitetsudløsere, planlægger timere og kører emner, når en samtale er inaktiv.

Arkitektonisk oversigt

  1. Brugeren sender en meddelelse.

  2. Runtime evaluerer alle OnInactivity-udløsere .

  3. Kørselsgrupperne udløses efter varighed og vælger ét pr. varighedsniveau. Det laveste prioritetsnummer vinder. tidligste oprettelsesdato bryder bånd.

  4. Kørslen sorterer de valgte udløsere efter varighed, korteste først.

  5. Kørselsmiljøet sætter en timer til den næste aktivering i Azure Service Bus. Der er kun én aktiv timer ad gangen.

  6. Brugeren er inaktiv i den konfigurerede varighed.

  7. Timeren aktiveres, og inaktivitetshændelsen sendes til runtime.

  8. Runtime matcher og udfører inaktivitets-emnet.

  9. Runtime beregner den resterende tid til den næste udløser og giver en ny timer.

Nøglefunktionsmåder

  • Timer nulstilles for hver brugermeddelelse.

    Hver gang en bruger sender en meddelelse, genvurderer systemet alle inaktivitetsudløsere og aktiverer den næste (korteste varighed først). Der er kun én aktiv timer til enhver tid.

  • Flere udløsere understøttes.

    Du kan have flere OnInactivity-udløsere i forskellige varigheder (f.eks. 5 minutter og 10 minutter). Systemet behandler dem i stigende rækkefølge efter varighed. Der er kun valgt én udløser pr. varighedsniveau. Hvis to udløsere har samme varighed, udløses udløseren med det lavere Priority antal. Hvis der stadig er dødt løb, vinder den først oprettede udløser. Systemet kasserer andre udløsere i samme varighed.

  • Udløsere sættes i kø, ikke parallelle.

    Der er kun én aktiv timer ad gangen. Efter at den aktuelle trigger er udført, beregner runtime den resterende tid til den næste trigger og opsætter en ny timer for forskellen. Nettoeffekten er, at udløsere udløses ved de korrekte forskydninger fra det oprindelige inaktivitetspunkt, selvom mindre drift kan forekomme, hvis udførelsen af udløseren tager lang tid.

  • Baggrundsudførelse.

    Inaktivitetshændelsen er en baggrundsudløser. Det kræver ikke brugerinteraktion for at udløse.

  • Transskriptionsoptagelse.

    Systemet registrerer inaktivitetshændelser i transskriptioner af samtaler. Der oprettes en ny transskriptionspost efter 30 minutters inaktivitet.

Eksempeltidslinje (flere udløsere)

Tidspunkt Hændelse
0:00 Brugeren sender sidste meddelelse
5:00 Udløser A (300 s) udløses, sender advarsel
10:00 Udløser B (600 s) udløses, afslutter samtale

Hvis brugeren sender en meddelelse kl. 4:30, nulstilles begge timere. Udløser A udløses kl. 9:30, og Udløser B udløses kl.

Konfigurer inaktivitetsudløseren

I dette afsnit kan du se, hvordan Copilot Studio starter, nulstiller og kører inaktivitetstimere, så du kan forudsige, hvad der sker, når en samtale går inaktiv.

Opret et emne med en inaktivitetsudløser

  1. I Copilot Studio skal du gå til Topics>Tilføj et emne>Fra tom.

  2. Vælg udløserudtrykket. I stedet for et udtryk skal du vælge "Efter en periode med inaktivitet".

  3. Angiv egenskaben Inaktivitetsvarighed . I manuel inputtilstand skal du vælge en forudindstilling på rullelisten (15 minutter, 30 minutter, 45 minutter eller 1 time). Hvis du vil angive en brugerdefineret værdi i sekunder eller en Power Fx-formel (f.eks. Global.TimeoutSeconds), skal du skifte tilstandsvælgeren til Formel og skrive værdien direkte.

  4. Design emneflowet (send en meddelelse, stil et spørgsmål, afslut samtalen osv.).

  5. Registrer og udgiv din agent.

Varighedsreference

Ønsket timeout Værdi (sekunder)
30 sekunder 30
2 minutter 120
5 minutter 300
10 minutter 600
1 time 3600

Vigtig

Egenskaben bruger sekunder, ikke minutter eller millisekunder. En værdi på 60000 betyder ca. 16,7 timer, ikke 60 sekunder.

Eksempel: Udløser med enkelt advarsel

[OnInactivity – 600 sekunder]

Meddelelse: "Er du der stadig? Svar for at fortsætte."

Afslut emne

Eksempel: 5-minutters advarsel og 10-minutters autoclose

Dette mønster er det mest almindelige. Opret to emner om inaktivitet:

Emne 1: Advarsel om inaktivitet (5 minutter)

  • Udløser: Efter en periode med inaktivitet
  • durationInSeconds: 300
  • Handlinger: Send en meddelelse: "Er du der stadig? Denne samtale lukkes om 5 minutter, hvis der ikke er noget svar."

Emne 2: Automatisk lukning (10 minutter)

  • Udløser: Efter en periode med inaktivitet
  • durationInSeconds: 600
  • Handlinger:
    1. Set Global.DeactivateInactivity = true (vagtvariabel – se Bedste fremgangsmåder)
    2. Send en meddelelse: "Denne samtale lukkes på grund af inaktivitet".
    3. Afslut samtale

Eksempel: Feedbacksamling

  • Udløser: Efter en periode med inaktivitet
  • varighedISekunder: 120
  • Handlinger:
    1. Spørg: "Før du går, vil du bedømme din oplevelse? (1-5)"
    2. Gem svaret
    3. Afslut samtale

Føj en betingelse til udløseren

Tilføj en betingelsesnode lige efter udløseren, så den kun kører i bestemte situationer:

  • Kun udløses på en bestemt kanal: =Activity.ChannelId = "msteams"
  • Udløses kun, hvis en vagtvariabel ikke er angivet: =Global.DeactivateInactivity = false

Hvis du har flere udløsere med Question noder, skal du bruge et delt emne for at undgå problemer med stabling af dialogbokse:

  1. Opret et delt emne med navnet HandleInactivity:

    • Tilføj en global variabel Global.InactivityStage (tekst)
    • Kontrollér dens værdi:
      • "warning" → Send en advarsel med en spørgsmålsnode ("Fortsæt?" / "Slut?")
      • "close" → Send en slutmeddelelse, og afslut samtalen
  2. Første OnInactivity-udløser (300 sekunder):

    • Sæt Global.InactivityStage = "warning"
    • Omdiriger til HandleInactivity
  3. Anden OnInactivity-udløser (600 sekunder):

    • Sæt Global.InactivityStage = "close"
    • Omdiriger til HandleInactivity

Denne fremgangsmåde forhindrer spørgsmål noder i at stable og oprette promptløkker.

Kanalspecifik konfiguration

Kanalunderstøttelsesmatrix

Kanal Supportniveau Bemærkninger
Demo hjemmeside Fuldt understøttet Bedste kanal til test af inaktivitetsudløsere.
Brugerdefineret websted (Direct Line) Fuldt understøttet Fungerer på samme måde som demowebstedet.
Microsoft Teams Understøttet Fungerer, men se Teams-specifik vejledning i næste afsnit. Godkendelsestokens kan udløbe i lange inaktivitetsperioder.
Dynamics 365 Kundeservice Fuldt understøttet Kræver ekstra trin for at lukke Dynamics 365 Customer Service samtaler. Få mere at vide i Dynamics 365 Customer Service konfiguration.
Microsoft 365 Copilot Udløser udløses, men meddelelser leveres ikke Dette scenarie er en kendt begrænsning. Udløseren udfører serversiden, men den Microsoft 365 Copilot brugergrænseflade viser ikke proaktive meddelelser fra agenter. Der er ingen løsning.
Testpanel Understøttes ikke Dette scenarie er tilsigtet. Timere er deaktiveret for Studio-kanalets ID. Brug demowebstedet eller en publiceret kanal til at teste.
DirectEngine Understøttes ikke Dette scenarie er tilsigtet. Timere er deaktiveret for DirectEngine-kanal-id'et (design/testmiljø).
Telekommunikation/IVR Understøttes ikke For stemmekanaler skal du i stedet bruge udløseren OnSilence .

Teams-konfiguration

Teams bruger en vedvarende model med en enkelt samtale. Samtalen "slutter aldrig" fra Teams's perspektiv. Denne model betyder, at inaktivitetsudløsere bliver ved med at blive ved med at aktivere, selv når brugeren har gennemgået samtalen.

Anbefalet Teams-mønster:

  1. Opret en global variabel Global.IsConversationClosed (boolesk, standard: false).

  2. I starten af dit emne om inaktivitet skal du kontrollere: If Global.IsConversationClosed = true → Afslut emne (afslut med det samme).

  3. Når samtalen logisk slutter (brugeren siger "farvel", er kundetilfredsheden fuldført osv.), skal du angive Global.IsConversationClosed = true.

  4. Inaktivitetsudløseren udløses muligvis stadig, men den afsluttes med det samme uden at vise en meddelelse.

Dynamics 365 Customer Service konfiguration

  • Samtaler omslutter automatisk efter 30 minutters inaktivitet som standard.
  • At kalde kun EndConversation lukker ikke Dynamics 365 Customer Service sessionen. Agentkapaciteten bliver ikke frigivet.
  • Hvis du vil lukke samtalen helt, skal du angive kontekstvariablen CloseOmnichannelConversation til true via et Power Automate flow og derefter bruge en Transfer til agent node.

Kendte begrænsninger

Hurtig reference: Hvad kan forstyrre inaktivitetstimeren?

Funktion eller handling Effekt på inaktivitetstimere
Afslut samtale Rydder alle timere permanent
Brugeren sender en meddelelse Nulstiller alle timere til nul (efter design)
Udløserbetingelse med en ikke-initialiseret variabel Timeren er tavst udelukket - aktiveres aldrig
Varigheden overstiger 7 dage (604.800 sekunder) Timeren ignoreres lydløst
Rydning af globale variabler i et emne om inaktivitet agent mister samtalekontekst
Viderestil til kundeservicerepræsentant Timer forbliver aktiv og kan udløses under kundeservicerepræsentantens samtale

Testpanelet understøtter ikke inaktivitetsudløsere

Testpanelet Copilot Studio udløser ikke inaktivitet. Denne begrænsning er tilsigtet. Publicer din agent, og test på en livekanal (demowebsted, Teams osv.).

Microsoft 365 Copilot viser ikke inaktivitetsmeddelelser

Udløseren udfører serversiden, men output (meddelelser, kort) leveres ikke til brugeren i den Microsoft 365 Copilot oplevelse. Der er ingen løsning. Se Kendte begrænsninger i Teams.

Generering af AI-orkestrering

Inaktivitetsudløsere implementeres som klassiske orkestreringsemneudløsere og bruger en separat timerbaseret hændelsespipeline. Når Generativ AI-orkestrering er slået til, er emnedistribution ikke længere afhængig af klassisk udløsergenkendelse, så inaktivitetsemner udløses muligvis ikke pålideligt i alle konfigurationer. Hvis inaktivitetshåndtering er påkrævet, er klassisk orkestrering den anbefalede og fuldt validerede konfiguration.

Forbundne agenter: inaktivitet for underordnet agent understøttes ikke

I konfigurationer af forbundne agenter fungerer inaktivitetsudløsere i underordnede agenter ikke og returnerer "Ugyldigt Connected Agent-svar". Placer al inaktivitetslogik i den overordnede agent.

Maksimal varighed: 7 dage (604.800 sekunder)

Publicerede robotter ignorerer uovervåget udløsere med varigheder på mere end 604.800 sekunder. Der vises ingen fejl. I designtilstand vises der muligvis en fejl. Der er ingen gennemtvunget minimum – korte varigheder (under ca. 15 sekunder) kan fungere uforudsigeligt på grund af ventetid for timerinfrastrukturen.

Slutsamtale rydder inaktivitetstimere

Når du kalder Afslut samtale i et emne, stopper den permanent alle aktive inaktivitetstimere for den pågældende samtale. Timerne er ryddet helt; de er ikke nulstillet eller sat på pause. Handlingen sletter alle ventende inaktivitetshændelser, der allerede er planlagt.

Hvis du vil afslutte et emnes flow uden at forstyrre inaktivitetstimere, skal du bruge en af de alternative handlinger:

Handling (i Copilot Studio) Effekt på inaktivitetstimere
Afslut samtale Rydder alle timere; Timere stopper permanent
Afslut det aktuelle emne (EndDialog) Påvirker ikke timere. Timere fortsætter med at køre
Annuller alle emner (CancelAllDialogs) Påvirker ikke timere. Timere fortsætter med at køre

Tip!

Hvis dit emne skal lukke det aktuelle flow, men du stadig vil have, at inaktivitetstimeren udløses senere (f.eks. et JIRA-søgeemne, der afsluttes, men samtalen stadig får timeout), skal du bruge Afslut aktuelt emne i stedet for Afslut samtale.

Brug af en vagtvariabel til at forhindre refiring er fortsat en anbefalet defensiv praksis.

Udløser aktiveres efter agenteskalering

Når systemet overfører en samtale til en repræsentant for kundeservice, forbliver inaktivitetsudløseren aktiv. Det kan udløses under den menneskelige agentsamtale og sende agentmeddelelser uventet. Kald altid EndConversation før overførsel, eller brug en vagtvariabel.

Udløsermeddelelser vises muligvis i transskriptioner, når samtalen er afsluttet

Selv efter en samtale lukkes, udløses udløseren muligvis stadig, og dens meddelelser registreres i transskriptionen. Denne betingelse påvirker ikke brugeroplevelsen, men vises muligvis i analyser.

Telefon-, stemme- og IVR-kanaler

Inaktivitetsudløseren er ikke tilgængelig for telefon- og stemmekanaler. Brug i stedet udløseren OnSilence .

Almindelige fejlkonfigurationer

Brug dette afsnit til at identificere og løse almindelige konfigurationsproblemer, der kan forhindre inaktivitetsudløsere i at fungere som forventet.

Afslut samtale i emnet inaktivitet (løkkerisiko)

Problem: Når du kalder Afslut samtale fra et emne om inaktivitet, rydder du alle inaktivitetstimere. Men på kanaler med vedvarende samtaler (især Teams) forbliver den underliggende samtale aktiv. I nogle konfigurationer kan udløseren stadig udløses igen, hvilket medfører gentagne meddelelser af typen "session afsluttet".

Løsning (anbefales som defensiv praksis): Brug en vagtvariabel:

  1. Opret Global.DeactivateInactivity (boolesk, standard: false).

  2. Øverst i hvert inaktivitetsemne skal du tilføje en betingelse: Fortsæt kun, hvis Global.DeactivateInactivity = false.

  3. Angiv Global.DeactivateInactivity = true, før du kalder EndConversation.

Note

Mønsteret for vagtvariablen er især vigtigt for Teams-kanaler, hvor den vedvarende samtalemodel betyder, at samtalen aldrig slutter helt.

Varighed angivet til den forkerte værdi

Problem:durationInSeconds er i sekunder. Værdien er 60000 ca. 16,7 timer og ikke 60 sekunder.

Løsning: Dobbelttjek værdierne i forhold til referencetabellen i sektion 3.

Spørgsmålsnoder i flere emner om inaktivitet (prompt-stabling)

Problem: Hvis flere udløsere hver har noden Spørgsmål , afbryder den anden udløsers node Spørgsmål den første. Når brugeren svarer, fortsætter den første spørgsmålsnode , og der oprettes en løkke.

Løsning: Brug det delte emnemønster. Sammenflette logikken for spørgsmålsnoden i et enkelt emne, eller sørg for, at kun én udløser har noden Spørgsmål .

Rydning af globale variabler i emnet inaktivitet

Problem: Hvis emnet inaktivitet rydder globale variabler, mister agenten al samtalekontekst og reagerer ikke, når brugeren returnerer.

Løsning: Nulstil kun inaktivitetsspecifikke variabler, ikke hele samtaletilstanden.

Manglende begrænsning af inaktivitetsudløsere i Teams

Problem: I Teams betyder den vedvarende samtalemodel, at der udløses ild på ubestemt tid. Brugerne modtager gentagne meddelelser timer eller dage senere, "er du der stadig?".

Løsning: Brug altid gatingvariabelmønsteret til Teams.

Der blev ikke kaldt closeOmnichannelConversation

Problem: For Dynamics 365 Customer Service agenter lukker kald af EndConversation alene ikke den Dynamics 365 Customer Service session. Samtaler hober sig op i agentkøen.

Solution: Angiv CloseOmnichannelConversation til true via Power Automate i dit emne om inaktivitet.

Dynamisk varighed fra en ikke-initialiseret variabel

Problem: Brug af et Power Fx-udtryk som =Environment.InactivityTimeout for varigheden fungerer, men hvis variablen ikke initialiseres eller er null, udelades udløseren uovervåget.

Løsning: Sørg for, at alle variabler, der bruges i udløserbetingelser og varighedsudtryk, har gyldige standardværdier.

Forventer, at udløsere fungerer efter agenteskalering

Problem: Efter systemoverdragelser til en kundeservicerepræsentant udløses udløseren på den oprindelige agentsamtale og sender meddelelser under human agent-sessionen.

Løsning: Afslut agentsamtalen på eskaleringstidspunktet, eller brug en vagtvariabel Global.IsEscalated = true , og kontrollér den i starten af emnet inaktivitet.

Foretag fejlfinding, når inaktivitetsudløseren ikke fungerer

Brug dette beslutningstræ til at diagnosticere problemet:

  1. Hvor tester du?

    • Hvis du bruger testpanelet, skal du stoppe. Testpanelet understøtter ikke inaktivitetsudløsere. Publicer og test på en livekanal.
  2. Hvilken kanal bruger du?

    • Microsoft 365 Copilot? Denne kanal har en kendt begrænsning. Udløser udløses, men meddelelser leveres ikke. Der er ingen løsning.
    • Telekommunikation/IVR? Denne kanal understøttes ikke. Brug i stedet udløseren OnSilence .
  3. Er generativ AI-orkestrering aktiveret?

    • Inaktivitetsudløsere bruger en separat timerpipeline fra en genkendelsesbaseret routing. Deres funktionsmåde med generativ AI-orkestrering er dog ikke fuldt valideret. Hvis håndtering af inaktivitet er kritisk, er klassisk orkestrering den anbefalede konfiguration.
  4. Er din durationInSeconds større end 604.800?

    • Hvis ja, ignoreres udløseren uovervåget. Reducer til 604.800 eller lavere.
  5. Er agenten en underordnet agent i en konfigurationen af Connected Agent?

    • Hvis ja, understøtter vi ikke inaktivitetsudløsere for underordnede agenter. Flyt logikken til den overordnede agent.
  6. Har du flere inaktivitetsudløsere?

    • De skyder i rækkefølge efter varighed (korteste først). Sørg for, at du venter længe nok. Alle brugermeddelelser nulstiller alle timere.
  7. Har udløseren en betingelse, der refererer til en ikke-initialiseret variabel?

    • Hvis en betingelse refererer til en variabel, der endnu ikke er angivet, udelades udløseren uovervåget. Sørg for, at alle betingelsesvariabler har standardværdier.
  8. Blev agenten publiceret igen, efter samtalen startede?

    • En genudgivelse nulstiller muligvis inaktivitetstimeren for aktive sessioner. Start en ny samtale, og test igen.

Hvis inaktivitetsudløseren stadig ikke fungerer, kan du prøve følgende indstillinger:

  • Kontrollér samtaletransskriptioner for enhver aktivitet relateret til emnet inaktivitet. Hvis emnet vises, men brugeren ikke kunne se meddelelsen, er problemet kanalspecifik levering.
  • Kontrollér, at emnet ikke er deaktiveret eller arkiveret.
  • Bekræft, at udløsertypen er "Efter en periode med inaktivitet", ikke en udtryksudløser.

Bedste praksis

  • Test altid på en publiceret kanal. Brug demowebstedet til hurtig test. Brug aldrig testruden.

  • Brug en vagtvariabel til at forhindre løkker. Opret Global.DeactivateInactivity (boolesk, standard false). Angiv den til true , før du kalder EndConversation. Tjek det i starten af hvert inaktivitetsemne.

  • Bevar varigheder, der er rimelige. Minimum ~15 sekunder, højst 604.800 sekunder (7 dage).

  • Bekræft dine enheder. Denne egenskab er i enheder af sekunder. 5 minutter = 300, ikke 5.

  • For Dynamics 365 Customer Service: Par altid EndConversation med closeOmnichannelConversation via Power Automate.

  • I scenarier med flere udløsere: Begræns spørgsmålsnoder til én udløser, eller brug det delte emnemønster.

  • Ring op EndConversation , før du overfører til en repræsentant for kundeservice for at deaktivere inaktivitetsudløsere.

  • Overvåg transskriptioner af samtaler efter udrulning for at bekræfte, at meddelelser vises på forventede tidspunkter.

ofte stillede spørgsmål

Hvorfor fungerer inaktivitetsudløseren ikke i testpanelet?

Timere er deaktiveret i testpanelet af design. Publicer din agent, og test på en livekanal.

Kan jeg bruge dynamiske varigheder (f.eks. fra en variabel)?

Ja. Varighedsfeltet accepterer Power Fx-udtryk. Du kan bruge en miljøvariabel eller en beregnet værdi. Udtrykket evalueres på kørselstidspunktet, når timeren er aktiveret. Kontrollér, at variablen er initialiseret og indeholder et gyldigt tal.

Hvad sker der, hvis jeg publicerer en ny agentversion, mens samtaler er aktive?

Kørselstidspunktet henter den nye version. Hvis udløser-id'et er ændret (emne slettet og genoprettet), vender systemet tilbage til matchning efter varighed. Hvis ingen udløser matcher på id eller varighed, bliver den ventende inaktivitetsbegivenhed fjernet.

Hvordan stopper jeg helt inaktivitetsudløsere i Teams?

Du kan ikke stoppe dem på platformniveau. Brug det samme variabelmønster: Angiv en boolesk værdi, når samtalen logisk slutter, og kontrollér den i starten af emnet inaktivitet for at afslutte tidligt.

Fungerer inaktivitetsudløseren med godkendelse?

Ja, men hvis der er lange sessionstimeout (f.eks. 24 timer), kan brugerens godkendelsestoken udløbe, før udløseren udløses. Sørg for, at din agent håndterer godkendelse igen på en elegant måde.

Hvad sker der, hvis mit emne om inaktivitet kalder en connector, der tager lang tid?

Connectorkald har en timeoutgrænse (30 sekunder som standard, 60 sekunder maks.). Optimer connectoren, eller håndter timeout på en elegant måde.