Kundendaten an mehreren Stellen pflegen ist unklug, da sich dann immer wieder Fehler einschleichen können. Aus diesem Grund ist es gut, wenn mehrere Systeme auf die gleiche Datenbasis zugreifen können.
Hier soll kurz gezeigt werden, wie man Kundendaten aus
vTiger in
OTRS nutzen kann.
Informationen über Kunden
Um Name und E-Mail bei der Ticketerstellung in OTRS nutzen zu können, muss man einfach nur eine neue Kundendatenquelle hinzufügen. Diese Einstellungen werden in der Datei
<otrs_home>/Kernel/Config.pm hinzugefügt:
$Self->{CustomerUser} = {
Name => 'VTiger CRM',
Module => 'Kernel::System::CustomerUser::DB',
Params => {
DSN => 'DBI:mysql:database=vtigercrm520;host=localhost',
User => 'dbuser',
Password => '2357KLAFKkjsd',
Table => 'vtiger_contactdetails',
CaseSensitive => 0,
},
CustomerKey => 'email',
CustomerID => 'accountid',
CustomerUserListFields => [ 'firstname', 'lastname', 'email' ],
CustomerUserSearchFields => [ 'firstname', 'lastname', 'email'],
CustomerUserSearchPrefix => '*',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['email'],
CustomerUserNameFields => [ 'title', 'firstname', 'lastname' ],
CustomerUserEmailUniqCheck => 1,
CustomerUserExcludePrimaryCustomerID => 0,
CustomerCompanySupport => 1,
ReadOnly => 1,
Map => [
[ 'UserTitle', 'Title', 'salutation', 1, 0, 'var', '', 0 ],
[ 'UserFirstname', 'Firstname', 'firstname', 1, 1, 'var', '', 0 ],
[ 'UserLastname', 'Lastname', 'lastname', 1, 1, 'var', '', 0 ],
[ 'UserLogin', 'Username', 'email', 1, 1, 'var', '', 0 ],
[ 'UserEmail', 'Email', 'email', 1, 1, 'var', '$Env{"CGIHandle"}?Action=AgentTicketCompose&ResponseID=1&TicketID=$Data{"TicketID"}&ArticleID=$Data{"ArticleID"}', 0 ],
[ 'UserCustomerID', 'CustomerID', 'accountid', 0, 1, 'var', '', 0 ],
[ 'UserCompanyID', 'CompanyID', 'accountid', 0, 1, 'var', '', 0 ],
[ 'UserPhone', 'Phone', 'phone', 1, 0, 'var', '', 0 ],
[ 'UserFax', 'Fax', 'fax', 1, 0, 'var', '', 0 ],
[ 'UserMobile', 'Mobile', 'mobile', 1, 0, 'var', '', 0 ],
],
};
Ein paar Erläuterungen dazu:
Der "Name" ist frei wählbar, sollta aber möglichst sprechend sein, damit man auch nach ein paar Jahren weiß, was da konfiguriert wird.
Da wir mit der Datenbank von vTiger arbeiten, müssen wir als "Module"
Kernel::System::CustomerUser::DB wählen. Grundsätzlich kann man verschiedene Arten von Quellen anbinden. Im Standard-OTRS sind Module für Datenbanken und
LDAP dabei.
Mit den "Params" definieren wir, wie die Datenbankverbindung aussieht. Der "DSN" ist die Angabe, die das
Perl-Modul
DBI für den Verbindungsaufbau benötigt.
'DBI:mysql:database=vtigercrm520;host=localhost'
Das "mysql" sagt, dass vTiger mit einer
MySQL-Datenbank läuft. Wenn Sie mit
PostgreSQL arbeiten, müssen Sie das Perl-Modul
DBD::Pg installieren und hier im DSN statt "mysql" einfach "pg" eintragen.
Die Angabe "vtigercrm520" ist der Datenbankname und "localhost" der Host, auf dem die Datenbank läuft.
Weiterhin müssen Benutzer und Passwort der vTiger-Datenbank angegeben werden. Es empfiehlt sich, für den Zugriff einen extra Benutzer anzulegen, der nur Leserechte hat. Das CRM soll das führende System bei den Kundendaten sein.
User => 'dbuser',
Password => '2357KLAFKkjsd',
Der Tabellenname "vtiger_contactdetails" sagt ganz einfach aus, in welcher Tabelle der vTiger-Installation die Kundendaten zu finden sind.
Table => 'vtiger_contactdetails',
Danach folgen weitere Einstellungen, die hauptsächlich für die Suche wichtig sind.
Herauszuheben sind "CustomerKey" was aussagt, was die Verbindung zwischen den Tickets und den Kundendaten herstellt. Wenn man sich die Informationen anschaut, die zu den Tickets gespeichert werden, sieht man, dass nicht alle Kundeninformationen am Ticket gespeichert werden, sondern nur eine eindeutige Angabe. Hier eben die E-Mailadresse.
Wir setzen auch "ReadOnly" auf 1, weil keine Kundendaten im OTRS geändert werden sollen. Alles soll über vTiger laufen.
In der "Map" werden Zuordnungen von Spaltennamen in der vTiger-Tabelle zu den Attributen des Objekts und der Anzeige an der Oberfläche vorgenommen. Z.B.:
[ 'UserFirstname', 'Firstname', 'firstname', 1, 1, 'var', '', 0 ],
sagt aus, dass das Attribut 'UserFirstname' an der Oberfläche mit "Firstname" (bzw. der Übersetzung davon) gekennzeichnet wird und mit Daten der Tabellenspalte "firstname" in vtiger_contactdetails gefüllt wird.
Zusätzliche Attribute
Jetzt fällt auf, dass einige wichtige Angaben zum Kunden gar nicht in der Zuordnung vorhanden sind. Diese werden natürlich auch nicht an der Oberfläche angezeigt. Warum sind jetzt also nicht "Straße", "Ort" und "Land" dort angegeben? Und warum bekomme ich nur eine Zahl bei der "Kundenfirma" angezeigt?
Das hängt damit zusammen, dass diese Informationen in vTiger über mehrere Tabellen verteilt sind. Das Standard-OTRS-Modul zur Anbindung von Datenbanken kann aber nur mit einer einzelnen Tabelle umgehen.
Um diese Informationen dennoch in OTRS nutzen zu können, kann man folgenden Weg gehen: Man legt eine sogenannte "View" in der Datenbank an. Damit können Daten aus mehreren Tabellen aggregiert werden und nach außen hin sieht es wie eine einzige Tabelle aus.
In MySQL wird dazu einfach folgender Befehl ausgeführt:
CREATE VIEW otrsview
AS SELECT vcd.*, vca.*, va.accountname
FROM
vtiger_contactdetails vcd
LEFT OUTER JOIN vtiger_contactaddress vca
ON
contactid = contactaddressid
LEFT OUTER JOIN vtiger_account va
ON
vcd.accountid = va.accountid;
Jetzt nur noch in der oben gezeigten Konfiguration die Tabellenangabe von vtiger_contactdetails in otrsview ändern.
In der Map kann man dann noch folgende Einträge hinzufügen:
[ 'UserStreet', 'Street', 'mailingstreet', 1, 1, 'var', '', 0 ]
Und schon steht die Straßenangabe zur Verfügung.
Kundenlogin ermöglichen
Soll das Kundenportal von OTRS für die Kunden freigeschaltet werden. Dazu müssen sich die Kunden dort anmelden können. Auch hier sollen die Daten aus vTiger genutzt werden.
Die Einstellungen zur Authentifizierung der Kunden müssen auch in der Config.pm von oben vorgenommen werden:
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::DB';
$Self->{'Customer::AuthModule::DB::Table'} = 'vtiger_portalinfo';
$Self->{'Customer::AuthModule::DB::CustomerKey'} = 'user_name';
$Self->{'Customer::AuthModule::DB::CustomerPassword'} = 'user_password';
$Self->{'Customer::AuthModule::DB::DSN'} = "DBI:mysql:database=vtigercrm520;host=localhost";
$Self->{'Customer::AuthModule::DB::User'} = "dbuser";
$Self->{'Customer::AuthModule::DB::Password'} = "2357KLAFKkjsd";
Die Angaben von DSN, User und Passwort sind die gleichen wie oben gezeigt. Wichtig sind hier noch die Angaben zur Tabelle ("vtiger_portalinfo") und welche Felder zur Authentifizierung wichtig sind. Der Benutzername steht in vTiger unter "user_name" und das Passwort in "user_password". vTiger speichert die Passwörter leider in Klartext ab. Aus diesem Grund muss der "CryptType" auf "plain" gesetzt werden.
Jetzt können sich die Kunden auch am Kundenportal von OTRS anmelden und dort Tickets erstellen.
vTiger
(Quelle:
http://de.wikipedia.org/wiki/Vtiger)
vtiger CRM ist eine freie
Open Source Software für das
Customer-Relationship-Management. vtiger basiert auf der Skriptsprache
PHP und der Datenbank
MySQL.
OTRS
(Quelle:
http://de.wikipedia.org/wiki/OTRS)
Das
Open Ticket Request System (
OTRS) ist ein Ticketsystem oder
Kommunikationsmanagementsystem, welches oft als
Helpdesk-System bzw.
Issue-Tracking-System eingesetzt wird. OTRS ist
freie Software und steht unter der
GNU Affero General Public License (AGPL).
Mit Hilfe des webbasierten Ticketsystems OTRS lässt sich jegliche Art
von Anfragen (zum Beispiel Störungsmeldungen, Service- und
Informationsanfragen) über die Meldewege E-Mail, Telefon und
Kunden-Webfrontend strukturiert erfassen, klassifizieren, speichern und
weiterverarbeiten.
Perl-Services.de
Perl-Services.de ist ein kleines Unternehmen, das unter anderem auch OTRS-Programmierung anbietet. Wir passen OTRS nach Ihren Wünschen an und helfen Ihnen bei der Einführung und Konfiguration des Ticketsystems.