Stripe Billing Integration

Brightback's native integration with Stripe Billing makes it easy for you to retain subscribers and revenue by reducing voluntary churn. By connecting Brightback to Stripe, you can:

  • validate that customers are still paying when Brightback classifies a customer as saved, by looking up the subscriber by their Stripe ID and confirming their payment status 
  • calculate the dollar amount in revenue that is saved (or churned) per session, which is a customer that shows intent to cancel by being directed the Brightback cancel page 
  • pull subscription data from Stripe into Brightback to enrich the profile of your customer for using in targeting custom audiences, personalizing the cancel experience, and segmenting data records to build richer save and churn reports
  • process cancels and offers directly to billing, either using Brightback Webhooks, pass-thru URLs, or by posting changes directly to the subscription via the Brightback Integration (coming soon) 

Connecting Brightback to Stripe

In order for the Stripe integration to work, you must first connect your Stripe account to Brightback, then you need the unique stripeID of the canceller. This stripeID is captured dynamically from the brightback.js code snippet (or from your Salesforce CRM account) when the user first initiates a session by clicking to cancel. If you haven't already, review the documentation on how to install the brightback javascript snippet

Next, you can connect the Stripe integration is just a few simple steps, starting in the 'Settings' tab located in the lower left of the navigation bar of the Brightback application. View the full step-by-step guide to connecting Stripe to Brightback. Once Stripe is connected, you will immediately benefit from save validation and revenue attribution.  

Enriching your subscription profile  

Once Stripe is connected, you can leverage Brightback's enrichment feature to reduce the engineering time and effort needed to install the Brightback.js snippet. With the integration enabled, Brightback will use the StripeID to lookup and key subscriber data in Stripe (such as first purchase date or billing frequency), and sync it back into Brightback to map to Brightback fields using Field Mappings located under 'Settings' (read below).  

Note: If you do not send a valid subscription id or have a valid connection to Stripe, Brightback will not be able to pull subscription information at load time. In this case, your subscriber would be routed to your control or default cancel experience, and any dynamic field data used for personalization will default to the fallback variables. 

Syncing and mapping Stripe fields into Brightback

Before you can successfully map Stripe data into Brightback, you must first ensure that you are capturing the Stripe sub id via the Brightback.js, and have mapped this field to the Subscription ID in the field mappings page. 

Once successfully connected to Stripe, navigate to 'Field mappings' under Settings, to start mapping. For each Brightback field that you will map to, you must first specify the field data type (e.g. text, date, decimal, email, URL), then select the source field in Stripe, visible under the Stripe source in the menu dropdown. 

Go ahead and map as many fields as you would like. Mapped fields can be used to personalize the cancel page, target the cancel experience/offers, and in reporting via the customer's page. 

Example Stripe payload

{
  "subscription.customer.email": "jane@brightback.com",
  "subscription.plan.interval": "year",
  "subscription.plan.id": "premium_snack_pack",
  "subscription.id": "sub_abcdefghijk",
  "subscription.current_period_end": 946684800,
  "subscription.plan.billing_scheme": "per_unit",
  "subscription.customer.created": 946684800,
  "subscription.trial_start_date": 946684800,
  "subscription.plan.amount_decimal": 99000,
  "subscription.trial_end_date": 946684800,
  "subscription.product.name": "Premium Snack Pack",
  "subscription.start_date": 946684800,
  "subscription.customer.id": "cus_abcdefghijk",
  "subscription.plan.interval_count": 1,
  "subscription.product.id": "prod_abcdefghijk",
  "subscription.created": 946684800,
  "subscription.current_period_start": 946684800
}

Missing a field? Please contact support@brightback.com and we'll look into adding it. 

Processing Cancels and Saves in Stripe

The Brightback cancel flow works with Stripe in a number of ways, including enriching the subscriber data record in Brightback, validating and attributing revenue for saves or cancels, and directly or indirectly applying subscription changes against the Stripe subscriber ID. This section deals with how to process cancels and saves in Stripe, when triggered by cancel/save events in Brightback, as clarified in the scenario below.

The cancel user flow (below) starts when the subscriber clicks "cancel" in your site or app. This loads the brightback.js snippet, generates a new session in Brightback, and returns the cancel page URL that the user will be redirected to (Brightback can test and evolve multiple versions of the cancel page experience). The snippet also captures the subscriber data included in the payload. 

The cancel session has three potential outcomes: 1) subscriber cancels, 2) subscriber actively deflects from cancelling by accepting an offer, 3) subscriber passively deflects by closing their browser tab, bouncing, or clicking 'nevermind' on the Brightback page experience. 

In the first two scenarios above, the cancel or offer accept events trigger real-time billing changes that process the cancels and offers in Stripe. These triggers can be implemented using one of the following approaches: 

  • Brightback Webhooks - when a customer cancels or accepts an offer (e.g. 1 free month, pause, etc.), then Brightback's Webhook event URL triggers an action in Stripe. Note: you would need to have already set up a Coupon in Stripe, then the Brightback webhook will apply the coupon to the actual customer. 
  • Pass Thru URLs -  when a customer cancels or accepts an offer (e.g. 1 free month) then Brightback calls a URL, that can trigger an in-biling action (e.g. https://netflix.com/free-month?customer_id=12345&interval=1).
  • Direct management (coming soon): when a customer cancels or accepts an offer, Brightback directly posts changes to the Stripe subscription, including canceling the subscription in response to a validated cancel request, or modifying the subscription based on conditions defined in the accepted offer (e.g. a discount, pause, etc). Direct management of Stripe subs using the Brightback app reduces engineering effort to install Brightback, and to evolve future offers.

Passive deflects (scenario 3, above) do not need any subscription modifications in Stripe, and the canceler is redirected back to a returning URL specified in the Brightback.js snippet ('save_return_url').

Need a Brightback developer sandbox for testing the integration with a Stripe dev account? Please contact support@brightback.com or your account manager, who can promptly set up your developer account.    

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us