Hallo, es geht um die Kontaktsuche auf der Berechtigungsebene (Agent) Diesem wurde die globale Berechtigung erteilt nach Kontakten zu suchen. Usecase: Agent bekomm Antwort per Mail, sich beim Kunden telefonisch zu melden. Agent will den Kontakt in seiner Wiedervorlage oder global suchen. Wie verwendet er die Eingabe im Suchfeld oben richtig. Bei unseren Versuchen konnten selbst bei exakter Übereinstimmung mit * vor und nach dem Schlagwort nur manchmal ein Kontakt aus der Wiedervorlage oder generell ein Kontakt gefunden. Optimal wäre, wenn der Agent nur seine eigenen Kontakte suchen könnte und diese mit passenden Schlagworten, Firma (Name) oder AP (Name) finden könnte. Wie ist hier die beste Vorgehensweise?
Hallo Florian,
wow, es hört sich so simpel an, aber tatsächlich ist das Thema echt komplex…
Also ich verstehe Folgendes: Der Agent soll (1) nach Schlagworten in bestimmten Feldern suchen können und (2) möglichst nur in den eigenen Wiedervorlagen.
Das sind tatsächlich 2 getrennte Themen, aber es geht.
(1) Suche nach Schlagworten
Um Teile von Feldinhalten zu suchen, sollte man diese am Besten getrennt indizieren. Und das funktioniert so:
es gibt eine globale onUpdate-Funktion, in der Du alle Felder die durchsucht werden sollen in die einzelnen Begriffe auftrennst und alle Begriffe gemeinsam in ein neues Feld schreibst, wo diese Begriffe eine komma-getrennte Liste bilden.
(Der Name des Feldes ist egal und Du musst es auch nicht als suchbar kennzeichnen.)
In dem Feld steht nun sowas wie “Max,Mustermann,Kleinhausen,Allgemeine,Versicherung,AG“.
Wenn Du jetzt mit Mustermann Versicherung suchst, wirst Du den Eintrag finden. Auch Muster* *sicherung geht.
Technischer Hintergrund: wenn man irgendwas mitten in einem Feldinhalt sucht (mit *mittendrin*) dann schlägt die Suche oft fehl, weil sie sich nicht auf einen Index stützen kann. Das Fehlschlagen ist eine bewusste Designentscheidung in Dialfire, denn eine Suche, die 30 Sekunden dauert nutzt niemanden. Eine Suche (auch in Millionen von Datensätzen) muss entweder blitzschnell Ergebnisse liefern oder den Hinweis, dass man die Suchanfrage verfeinern muss.
Etwas am Anfang oder am Ende eines Feldes zu suchen (*ende, anfang*) funktioniert dagegen immer, weil die Felder sowohl vorwärts als auch rückwärts indiziert sind.Kommagetrennte Werte in einem Feld werden in Dialfire aber speziell behandelt. Sie werden nämlich intern als Liste interpretiert und alle Elemente dieser Liste werden separat indiziert.
Merke: Mittendrin-Suchen (also Sternchen am Anfang und Ende des Suchbegriffes) sollte man nur in Ergänzung zu anderen Suchbegriffen (mit weniger als 2 Sternchen) verwenden.
Da gibt es auch schon einen Artikel: Suchen wie ein Profi
(2) Suche nur in der Wiedervorlage
Hier kann man eine Funktion nutzen, die so selten verwendet wird, dass ich Dir hier auf die Schnelle auch nur die grobe Funktionsweise schildern kann. Bei Bedarf schreibt sicher ein Kollege gern noch was dazu.
Bei jeder Suchanfrage durchlaufen die Suchergebnisse nämlich noch einen optionalen Filter, und der existiert genau für solche Anwendungsfälle wie Du ihn beschreibst.
Der Filter besteht aus der globalen Funktion grantAccess. Dort kannst Du für jeden Suchtreffer entscheiden, ob er dem Agenten angezeigt werden darf und wenn ja, in welchem Modus (z.B. nur read-only).
Und so ließe sich der Zugriff tatsächlich auf eigene Wiedervorlagen oder bestimmte Kampagnestufen, etc. einschränken. Wir haben z.B. Kunden, die einem Sub-CallCenter nur die Erlaubnis geben, Datensätze zu suchen, die in diesem Sub-CallCenter bearbeitet wurden.
Der Mechanismus ist also extrem mächtig, aber leider auch etwas komplex.
Ich hoffe ich konnte Dir helfen und frag’ gern weiter nach, wenn Du Details zu den Funktionen brauchst.
Grüße
Wolfram
Vielen Dank für die schnelle Antwort
Wolfram