Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Reminder - Ein Tool für Erinnerungen bei Kundenkommunikation


  • Please log in to reply
32 replies to this topic
fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012

Hallo Community,

Ich möchte euch hier ein Tool vorstellen welches Wiedervorlagen zur Kundenkommunikation bzw. Erinnerungen an Vorgänge verwaltet.

Ich Code nun knapp einen Monat daran, natürlich nicht durchgehend sondern eher "nebenbei" Real Life geht halt vor happy.png

Warum ist das Tool enstanden? Nun ja, ich opfere hier meine Zeit um es meinen Kollegen leichter zu machen. Es soll dazu dienen private Wiedervorlagen im Auge zu behalten. Private Wiedervorlagen dienen zur steigerung der Kundenzufriedenheit. Wenn man einem Kunden der sich Inbound meldet erklärt das noch bestimmte Dinge fehlen damit alles wieder okay ist und man als Mitarbeiter dann bestimmte Systemvorgänge kontrollieren muss und den Kunden dann per Outbound informieren will, genau da greift das Tool ein und speichert übersichtlich diesen Vorgang.

Der Mitarbeiter bekommt zur festgelegten Zeit eine Info, es öffnet sich am Wiedervorlagezeitpunkt ein PopUp mit allen Informationen zu diesem Vorgang. Der Mitarbeiter kann notieren was genau gemacht wurde und den Vorgang am Ende schließen. Einmal geschlossen kann er nicht mehr editiert werden. Die meisten Callcenter nutzen zur Kontaktdokumentation ein entsprechendes System. Der Mitarbeiter entscheidet selber ob es notwendig ist dort eine "CallNote" zu hinterlassen oder nicht. Wenn ja wird neben dem Schließen des Vorgangs noch eine Note gemacht. Dazu habe ich ein Script erstellt welches alle notwendigen Klicks etc. durchführt, dieses ist hier im Code nicht enthalten.

Beim Speichern eines Vorgangs wird immer auf die sog. Linezeiten geachtet. D. h. das es nur erlaubt ist innerhalb dieser Zeiten Vorgänge anzulegen. Dies soll verhindern das etwas liegen bleibt weil zufällig eine falsche Zeit angegeben wurde.

Genutzt wird eine HauptGui mit 2 ListViews, offene Vorgänge oben, geschlossene unten. Fällige Vorgänge werden Rot dargestellt, ein Vorgang der im oberen LV doppelt angeklickt wurde wird in den Editor geladen und Grün margiert. Im Editor kann man dann inhaltliche Änderungen vornehmen oder auch den Vorgang schließen. Ein Löschen ist nicht vorgesehen. Geschlossene Vorgänge werden nach 10 Tagen in ein Archiv verschoben.

Ein noch nicht existierendes Admin Tool wird die Archive der User in ein gesammt Archiv verschieben. Es soll zudem ermöglichen offene Vorgänge von einem Mitarbeiter der z. B. Krank ist einem anderen Mitarbeiter zuzuweisen damit eben kein versprochener Outbound verloren geht.

Genutzt wird zum Speichern der ganzen Vorgänge SQLite3, dazu möchte ich mich an dieser Stelle bei "just me" bedanken. Er hat viel Geduld mit mir gehabt und sich die Zeit genommen meine Problembeschreibung in funktionierenden Code zu wandeln. Daher vielen Dank dafür!

Desweiteren bedanke ich mich bei SAPlayer und nnnik die mir beide immer wieder geholfen haben, und dass nicht nur bei diesem Projekt.

Ich würde mir wünschen, dass ihr euch den Code anschaut und mir mitteilt ob es grobe schnitzer gibt, ob Fehler vorhanden sind ob etwas besser sein könnte um genauer zu funktionieren. Das Tool sollte so zuverlässig wie möglich funktionieren damit es Produktiv eingesetzt werden kann.

Ich habe viel Kommentiert und hoffe das alles verständlich ist.

Ich bedanke mich im voraus für jeden Kommentar!

Hier ein Bild von der HauptGui:
5mm5jkehhql7.png

Hier ein Bild vom PopUp:
8rksn44wxq77.png

Hier der Code vom Tool:

Spoiler


Hier die INI für die Linezeiten, hier wird in UserRollen für Abteilung AB und TK unterschieden, zum nutzen muss dein Username unten mit einer Rolle verbunden werden:

Spoiler


Benötigt werden zudem diese Classen:

CLass_SQLiteDB.ahk       Hier: http://www.autohotke...and-u64-support

Class_LV_Colors.ahk       Hier: http://www.autohotke...n-gui-listviews

Class_CTLCOLORS.ahk    Hier: http://www.autohotke...r-your-controls

Hier die Classes im Paket: http://www.file-uplo...minder.rar.html

Benötigt wird ausserdem die sqlite3.exe: http://www.file-uplo...qlite3.rar.html

Zuletzt das Icon: http://www.file-uplo...erTool.ico.html

 

MfG

fump

 

/EDIT 08.07.2013

 

Ein paar kleine Änderungen. Zum einen die von nnnik vorgeschlagene anpassung für die Spaltensortierung.

Dann "SubStr(DateTime, 1, 12) . "00" " verwendet um die PopUps genauer zu machen (danke just me).

Zuletzt den Vorschlag von Babba übernommen. Dadurch sind die Erinnerungen pünktlich.

 

 

/EDIT 14.08.2013

 

Hier nun Version 1.0.0.9

Neu ist, dass der Reminder nun seine Datenbank auf einem Netzlaufwerk anlegt. Dies dient dazu mit einem Admin Tool (seperater Post) ein gesamtarchiv zu bilden und Vorgänge zu verwalten. Desweiteren könnte über die talk Classe von A v i der Reminder zu einem Modul gemacht werden, es kann so in andere bestehende Projekte eingebunden werden. Es wäre dennoch möglich den Reminder zu steuern, Vorgänge anzulegen etc.

Der Reminder speichert nun seine Position und taucht an dieser wieder auf.

 

Die Pfade werden über eine INI eingelesen.

reminder.ini:

Spoiler

 

Hier der Link zur talk Classe von A v i.

http://www.autohotke...e-updated-2707/

 

Hier das neue Script:

Spoiler


nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Das ganze sieht eig. richtig gut aus.

Grobe schnitzer konnte ich noch nicht finden aber wenn du die Leserlichkeit Verbessern willst könntest du auch anstatt dem hier:

        If (A_EventInfo=6)
            LV_ModifyCol(11, "Sort")
        If (A_EventInfo=2)
            LV_ModifyCol(2, "Sort")
        If (A_EventInfo=4)
            LV_ModifyCol(4, "Sort")
        If (A_EventInfo=3)
            LV_ModifyCol(3, "Sort")

das Hier schreiben:

 LV_ModifyCol({2:2,3:3,4:4,6:11}[A_EventInfo],"Sort")

Visit the new forum ahkscript.org.

http://ahkscript.org


just me
  • Members
  • 1496 posts
  • Last active: Nov 03 2015 04:32 PM
  • Joined: 28 May 2011

Hallo nnnik,

 

das ist mit Sicherheit eleganter und im Schnitt wahrscheinlich auch schneller, aber 'leserlicher'? wink.png


Prefer ahkscript.org for the time being.


fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012

Leserliche isses nicht so richtig :) Wusste gar nicht das es so geht. Kann man aus der Hilfe auch nicht rauslesen...

 

Könntet ihr mir verraten wie man den Timer der die PopUps aufruft genauer machen kann? Es passiert häufig das wenn ich einen WVL plane auf 12:20 Uhr, dass die Meldung bzw. das PopUp erst um 12:21 Uhr erscheint. Ist jetzt nicht die Welt aber es stört mich ein wenig :)

 

Ich denke es liegt daran das beim Speichern der Zeit auch die Sekunden gespeichert werden. Die stehen ja dann nicht auf 00 sondern auf die Sekunde wo der User auf Speichern klickt. Somit könnte der WVL Zeitpunkt auch 12:20:50 sein... wenn der Check nur alle 30 Sekunden erfolgt dann kommt das popup "zu spät".

Ich finde es aber unsinnig den Timer auf 1 Sek zu stellen.

 

Sollte ich also die Sekunden beim Speichern überschreiben? Oder gibts da einen eleganteren Weg?



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Ich find schon da es halt auch meinem eigenen Styl entspricht den ich lesen muss.

 

 

Sollte ich also die Sekunden beim Speichern überschreiben? Oder gibts da einen eleganteren Weg?

Du setzt deinen Timer auf 30 Sekunden.

Wenn die Zeit weniger als 30 Sekunden beträgt wird dieser Wert genommen.


Visit the new forum ahkscript.org.

http://ahkscript.org


fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012

Ich nutze ja ein DateTime Control. Dieses gibt mir einen YYYYMMDDHH24MISS Zeitwert. Am ende die Sekunden sind entscheidend für das aufpoppen des Erinnerungsfensters. Also müssen die auf 00 gesetzt werden damit die Erinnerungen "pünktlich" erscheinen.

 

Nur wie macht man sowas?



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

A_Now-modulo(A_Now,1000)


Visit the new forum ahkscript.org.

http://ahkscript.org


just me
  • Members
  • 1496 posts
  • Last active: Nov 03 2015 04:32 PM
  • Joined: 28 May 2011
DateTime := A_Now
MsgBox, % SubStr(DateTime, 1, 12) . "00"

Prefer ahkscript.org for the time being.


Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

Ich bin eigentlich auch der Meinung, das die Array Version leserlicher ist.

{2:2,3:3,4:4,6:11}[A_EventInfo]

Somit ist doch die direkte Zuweisung der Werte viel eindeutiger zu erkennen.


Find the recent autohotkey version here: ahkscript.org


just me
  • Members
  • 1496 posts
  • Last active: Nov 03 2015 04:32 PM
  • Joined: 28 May 2011

Vielleicht, es gibt aber für jeden Spaltenklick einen LV_ModifyCol() Aufruf, für 1, 5 und 7 - 12 mit leerer ColumnNumber.


Prefer ahkscript.org for the time being.


strobo
  • Members
  • 359 posts
  • Last active: Mar 10 2015 08:13 PM
  • Joined: 19 Jun 2012
if ((_col := {2:2,3:3,4:4,6:11}[A_EventInfo]) or _col != "") ; kann LV_ModifyCol ein _col = 0 akzeptieren?
    LV_ModifyCol(_col, "Sort")

Regards,
Babba

fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012

Wie bekommt man es hin das der Timer für den TimeCheck genau bei Sekunde 00 anspringt? Wenn ich den Timer auf 30000 setze sollte er doch alle 30 Sekunden aktiv werden. Aber wenn ich ihn um 12:53:25 Uhr starte dann checkt er um 55 und dann wieder um 25. Es wäre genauer wenn der Timer prüfen konnte welche Sekunde ist gerade aktuell und er dann statt um 12:53:25 erst um 12:54:00 startet.

 

Geht das?



strobo
  • Members
  • 359 posts
  • Last active: Mar 10 2015 08:13 PM
  • Joined: 19 Jun 2012
if (a_sec+0)   
    sleep,% (60-a_sec)*1000
settimer, label, 1000
return
label:
    tooltip,% a_sec
return
esc::exitapp

Regards,
Babba

fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012

Danke Babba, funktioniert sehr gut.



fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012

Hallo zusammen :)

 

Oben das Script aktuell auf Version 1.0.0.9

 

Hauptsächlich beziehen sich die Änderungen auf die zusammenarbeit mit dem Admin Tool.

Jeder User-Client kann seine DB nun auf einem Netzlaufwerk anlegen und das Admin Tool kann diese dann verwalten.

 

Zudem könnte man den Reminder als Modul nutzen um ihn in ein anderes Projekt zu integrieren, die gelingt mithilfe der talk Classe von A v i.

 

MfG
fump