Ansicht von 8 Antwort-Threads
  • Autor
    Beiträge
    • #41656
      Lars Berger
      Teilnehmer

        Hallo zusammen,

        ich hätte gerne eine Benachrichtigung, wenn mir ein Ticket entzogen wird.

        Ich bin der Besitzer von Ticket XY, ein anderer Agent wechselt den Besitzer auf sich oder auf einen anderen Agenten.

        Ich möchte quasi als letzter Besitzer benachrichtigt werden, wenn mir ein Ticket genommen wird.

        Gibt es diese Möglichkeit?

        Gruß Lars

      • #41660
        Thomas Wurzel
        Teilnehmer

          Versuch mal dein Glück über Ticket-Benachrichtigungen, bin mir aber nicht 100% sicher.

          • #41663
            Lars Berger
            Teilnehmer

              Hi Thomas,

              leider funktioniert dies nicht. Keiner bekommt eine Mail – nicht der Ticket-Ersteller, nicht der „Vorbesitzer“, nicht der neue Besitzer.

              Danke für Antwort.

              Gruß Lars

          • #41680
            Thomas Wurzel
            Teilnehmer

              Ja, voll schade. Habe selbst eben auch erst realisiert, dass „Besitzer“ und „Verantwortlicher“ im OTOBO-Universum zwei verschiedene Rollen bzw. Personen sind…

            • #41687
              marcel-graf
              Teilnehmer

                Hallo Lars,

                bei mir funktioniert das, wenn ich als Ereignis das „TicketOwnerUpdate “ eintrage und meine Email bei zusätzliche Email Empfänger. Hab natürlich beim testen eben nich die Queue beim Ticketfilter hinterlegt.

                Gruß Marcel

              • #41688
                marcel-graf
                Teilnehmer

                  schau auch mal bei Admin → Systemkonfiguration ->AgentSelfNotifyOnAction das der Haken gesetzt ist.

                  Damit klappt es bei mir beim Testen auch mit den Werten im Empfänger Bereich :)

                  Gruß Marcel

                • #41691
                  Lars Berger
                  Teilnehmer

                    Hi Marcel,

                    vielen Dank für deine Antwort und das Testen in deiner Umgebung – sehr nett :-)

                    Wir arbeiten mit mehreren Agenten und dies muss für jeden gelten – mit „Zusätzliche Empfänger-E-Mail-Adressen“ kann ich also nicht arbeiten.

                    Ich habe es mal nachgestellt mit der Option „AgentSelfNotifyOnAction“ und jetzt bekomme ich mehrere Nachrichten die ich nicht brauche. z.B. ich trage in mein eigenes Ticket eine Notiz ein.

                    Gruß Lars

                  • #41692
                    marcel-graf
                    Teilnehmer

                      Hallo Lars,

                      die Ticketbenachrichtigung „Benachrichtigung über neue Notiz“ müsste hier angepasst werden bzw. deaktiviert werden.

                      Das mit der Zusätzliche Empfänger-E-Mail-Adresse war auch eher mal eine Test, ob das Ticketevent „TicketOwnerUpdate“ überhaupt angetriggert wird.

                      Gruß Marcel

                    • #41695
                      marcel-graf
                      Teilnehmer

                        Hallo Lars,

                        mit einem kleinen Perl Script funktioniert das auch. Folgend mal die Anleitung dazu.

                        #—dynamisches Feld erstellen —
                        -> lege ein dynmische Feld -> Ticket ->Text mit dem Namen „TicketOldOwnerEmail“ an.

                        #—erstelle einen Auftrag im Generic Agent —

                        -> Ereignisbaierte Ausführung -> Auslöser = TicketOwnerUpdate
                        -> stelle deine Ticketfilter ein, um erstmal auf Queue zu testen

                        -> bei Benutzerdefiniertes Modul ausführen folgende Zeile einfügen:
                        Kernel::System::GenericAgent::SetOwnerEmailToDynamicField

                        #—-Ticket Beachrichtigung erstellen—-
                        -> Ereignisbaierte Ausführung -> Auslöser = TicketOwnerUpdate
                        -> bei zusätzliche Email Adresse jetzt das dynamische Feld angeben: <OTOBO_TICKET_DynamicField_TicketOldOwnerEmail>
                        -> Benachrichtigunstext nach wünschen anpassen

                         

                        Danach in die Otobo Konsole (SSH) wechseln und dort dann, wenn Docker benutzt wird in den Container wechseln:

                        sudo docker exec -it otobo_web_1 bash

                        #— Datei SetOwnerEmailToDynamicField.pm erstellen—

                        nano /opt/otobo/Kernel/System/GenericAgent/SetOwnerEmailToDynamicField.pm

                        Inhalt:
                        #—————————————————————————
                        package Kernel::System::GenericAgent::SetOwnerEmailToDynamicField;

                        use strict;
                        use warnings;

                        sub new {
                        my ( $Type, %Param ) = @_;
                        my $Self = {};
                        bless( $Self, $Type );
                        return $Self;
                        }

                        sub Run {
                        my ( $Self, %Param ) = @_;

                        my $TicketObject = $Kernel::OM->Get(‚Kernel::System::Ticket‘);
                        my $UserObject = $Kernel::OM->Get(‚Kernel::System::User‘);
                        my $DynamicFieldObject = $Kernel::OM->Get(‚Kernel::System::DynamicField‘);
                        my $BackendObject = $Kernel::OM->Get(‚Kernel::System::DynamicField::Backend‘);

                        my $TicketID = $Param{TicketID};
                        if (!$TicketID) {
                        return 1;
                        }

                        # 1. Ticket-Daten FRISCH aus der Datenbank laden (Behebt das Event-Schnittstellen-Problem)
                        my %Ticket = $TicketObject->TicketGet(
                        TicketID => $TicketID,
                        DynamicFields => 0,
                        UserID => 1,
                        );

                        # Falls das Ticket nicht geladen werden kann, sauber abbrechen
                        if ( !%Ticket ) {
                        return 1;
                        }

                        # Typen-Prüfung auf Deine erlaubten Ticket-Typen
                        my %AllowedTypes = (
                        ‚Incident‘ => 1,
                        ‚Problem‘ => 1,
                        ‚E-Mail‘ => 1,
                        );

                        if ( !$Ticket{Type} || !$AllowedTypes{ $Ticket{Type} } ) {
                        return 1;
                        }

                        # 2. Die OwnerID des AKTUELLEN Besitzers direkt aus dem geladenen Ticket ziehen
                        my $CurrentOwnerID = $Ticket{OwnerID};

                        if (!$CurrentOwnerID) {
                        return 1;
                        }

                        # 3. E-Mail-Adresse des aktuellen Besitzers direkt aus dem Agentenstamm abrufen
                        my %OwnerData = $UserObject->GetUserData(
                        UserID => $CurrentOwnerID,
                        );

                        # Alle gängigen E-Mail-Attribute im Agentenprofil prüfen
                        my $OwnerEmail = $OwnerData{UserEmail} || $OwnerData{Email} || $OwnerData{mail} || “;

                        # Falls keine Mailadresse gefunden wird (z. B. System-User), brechen wir ab
                        if (!$OwnerEmail) {
                        return 1;
                        }

                        # 4. In das dynamische Feld schreiben
                        my $DynamicFieldName = ‚TicketOldOwnerEmail‘; # Der Systemname Deines Zielfeldes
                        my $DynamicFieldConfig = $DynamicFieldObject->DynamicFieldGet(
                        Name => $DynamicFieldName,
                        );

                        if (!$DynamicFieldConfig) {
                        return 1;
                        }

                        # Wert im Ticket setzen
                        $BackendObject->ValueSet(
                        DynamicFieldConfig => $DynamicFieldConfig,
                        ObjectID => $TicketID,
                        Value => $OwnerEmail,
                        UserID => 1,
                        );

                        return 1;
                        }

                        1;
                        #—————————————————————————
                        mit strg + x beenden
                        Y zum speichern

                        #—Rechte auf die Datei setzen—
                        chown otobo:otobo /opt/otobo/Kernel/System/GenericAgent/SetOwnerEmailToDynamicField.pm
                        chmod 644 /opt/otobo/Kernel/System/GenericAgent/SetOwnerEmailToDynamicField.pm

                        um das dynamische Feld einmal zu prüfen, einfach unter Verwaltung von Dynamische Feldern <-> Oberflächen, das dynamische Feld „TicketOldOwnerEmail“ bei OverviewSmall zuweisen und
                        dann in der Ticketübersicht, bei Einstellungen (kleines Zahnrad) das Feld auswählen.

                        In meinem Test wurde so bei jedem Besitzerwechsel eine Email an den letzen Ticketbesitzer gesendet.

                        Gruß Marcel

                      • #41697
                        marcel-graf
                        Teilnehmer

                          wenn das alles funktioniert, die Datei nach /opt/otobo/Custom/Kernel/System/GenericAgent/ verschieben.

                          #—Verschieben nach Custom Kernel—

                          ->Datei in den Custom-Ordner verschieben

                          mkdir -p /opt/otobo/Custom/Kernel/System/GenericAgent/

                          ->erschiebe Deine Modul-Datei dorthin

                          mv /opt/otobo/Kernel/System/GenericAgent/SetOwnerEmailToDynamicField.pm /opt/otobo/Custom/Kernel/System/GenericAgent/

                          ->Berechtigungen zur Sicherheit für den OTOBO-Nutzer neu setzen

                          chown otobo:otobo /opt/otobo/Custom/Kernel/System/GenericAgent/SetOwnerEmailToDynamicField.pm
                          chmod 644 /opt/otobo/Custom/Kernel/System/GenericAgent/SetOwnerEmailToDynamicField.pm

                      Ansicht von 8 Antwort-Threads
                      • Du musst angemeldet sein, um auf dieses Thema antworten zu können.