HubSpot is a content management system that primarily focuses on helping companies with their inbound marketing, thanks to its extensive built-in analytics. For example, it's easy to link a mail service like MailChimp to a blog in HubSpot, and track the traffic coming from a specific email campaign to specific blog posts.
Plone is an enterprise-grade content management system with an outstanding security track record, granular permission management, and extremely customizable publication workflows. It also comes with very powerful search functionalities out-of-the-box.
We recently had the opportunity to integrate HubSpot with Plone for one of our clients. The company's blog posts are located in HubSpot, and they also have a Plone-powered corporate site. The marketing team wanted to showcase the most recent HubSpot blog posts in the Plone site, as well as make it easy for web visitors to find blog posts within the HubSpot system.
Because the HubSpot search mechanism is a bit clunky, it was decided to leverage Plone's robust search functionality in both systems: the HubSpot blog is now seamlessly pulling the Plone livesearch as if it was a built-in functionality.
From a technical implementation standpoint, HubSpot uses a Zapier integration to send a webhook to the Plone site. Upon notification, Plone puts a task on a queue in Celery, the asynchronous task runner. The Celery worker contacts HubSpot using their API to retrieve the content of the post. The result of the API call is put into Plone as a content item using 'plone.api'.
This mechanism makes it possible to store all the blog content on HubSpot, and yet make it fully searchable in the Plone site. A cron job runs every few minutes to check for any changes to the blog posts, and updates the Plone site accordingly.
From an end-user's standpoint, clicking a blog post title in Plone will redirect you to the associated detail page in HubSpot. It's nice and seamless.
If you are new to HubSpot, rejoice: their API has really good instructions that are easy to follow. Their Discourse forum is also very responsive if you get stuck or have questions.
Questions? Contact us!