Skip to Content

ChartMogul

Sync customer data, contacts, and custom attributes to ChartMogul for subscription analytics and revenue reporting. Zeotap sends your warehouse data to ChartMogul so you can enrich customer profiles, track lifecycle stages, and power revenue metrics.

Prerequisites

  • A ChartMogul account (any plan)
  • A ChartMogul API key with read/write permissions
  • A ChartMogul data source UUID (found in Data Platform > Data Sources)

Authentication

ChartMogul uses API Key authentication via HTTP Basic auth.

  1. Log in to your ChartMogul account
  2. Click your avatar in the top-right and select Profile
  3. Navigate to View API Keys
  4. Copy your API key (or create a new one if needed)
  5. Paste the API key into Zeotap when configuring the destination

Configuration

FieldTypeRequiredDescription
Data Source UUIDTextYesThe ChartMogul data source UUID. Found in Data Platform > Data Sources. Format: ds_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Target Settings

FieldTypeRequiredDescription
ChartMogul ObjectSelectYesThe object type to sync: Customers or Contacts

Supported Operations

Sync Modes

ModeSupportedDescription
InsertYesCreate new records in ChartMogul
UpdateYesUpdate existing records by external ID (customers) or UUID (contacts)
UpsertYesCreate or update records — looks up by external ID, creates if not found

Audience Sync Modes

ChartMogul does not have a list or segment membership API, so audience sync modes are not supported.

Features

FeatureSupported
Field MappingYes
Schema IntrospectionNo

Required Mapping Fields

ObjectRequired FieldsDescription
Customersexternal_idA unique customer identifier from your system
Contactscustomer_external_idThe external_id of the parent customer in ChartMogul

Default Destination Fields

Customers

FieldTypeDescription
external_idstringUnique customer identifier from your system
namestringCustomer display name
emailstringCustomer email address
companystringCompany or organization name
countrystringISO 3166 alpha-2 country code (e.g. US, DE)
statestringUS state code (e.g. US-CA)
citystringCustomer city
zipstringPostal or zip code
lead_created_attimestampWhen the customer became a lead (ISO 8601)
free_trial_started_attimestampWhen the free trial started (ISO 8601)
ownerstringEmail of the responsible team member
website_urlstringCustomer website URL

Any additional mapped fields are automatically sent as custom attributes on the customer profile.

Contacts

FieldTypeDescription
customer_external_idstringExternal ID of the parent customer
first_namestringContact first name
last_namestringContact last name
emailstringContact email address
titlestringJob title
phonestringPhone number
linked_instringLinkedIn profile URL
twitterstringTwitter handle or URL
notesstringAdditional notes

How It Works

  1. Row-by-row processing: Zeotap sends each row individually to the ChartMogul API. ChartMogul does not offer a batch endpoint.
  2. Customer lookup: For upsert and update modes, Zeotap looks up customers by external_id and data_source_uuid to find the ChartMogul UUID before updating.
  3. Contact lookup: For contact upserts, Zeotap searches by email within the parent customer’s contacts.
  4. Custom attributes: Any mapped fields that are not standard ChartMogul fields are automatically sent as custom attributes with inferred types (String, Integer, Boolean).
  5. Error handling: Failed rows are logged individually and do not block other rows in the batch.

Rate Limits

ChartMogul enforces the following rate limits:

LimitValue
Requests per second40
Max parallel connections20

Zeotap automatically retries requests that receive a 429 Too Many Requests response with exponential backoff.

Best Practices

  • Use stable external IDs: The external_id field should be a stable, unique identifier from your system (e.g., your internal customer ID). Changing external IDs will create duplicate customers.
  • Create data sources for each integration: Use a dedicated ChartMogul data source for Zeotap syncs. This makes it easy to track which data came from your warehouse.
  • Map custom attributes carefully: ChartMogul custom attribute types are set on first creation and cannot be changed. Ensure your data types are correct before the first sync.
  • Use contacts for people, customers for accounts: In ChartMogul, a customer represents a billing account (company), while contacts represent individual people within that account.

Troubleshooting

Authentication failed: invalid API key

Verify your API key is correct. Go to Profile > View API Keys in ChartMogul. Ensure you are copying the full key and that it has not been revoked.

Data source UUID not found

Confirm the data source UUID exists in your ChartMogul account under Data Platform > Data Sources. The UUID format is ds_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

Customer not found for update

When using update or upsert mode, ensure the external_id value in your data matches an existing customer in ChartMogul under the configured data source. Customers from different data sources have separate external ID namespaces.

Contact creation fails with “customer not found”

When syncing contacts, the customer_external_id must reference an existing customer in ChartMogul. Sync your customers first, then sync contacts.

Custom attributes not appearing

Custom attributes are set on the customer profile under Attributes. Note that ChartMogul attribute types (String, Integer, Timestamp, Boolean) are locked after first creation. If you need to change a type, delete the attribute in ChartMogul first.

Rate limit errors (429)

If you see frequent 429 errors, reduce the sync frequency or batch size. ChartMogul allows 40 requests per second. Zeotap automatically retries with backoff, but sustained high volume may cause delays.

Last updated on