How to structure an API project for LMS web tracking + CRM

jimthornton
Participant

Hi HubSpot people!

 

Hoping to get some guidance on the current best practice given the transition from legacy to new APIs and our requirements around likely needing to use multiple APIs/JS events.

 

We are trying to push web analytics data from a Wordpress based Learning Management System (LMS) to Hubspot. We would like to "POST/UPDATE" data so that it can show in hubspot reporting as well as adding/updating CRM contacts for LMS based registration and activity. It's important we can then trigger workflows for those contacts based on their LMS activity.

 

We're hoping there is a best practice here. This is pretty core to our inbound marketing strategy for a Hubspot Enterprise client.

Some details: our example use case is having a client on HS Enterprise being able to report on user web analytics and associate that activity with HS CRM contacts for efforts around a wordpress membership portal with LMS, some requirements are:

  • Users register -> contact created or updated in Hubspot
  • Web analytics from hubspot analytics tracking code starts to associate their web activity with their contact in the CRM
  • Web analytics reporting is reportable for x users using the LMS, pageviews on lessons, etc.,
  • User completes a course -> course completion noted in HS CRM -> workflow triggered sending email to congratulate user
  • User completes a certificate-> certificate tag added in HS CRM -> workflows matching all users with that certificate can be used

 

The trouble we're having is that it seems there are a few APIs and JS events tracking methods we could use to push the data. But we aren't sure what combination would serve our needs.

 

1. Pushing custom events for web analytics reporting

Use one of the Events APIs to create custom behavioral events with events api or simply push events with the tracking code / js api.

2. Push data to the CRM using either new CRM API, legacy Forms API, or somehow else?

It looks like we can use one of the ways to POST / PUT streams of data, like tickets, line items, custom objects to add activity in a retrievable way for those contacts

But the issue here seems to be that using custom objects may be too "beta" in the new CRM API for our purposes of needing something reliable and cleanly documented.

 

From our senior dev: The new CRM API seems immature, lot’s of typos in the examples, missing import/include statements, etc. Tickets and properties don’t work -- even cutting and pasting the sample code (after fixing the syntax errors).

 

It seems that to properly store the user's activity, such as completed a certification or started a lesson, that we should be using the CRM custom objects. But to "tag" the user as a property of "completed x certification" so that we can assign them to a workflow, requires a use of pushing new properties, which could add up quickly to lots of new properties and this client already has about 200+ CRM properties.

 

Any guidance on the best practice here would be super helpful!

PS I was unable to add the tag: "Enterprise 3rd Party Integration" as it said "not available here"

0 Upvotes
3 Replies 3
dennisedson
Community Manager

Hi @jimthornton 

I am wondering if @Kevin-C or @remingtonbegg from Impulse Creative.  They actually build an LMS on HubSpot so they probably have some insights for you

Thanks,

Dennis




Check out our Community Developer Blog
where we feature our Community driven developer podcast and how to content
0 Upvotes
remingtonbegg
Contributor | Diamond Partner
Hello!!

Some of your struggles are why we brought a solution to be 100% on HubSpot CMS.

For what your looking to do I’d recommend using HubSpot behavioral events as your triggers for automation. I’d you need to capture form submissions you can do a lot with forms and hidden fields to update statuses.

jimthornton
Participant

Thanks, @dennisedson and thanks @remingtonbegg  - appreciate that tip!

 

Remington, do you recommend Legacy Behavioral Events or the new beta API there?

 

It does look like the "Delay" as trigger would work for our purposes with the new custom behavioral events, but seeing some discussion on limitation of the actual event as a "trigger" for the new beta API via https://community.hubspot.com/t5/HubSpot-Ideas/Use-NEW-custom-behavioral-event-as-a-Workflow-trigger...