Dev Request: Dev Request - Hubspot Forms API Submission
Instructions
Intro
When the Google Tag Manager library loads it declares a global JS object, dataLayer. It overloads the array prototype .push method so that it can grab on to objects/"events" pushed to that array.
Notes/Questions
- What values are possible there for customer.status?
- Populate
customer.hubspot_canonical_vid,customer.auth0_id,customer.chargebee_id,customer.statusif available. If not available, keep the key and use value javascript undefined.
Other Notes
data.context.hutk is the hubspot user token if available, if not set to JS undefined
data.form_data.fields is an object of key-value pairs for each form field and its value
Data Layer Event: hubspot_forms_api_submit
Triggering Conditions
- Contact Us on this page
- Subscribe to Email List on blog or product page
- example blog page
- see bottom of this product page
- Free Download form on product pages
- Click on "Download free version" just below the product comparison table on this page
Event to Log
<script>
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'hubspot_forms_api_submit',
'data': {
"context": {
"ID--_____hubspot_forms_api_submit_____context--hutk_____uiName--hutk": "INSERT HUBSPOT USER TOKEN"
},
"ID--_____hubspot_forms_api_submit_____form_id_____uiName--form_id": "INSERT HUBSPOT FORM ID",
"customer": {
"ID--_____hubspot_forms_api_submit_____customer--status_____uiName--status": "Chargebee Cx status (e.g. in_trial) or JS undefined",
"ID--_____hubspot_forms_api_submit_____customer--auth0_id_____uiName--auth0_id": "ID or JS undefined",
"ID--_____hubspot_forms_api_submit_____customer--chargebee_id_____uiName--chargebee_id": "ID or JS undefined",
"ID--_____hubspot_forms_api_submit_____customer--hubspot_canonical_vid_____uiName--hubspot_canonical_vid": "ID or JS undefined"
},
"form_data": {
"fields": {
"ID--_____hubspot_forms_api_submit_____form_data--fields--key_____uiName--key": "value",
"ID--_____hubspot_forms_api_submit_____form_data--fields--key2_____uiName--key2": "value2"
}
}
}
});
</script>