Passing Data to Chargebee Retention
Pass data into Chargebee Retention automatically to enrich subscriber profiles, personalize your page content, define Audiences for targeting, improve your in-app reporting and insights, and/or to augment Chargebee Retention's machine learning-based routing models (if used).
You can pass data to Chargebee Retention by:
- Adding custom fields into the Chargebee Retention.js snippet (permitted formats specified below)
- Importing data from a connected billing system or Salesforce CRM (field names and data types defined automatically)
- Importing attributes from a Segment.com session
- Making a precancel request to the Chargebee Retention server and including properties along with your Chargebee Retention app_id
This article describes passing data into Chargebee Retention via custom fields in the code snippet.
Which custom fields does Chargebee Retention recommend and why?
To help justify the effort of adding custom fields into the snippet, here are example data fields that Chargebee Retention customers send, along with the use cases to illustrate their value.
Field | Description | Value | Example Use Cases |
First purchase date | First date of purchase | Tenure-based targeting | Target early, mid, late lifecycle customers w/ different offer types (e.g. late customers = pause, early = discount) |
Revenue value | Amount paid per billing interval | Value-based targeting Revenue Insights |
Targeting based on current subscription revenue, for example:
Revenue Insights: pull revenue into Chargebee Retention to show the revenue impact of your retention tests |
Billing term | Current billing frequency (e.g. weekly, monthly, quarterly, annual, etc.) | Term-based targeting and eligibility | Offer plan duration changes (monthly to annual, weekly to bi-weekly, etc.), or include as a targeting criteria (e.g. only offer plan extensions to monthly customers) |
Plan Name | Plan the customer is on (e.g. by plan, by meals/week, by tier) | Value-based targeting Revenue Insights |
Offer customers option to switch to a different plan, or to a lower plan (downgrade) instead of canceling |
Number of purchases | All time purchase made | Enables targeting based on total payments | More loyal customers are more likely to purchase again, so offer pauses to your highest volume customers who just need a short break. Optimize experiences by targeting for audience profiles who are more likely to repurchase x number of times. |
LTV | All time revenue paid | Enables targeting based on LTV tranche | Make stronger offers to the most loyal and valuable customers who are more likely to repurchase in the future. Or, target high LTV customers with bonus loyalty incentives. |
Product Engagement (frequency) | E.g. logins last 30 days, x event last 30 days | Personalized loss aversion on the page Engagement-based targeting |
Show engaged users what they will lose with your software vs. showing inactive users resources to help then get re-engaged. Present alternative offers (e.g. pauses, extensions, switches, discounts, support/training) based on engagement |
Product Engagement (lifetime) | E.g. all-time logins, all-time x events | Personalized loss aversionEngagement-based targeting | Personalize the cancel experience based on the maturity of your users in ways that manual segmentation could not by leveraging Chargebee Retention AI. |
Allowed date formats
Chargebee Retention validates that data passed via the snippet meet the below date formats:
datetime = time | date-opt-time time = 'T' time-element [offset] date-opt-time = date-element ['T' [time-element] [offset]] date-element = std-date-element | ord-date-element | week-date-element std-date-element = yyyy ['-' MM ['-' dd]] ord-date-element = yyyy ['-' DDD] week-date-element = xxxx '-W' ww ['-' e] time-element = HH [minute-element] | [fraction] minute-element = ':' mm [second-element] | [fraction] second-element = ':' ss [fraction] fraction = ('.' | ',') digit+ offset = 'Z' | (('+' | '-') HH [':' mm [':' ss [('.' | ',') SSS]]])
Example snippet with various property types:
window.Brightback.handleDataPromise({ app_id: '123456', // String (example) email: 'jane@Chargebee Retention.com', // String (example) account: { internal_id: '123abc', // String (example) value: 49.99, // Decimal (example) created_at: '2020-02-22T06:55:59.000Z' // Timestamp (example) }, custom: { // Use to add additional parameters additional_fields: { // Nested fields are okay, anything_else: ' ' // Arrays are not supported }, offer_url: 'https://example.com/pause', // String offer_eligible: true // Boolean (example) } });
To find out how your account Admin can utilize variables by mapping fields check out our help document here.
The Experience and Audience manager supports the following property types
strings integers or decimal numbers boolean dates as numeric strings or literals