[UX] Message .com Accounts That Failed to Renew that Their Accounts will Lose Features in 30 days and Provide Renewal Path

UX work based on parent issue: https://gitlab.com/gitlab-org/growth/product/-/issues/1513

Background information

It appears that for .com subscriptions, we never correctly downgraded the subscriptions that failed to renew to free and they are continuing to get the benefits of a paid subscription without having paid.

Proposal

This is work is two-fold:

  • Alert .com customers that failed to renew
  • Providing a simple interaction to renew their account

Todo

  • Simulate an expired GitLab.com license
    (This was accomplished by using the Zuora API Sandbox and manually creating a subscription with a start date of 364 days in the past. I then cancelled the subscription and waited for 24 hours for the license to expire).

Banner Dismissal Logic:

  1. 30-days prior, Initial banner
    1. Dismissible (session-based)
    2. User-level (not group/namespace)
  2. 14-day prior banner
    1. Dismissible (session-based)
    2. User-level (not group/namespace)
  3. Expired but in grace period banner
    1. Dismissible (session-based), but only by button (no "x" in top-right)
    2. User-level
  4. Downgraded banner
    1. Dismissible (permanent)
    2. User level
  5. *Should’ve been downgraded banner (for cases of long expired subscriptions)
    1. Dismissible (session-based), but only by button (no "x" in top-right)
    2. User-level
  6. *Downgraded banner
    1. Dismissible (permanent) but only by button (no "x" in top-right)
    2. User level

Banner behavior for 14 days past expiration:

  • Need to know the deploy date and hard code the actual downgrade date for all cases for 30 days later
  • If we're before that date, the messaging counts down to that date for all expired subs. If after that date, they see the 14 day grace period banner.
  • Should we plan to not display any of the other banners until this population is addressed? Jay - yes, we can make the code work for that.

Renewal Behavior for Expired Subscriptions - Proposal

Background from @awestbrook: Aa long as a subscription is "Active" in Zuora (when a subscription doesn't auto-renew/renew and it's passed its term end date, it's still active unless we go in and "cancel" the subscription, which it doesn't look like we do), you can technically renew that subscription 5 years later if you wanted, but the new subscription dates would start, the day after the end date of the original subscription and go on for however long the term is of that subscription. (edited)

If you wanted the renewal subscription to start on the day that they actually decided to renew/not retroactively to the day after the original subscription's end date, then you would have to create another amendment (type=terms and conditions) to adjust the subscription term dates.

Proposal:
Make the start date of the renewal term match the end date of the old term if they renew during the grace period. After they've been fully downgraded, we'd use the terms and conditions amendment to have the start date match the purchase date.

Full Messaging matrix


**View on Figma**

full-renewal-flow__2_
Edited by Sam Awezec