The current state of the integration with Mautic is a bidirectional synchronization of contacts and companies.
All the work happens on the coreBOS side. Two workflows are in charge of sending the modifications to Mautic via its API and two notification webhooks are responsible for receiving information from Mautic and updating records inside coreBOS.
To get the synchronization working we must configure both applications.
First, we must activate the API so coreBOS can send the information to Mautic.
Then we configure two webhooks to send the Account/Company and Contact information from Mautic to coreBOS
To get all that working in Mautic you must clear the cache. To the extreme where I had to go directly to the var/cache directory and delete all the files there.
Finally, we must create two custom fields on the Contacts and Company modules to hold the coreBOS CRMID.
In coreBOS we go to the Utilities page and click on Mautic card. Activate the integration and fill in the URL of your Mautic install and the credentials of the user to use to synchronize the information.
Next, we must create three workflows for each module. One to control the creation, the other for the update, and the last one for the delete operation. A total of six workflows that look like this:
It is very important to set the conditions of the workflows correctly or you will easily fall into an infinite loop where coreBOS sends information to Mautic and Mautic sends back the change.
Finally, we have to create some Field Mapping Business maps to define which fields we want to synchronize in both directions.
MauticToContacts, MauticToAccounts, ContactsToMautic, AccountsToMautic
This is what the Contacts maps looked like in my tests.
MauticToContacts
<map>
<originmodule>
<originname>MauticContact</originname>
</originmodule>
<targetmodule>
<targetname>CoreBOS</targetname>
</targetmodule>
<fields>
<field>
<fieldname>mautic_id</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>id</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>firstname</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>firstname</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>lastname</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>lastname</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>email</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>email</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>mailingstreet</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>address1</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>mailingcity</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>city</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>mailingstate</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>state</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>mailingzip</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>zip</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>mailingcountry</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>country</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>mobile</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>mobile</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>homephone</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>phone</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>fax</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>fax</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>website</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>website</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>facebook</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>facebook</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>foursquare</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>foursquare</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>instagram</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>instagram</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>linkedin</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>linkedin</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>skype</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>skype</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>twitter</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>twitter</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>points</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>points</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>attribution</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>attribution</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>date_attribution</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>attribution_date</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>last_active</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>last_active</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>pref_locale</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>preferred_locale</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>pref_tz</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>timezone</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>leadsource</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>Promoter</OrgfieldName>
<OrgfieldID>CONST</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>title</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>title</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>newsletter</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>newsletter</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
</fields>
</map>
ContactsToMautic
<map>
<originmodule>
<originname>coreBOS</originname>
</originmodule>
<targetmodule>
<targetname>MauticContact</targetname>
</targetmodule>
<fields>
<field>
<fieldname>corebos_id</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>id</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>firstname</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>firstname</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>lastname</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>lastname</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>email</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>email</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>address1</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>mailingstreet</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>city</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>mailingcity</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>state</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>mailingstate</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>zip</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>mailingzip</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>country</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>mailingcountry</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>mobile</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>mobile</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>phone</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>homephone</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>fax</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>fax</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>website</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>website</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>facebook</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>facebook</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>foursquare</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>foursquare</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>instagram</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>instagram</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>linkedin</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>linkedin</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>skype</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>skype</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>twitter</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>twitter</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>points</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>points</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>attribution</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>attribution</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>attribution_date</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>date_attribution</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>last_active</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>last_active</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>preferred_locale</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>pref_locale</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>timezone</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>pref_tz</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>title</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>title</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>newsletter</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>newsletter</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
</fields>
</map>
MauticToAccounts
<map>
<originmodule>
<originname>MauticAccounts</originname>
</originmodule>
<targetmodule>
<targetname>CoreBOS</targetname>
</targetmodule>
<fields>
<field>
<fieldname>accountname</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>companyname</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>email1</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>companyemail</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>website</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>companywebsite</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
</fields>
</map>
AccountsToMautic
<map>
<originmodule>
<originname>coreBOS</originname>
</originmodule>
<targetmodule>
<targetname>MauticAccount</targetname>
</targetmodule>
<fields>
<field>
<fieldname>corebos_id</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>account_no</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>companyname</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>accountname</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>companyemail</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>email1</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>mobile</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>mobile</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>companyphone</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>phone</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>companywebsite</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>website</OrgfieldName>
<OrgfieldID></OrgfieldID>
</Orgfield>
</Orgfields>
</field>
</fields>
</map>
Some of the future goals are: