OTRS est le helpdesk que nous utilisons chez Gestion medsécure, il est libre, très personnalisable. Il permet notamment d’avoir plusieurs sources de données de contact et comme l’essentiel de nos contacts se retrouvent dans vtiger CRM, comme il existe peu d’information sur l’intégration entre les deux solutions, j’ai décidé de faire quelques billets sur l’intégration entre les deux produits.

Donc, voici le premier: Comment utiliser les informations contacts de vtiger dans OTRS (Cette solution fonctionne sans vue, par contre l’informations n’est pas complète, une vue doit être créer pour avoir l’ensemble des informations clients, mais ça fera l’objet d’un billet futur). Cette déclaration de CustomerUser doit se retrouver dans votre configuration OTRS et les variables DB_VTIGER, SERVEUR_VTIGER, VTIGER_USER_RO et VTIGER_PASSWD_RO doivent être adaptés en fonction de votre environnement.

    $Self->{CustomerUser} = {
        Name   => 'VTiger CRM',
        Module => 'Kernel::System::CustomerUser::DB',
        Params => {
            DSN => 'DBI:mysql:database=DB_VTIGER;host=SERVEUR_VTIGER',
            User => 'VTIGER_USER_RO',
            Password => 'VTIGER_PASSWD_RO',
            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 => [
        Map => [
            [ 'UserTitle',      'Title',      'title',      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 ],
        ],
        },
    };

Maintenant les informations de vtiger devrait s’afficher dans les champs clients lors de la réception d’une nouvelle demande.