Hauptmenü

[geloest, wieder offen] Kunden mit mehreren E-Mail-Adressen

Begonnen von kixusr1, 09.09.2016 10:32:14

⏪ vorheriges - nächstes ⏩

kixusr1

Hallo,
wie lässt es sich einstellen, dass Kunden auch mehrere E-Mail-Adressen haben können?
(Ähnlich multiplen CustomerIDs).

* Es gibt viele Kunden die mit mehrere E-Mail-Adressen in das Ticketsystem senden, und auch auf Antwort darauf erwarten -> Zuoordnung an den richtigen Kundenbenutzer
* Wäre auch toll, wenn zwischen den E-Mail-Adressen ausgewählt werden kann bei der Ticket Erstellung

Die Daten kommen aus dem LDAP:
Dort gibt es das Hauptfeld für die E-Mail "mail"
sowie mehrere Einträge von "otherMailbox" die zusätzliche Mail-Adressen kennzeichnen.

Hier ist ein Auszug  eines solchen Kontaktes aus dem LDAP:

adminDescription: 3ac3b697-8b1f-4f5f-9d4f-b5cb87a2acf9--964037
name: Muster, Max
otherMailbox: maxmuster@home.de
otherMailbox: maxmuster@deluxedesign.de
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=example,DC=info
mail: maxmuster@cadzeichnungen.de



Versucht habe ich schon den Eintrag anzupassen im Config.pm:

$Self->{CustomerUser2} = {
...
        CustomerUserPostMasterSearchFields => ['mail', 'otherMailbox'],
...
}


Wenn jetzt eine E-Mail eintrifft wird diese jedoch nicht aufgelöst.
Eine Tcpdump hat mir ebenfalls verraten dass das gar nicht erst versucht wird.
Habe in keiner einzigen LDAP Anfrage etwas von "otherMailbox" finden können.

Die Anfrage müsste eigentlich so in der Art aussehen:

(|(mail=mail@domain.com)(othermailbox=mail@domain.com))
... kommt aber nie vor.


Eine aus 2008 stammende Idee dazu habe ich gefunden:
http://www.archivum.info/otrs@otrs.org/2008-07/00226/Re-(otrs)-multiple-email-addresses-for-one-customer.html
Aber das duplizieren von Kontakten ist leider keine Lösung.

Zusammenfassend würde ich sagen, vor allem im Business-Bereich ist das mehr oder weniger Standard das jeder mehrere Mail-Adressen hat.
Wenn derzeit keine Lösung möglich ist, ist das ein Feature-Request.


Hat jemand eine Idee das zu lösen?
LG

Richard Leis

Hallo kixusr1,

im KIX ist es zur Zeit nicht möglich, einem Kunden mehrere Email Adressen zuzuweisen.
Die Zuweisung muss immer eindeutig sein.

Ich finde aber, dass das eine sehr interessante Idee ist. Deswegen habe ich das mit in unsere Feature Request Liste aufgenommen.

Viele Grüße

Richard

Richard Leis

Hallo kixusr1,

ich habe mich noch einmal zu diesem Thema erkundigt.
Ich habe erfahren, dass es doch möglich ist, mehrere Email Adressen zu einem Kunden zu hinterlegen.
Dafür müssen die Datenbank und Config.pm angepasst werden.
Und je nach gewünschter Funktionalität ist noch zusätzlich kostenpflichtiger Entwicklungsaufwand von unserer Seite nötig.
Was genau soll denn mit den zusätzlichen Adressen gemacht werden können?

Viele Grüße

Richard

kixusr1

Der wichtigste Punkt ist die Zuoordnung bei eingehenden Mails.
Also wenn der Kunde 3 Mails z.b. vergeben hat, das auch alle 3 richtig auf den Kunden(Benutzer) zugeordnet werden.

Ein anderer Punkt ist die Auswahl einer der hinterlegten E-Mails-Adressen beim erstellen/antworten von/auf Tickets, Artikel.
Diese Punkt ist schätze ich mal aufwändiger, das hier Kosten entstehen können ist klar, da das sicher mehr Zeit benötigt.

Am besten wäre es natürlich wenn diese Features jedoch nicht an ein paar Kix-Installationen verteilt werden, sondern
im Kix-Code Open-Source Projekt veröffentlicht und damit für jeden verfügbar gemacht werden.

Richard Leis

Hallo Kixusr1,

danke für die zusätzlichen Informationen.
Ich halte das auch für ein sinnvolles Feature, daher habe ich deinen Wunsch mit in unsere Feature-Wunschliste aufgenommen.

Viele Grüße

Richard

kixusr1

Hallo Herr Leis,

Sie haben oben geschrieben, dass das bereits moeglich ist (nach Anpassung DB-Schema und Config.pm) und u.u. noch ein kostenpflichtige Programmierung notwendig ist.

Unsere Kontakte holen wir aus dem LDAP und stehen nicht in der Datenbank.
Sind dann hier auch noch Anpassungen an DB-Schema notwendig oder reichen hier bereits Anpassungen der Config.pm.
Falls die Config.pm Anpassungen reichen, welche sind das?

lg

killerkarpfen

Hallo,

CustomerUserPostMasterSearchFields müsste funktionieren. Schau Dir mal die Kernel/System//CustomerUser/LDAP.pm bzw. DB pm an, ob es da noch drin ist.

Richard Leis

Hallo Kixusr1,

in der Datenbank muss die Tabelle customer_user um eine entsprechende Spalte erweitert werden.
Anschließend muss in der Config.pm das Mapping so erweitert werden, dass aus dem LDAP die Adressen in das zusätzliche Datenbankfeld gematcht werden.

Viele Grüße

Richard

killerkarpfen

Richard, LDAP Daten werden nicht in die Kundendatenbank (also customer_user) kopiert....

Richard Leis

Hallo Killerkarpfen, Hallo kixusr1,

stimmt, hier muss unterschieden werden, ob die Daten synchronisiert werden, oder nur zur Nutzung abgerufen.
Bei Synchronisation werden die Daten in der Datenbank abgespeichert, also muss die Tabelle erweitert werden.
Wenn die Daten nicht gespeichert werden sollen, genügt es, das Mapping in der Config.pm zu erweitern.

Und damit eingehende Tickets der Adressen automatisch einem Kunden zugeordnet werden können, muss CustomerUserPostMasterSearchFields ebenfalls um die entsprechenden Felder erweitert werden, wie Killerkarpfen sagte.

Viele Grüße

Richard

kixusr1


Hi,


hat nun etwas gedauert, bis wir das Thema wieder aufgenommen haben.
Derzeit laeuft kix 16.1.5, aber es scheint nicht zu fkt.
Vermutlich muss die Map noch angepasst werden. Darf dann UserEmail mehrfach bei var aufgefuehrt sein?




Mein Eintrag in der Kernel/Config.pm sieht wie folgt aus:



### Kundenbenutzer Block2 ###
########## Customer/KundenBenutzer 2 - LDAP - nur Kontakte
    # CustomerUser
    # (customer user ldap backend and settings)
    $Self->{CustomerUser2} = {
        Name => 'LDAP Data Source',
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
            # ldap host
            Host => '192.168.0.6',
            # ldap base dn
            BaseDN => 'ou=zimslabim,ou=addressbook,dc=domain,dc=local',
            # search scope (one|sub)
            SSCOPE => 'sub',
            UserDN => 'readonly@domain.local',
            UserPw => 'xxx',
            # in case you want to add always one filter to each ldap query, use
            # this option. e. g. AlwaysFilter => '(mail=*)' or AlwaysFilter => '(objectclass=user)'
#            AlwaysFilter => '',
            # if your frontend is e. g. iso-8859-1 and the charset of your
            # ldap server is utf-8, use these options.
#            SourceCharset => 'utf-8',
#            DestCharset => 'iso-8859-1',
            # if both your frontend and your LDAP are unicode, use this:
            SourceCharset => 'utf-8',
            DestCharset   => 'utf-8',
            # Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
            Params => { port => 3268, timeout => 120, async => 0, version => 3, },
        },

  ReadOnly => 1,
  # customer unique id
        CustomerKey => 'adminDescription',
        # customer #
        CustomerID => 'mail',
        CustomerUserListFields => ['cn', 'mail'],
        CustomerUserSearchFields => ['cn', 'givenname', 'mail','adminDescription'],
        CustomerUserSearchPrefix => '',
        CustomerUserSearchSuffix => '*',
        CustomerUserSearchListLimit => 250,
        CustomerUserPostMasterSearchFields => ['mail','otherMailbox'],
        CustomerUserNameFields => ['givenname', 'sn'],
        # show not own tickets in customer panel, CompanyTickets
        CustomerUserExcludePrimaryCustomerID => 0,
        # add an ldap filter for valid users (expert setting)
#       CustomerUserValidFilter => '(!(description=locked))',
        # administrator can't change customer preferences
        AdminSetPreferences => 0,
#        # cache time to live in sec. - cache any database queries
        CacheTTL => 18000,
        Map => [
            # note: Login, Email and CustomerID are mandatory!
            # if you need additional attributes from AD, just map them here.
            # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
    [ 'UserFirstname',  'Firstname',  'givenName',      1, 1, 'var', '', 0 ],
    [ 'UserLastname',  'Lastname',  'sn',        1, 1, 'var', '', 0 ],
    [ 'UserLogin',    'Username',  'adminDescription',      1, 1, 'var', '', 0 ],
    [ 'UserEmail',    'Email',  'mail',        1, 1, 'var', '', 0 ],
    [ 'UserCustomerID',  'CustomerID',  'employeeID',      0, 1, 'var', '', 0 ],
    [ 'UserFax',    'Fax',    'facsimileTelephoneNumber',  1, 0, 'var', '', 0 ],
    [ 'UserPhone',    'Phone',  'telephoneNumber',    1, 0, 'var', '', 0 ],
    [ 'UserMobile',    'Mobile',  'mobile',      1, 0, 'var', '', 0 ],
    [ 'UserCustomerIDs',  'CustomerIDs',  'wbemPath',      1, 1, 'var', '', 0 ],
#    [ 'UserAddress',  'Address',  'postaladdress',    1, 0, 'var', '', 0 ],
#    [ 'UserComment',  'Comment',  'description',      1, 0, 'var', '', 0 ],
#    [ 'UserRoom',    'Room',    'physicalDeliveryOfficeName',  1, 0, 'var', '', 0 ],
#    [ 'UserSalutation',  'Title',  'title',      1, 0, 'var', '', 0 ],
#    [ 'UserCustomerIDs',  'CustomerIDs',  'custom2',      1, 0, 'var', '', 0 ],
#    ['UserStreet',    'Street',  'street',      1, 0, 'var', '', 0 ],
#    ['UserZip',    'Zip',    'zip',        1, 0, 'var', '', 0 ],
#    ['UserCity',    'City',    'city',        1, 0, 'var', '', 0 ],
#    ['UserCountry',    'Country',  'country',      1, 0, 'var', '', 0 ],
#    ['UserComment',    'Comment',  'comments',      1, 0, 'var', '', 0 ],


        ],
    };

kixusr1

Hi,


die Zuweisung mit mehreren Adressen klappt noch nicht.


U.u. brauche ich fuer das weitere AD-Feld noch ein Mapping.


Allerdings ist mir nicht klar auf was ich othermailbox mappen soll.
Darf das dann ein zeites Mail auf UserEmail mappen, vermultich doch nicht, oder?


# var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
[ 'UserEmail',    'Email',  'mail',        1, 1, 'var', '', 0 ],

[ 'UserEmail',    'Email',  'othermailbox',        1, 1, 'var', '', 0 ],




[/size]
kann mir u.u. hierzu einen Tip geben?[/size]

[/size]
vg[/size]


Richard Leis

Hallo kixusr1,

das Mapping der Felder muss immer eindeutig sein.
In Deinem Fall müsste es in etwa so aussehen:

# var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
[ 'UserEmail',    'Email',  'mail',        1, 1, 'var', '', 0 ],
[ 'UserEmail1',    'Weitere Email',  'othermailbox',        1, 1, 'var', '', 0 ],


Viele Grüße

Richard

kixusr1

Hallo Herr Leis,


vielen Dank fuer die Info.
Damit hat's geklappt.


vg

kixusr1


Hi,

mit kix17.1.1 scheint sich diese Funktion geaendert zu haben.
Zumindest werden damit die Kundennummern nicht mehr korrekt zugeordnet, wenn eine in othermailbox hinterlegte Adresse eine Mail reinschickt.


Ist das ein Bug der 17.1.1 oder muss ich was anpassen?


Viele Gruesse
Thomas