How to Set up Custom Objects Sync with HubSpot
⚠️ You will require an Enterprise-level subscription with HubSpot to use this feature.
Ensure that you have connected the HubSpot integration prior to starting.
1. Create a Private App in HubSpot
Navigate to Settings in the top menu bar in HubSpot.
Find Integrations > Legacy apps in the left navigation bar > Click Create > Select Private.
Give the Private App a name, then click Scopes > + Add new scope.
Find and select "crm.schemas.custom.read" and "crm.schemas.custom.write", and click Update > Click Create app.
Refer to this guide from HubSpot's documentation for more information on creating a Private App.
2. Add the private app token to the Measure integration
Navigate to the private app you just created. Click into the Auth tab to find the "Access token". Copy this token, as you will need to paste it into Measure.
In Measure, locate the Integrations tab in the left navigation bar, and click Manage in the HubSpot card.
Click Install Private App and paste the Private App token. Click Install Private App.
Once the private app has been installed, go to HubSpot Integration > Settings > Enable Subscription Custom Object under Available Custom Objects.
3. Push Custom Objects into HubSpot
Under the Action Mapping tab, you can now send custom objects from Measure back into HubSpot.
Once configured, Measure can push subscription details, update changes to subscriptions, and push invoices to HubSpot.
Look for the Measure Subscriptions and Measure Invoices tabs under the CRM tab in left navigation bar in HubSpot.
These objects will also have associations with the respective company and contact in Hubspot. Any invoices associated with subscriptions in Measure will also have the subscription association set up. This enables full reporting and Hubspot workflow creation against the custom objects model.
Detailed Schema for Custom Objects
Invoice Object
{
"Properties": [
{
"Label": "Measure UUID",
"Type": "string",
"Name": "maple_uuid",
"FieldType": "text"
},
{
"Label": "Created At",
"Type": "datetime",
"Name": "created_at",
"FieldType": "date"
},
{
"Label": "Updated At",
"Type": "datetime",
"Name": "updated_at",
"FieldType": "date"
},
{
"Label": "Status",
"Type": "string",
"Name": "status",
"FieldType": "text"
},
{
"Label": "Schema Version",
"Type": "string",
"Name": "schema_version",
"FieldType": "text"
},
{
"Label": "Measure Customer ID",
"Type": "string",
"Name": "maple_customer_id",
"FieldType": "text"
},
{
"Label": "Measure ID",
"Type": "string",
"Name": "maple_id",
"FieldType": "text"
},
{
"Label": "Invoice Date",
"Type": "datetime",
"Name": "invoice_date",
"FieldType": "date"
},
{
"Label": "Name",
"Type": "string",
"Name": "name",
"FieldType": "text"
},
{
"Label": "Number",
"Type": "string",
"Name": "number",
"FieldType": "text"
},
{
"Label": "Currency",
"Type": "string",
"Name": "currency",
"FieldType": "text"
},
{
"Label": "Subtotal",
"Type": "string",
"Name": "subtotal",
"FieldType": "text"
},
{
"Label": "Subtotal (Number)",
"Type": "number",
"Name": "subtotal_number",
"FieldType": "number"
},
{
"Label": "Total",
"Type": "string",
"Name": "total",
"FieldType": "text"
},
{
"Label": "Total (Number)",
"Type": "number",
"Name": "total_number",
"FieldType": "number"
},
{
"Label": "Paid",
"Type": "string",
"Name": "paid",
"FieldType": "text"
},
{
"Label": "Paid (Number)",
"Type": "number",
"Name": "paid_number",
"FieldType": "number"
},
{
"Label": "Refunds",
"Type": "string",
"Name": "refunds",
"FieldType": "text"
},
{
"Label": "Refunds (Number)",
"Type": "number",
"Name": "refunds_number",
"FieldType": "number"
},
{
"Label": "Due",
"Type": "string",
"Name": "due",
"FieldType": "text"
},
{
"Label": "Due (Number)",
"Type": "number",
"Name": "due_number",
"FieldType": "number"
},
{
"Label": "Auto Charges",
"Type": "string",
"Name": "auto_charges",
"FieldType": "text"
},
{
"Label": "Paid Date",
"Type": "datetime",
"Name": "paid_date",
"FieldType": "date"
},
{
"Label": "Campaign Status",
"Type": "string",
"Name": "campaign_status",
"FieldType": "text"
},
{
"Label": "Due Date",
"Type": "datetime",
"Name": "due_date",
"FieldType": "date"
},
{
"Label": "Invoice Link",
"Type": "string",
"Name": "invoice_link",
"FieldType": "text"
},
{
"Label": "Metadata",
"Type": "string",
"Name": "metadata",
"FieldType": "text"
},
{
"Label": "Measure Unique Identifier",
"Type": "string",
"Name": "unique_id",
"FieldType": "text",
"HasUniqueValue": "true"
}
],
"AssociatedObjects": ["CONTACT", "COMPANY"]
}
Subscription Object
{
"Properties": [
{
"Label": "Measure ID",
"Type": "string",
"Name": "maple_id",
"FieldType": "text"
},
{
"Label": "Created At",
"Type": "datetime",
"Name": "created_at",
"FieldType": "date"
},
{
"Label": "Status",
"Type": "string",
"Name": "status",
"FieldType": "text"
},
{
"Label": "Is Active",
"Type": "bool",
"Name": "is_active",
"FieldType": "booleancheckbox",
"Options": "true/false"
},
{
"Label": "Schema Version",
"Type": "string",
"Name": "schema_version",
"FieldType": "text"
},
{
"Label": "Measure Customer ID",
"Type": "string",
"Name": "maple_customer_id",
"FieldType": "text"
},
{
"Label": "Measure Customer Name",
"Type": "string",
"Name": "maple_customer_name",
"FieldType": "text"
},
{
"Label": "Start Date",
"Type": "datetime",
"Name": "start_date",
"FieldType": "date"
},
{
"Label": "End Date",
"Type": "datetime",
"Name": "end_date",
"FieldType": "date"
},
{
"Label": "Renewal Date",
"Type": "datetime",
"Name": "renewal_date",
"FieldType": "date"
},
{
"Label": "Auto Renews",
"Type": "bool",
"Name": "auto_renews",
"FieldType": "booleancheckbox",
"Options": "true/false"
},
{
"Label": "Term",
"Type": "string",
"Name": "term",
"FieldType": "text"
},
{
"Label": "Is Trial",
"Type": "bool",
"Name": "is_trial",
"FieldType": "booleancheckbox",
"Options": "true/false"
},
{
"Label": "Parent Billed",
"Type": "bool",
"Name": "parent_billed",
"FieldType": "booleancheckbox",
"Options": "true/false"
},
{
"Label": "Currency",
"Type": "string",
"Name": "currency",
"FieldType": "text"
},
{
"Label": "MRR",
"Type": "string",
"Name": "mrr",
"FieldType": "text"
},
{
"Label": "MRR With Currency",
"Type": "string",
"Name": "mrr_with_currency",
"FieldType": "text"
},
{
"Label": "MRR (Number)",
"Type": "number",
"Name": "mrr_number",
"FieldType": "number"
},
{
"Label": "ARR",
"Type": "string",
"Name": "arr",
"FieldType": "text"
},
{
"Label": "ARR With Currency",
"Type": "string",
"Name": "arr_with_currency",
"FieldType": "text"
},
{
"Label": "ARR (Number)",
"Type": "number",
"Name": "arr_number",
"FieldType": "number"
},
{
"Label": "Company Currency",
"Type": "string",
"Name": "currency_company",
"FieldType": "text"
},
{
"Label": "MRR (Company Currency)",
"Type": "string",
"Name": "mrr_company",
"FieldType": "text"
},
{
"Label": "MRR (Number, Company Currency)",
"Type": "number",
"Name": "mrr_number_company",
"FieldType": "number"
},
{
"Label": "ARR (Company Currency)",
"Type": "string",
"Name": "arr_company",
"FieldType": "text"
},
{
"Label": "ARR (Number, Company Currency)",
"Type": "number",
"Name": "arr_number_company",
"FieldType": "number"
},
{
"Label": "MRR (Company Currency) With Currency",
"Type": "string",
"Name": "mrr_number_company_with_currency",
"FieldType": "text"
},
{
"Label": "ARR (Company Currency) With Currency",
"Type": "string",
"Name": "arr_number_company_with_currency",
"FieldType": "text"
},
{
"Label": "Product Names",
"Type": "string",
"Name": "product_names",
"FieldType": "text"
},
{
"Label": "Plan Description",
"Type": "string",
"Name": "plan_description",
"FieldType": "text"
},
{
"Label": "Cancel Date",
"Type": "datetime",
"Name": "cancel_date",
"FieldType": "date"
},
{
"Label": "Cancel Reason",
"Type": "string",
"Name": "cancel_reason",
"FieldType": "text"
},
{
"Label": "Metadata",
"Type": "string",
"Name": "metadata",
"FieldType": "text"
},
{
"Label": "Measure Unique Identifier",
"Type": "string",
"Name": "unique_id",
"FieldType": "text",
"HasUniqueValue": true
}
],
"AssociatedObjects": ["CONTACT", "DEAL", "COMPANY"]
}





