Inaktivitätstrigger

Erfahren Sie, wie Sie Inaktivitätstrigger konfigurieren, mit Anleitungen zu Einrichtung, Kanalunterstützung, Einschränkungen und Fehlerbehebung.

Übersicht

Der Inaktivitätstrigger, auch OnInactivity genannt oder Der Benutzer ist eine Weile inaktiv, ist ein Systemauslöser in Copilot Studio, der automatisch ein Thema auslöst, wenn ein Benutzer für eine festgelegte Zeit keine Nachricht sendet. Die Ausführung erfolgt serverseitig, sodass der Agent den Timer auswertet und das Thema ausführt, selbst wenn der Client des Nutzers untätig bleibt.

Gängige Anwendungsfälle:

  • Eine Erinnerung senden, um zu prüfen, ob der Nutzer noch da ist
  • Agentkapazität freisetzen, indem inaktive Unterhaltungen automatisch geschlossen werden
  • Feedback erfassen (zum Beispiel eine Umfrage zur Kundenzufriedenheit), bevor eine Sitzung endet
  • Bereinigung des Sitzungsstatus bei abgebrochenen Unterhaltungen

Funktionsweise des Inaktivitätstriggers

In diesem Abschnitt wird erklärt, wie Copilot Studio Inaktivitätstrigger auswertet, Timer setzt und Themen ausführt, wenn eine Unterhaltung einschläft.

Überblick über die Architektur

  1. Der Benutzer sendet eine Nachricht.

  2. Die Laufzeit bewertet alle OnInactivity-Trigger.

  3. Die Runtime gruppiert die Trigger nach Dauer und wählt einen pro Dauerstufe aus. Die niedrigste Prioritätszahl gewinnt. Das früheste Erstellungsdatum bricht Bindungen auf.

  4. Runtime ordnet die ausgewählten Trigger aufsteigend nach Dauer, beginnend mit der kürzesten.

  5. Die Runtime setzt einen Timer für den nächsten Trigger im Azure Service Bus in Gang. Zu jedem Zeitpunkt ist nur ein Timer aktiv.

  6. Der Benutzer ist für die konfigurierte Dauer inaktiv.

  7. Der Timer wird ausgelöst, und das Inaktivitätsereignis wird an die Runtime gesendet.

  8. Die Runtime stellt eine Übereinstimmung mit dem Thema „Inaktivität“ her und führt es aus.

  9. Die Runtime berechnet die verbleibende Zeit bis zum nächsten Trigger und setzt einen neuen Timer.

Wichtige Verhaltensweisen

  • Der Timer wird bei jeder Nutzernachricht zurückgesetzt.

    Jedes Mal, wenn ein Nutzer eine Nachricht sendet, bewertet das System alle Inaktivitätstrigger neu und aktiviert den nächsten (kürzeste Dauer zuerst). Es ist immer nur ein Timer aktiv.

  • Mehrfachtrigger werden nicht unterstützt.

    Sie können mehrere OnInactivity-Trigger mit unterschiedlichen Zeitdauern haben (zum Beispiel 5 Minuten und 10 Minuten). Das System verarbeitet sie in aufsteigender Reihenfolge der Dauer. Pro Dauerebene wird nur ein Trigger ausgewählt. Wenn zwei Trigger die gleiche Dauer haben, wird der Trigger mit der niedrigeren Priority-Zahl ausgelöst. Wenn es noch einen Gleichstand gibt, gewinnt der früher erstellte Trigger. Das System verwirft andere Trigger mit derselben Dauer.

  • Trigger sind in einer Warteschlange angeordnet, nicht parallel.

    Zu jedem Zeitpunkt ist nur ein Timer aktiv. Nachdem der aktuelle Trigger ausgeführt wurde, berechnet die Runtime die verbleibende Zeit bis zum nächsten Trigger und setzt einen neuen Timer für die Differenz. Der Nettoeffekt ist, dass Trigger im richtigen Abstand vom ursprünglichen Inaktivitätspunkt ausgelöst werden, obwohl geringfügiger Drift auftreten kann, wenn die Ausführung der Trigger erhebliche Zeit in Anspruch nimmt.

  • Hintergrundausführung

    Das Inaktivitätsereignis ist ein Trigger im Hintergrund. Zur Auslösung ist keine Benutzerinteraktion erforderlich.

  • Transkriptaufzeichnung.

    Das System zeichnet Inaktivitätsereignisse in Unterhaltungstranskripten auf. Nach 30 Minuten Inaktivität wird ein neuer Transkript-Datensatz erstellt.

Beispielzeitachse (mehrere Trigger)

Uhrzeit Veranstaltung
0:00 Benutzer sendet die letzte Nachricht
5:00 Trigger A (300 Sek.) wird ausgelöst, Warnung gesendet
10:00 Trigger B (600 Sek.) wird ausgelöst, Unterhaltung wird beendet

Wenn der Benutzer um 4:30 Uhr eine Nachricht sendet, setzen sich beide Timer zurück. Trigger A wird um 9:30 Uhr ausgelöst und Trigger B wird um 14:30 Uhr ausgelöst.

Inaktivitätstrigger konfigurieren

In diesem Abschnitt wird gezeigt, wie Copilot Studio Inaktivitätstimer startet, zurücksetzt und ausführt, damit Sie vorhersagen können, was passiert, wenn eine Unterhaltung nicht aktiv ist.

Erstellen Sie ein Inaktivitätsauslöser-Thema

  1. Gehen Sie in Copilot Studio zu Themen>Thema hinzufügen>Ohne Vorlage.

  2. Wählen Sie den Triggerausdruck aus. Wählen Sie statt eines Ausdrucks „Nach einer Zeit der Inaktivität“ aus.

  3. Legen Sie die Dauer der Inaktivität fest. Wählen Sie im Modus für manuelle Eingabe eine Voreinstellung aus dem Dropdown-Menü (15 Minuten, 30 Minuten, 45 Minuten oder 1 Stunde). Um einen benutzerdefinierten Wert in Sekunden oder eine Power Fx-Formel einzugeben (zum Beispiel, Global.TimeoutSeconds), schalten Sie den Moduswahlschalter auf Formel und geben Sie den Wert direkt ein.

  4. Gestalten Sie den Themenfluss (eine Nachricht senden, eine Frage stellen, die Unterhaltung beenden usw.).

  5. Speichern und veröffentlichen Sie Ihren Agent.

Dauerverweis

Gewünschtes Timeout Wert (Sekunden)
30 Sekunden 30
2 Minuten 120
5 Minuten 300
10 Minuten 600
1 Stunde 3600

Wichtig

Die Eigenschaft verwendet Sekunden, nicht Minuten oder Millisekunden. Ein Wert von 60000 entspricht etwa 16,7 Stunden, nicht 60 Sekunden.

Beispiel: Einzelner Warntrigger

[OnInactivity - 600 Sekunden]

Nachricht: „Sind Sie noch da? Bitte antworten Sie, um fortzufahren.“

Thema beenden

Beispiel: 5-Minuten-Warnung und 10-Minuten-automatisches Schließen

Dieses Muster ist das häufigste. Erstellen Sie zwei Inaktivitäts-Themen:

Thema 1: Inaktivitätswarnung (5 Minuten)

  • Trigger: Nach einem Zeitraum der Inaktivität
  • durationInSeconds: 300
  • Aktionen: Nachricht senden: „Sind Sie noch da? Dieses Gespräch wird in 5 Minuten automatisch beendet, wenn keine Antwort erfolgt.“

Thema 2: Autoclose (10 Minuten)

  • Trigger: Nach einem Zeitraum der Inaktivität
  • durationInSeconds: 600
  • Aktionen:
    1. Global.DeactivateInactivity = true festlegen (Schutzvariable – siehe bewährte Methoden)
    2. Nachricht senden: „Diese Unterhaltung wird wegen Inaktivität geschlossen.“
    3. Unterhaltung beenden

Beispiel: Feedback-Erfassung

  • Trigger: Nach einem Zeitraum der Inaktivität
  • durationInSeconds: 120
  • Aktionen:
    1. Frage: „Bevor Sie gehen, würden Sie Ihre Erfahrung bewerten? (1 bis 5)“
    2. Antwort speichern
    3. Unterhaltung beenden

Dem Trigger eine Bedingung hinzufügen

Fügen Sie direkt nach dem Trigger einen Bedingung-Knoten hinzu, damit er nur in bestimmten Situationen ausgeführt wird:

  • Nur auf einem bestimmten Kanal auslösen: =Activity.ChannelId = "msteams"
  • Wird nur ausgelöst, wenn keine Schutzvariable festgelegt ist: =Global.DeactivateInactivity = false

Wenn Sie mehrere Trigger mit Frage-Knoten haben, verwenden Sie ein gemeinsames Thema, um Dialog-Stacking-Probleme zu vermeiden:

  1. Erstellen Sie ein gemeinsames Thema mit dem Namen HandleInactivity:

    • Fügen Sie eine globale Variable Global.InactivityStage (Text) hinzu
    • Überprüfen Sie ihren Wert:
      • "warning" → Senden Sie eine Warnnachricht mit einem Frage-Knoten („Fortfahren?“ / „Beenden?“)
      • "close" → Senden Sie eine Abschlussnachricht und beenden Sie die Unterhaltung
  2. Erster OnInactivity-Trigger (300 Sekunden):

    • Festlegen von Global.InactivityStage = "warning"
    • An HandleInactivity umleiten
  3. Zweiter OnInactivity-Trigger (600 Sekunden):

    • Festlegen von Global.InactivityStage = "close"
    • An HandleInactivity umleiten

Dieser Ansatz verhindert, dass sich Frage-Knoten stapeln und Prompt-Schleifen erzeugen.

Kanalspezifische Konfiguration

Kanal-Supportmatrix

Kanal Supportstufe Notizen
Demo-Website Vollständig unterstützt Der beste Kanal zum Testen von Inaktivitäts-Triggern.
Benutzerdefinierte Website (Direct Line) Vollständig unterstützt Funktioniert genauso wie die Demowebsite.
Microsoft Teams Unterstützt Funktioniert, aber siehe Teams-spezifische Hinweise im nächsten Abschnitt. Auth-Tokens können während längerer Inaktivitätsperioden ablaufen.
Dynamics 365 Customer Service Vollständig unterstützt Erfordert zusätzliche Schritte zum Schließen von Dynamics 365 Customer Service-Unterhaltungen. Erfahren Sie mehr in Dynamics 365 Customer Service-Konfiguration.
Microsoft 365 Copilot Der Trigger wird ausgelöst, aber Nachrichten werden nicht übermittelt Dieses Szenario ist eine bekannte Einschränkung. Der Trigger wird serverseitig ausgeführt, aber die Benutzeroberfläche von Microsoft 365 Copilot zeigt keine proaktiven Nachrichten von Agents an. Keine Problemumgehung.
Testbereich Nicht unterstützt Dieses Szenario ist entwurfsbedingt. Timer sind für die Studio-Kanal-ID deaktiviert. Verwenden Sie die Demo-Website oder einen veröffentlichten Kanal zum Testen.
DirectEngine Nicht unterstützt Dieses Szenario ist entwurfsbedingt. Die Timer sind für die DirectEngine-Kanal-ID (Design-/Testumgebung) deaktiviert.
Telefonie/ISA Nicht unterstützt Verwenden Sie stattdessen den OnSilence-Trigger.

Teams-Konfiguration

Teams verwendet ein persistentes, einzelnes Unterhaltungsmodell. Aus Sicht von Teams endet die Unterhaltung nie wirklich. Dieses Modell bedeutet, dass Inaktivitätstrigger weiter auslösen, selbst nachdem der Benutzer die Unterhaltung als beendet betrachtet.

Empfohlene Teams-Muster:

  1. Erstellen Sie eine globale Variable Global.IsConversationClosed (boolesch, Standard: false).

  2. Am Anfang Ihres Inaktivitätsthemas prüfen Sie: If Global.IsConversationClosed = true → Thema beenden (sofort verlassen).

  3. Wenn die Unterhaltung logisch endet (Nutzer sagt „Auf Wiedersehen“, Kundenzufriedenheit abgeschlossen, usw.), setzen Sie Global.IsConversationClosed = true.

  4. Der Inaktivitäts-Trigger kann zwar weiterhin ausgelöst werden, aber er beendet den Vorgang sofort, ohne eine Nachricht anzuzeigen.

Dynamics 365 Customer Service-Konfiguration

  • Unterhaltungen schließen standardmäßig nach 30 Minuten Inaktivität automatisch.
  • Das Ausführen von EndConversation allein schließt die Dynamics 365 Customer Service-Sitzung nicht. Die Agent-Kapazität wird nicht freigegeben.
  • Um die Unterhaltung vollständig zu schließen, setzen Sie die CloseOmnichannelConversation Kontextvariable auf true über einen Power Automate Flow und verwenden Sie dann einen Übertragen an Agent-Knoten.

Bekannte Einschränkungen

Kurzübersicht: Was kann den Inaktivitätstimer unterbrechen?

Feature oder Aktion Auswirkungen auf Inaktivitätstimer
Unterhaltung beenden Löscht dauerhaft alle Timer
Der Benutzer sendet eine Nachricht Setzt alle Timer auf null zurück (absichtlich)
Triggerbedingung mit deinitialisierter Variable Der Timer wird stummgeschaltet – niemals aktiviert
Die Dauer übersteigt 7 Tage (604.800 Sekunden) Timer wird stillschweigend ignoriert
Löschen globaler Variablen in einem Inaktivitätsthema Der Agent verliert den Unterhaltungskontext
Übertragung an Kundenservicemitarbeiter Der Timer bleibt aktiv und kann während der Unterhaltung mit dem Kundenservicemitarbeiter ausgelöst werden

Der Testbereich unterstützt keine Inaktivitäts-Trigger

Der Copilot Studio Testbereich löst keine Inaktivitäts-Trigger aus. Diese Einschränkung ist beabsichtigt. Veröffentlichen Sie Ihren Agent und testen Sie ihn auf einem Live-Kanal (z. B. Demo-Website, Teams usw.).

Microsoft 365 Copilot zeigt keine Inaktivitätsmeldungen an

Der Trigger wird serverseitig ausgeführt, aber jegliche Ausgabe (Nachrichten, Karten) wird dem Nutzer in der Microsoft 365 Copilot-Erfahrung nicht zugestellt. Es gibt keine Problemumgehung. Siehe Bekannte Teams-Einschränkungen.

Orchestrierung der generativen KI

Inaktivitätstrigger werden als klassische Orchestrierung-Thementrigger implementiert und nutzen eine separate, auf Timer basierende, Ereignispipeline. Wenn Generative KI-Orchestrierung aktiviert ist, verlässt sich das Themenrouting nicht mehr auf klassische Triggererkennung, sodass Inaktivitätsthemen möglicherweise nicht zuverlässig in allen Konfigurationen ausgelöst werden. Wenn der Umgang mit Inaktivität verlangt wird, dann ist die klassische Orchestrierung die empfohlene und vollkommen validierte Konfiguration.

Verbundene Agents: Die Inaktivität des untergeordneten Agents wird nicht unterstützt

In Konfigurationen für einen verbundenen Agent funktionieren Inaktivitätstrigger in untergeordneten Agenten nicht und geben „Ungültige Antwort des verbundenen Agent“ zurück. Die gesamte Inaktivitätslogik sollte im übergeordneten Agenten implementiert werden.

Maximale Dauer: 7 Tage (604.800 Sekunden)

Veröffentlichte Bots ignorieren still Trigger mit einer Dauer von mehr als 604.800 Sekunden. Es wird kein Fehler angezeigt. Im Designmodus kann ein Fehler auftreten. Es gibt kein erzwungenes Minimum – kurze Zeitdauern (unter etwa 15 Sekunden) können aufgrund der Latenz der Timer-Infrastruktur zu unvorhersehbarem Verhalten führen.

Die Aktion 'Unterhaltung beenden' löscht alle Inaktivitätstimer

Wenn in einem Thema Unterhaltung beenden aufgerufen wird, werden dadurch dauerhaft alle aktiven Inaktivitäts-Timer für diese Unterhaltung gestoppt. Die Timer werden vollständig gelöscht; sie werden nicht zurückgesetzt oder pausiert. Der Vorgang verwirft alle ausstehenden, bereits geplanten Inaktivitätsereignisse.

Wenn Sie den Themenfluss beenden möchten ohne die Inaktivitätstimer zu stören, nutzen Sie eine der alternativen Aktionen:

Aktion (in Copilot Studio) Auswirkungen auf Inaktivitätstimer
Unterhaltung beenden Löscht alle Timer; Timer werden dauerhaft gestoppt
Aktuelles Thema beenden (EndDialog) Beeinflusst keine Timer; Timer laufen weiter
Alle Themen abbrechen (CancelAllDialogs) Beeinflusst keine Timer; Timer laufen weiter

Trinkgeld

Wenn Ihr Thema den aktuellen Ablauf schließen muss, der Inaktivitätstimer aber dennoch später ausgelöst werden soll (z. B. ein JIRA-Suchthema, das abgeschlossen ist, wobei die Unterhaltung aber trotzdem ablaufen soll), verwenden Sie Aktuelles Thema beenden statt Unterhaltung beenden.

Die Verwendung einer Schutzvariablen, um ein erneutes Auslösen zu verhindern, bleibt eine empfohlene defensive Methode.

Trigger löst nach Agent-Eskalation aus

Nachdem das System eine Unterhaltung an einen Kundenservicemitarbeiter weitergeleitet hat, bleibt der Inaktivitätstrigger aktiv. Der Trigger kann während der Unterhaltung mit einem menschlichen Agent ausgelöst werden und unerwartet Agent-Nachrichten senden. Rufen Sie immer „EndConversation“ vor der Weiterleitung auf oder verwenden Sie eine „Schutzvariable“.

Trigger-Nachrichten können in Transkripten nach Unterhaltungsende erscheinen

Auch nach Abschluss einer Unterhaltung kann der Auslöser weiterhin ausgelöst werden und seine Nachrichten werden im Transkript protokolliert. Diese Bedingung beeinträchtigt die Benutzererfahrung nicht, könnte aber in den Analysen sichtbar werden.

Telefon-, Sprach- und ISA-Kanäle

Der Inaktivitätstrigger ist für Telefon- und Sprachkanäle nicht verfügbar. Verwenden Sie stattdessen den OnSilence-Trigger.

Häufige Konfigurationsfehler

Nutzen Sie diesen Abschnitt, um häufige Konfigurationsprobleme zu identifizieren und zu beheben, die verhindern können, dass Inaktivitätstrigger wie erwartet funktionieren.

Gespräch im Inaktivitätsthema beenden (Schleifenrisiko)

Problem: Wenn Sie Unterhaltung beenden aus einem Inaktivitätsthema aufrufen, löschen Sie alle Inaktivitäts-Timer. Jedoch bleibt auf Kanälen mit persistenten Unterhaltungen (insbesondere Teams) die zugrundeliegende Unterhaltung aktiv. In manchen Konfigurationen kann der Trigger weiterhin erneut ausgelöst werden, was wiederholte „Sitzung beendet“-Nachrichten verursacht.

Lösung (empfohlen als defensive Maßnahme): Verwenden Sie eine Schutzvariable:

  1. Erstellen Sie Global.DeactivateInactivity (boolesch, Standard: false).

  2. Fügen Sie oben in jedem Inaktivitätsthema eine Bedingung hinzu: Fahren Sie nur fort, wenn Global.DeactivateInactivity = false.

  3. Legen Sie fest, Global.DeactivateInactivity = truebevor Sie EndConversation aufrufen.

Anmerkung

Das Schutzvariablenmuster ist besonders wichtig für Teams-Kanäle, bei denen das Modell für andauernde Unterhaltungen bedeutet, dass die Unterhaltung nie wirklich endet.

Dauer auf den falschen Wert eingestellt

Problem:durationInSeconds wird in Sekunden angegeben. Ein Wert von 60000 beträgt etwa 16,7 Stunden, nicht 60 Sekunden.

Lösung: Überprüfen Sie Ihre Werte anhand der Referenztabelle in Abschnitt 3.

Frageknoten in mehreren Inaktivitätsthemen (Prompt-Stacking)

Problem: Wenn mehrere Trigger jeweils einen Frage-Knoten haben, unterbricht der Frage-Knoten des zweiten Triggers den ersten. Wenn der Benutzer antwortet, wird der erste Frage-Knoten wieder aufgenommen und es wird eine Schleife durch ein neues Prompt erstellt.

Lösung: Verwenden Sie das gemeinsame Themenmuster. Fassen Sie die Logik des Frage-Knotens in einem einzelnen Thema zusammen, oder stellen Sie sicher, dass nur ein Trigger einen Frage-Knoten enthält.

Löschen globaler Variablen im Inaktivitätsthema

Problem: Wenn das Inaktivitätsthema globale Variablen löscht, verliert der Agent den gesamten Unterhaltungskontext und wirkt nicht mehr reaktionsfähig, wenn der Nutzer zurückkehrt.

Lösung: Setzen Sie ausschließlich inaktivitätsspezifische Variablen zurück, nicht den gesamten Unterhaltungszustand.

Keine Abgrenzung von Inaktivitätstriggern in Teams

Problem: In Teams bedeutet das Modell für andauernde Unterhalten, dass Trigger auf unbestimmte Zeit auslösen. Benutzer erhalten immer wieder „Sind Sie noch da?“-Nachrichten Stunden oder Tage später.

Lösung: Verwenden Sie für Teams immer das Muster der Gating-Variablen.

closeOmnichannelConversation wird nicht aufgerufen

Problem: Für Dynamics 365 Customer Service-Agents reicht es nicht aus, nur EndConversation aufzurufen, um die Dynamics 365 Customer Service-Sitzung zu schließen. Unterhaltungen stapeln sich in der Agent-Warteschlange.

Lösung: Stellen Sie CloseOmnichannelConversation in Ihrem Inaktivitätsthema über Power Automate auf true.

Dynamische Dauer aus einer deinitialisierten Variablen

Problem: Die Verwendung eines Power Fx-Ausdrucks wie =Environment.InactivityTimeout für die Dauer funktioniert, aber wenn die Variable nicht initialisiert oder null ist, wird der Trigger stillschweigend ausgeschlossen.

Lösung: Stellen Sie sicher, dass alle in Triggerbedingungen und Dauerausdrücken verwendeten Variablen gültige Standardwerte haben.

Erwartung, dass Trigger nach der Agent-Eskalation funktionieren

Problem: Nachdem das System an einen Kundenservicemitarbeitenden weiterleitet, wird der Trigger in der ursprünglichen Agent-Unterhaltung ausgelöst und sendet während der Sitzung mit dem menschlichen Mitarbeiter Nachrichten.

Lösung: Beenden Sie entweder die Agent-Unterhaltung bei der Eskalation oder verwenden Sie eine Schutzvariable Global.IsEscalated = true und überprüfen Sie diese zu Beginn des Inaktivitätsthemas.

Fehlerbehebung bei nicht funktionierendem Inaktivitätstrigger

Verwenden Sie diesen Entscheidungsbaum, um das Problem zu diagnostizieren:

  1. Wo testen Sie?

    • Wenn sie den Testbereich benutzen, hören Sie damit auf. Der Testbereich unterstützt keine Inaktivitätstrigger. Veröffentlichen und testen Sie auf einem Livekanal.
  2. Welchen Kanal verwenden Sie?

    • Microsoft 365 Copilot? Dieser Kanal hat eine bekannte Einschränkung. Der Trigger löst aus, aber Nachrichten werden nicht zugestellt. Keine Problemumgehung.
    • Telefonie/ISA? Dies Kanal wird nicht unterstützt. Verwenden Sie stattdessen den OnSilence-Trigger.
  3. Ist Orchestrierung der generativen KI aktiviert?

    • Inaktivitätstrigger nutzen eine eigene Timer-Pipeline, unabhängig vom erkennungsbasierten Routing. Das Verhalten dieser Auslöser bei generativer KI-Orchestrierung ist jedoch noch nicht vollständig geprüft. Wenn der Umgang mit Inaktivität entscheidend ist, dann ist die klassische Orchestrierung die empfohlene Konfiguration.
  4. Ist durationInSeconds größer als 604.800?

    • Wenn ja, wird der Trigger stillschweigend ignoriert. Reduzieren Sie auf 604.800 oder weniger.
  5. Ist der Agent ein untergeordneter Agent in einer verbundenen Agent-Einrichtung?

    • In diesem Fall werden Inaktivitätstrigger des untergeordneten Agents nicht unterstützt. Verschieben Sie die Logik zum übergeordneten Agent.
  6. Haben Sie mehrere Inaktivitätstrigger?

    • Sie werden in der Reihenfolge ihrer Dauer ausgelöst (die kürzeste zuerst). Achten Sie darauf, dass Sie lange genug warten. Jede Benutzernachricht setzt alle Timer zurück.
  7. Hat der Trigger eine Bedingung, die sich auf eine deinitialisierte Variable bezieht?

    • Wenn eine Bedingung eine deinitialisierte Variable referenziert, wird der Trigger stillschweigend ausgeschlossen. Stellen Sie sicher, dass alle Bedingungsvariablen Standardwerte haben.
  8. Wurde der Agent nach dem Start der Unterhaltung erneut veröffentlicht?

    • Ein erneutes Veröffentlichen könnte den Inaktivitätstimer für aktive Sitzungen zurücksetzen. Starten Sie eine neue Unterhaltung und testen Sie erneut.

Wenn der Inaktivitätstrigger immer noch nicht funktioniert, versuchen Sie die folgenden Optionen:

  • Überprüfen Sie Unterhaltungstranskripte auf Aktivität in Bezug auf Inaktivitätsthemen. Wenn das Thema erscheint, der Nutzer die Nachricht aber nicht gesehen hat, handelt es sich um ein kanalspezifisches Zustellungsproblem.
  • Überprüfen Sie, ob das Thema nicht deaktiviert oder archiviert ist.
  • Bestätigen Sie, dass der Triggertyp „Nach einer Inaktivitätsperiode“ und nicht ein Ausdruckstrigger ist.

Bewährte Methoden

  • Testen Sie immer auf einem veröffentlichten Kanal. Verwenden Sie die Demo-Website für schnelle Tests. Verlassen Sie sich niemals auf den Testbereich.

  • Verwenden Sie eine Schutzvariable, um Schleifen zu verhindern. Erstellen Sie Global.DeactivateInactivity (boolesch, Standard false). Setzen Sie es auf true, bevor Sie EndConversation aufrufen. Überprüfen Sie dies am Anfang jedes Inaktivitätsthemas.

  • Achten Sie darauf, dass die Dauern angemessen sind. Minimum ~15 Sekunden, maximal 604.800 Sekunden (7 Tage).

  • Überprüfen Sie Ihre Einheiten. Die Eigenschaft wird in Sekunden angegeben. 5 Minuten = 300, nicht 5.

  • Für Dynamics 365 Customer Service: Koppeln Sie EndConversation stets mit closeOmnichannelConversation über Power Automate.

  • Für Multi-Trigger-Szenarien: Beschränken Sie Frage-Knoten auf einen Trigger oder verwenden Sie das Shared-Thema-Muster.

  • Rufen Sie EndConversation auf, bevor Sie zu einem Kundenservicemitarbeiter übertragen, um Inaktivitätstrigger zu deaktivieren.

  • Überwachen Sie Transkripte nach der Bereitstellung, um zu überprüfen, ob Nachrichten zu den erwarteten Zeiten angezeigt werden.

Häufig gestellte Fragen

Warum funktioniert der Inaktivitätstrigger im Testbereich nicht?

Timer sind im Testbereich aus Designgründen deaktiviert. Veröffentlichen Sie Ihren Agent und testen Sie ihn auf einem Livekanal.

Kann ich dynamische Zeitspannen verwenden (beispielsweise aus einer Variablen)?

Ja. Das Feld „Dauer“ akzeptiert Power Fx-Ausdrücke. Sie können eine Umgebungsvariable oder einen berechneten Wert verwenden. Der Ausdruck wird zur Runtime ausgewertet, wenn der Timer aktiviert ist. Stellen Sie sicher, dass die Variable initialisiert ist und eine gültige Zahl enthält.

Was passiert, wenn eine neue Agentversion veröffentlicht wird, während Unterhaltungen aktiv sind?

Die Runtime erkennt die neue Version. Wenn sich die Trigger-ID geändert hat (Thema gelöscht und wieder erstellt), fällt das System auf den Vergleich anhand der Dauer zurück. Wenn kein Trigger nach ID oder Dauer übereinstimmt, wird das ausstehende Inaktivitätsereignis gelöscht.

Wie kann ich Inaktivitätstrigger in Teams vollständig stoppen?

Man kann sie auf Plattformebene nicht stoppen. Verwenden Sie das Muster der Abgrenzungsvariablen: Legen Sie einen booleschen Wert fest, wenn die Unterhaltung logisch endet, und überprüfen Sie diesen zu Beginn des Inaktivitätsthemas, um frühzeitig zu beenden.

Funktioniert der Inaktivitätstrigger mit der Authentifizierung?

Ja, aber bei langen Sitzungs-Timeouts (zum Beispiel 24 Stunden) kann das Authentifizierungstoken des Nutzers ablaufen, bevor der Trigger ausgelöst wird. Stellen Sie sicher, dass Ihr Agent die erneute Authentifizierung reibungslos durchführt.

Was geschieht, wenn mein Inaktivitätsthema einen Konnektor aufruft, der viel Zeit braucht?

Konnektor-Aufrufe haben ein Timeout-Limit (standardmäßig 30 Sekunden, maximal 60 Sekunden). Optimieren Sie den Konnektor oder handhaben Sie den Timeout achtsam.