Mautic

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.

Configure Mautic

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.

Configure coreBOS

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>

Notes

Going Forward

Some of the future goals are: