Our digital agency is looking to streamline our client reporting experience and consolidate our tech stack. We manage large-scale B2B social media growth and community building for our clients.
To handle the fulfillment and algorithmic safety of these campaigns, our backend relies on an enterprise indian smm panel (specifically, we use the SMM Bear API for its zero-queue execution and mobile-residential proxy routing).
Right now, the raw delivery data (order status, engagement metrics, delivery speed) lives in that external backend. We want to build a seamless, gated client portal on our HubSpot-hosted website where clients can log in and view their real-time social growth dashboard.
My questions for the CMS developers here:
What is the most efficient best practice for embedding external REST API data (JSON format) directly into HubSpot CMS pages? Should we lean heavily on Serverless Functions, or handle the fetch requests via Custom Coded modules using HubL and vanilla JavaScript?
Has anyone successfully built a custom client portal in HubSpot that continuously syncs and displays fulfillment data from a third-party marketing vendor’s API?
Any guidance on architectural best practices for this type of CMS integration would be greatly appreciated!
I hope these help point you in the right direction, but in the meantime, I’d like to tag in some of our Top Contributors to see if they have any tips and tricks on this!
From my experience, the best/easiest solution is to bring the data into HubSpot and use HubSpot functionalities to build the actual membership portal (the technical term for “gated client portals”).
How you’ll sync the external data with HubSpot depends your HubSpot tier.
If you got Content Hub Enterprise, you got access to Serverless functions which are great for keeping everything inside HubSpot.
If you don’t have Enterprise - there are plenty of other approaches like creating a project app (private apps are being sunsetted soon), custom coded action which will trigger a webhook periodicaly to fetch data, create an external app on something like AWS/Azure/Firebase/RaspberryPi (doesn’t really matter) which will just fetch from external and push to HubSpot, or like you’ve mentioned, just create JS scripts which will load the data on page request (best if you don’t wan’t to store the data in HS; but might be not the best if you want to get the data into HS)
If you got an Enterprise seat or Hub, you got access to Custom Objects. Amazing feature as it let’s you create completely custom objects and without limiting you to the default ones. Add associations into the equation and you can save A LOT of duplicate properties.
Once the data is inside HubSpot, you can use either the properties directly in custom templates and modules or add them as GraphQL data (available in Professional + Enterprise tiers).
Pretty neat feature.
Just a few examples of things I was working on:
Membership portal for a finance company (co-oped with @nickdeckerdevs and his team)
custom blog
custom ticketing options
custom chat
members settings (users coould add new team members and edit them, without adding them as HubSpot users)
custom downloads
and many other things - everything was managed within HubSpot
Shipping/Tracking portal (co-oped with @Josh and his team)
Customers could see their order status (request, offer sent, offer signed, product prep, product shipping, done) with a bunch of other data
Downloads depending on the ordered products
As for the theme/modules setup:
It will be most likey a highly custom solution as modules from the marketplace don’t have membership functions. Pro/Paid Themes, may have some membership templates, but that’s about it.
From my experience, almost everything about memberships is custom. Therefore, it might be easier/cleaner to start from scratch as this will be the best fitting solution without a crazy amount of unused CSS/JS and such.