Mugo Web main content.

Needs assessment and careful candidate review help ensure successful CRM migration for FindaTopDoc

By: Thiago Campos Viana | February 13, 2023 | cms, automation, and Business solutions

The Mugo Web team recently worked with one of our long-time clients,, to execute a seamless migration from its existing Customer Relationship Management (CRM) system to a new platform.

This project was critical since FindaTopDoc relies on extensive use of CRM integrations to power its physician directory website. Applications range from updating doctors’ searchable listings to managing user-generated content, a pillar of the FindaTopDoc publishing strategy.


A searchable directory of doctors, based on data stored in a Customer Relationship Management (CRM), is the heart of’s business.

This project included:

  • Evaluation of the new CRM, based on cost, features, and business requirements
  • Technical evaluation and translations of existing integrations to the new system, including converting over 100 email templates
  • Support throughout the migration

The transition was both time- and budget-sensitive, but we successfully executed the project in about two months, thanks to close communication and careful technical diligence.

Why the change?

FindaTopDoc had used Bronto, a web-based SaaS CRM from Oracle Netsuite. It was happy with the results, but Oracle announced end-of-life for Bronto early in 2022. We had only until the late spring to pick a new CRM and complete the migration.

So, our primary goal for the project was to maintain current functionality with a cost-effective peer solution while avoiding downtime. That was in itself quite a challenge, given how deeply the Bronto CRM was integrated with Ibexa DXP, the CMS on which the FindaTopDoc website is built.

How CRMs and CMSs work together

CRMs are often used as the in-state repository for customer data, such as email, demographics, and transactional history. When this data is fully integrated with your site’s Content Management System (CMS), the possibilities for personalization and interactivity are practically endless.

Events in the CMS, such as form fills or clicks, can trigger account management and marketing emails sent and managed by the CRM, populated by content stored in the CMS. CRMs can also provide buying cycle and other visitor info to help your CMS build custom landing or upsell pages. 

FindaTopDoc has built the success of its site around maximizing the interaction between its CRM/CMS.

FindaTopDoc’s CRM/CMS strategy

FindaTopDoc’s website is fueled by a directory of over healthcare providers that can be searched by numerous criteria, including location, specialty, and insurance network. They have over 100k active users, and automation is key to keeping the site running effectively. 

Physicians maintain extensive profiles on the site and can also interact with the FindaTopDoc community through a Q&A loop. Medical professionals can independently post content items about healthcare issues to support SEO and other user acquisition channels. And general users can post reviews of care providers.

The CMS and CRM have dedicated functions, including: 

  • The Ibexa CMS holds all site content, including User Generated Content (UGC). We also implemented an approval workflow for content in the CMS.
  • The CRM hosts information about site contributions and helps track interactions and email data. 
  • Doctor profile data is typically pre-populated from external databases, but doctors and site managers can also edit this info, including subscription preferences.
  • All email communication, either triggered by user behavior or push campaigns to selected audience segments, is managed and sent by the CRM.
  • Metadata about content contribution in the CMS, such as posts created, are also ported to the custom fields in the CRM as part of the user’s profile.

The two systems are kept in sync through various scripts run throughout the day. 

Profile data is managed through Ibexa forms and then synched to the CRM.

As you can see, CMS-to-CRM integrations are critical to web-based businesses like FindaTopDoc, and even a brief outage can create significant issues.

Maintaining key functionality and integrations

As we planned the migration from Bronto, we had to ensure that these key integrations would remain intact.

Form content posting

All forms on the FindaTopDoc site, for both user account management and content submission, are created in the Ibexa CMS. (Some FindaTopDoc admins may edit profiles directly in the CRM, but that is an atypical use case.)

We created PHP code around the Bronto API to port data to the CRM from these form submissions. An example of this would be the content included in emails sent by the CRM to solicit doctor feedback on questions.

Content solicitation mails

When a user submits a question via an Ibexa form, the CRM is notified and sends out email requests for responses based on the specialties listed on the physician’s profile. An orthodontist, for example, would not be notified of oncology questions.

FindaTopDoc editors occasionally invite doctors to answer questions that they find through market research or the Haro sourcing service.

The CRM also occasionally sends batch emails to physicians who have not created any site content for a period of time.

Gmail integration

We also implemented a third-party integration based on Google App Scripts.

When a physician receives an email invitation from the CRM to answer a question, they can either go to the site and use an Ibexa form or reply directly via email. In the latter case, the mail response comes to a Gmail inbox.

We use the dedicated JavaScript classes defined by Google to fetch answers from the mail and then employ our own PHP code and the API to post the content into the CMS for workflow approval.

Workflow status

At each stage of the workflow status, the doctor who submits a content item gets a transactional email from the CRM to notify them of workflow status. These emails are triggered by posts from Ibexa into the CRM via the API.


Content submission forms are managed in Ibexa, with status reports and key content elements posted to the CRM via API.

Choosing the new CRM

Perhaps the biggest challenge in the entire process was selecting the right CRM to replace Bronto, given that the system was facing end-of-life.

We did several interviews with potential vendors, including Salesforce, with whom we have extensive integration experience. By the time we selected a replacement candidate, we had only about two months to execute the migration plan. But we had to invest in making the right decision.

HubSpot was the ultimate choice based on price and features.

The first and most critical check was on the HubSpot API, which proved to be solid but with some limitations. (More on that a bit later.)

We also tested mail transmission throughout since HubSpot lacks some of the batching features we came to rely on in Bronto. FindaTopDoc can send over 50,000 emails in a day, so we needed to ensure that the HubSpot API met our speed requirements.

As is always the case, each candidate we reviewed had most of the expected features we needed. Price ultimately played a big part in the ultimate decision – some licenses start at around $200,000 annually, which was well outside this project's scope.

The migration project

The main goal of the project was to maintain business continuity, not to add new features.

The bulk of the actual work was converting Bronto email templates to HubSpot – all told, we had about 100 or so templates to convert. Email communication via the CRM is an essential driver of FindaTopDoc’s business.

We also edited our PHP code to access HubSpot’s API, which I would describe as somewhat closed. We made it work, but there were some challenges. HubSpot is a massive company that promotes itself as a largely turnkey solution, so this is not surprising.

Overall, the project was a success. The new CRM was in place to beat the Bronto end-of-life date, and overall the transition has been smooth. But, as with any project, there were some issues to work through.

  • The Bronto database allowed us to create distinct segments for doctors, nurses, and patients. HubSpot’s data structure is not set up for such clean segregation, so we had to adapt to HubSpot’s business units to track these distinct audiences.
  • Bronto supported a view-in-browser link in its email templates, which is not available in HubSpot.
  • HubSpot does not have optimal support for development environments, including dev sandboxes. During the rollout, we simply used a subset of the main DB as our testing base, which was a workable compromise.
  • Another issue was mail scheduling. The Bronto API allowed us to schedule emails to be sent X number of hours after an automated trigger event. That capacity is not available with the HubSpot API. Of course, our team could have created this capability, but after discussions with our client at FindaTopDoc, we determined it was not worth the additional effort. Close communication about requirements throughout a project is one of our core values here at Mugo Web, which paid off here.


As you can see, carefully planned integration between your CRM and your website’s CMS can truly elevate the interactivity and personalization of your user’s site experience. As is the case with any system integration, careful needs analysis and planning can help you manage these integrations and extend the life of your website.

Let us know how we can help you get the most out of your investment in a CRM!

loading form....
Thanks for reaching out. We will get back to you right away.