Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Lär dig hur du konfigurerar inaktivitetsutlösare, med vägledning om konfiguration, kanalstöd, begränsningar och felsökning.
Översikt
Inaktivitetstriggaren, även kallad OnInactivity eller Användaren är inaktiv under en tid, är en systemutlösare i Copilot Studio som automatiskt utlöser ett ämne när en användare inte skickar något meddelande under en viss tidsperiod. Den körs på serversidan, så agenten utvärderar timern och aktiverar ämnet även om användarens klient är inaktiv.
Vanliga användarfall omfattar:
- Skicka en påminnelse för att fråga om användaren fortfarande är kvar
- Frigör handläggarkapacitet genom att automatiskt stänga inaktiva konversationer
- Samla in feedback (till exempel en kundnöjdhetsundersökning) innan en session avslutas
- Rensa sessionstillstånd för övergivna konversationer
Hur inaktivitetsutlösaren fungerar
Den här sektionen förklarar hur Copilot Studio utvärderar inaktivitetsutlösare, schemalägger timers och startar ämnen när en konversation är inaktiv.
Arkitekturöversikt
Användaren skickar ett meddelande.
Körningen utvärderar alla OnInactivity-utlösare.
Körningen grupperar utlösare efter varaktighet och väljer en per varaktighetsnivå. Det lägsta prioritetsnumret vinner. Vid lika resultat avgör tidigaste skapandedatum.
Körtiden ordnar de valda utlösarna efter varaktighet, med den kortaste först.
Körtiden aktiverar en timer för nästa utlösare i Azure Service Bus. Endast en timer är aktiv åt gången.
Användaren är inaktiv under den konfigurerade varaktigheten.
Timern utlöses och inaktivitetshändelsen skickas till körningen.
Körningen matchar och exekverar ämnet för inaktivitet.
Körningen beräknar den återstående tiden till nästa utlösare och ställer in en ny timer.
Nyckelbeteenden
Timern återställs vid varje användarmeddelande.
Varje gång en användare skickar ett meddelande omvärderar systemet alla inaktivitetsutlösare och aktiverar nästa, med den kortaste varaktigheten först. Endast en timer är aktiv åt gången.
Flera utlösare stöds inte.
Du kan ha flera OnInactivity-utlösare med olika varaktigheter (till exempel 5 minuter och 10 minuter). Systemet hanterar dem i stigande ordning efter varaktighet. Endast en utlösare väljs per varaktighetsnivå. Om två utlösare har samma varaktighet, avfyras utlösaren med lägst
Priority-nummer. Om det fortfarande finns ett lika resultat vinner den tidigast skapade utlösaren. Systemet ignorerar andra utlösare vid samma varaktighet.Utlösare är köade, inte parallella.
Endast en timer är aktiv åt gången. När den aktuella utlösaren har körts, beräknar exekveringstiden den återstående tiden till nästa utlösare och ställer in en ny timer för skillnaden. Helhetsresultatet är att utlösarna aktiveras vid rätt förskjutningar från den ursprungliga inaktivitetspunkten, även om mindre drift kan inträffa om det tar lång tid att köra utlösarna.
Bakgrundskörning.
Inaktivitetshändelsen är en bakgrundsutlösare. Det kräver ingen användarinteraktion för att utlösas.
Utskriftsinspelning.
Systemet registrerar inaktivitetshändelser i samtalstranskriptioner. En ny transkriptpost skapas efter 30 minuters inaktivitet.
Exempel på tidslinje (flera utlösare)
| Tid | Händelse |
|---|---|
| 0:00 | Användaren skickar sista meddelandet |
| 5:00 | Utlösare A (300 s) aktiveras, skickar en varning |
| 10:00:00 | Utlösare B (600 s) aktiveras, avslutar samtalet |
Om användaren skickar ett meddelande kl. 04:30, återställs båda timerna. Utlösare A utlöses kl. 9:30 och Utlösare B utlöses kl. 14:30.
Konfigurera inaktivitetsutlösaren
Den här sektionen visar hur Copilot Studio startar, återställer och kör inaktivitetstimers så att du kan förutse vad som händer när en konversation blir inaktiv.
Skapa ett ämne för inaktivitetsutlösare
I Copilot Studio, gå till Ämnen>Lägg till ett ämne>Från tom.
Välj utlösande fras. Istället för en fras, välj "Efter en period av inaktivitet".
Ange egenskapen Inaktivitetens varaktighet. I manuellt inmatningsläge, välj en förinställning från rullgardinsmenyn (15 minuter, 30 minuter, 45 minuter eller 1 timme). För att ange ett anpassat värde i sekunder eller en Power Fx-formel (till exempel
Global.TimeoutSeconds), ändra lägesväljaren till Formel och skriv in värdet direkt.Designa ämnesflödet (skicka ett meddelande, ställ en fråga, avsluta samtalet och så vidare).
Spara och publicera din agent.
Varaktighetens referens
| Önskad tidsgräns | Värde (sekunder) |
|---|---|
| 30 sekunder | 30 |
| 2 minuter | 120 |
| 5 minuter | 300 |
| 10 minuter | 600 |
| 1 timme | 3600 |
Viktigt
Egenskapen använder sekunder, inte minuter eller millisekunder. Ett värde på 60000 betyder ungefär 16,7 timmar, inte 60 sekunder.
Exempel: Enkel varningsutlösare
OnInactivity - 600 sekunder
Meddelande: "Är du fortfarande där?" Svara för att fortsätta."
Avsluta ämne
Exempel: 5-minuters varning och 10-minuters automatisk stängning
Detta mönster är det vanligaste. Skapa två ämnen för inaktivitet:
Ämne 1: Inaktivitetsvarning (5 minuter)
- Utlösare: Efter en period av inaktivitet
-
durationInSeconds:300 - Åtgärder: Skicka ett meddelande: "Är du fortfarande där?" Den här konversationen avslutas om 5 minuter om inget svar."
Ämne 2: Automatisk stängning (10 minuter)
- Utlösare: Efter en period av inaktivitet
-
durationInSeconds:600 - Åtgärder:
- Sätt
Global.DeactivateInactivity = true(skyddsvariabel – se Bästa praxis) - Skicka ett meddelande: "Den här konversationen avslutas på grund av inaktivitet."
- Avsluta konversation
- Sätt
Exempel: Feedbackinsamling
- Utlösare: Efter en period av inaktivitet
- durationInSeconds:
120 - Åtgärder:
- Fråga: "Innan du avslutar, vill du betygsätta din upplevelse?" (1–5)"
- Lagra svaret
- Avsluta konversation
Lägg till ett villkor i utlösaren
Lägg till en Condition-nod direkt efter utlösaren så att den endast körs i vissa situationer:
- Avfyra endast på en specifik kanal:
=Activity.ChannelId = "msteams" - Utlös endast om en skyddsvariabel inte är inställd:
=Global.DeactivateInactivity = false
Rekommenderad metod för flera utlösare (delat ämne)
Om du har flera utlösare med frågenoder , använd ett delat ämne för att undvika problem med dialogstackning:
Skapa ett delat ämne kallat
HandleInactivity:- Lägg till en global variabel
Global.InactivityStage(Text) - Kontrollera dess värde:
-
"warning"→ Skicka ett varningsmeddelande med en fråge-nod ("Fortsätta?" / "Avsluta?") -
"close"→ Skicka ett avslutande meddelande och avsluta samtalet
-
- Lägg till en global variabel
Första OnInactivity-utlösaren (300 sekunder):
- Konfigurera
Global.InactivityStage = "warning" - Omdirigera till
HandleInactivity
- Konfigurera
Andra OnInactivity-utlösaren (600 sekunder):
- Konfigurera
Global.InactivityStage = "close" - Omdirigera till
HandleInactivity
- Konfigurera
Denna metod förhindrar att frågenoder staplas och att promptloopar uppstår.
Kanalspecifik konfiguration
Kanalstödsmatris
| Kanal | Supportnivå | Anteckningar |
|---|---|---|
| Demowebbplats | Stöds helt | Bästa kanalen för att testa inaktivitetsutlösare. |
| Anpassad webbplats (Direct Line) | Stöds helt | Fungerar på samma sätt som demowebbplatsen. |
| Microsoft Teams | Stöds | Fungerar, men se Teams-specifik vägledning i nästa avsnitt. Auth-tokens kan gå ut under långa inaktivitetsperioder. |
| Dynamics 365 Customer Service | Stöds helt | Extra steg krävs för att avsluta Dynamics 365 Customer Service-konversationer. Läs mer i Dynamics 365 Customer Service-konfiguration. |
| Microsoft 365 Copilot | Utlösaren avfyras, men meddelandena levereras inte | Detta scenario är en känd begränsning. Utlösaren körs på serversidan, men Microsoft 365 Copilot-gränssnittet visar inga proaktiva meddelanden från agenter. Ingen lösning. |
| Testpanel | Stöds inte | Detta scenario är standardfunktionen. Timers är inaktiverade för Studio-kanal-ID:t. Använd demowebbplatsen eller en publicerad kanal för att testa. |
| DirectEngine | Stöds inte | Detta scenario är standardfunktionen. Timers är inaktiverade för DirectEngine-kanal-ID (design-/testmiljö). |
| Telefoni/IVR | Stöds inte | För röstkanaler, använd OnSilence-utlösaren istället. |
Teams-konfiguration
Teams använder en beständig, enskild konversationsmodell. Samtalet avslutas aldrig helt enligt Teams perspektiv. Denna modell innebär att inaktivitetsutlösare fortsätter att aktiveras igen även efter att användaren anser konversationen avslutad.
Rekommenderade Teams-mönster:
Skapa en global variabel
Global.IsConversationClosed(boolesk, standard:false).Vid start av din inaktivitets-utlösare, kontrollera:
If Global.IsConversationClosed = true→ Avsluta ämnet (avsluta omedelbart).När konversationen logiskt avslutas (till exempel när användaren säger "hej då", kundnöjdheten är uppnådd och så vidare), ställ in
Global.IsConversationClosed = true.Inaktivitetsutlösaren kan fortfarande aktiveras, men den avslutas omedelbart utan att visa något meddelande.
Dynamics 365 Customer Service-konfiguration
- Konversationer avslutas automatiskt efter 30 minuters inaktivitet som standard.
- Att anropa EndConversation ensamt stänger inte Dynamics 365 Customer Service-sessionen. Handläggarkapaciteten frigörs inte.
- För att helt avsluta konversationen, ställ in kontextvariabeln
CloseOmnichannelConversationtilltruevia ett Power Automate-flöde och använd sedan en Överför till handläggare-noden.
Kända begränsningar
Snabbguide: Vad kan störa inaktivitetstimern?
| Funktion eller åtgärd | Effekt på timers för inaktivitet |
|---|---|
| Avsluta konversation | Rensar permanent alla timers |
| Användaren skickar ett meddelande | Återställer alla timers till noll (avsiktligt) |
| Utlösarvillkor med oinitialiserad variabel | Timern är tyst utesluten – aktiveras aldrig |
| Varaktigheten överstiger 7 dagar (604 800 sekunder) | Timern ignoreras tyst |
| Rensning av globala variabler i ett inaktivitetsämne | agenten förlorar samtalskontext |
| Överför till kundtjänstrepresentant | Timern förblir aktiv och kan utlösas under samtalet med kundtjänstrepresentanten |
Testpanelen stöder inte inaktivitetsutlösares
Testpanelen i Copilot Studio utlöser inte inaktivitetsutlösare. Denna begränsning är avsiktlig. Publicera din agent och testa på en aktiv kanal (demowebbplats, Teams och så vidare).
Microsoft 365 Copilot visar inga inaktivitetsmeddelanden
Utlösaren körs på serversidan, men eventuella meddelanden eller kort skickas inte till användaren i Microsoft 365 Copilot. Det finns ingen tillfällig lösning. Se Kända Teams-begränsningar.
Generativ AI-orkestrering
Inaktivitetsutlösare implementeras som ämnesutlösare för klassisk orkestrering och använder en separat timerbaserad händelsepipeline. När orkestrering med generativ AI är aktiverat förlitar sig ämnesdirigering inte längre på klassisk utlösarigenkänning, så inaktivitetsämnen kanske inte utlöses på ett tillförlitligt sätt i alla konfigurationer. Om inaktivitetshantering krävs är klassisk orkestrering den rekommenderade och fullt validerade konfigurationen.
Anslutna agenter: inaktivitet för underordnad agent stöds inte
I anslutningsagentkonfigurationer fungerar inaktivitetsutlösare i underordnade agenter inte och returnerar "Ogiltig ansluten agent-respons." Lägg all inaktivitetslogik i den överordnade agenten.
Maximal varaktighet: 7 dagar (604 800 sekunder)
Publicerade robotar ignorerar utlösare med varaktigheter längre än 604 800 sekunder utan att det märks. Inget fel visas. I designläget kan ett fel uppstå. Det finns inget påtvingat minimum – korta varaktigheter (under cirka 15 sekunder) kan bete sig oförutsägbart på grund av latens i timerinfrastrukturen.
Avsluta konversation rensar timers för inaktivitet
När du anropar Avsluta konversation i ett ämne kommer alla aktiva inaktivitetstimers för den konversationen att stoppas permanent. Alla timrar tas bort helt och hållet; de återställs inte eller pausas. Åtgärden tar bort väntande inaktivitetshändelser som redan är schemalagda.
Om du vill avsluta ett ämnes flöde utan att störa inaktivitetstimer, använd en av alternativa åtgärder:
| Åtgärd (i Copilot Studio) | Effekt på timers för inaktivitet |
|---|---|
| Avsluta konversation | Rensar alla timrar; timrarna slutar att fungera permanent |
| Avsluta aktuellt ämne (EndDialog) | Påverkar inte timers. Timers fortsätter köras. |
| Avbryt alla ämnen (CancelAllDialogs) | Påverkar inte timers. Timers fortsätter köras. |
Dricks
Om ditt ämne behöver avsluta det nuvarande flödet, men du fortfarande vill att inaktivitetstimern ska utlösas senare (till exempel ett JIRA-sökämne som slutförs men konversationen bör fortfarande avbrytas efter tidsgränsen uppnås), använder du Avsluta aktuellt ämne i stället för Avsluta konversation.
Att använda en skyddsvariabel för att förhindra återutlösning är fortfarande en rekommenderad defensiv metod.
Utlösare utlöses efter agenteskalering
Efter att systemet överfört en konversation till en kundtjänstrepresentant förblir inaktivitetsutlösaren aktiv. Det kan utlösas under konversationen med den mänskliga agenten och skicka agentmeddelanden oväntat. Anropa alltid EndConversation innan överföring, eller använd en guard-variabel.
Utlösarmeddelanden kan dyka upp i transkriptioner efter att samtalet avslutats
Även efter att en konversation avslutats kan utlösaren fortfarande utlösas och dess meddelanden spelas in i transkriptionen. Detta tillstånd påverkar inte användarupplevelsen men kan synas i analyser.
Telefon-, röst- och IVR-kanaler
Inaktivitetsutlösaren är inte tillgänglig för telefon- och röstkanaler. Använd OnSilence-utlösaren i stället.
Vanliga felkonfigurationer
Använd detta avsnitt för att identifiera och åtgärda vanliga konfigurationsproblem som kan förhindra att inaktivitetsutlösare fungerar som förväntat.
Avsluta konversationen i inaktivitetsämnet (looprisk)
Problem: När du anropar Avsluta konversation från ett inaktivitetsämne rensar du alla inaktivitetstimrar. Men på kanaler med ihållande konversationer (särskilt Teams) förblir den underliggande konversationen aktiv. I vissa konfigurationer kan utlösaren fortfarande aktiveras igen, vilket orsakar upprepade "sessionen avslutades"-meddelanden.
Lösning (rekommenderas som defensiv praxis): Använd en guard-variabel:
Skapa
Global.DeactivateInactivity(Boolesk, standardvärde:false).Högst upp i varje inaktivitetsämne, lägg till ett villkor: fortsätt endast om
Global.DeactivateInactivity = false.Ange
Global.DeactivateInactivity = trueinnan EndConversation anropas.
Kommentar
Mönstret med guard-variabler är särskilt viktigt för Teams-kanaler, där den beständiga konversationsmodellen innebär att samtalet aldrig riktigt tar slut.
Varaktighet satt till fel värde
Problem:durationInSeconds anges i sekunder. Ett värde på 60000 är ungefär 16,7 timmar, inte 60 sekunder.
Lösning: Kontrollera att värdena stämmer med referenstabellen i avsnitt 3.
Frågenoder i flera ämnen med inaktivitet (promptstapling)
Problem: Om flera utlösare har en Frågenod, avbryter den andra utlösarens Frågenod den första. När användaren svarar återupptas den första Frågenoden och omprompt, vilket skapar en loop.
Lösning: Använd mönstret för delat ämne. Konsolidera frågenodslogik till ett enda ämne, eller säkerställ att endast en utlösare har en frågenod.
Rensning av globala variabler i ämne för inaktivitet
Problem: Om ämnet för inaktivitet rensar globala variabler tappar agenten all kontext och verkar till synes oresponsiv när användaren återvänder.
Lösning: Återställ endast inaktivitetsspecifika variabler, inte hela konversationstillståndet.
Inaktivitetsutlösare begränsas inte i Teams
Problem: I Teams innebär den beständiga konversationsmodellen att utlösare aktiveras utan begränsning. Användare får upprepade "är du fortfarande där?"-meddelanden timmar eller dagar senare.
Lösning: Använd alltid mönstret begränsningsvariabel för Teams.
Anropar inte closeOmnichannelConversation
Problem: För Dynamics 365 Customer Service-agenter innebär att endast använda EndConversation att Dynamics 365 Customer Service-sessionen inte stängs. Samtal hopar sig i agentkön.
Lösning: Ställ CloseOmnichannelConversation till true via Power Automate i ditt inaktivitetsämne.
Dynamisk varaktighet från en oinitierad variabel
Problem: Att använda ett Power Fx-uttryck som =Environment.InactivityTimeout för varaktigheten fungerar, men om variabeln är avinitierad eller null undantas utlösaren tyst.
Lösning: Säkerställ att alla variabler som används i utlösarvillkor och varaktighetsuttryck har giltiga standardvärden.
Förväntan att utlösare ska fungera efter agenteskalering
Problem: Efter att systemet eskalerar konversationen till en kundtjänstrepresentant aktiveras utlösaren i den ursprungliga agentkonversationen och skickar meddelanden under kundtjänstrepresentantens session.
Lösning: Avsluta konversationen med agenten vid tidpunkten för eskalering eller använd en vaktvariabel Global.IsEscalated = true och kontrollera den i början av inaktivitetsämnet.
Felsök när inaktivitetsutlösaren inte fungerar
Använd detta beslutsträd för att diagnostisera problemet:
Var testar du?
- Om du använder testpanelen, sluta. Testpanelen stöder inte inaktivitetsutlösare. Publicera och testa på en livekanal.
Vilken kanal använder du?
- Microsoft 365 Copilot? Denna kanal har en känd begränsning. Utlösaren avfyras men meddelandena levereras inte. Ingen lösning.
- Telefoni/IVR? Den här kanalen stöds inte. Använd OnSilence-utlösaren i stället.
Är orkestrering med generativ AI aktiverad?
- Inaktivitetsutlösare använder en separat timerpipeline från igenkänningsbaserad routning. Deras beteende med generativ AI-orkestrering är dock inte fullt validerat. Om hantering av inaktivitet är kritiskt rekommenderas klassisk orkestrering som konfiguration.
Är din
durationInSecondsstörre än 604 800?- Om det är sant ignoreras utlösaren utan en notis. Minska till 604 800 eller lägre.
Är agenten en underordnad agent i en konfiguration med ansluten agent?
- Om så är fallet stöds inte utlösare för inaktivitet hos underordnade agenter. Flytta logiken till den överordnade agenten.
Har du flera inaktivitetsutlösare?
- De avfyras i varaktighetsordning (kortast först). Se till att du väntar tillräckligt länge. Varje användarmeddelande återställer alla timers.
Har utlösaren ett villkor som refererar till en oinitierad variabel?
- Om ett villkor refererar till en variabel som ännu inte satts, utesluts utlösaren utan att det märks. Se till att alla villkorsvariabler har standardvärden.
Blev agenten återpublicerad efter att samtalet började?
- En ompublicering kan återställa inaktivitetstimern för aktiva sessioner. Starta en ny konversation och testa igen.
Om inaktivitetsutlösaren fortfarande inte fungerar, prova följande alternativ:
- Kontrollera konversationstranskriptioner för eventuella inaktivitetsämnen. Om ämnet dyker upp men användaren inte såg meddelandet, beror problemet på kanalspecifik leverans.
- Verifiera att ämnet inte är inaktiverat eller arkiverat.
- Bekräfta att utlösartypen är "Efter en period av inaktivitet," inte en frasbaserad utlösare.
Regelverk
Testa alltid på en publicerad kanal. Använd demowebbplatsen för snabba tester. Lita aldrig på testrutan.
Använd en guard-variabel för att förhindra loopar. Skapa
Global.DeactivateInactivity(boolesk, standardvärdefalse). Ange den tilltrueinnan EndConversation anropas. Kontrollera det i början av varje inaktivitetsämne.Håll varaktigheterna rimliga. Minsta ~15 sekunder, högst 604 800 sekunder (7 dagar).
Kontrollera att du använder rätt enheter. Egenskapen mäts i sekunder. 5 minuter =
300, inte5.För Dynamics 365 Customer Service: Parkoppla alltid
EndConversationviacloseOmnichannelConversationPower Automate.För scenarier med flera utlösare: Begränsa frågenoder till en utlösare, eller använd det delade ämnesmönstret.
Anropa
EndConversationinnan du överför till en kundtjänstrepresentant för att inaktivera inaktivitetsutlösare.Övervaka konversationstranskriptioner efter distribution för att verifiera att meddelanden dyker upp vid förväntade tider.
Vanliga frågor och svar
Varför fungerar inte inaktivitetsutlösaren i testpanelen?
Timerfunktionen är avstängd i testpanelen avsiktligt. Publicera din agent och testa på en livekanal.
Kan jag använda dynamiska tidsintervall (till exempel från en variabel)?
Ja. Fältet för varaktighet accepterar Power Fx-uttryck. Du kan använda en miljövariabel eller ett beräknat värde. Uttrycket utvärderas vid körning när timern är aktiverad. Se till att variabeln är initierad och innehåller ett giltigt tal.
Vad händer om jag publicerar en ny agentversion medan samtalen är aktiva?
Körningen plockar upp den nya versionen. Om utlösar-ID:t ändrades (ämnet togs bort och återskapades), återgår systemet till att matcha baserat på varaktighet. Om ingen utlösare matchar efter ID eller varaktighet tas den väntande inaktivitetshändelsen bort.
Hur gör jag för att helt stoppa inaktivitetsutlösare i Teams?
Du kan inte stoppa dem på plattformsnivå. Använd mönstret för begränsningsvariabeln: ange ett booleskt värde när konversationen avslutas logiskt och kontrollera det i början av inaktivitetsämnet för att avsluta tidigt.
Fungerar inaktivitetsutlösaren med autentisering?
Ja, men vid långa sessionstidsgränser (till exempel 24 timmar) kan användarens autentiseringstoken löpa ut innan utlösaren aktiveras. Se till att din agent hanterar omautentisering på ett korrekt sätt.
Vad händer om mitt inaktivitetsämne anropar ett anslutningsprogram som tar lång tid?
Anslutningsprogramanrop har en timeoutgräns (30 sekunder som standard, max 60 sekunder). Optimera anslutningsprogrammet eller hantera timeouten på ett smidigt sätt.
Relaterat innehåll
- Ställa in ämnesutlösare
- Systemvariabler — InactivityTimer.Continue, InactivityTimer.Count
- Använd Power Fx i Copilot Studio
- Konfigurera överlämning till Dynamics 365 Customer Service
- Röstkonfiguration och tystnadsidentifiering
- Distribuera agenter till Teams
- Anslutna agenter
- Konversationsavskrifter i Copilot Studio
- Stäng flerkanalskonversationer automatiskt
- Kända begränsningar i Microsoft 365 Copilot