Hi Everyone,
I am currently using Microsoft Dynamics CRM as a Customer DB Backend, configuration as follows from my Config.pm. This makes it possible to directly assign customer data automatically as soon as a new ticket is created.
In this case the email sender address of the customer is used to find the related data from CRM (map customer data).
What I want to do now is to create customer user accounts directly in OTRS DB and use the email address as login. When trying to do this OTRS gives an error due to the fact that the same email address is used as login
and ‘CustomerKey’ (CustomerKey => 'ContactEMail') for the CRM DB since OTRS takes all connected DB’s in account when looking at the ‘CustomerKey’. So, I was
trying for CRM DB to change the CustomerKey to the CRM contact ID of the user account, referenced below as
‘New_contactnumber'. But now the only information that gets automatically filled in the ticket is the ‘CustomerID’ but the other customer data remains empty
until I manually set the customer again via ticket menu People > Customer, and that perfectly resolves the email address as before.
The question is: Why doesn’t OTRS fill the Customer Information automatically anymore?
# CustomerUser
# (customer user database backend and settings)
$Self->{CustomerUser2} = {
Name => 'Dynamics CRM',
Module => 'Kernel::System::CustomerUser::DB',
Params => {
DSN => 'DBI:ODBC:mssqldynamics',
User => 'OTRS',
Password => 'xxxx',
Table => 'OTRSInfo',
ForeignDB => 1,
CaseSensitive => 1,
},
CustomerKey => 'New_contactnumber',#unique key
CustomerID => 'AccountNumber',
CustomerUserListFields => ['ContactFirstName','ContactLastName','AccountName','ContactEMail','New_contactnumber'],
# * CustomerUserSearchFields: This array is for the customer search *
CustomerUserSearchFields => ['AccountNumber','AccountName','ContactEMail','New_contactnumber'],
CustomerUserNameFields => ['ContactSalutation','ContactLastName'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserPostMasterSearchFields => ['ContactEMail'],# * fuer die zuordnung nach mail eingang durchsuche nur nach email adresse *
CustomerUserSearchListLimit => 250,
CacheTTL => 1000,
ReadOnly => 1,
Map => [
# note: Login, Email and CustomerID needed!
# var, frontend, storage, shown, required, storage-type, http-link
['UserLogin', 'Username', 'New_contactnumber', 0, 1, 'var'],
['UserCustomerID', 'CustomerID', 'AccountNumber', 0, 1, 'var'],
['V_GP_ParentAccount', 'GP_ParentAccount', 'ParentAccount', 1, 0, 'var'],
['V_GP_NAME', 'GP_NAME', 'AccountName', 1, 1, 'var'],
['V_GP_KUNDENNR', 'GP_KUNDENNR', 'AccountNumber', 1, 1, 'var'],
['V_AP_VORNAME', 'AP_VORNAME', 'ContactFirstName', 1, 1, 'var'],
['V_AP_NAME', 'AP_NAME', 'ContactLastName', 1, 1, 'var'],
['UserEmail', 'Email', 'ContactEMail', 1, 1, 'var'],
['V_AP_ANREDEBRIEF', 'AP_ANREDEBRIEF', 'ContactSalutation', 0, 1, 'var'],
['V_GP_STAAT_BEZ', 'GP_STAAT_BEZ', 'AccountCountry', 1, 1, 'var'],
['V_GP_Region', 'GP_Region', 'AccountTerritory', 1, 0, 'var'],
['V_GP_AccountId', 'GP_AccountId', 'AccountId', 0, 0, 'var'],
['V_GP_AccountOwner', 'GP_AccountOwner', 'accountowner', 1, 0, 'var'],
['V_GP_New_contactnumber', 'GP_New_contactnumber', 'New_contactnumber', 1, 1, 'var'],
],
};
Regards,
Rick