You are currently viewing Built a Custom Plugin to Import Contacts from X2CRM to Mautic CRM

Built a Custom Plugin to Import Contacts from X2CRM to Mautic CRM

  • Post published:March 10, 2016

vteam #480 inherited a project of an existing web based application for email marketing, that was built using a X2CRM on Yii2 framework. vteams engineers, Zeeshan Ahmad and Muhammad Danish Khan were required to shift this application to Mautic CRM based on Symfony2 because of the client’s changing requirements.

The client had over 40,000 contacts in his exiting X2CRM, which he has been using for all his marketing campaigns in the past few years. The challenge was to figure out how to import all those contacts to Mautic CRM leads and map the X2CRM fields with Mautic CRM fields – and similarly sync X2CRM contacts with Mautic CRM leads. If any user updates or creates any contact, it must be updated/created on Mautic CRM. The same applies if a Lead on Mautic CRM is updated/created should be updated on X2CRM.


Instead of adding patches in code vteam #480 recommended that the client develop a custom plugin. So, after receiving approval on this approach, engineers started work and eventually developed a plugin for the Mautic CRM.

This plugin works on both X2CRM and Mautic CRM. Once the plugin was installed on Mautic CRM, it altered its database and created a new custom field with title “x2_id” to track contacts imported from X2CRM. On X2CRM, a piece of code was written to check if Web Hooks exist or not against a given URL. If a Web Hook does not exist then the plugin in Mautic CRM will send a command to X2CRM to create Web Hooks with given parameters. Once a hook is created, a bridge will be established between X2CRM and Mautic CRM but only for one way traffic that flows from X2CRM to Mautic CRM.

Web Hooks were then created in Mautic CRM and the plugin started two way communication. After that, a command was written to import/update contact logic and mapped all the X2CRM fields with the Mautic CRM fields.

In case of any update, only updated fields are pushed to Mautic CRM of those specific contact(s) against specific x2_id.


This plugin is now working perfectly for the client and he is in the process of shifting his business from X2CRM to Mautic CRM without hassle. Just few days back, another user approached our client to buy this plugin. It’s a good reward of our hard work and efforts.