BE: Allow customers to extend or reactivate their trial on gitlab.com
Problem to solve
As a customer, when I am wrapping up my new order with sales, I want to extend my current trial on my namespace so that I don't lose service before the order is complete.
When a new business sales order is being processed, the customer may have an existing trial to onboard to the platform before the sale is complete. Sometimes, the order takes longer than 30 days and the customer will not be able to switch to an active subscription before their trial period ends.
Sales reaches out to support to assist with extending their active trial to give more time for the order to complete and to avoid the customer having any downtime.
As a customer, when I am wrapping up my renewal order with sales, I want to reactivate my previous trial on my namespace so that I don't lose service before the order is complete and my subscription ends.
When a renewal sales order is being processed, the customer may have an existing subscription that is set to end before the renewal is complete. Sometimes, the order will only complete after the existing subscription start end date, which means that the customer will experience downtime, unless they can be placed on a trial again.
Sales reaches out to support to assist with reactivating their trial and extend it to give more time for the order to complete and to avoid the customer having any downtime.
User experience goal
The owner of a group namespace is able to easily extend or reactivate their trial on gitlab.com.
Proposal
A mechanism on gitlab.com that grants a one-time extension of 30 days.
Success criteria & data requirements
Success criteria
- where there is an active trial* on a namespace, allow an extension by 30 days
- where there is an expired trial** on a namespace, with no associated subscription, allow the trial to be reactivated for 30 days
- any owner of the namespace should be able to extend the trial
- gitlab.com and customers.gitlab.com data should remain in sync
- one extension should be allowed per namespace
- this extension is at the parent namespace level and cannot be available at the sub-group level
- this should not be allowed for namespaces under an active paid subscription
Data Requirements
- When an active trial is extended we update
TRIAL_END_DATE
in theCustomers_DB_Trials
table AND we add a new field of trial_extended with a value of eithertrue
or1
. - When an expired trial is reactivated we create a new row in the
Customers_DB_Trials
table with newtrial_start_date
and 'trial_end_date' AND we add a new field of trial_reactivated with a value of eithertrue
or1
.
Considerations:
- Active trial is defined as a trial that has not reached the end date
- Expired trial is defined as a trial that is beyond its end date