Empower your product teams with richer data from your warehouse to perform deeper analysis on subscription revenue and better understand business performance.
Setup
To find your API keys, navigate to your profile and create a private API key.

Syncing
Hightouch supports syncing to the following ChartMogul Objects:
CustomersInvoicesTransactions
Sync modes
This integration supports Upsert, Update, and Insert modes for Customers objects and Insert mode for Invoices and Transactions objects.
- Upsert: Upsert mode pushes new objects to ChartMogul and updates fields that change in your warehouse.
- Update: Update mode updates particular fields on existing objects in ChartMogul.
- Insert: Insert mode pushes new objects to ChartMogul, and doesn't update the objects as they change in your warehouse.
Record matching
Customers
In Upsert mode, records can be matched from your source to ChartMogul by External ID or Email.

In Update mode, records can be matched from your source to ChartMogul by External ID or ChartMogul's Customer UUID.

ChartMogul doesn't consider Email as a unique identifier, so upserting
records will apply to all matching emails.
Field mapping
Customers
You can sync columns from your source to ChartMogul's default and custom attributes. When syncing with Upsert or Insert mode, Data Source UUID, Name, and External ID
(depending on if External ID was selected in the Record Matching section) are required fields in order for the sync to run successfully. When syncing with Update mode, Name
is a required field in order for the sync to run successfully. To know more about Customer fields, refer to the ChartMogul docs.
Additionally when syncing custom attributes with Upsert or Insert mode, Hightouch automatically transforms your data to match the required
format that ChartMogul expects for the custom field. For example, say you want to enrich a customer profile by inserting age as a custom attribute, where the object is:
{
"attributes": {
"custom": {
"age": 25,
},
}
}

Hightouch will automatically detect the type of the record value and transform the object for you to the expected custom field format:
{
"attributes": {
"custom": [
{
"type": Integer,
"key": "age",
"value": 25
},
]
}
}
Invoices
You can sync columns from your source to ChartMogul's default and custom attributes. Customer UUID, External ID, Date, Currency, Line Items, and
Customer External ID are required fields in order for the sync to run successfully. To know more about Invoice fields, refer to the ChartMogul docs.

Transactions
You can sync columns from your source to ChartMogul's default and custom attributes. Invoice UUID, Date, Type, and Result are required fields in order
for the sync to run successfully. To know more about Transaction fields, refer to the ChartMogul docs.

Delete mode
Customers
You can choose what Hightouch's behavior is when records leave the query result set. The default is doing nothing, but you can also set Hightouch to delete the Customer record.

ChartMogul doesn't allow custom attributes to be cleared, so Hightouch will
sync "null" to the field instead.
Tips and troubleshooting
Common errors
If you encounter an error or question not listed below and need assistance, don't hesitate to . We're here to help.
write ECONNRESET
You may receive the write ECONNRESET error if the model columns used for record matching or mapping don't have an associated data type in Hightouch.

To resolve the error, ensure that each model column has the data type ChartMogul expects. Refer to the data types and casting docs for more information.
Live debugger
Hightouch provides complete visibility into the API calls made during each of your sync runs. We recommend reading our article on debugging tips and tricks to learn more.
Sync alerts
Hightouch can alert you of sync issues via Slack, PagerDuty, SMS, or email. For details, please visit our article on alerting.
