How to configure Cancel Management without a Billing Integration (non Chargebee Billing, Stripe, Recurly)?

Modified on: Sat, 1 Oct, 2022 at 12:07 AM


How to configure Cancel Management without a Billing Integration (non Chargebee Billing, Stripe, Recurly)?


If you do not use one of the Retention's supported Billing Integrations ( Chargebee Billing, Stripe, or Recurly) to manage your cancels, we have a few options for you. You can choose one of the following to help manage your cancellations.

  • Process via dynamic URL redirect
  • Process via webhook
  • Process via email


Processing cancels via dynamic URL redirect

The most common way our customers choose to process cancels is by sending a dynamic URL along in the precancel request that defines your canceller's profile. Retention has a pre-defined key that you can use to send a URL that can be placed in experiences.  That key is the cancel_confirmation_url.  Our standard field mapping will allow the dynamic URL to be used in cancel sessions when placed as the URL redirect option for your modal or button.  Note if you are unfamiliar with how Retention precancel requests work, check out our brief tutorial, Installing Retention.js.

Note: We've already placed the cancel_confirmation_url as the URL on your default page.

Using the above expression can apply a unique URL for your canceller to follow that will come across to your endpoint as a GET request. When the user clicks Cancel they will be redirected to the endpoint you have defined in the precancel request. In this way, you can dynamically append query parameters to your endpoint and trigger follow-up actions in your billing or other systems.

Dynamic URL example

Note: In this example, [INTERNAL_USER_ID], represents the dynamic variable to be passed along with each precancel request you can pass as many query parameters as are necessary to process your internal automation
"cancel_confirmation_url" : "[INTERNAL_USER_ID]"

Processing cancels via webhook

Using Retention's webhook notification system is a powerful way to process cancels. In order to utilize our webhook notifications, you'll first need to create an endpoint that can accept POST requests.  If you are considering this option and want to take a deeper look into how to authenticate and read the request body for cancels, please take a look at our help article, Using Webhooks

Requests will all come call from Retention's block of static IPs that you can whitelist for your app in order to receive requests. The body of the POST request comes in standard JSON format with a number of keys you can use to trigger follow-up automation and processing, first and most notable is the notification type.  In this case, it will be, " cancel".

"data": {
"type": "cancel"

The POST request will also include responses from the Survey which are the canceller's Reason for leaving, Likelihood to return, Competition, and free form feedback text from the Additional Comments box.  

Note: The survey reason includes several variants.  Notably, the display_reason denotes the reason the user saw and what is editable by your Admins in the Retention app.  The selected reason represents an immutable key created at the time the reason was added in the Retention Experience Manager.
"data": {
"type": "cancel",
"survey": {
"competition": "None",
"sentiment": 10,
"feedback": "I still love it!",
"confirmation": true,
"selected_reason": "too_busy_dont_have_time.1440384242",
"display_reason": "Too busy - don't have time",
"brightback_reason": "too_busy",
"__path": "/layout/cards/0d7b5526-f926-4c7b-b263-1156e80d0c44/provides"

Additionally, the field key will contain all of the profile information sent to us at the time of the precancel request. 

"data": {
"fields": {
"cancel.app_id": "bAJDE0xo5E",
"cancel.first_name": "Jane",
"cancel.account.created_at": "1622050643",
"cancel.account.plan_term": "monthly",
"cancel.account.value": "1234",
"cancel.save_return_url": "",
"cancel.last_name": "Brighteyes",
"cancel.account.company_name": "Brightback",
"cancel.custom.test": "value",
"cancel.account.plan": "Premium",
"": "",
"cancel.account.billing_id": "",
"cancel.context.url": "about:srcdoc",
"cancel.timestamp": "2021-05-26T17:38:43.361Z",
"cancel.account.internal_id": "b5a01a2",
"cancel.subscription_id": "1234",

Processing cancels via email

Using Retention's email notification system is another option for you if you intend to have agents processing cancels manually in your billing system or if you would like to trigger follow-up workflows in your helpdesk.

Note: All Retention notification emails come from  Ensure that you have whitelisted that email address in your helpdesk. 

You will want to turn on the Cancel event notification and add an email address to which all cancellation emails should go. Head over to Settings > Alerts and edit the Cancel alert.

Activate the alert and edit the content of the email notification.  You can include dynamically mapped expressions, such as name, email, and internal_id, as well as unique Survey responses. 

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.