Reset expired trials for new major release

Our app is nearing a new major release, and we’d like to give everyone who once trialed our app but didn’t buy the opportunity to test it out again.

We can delete all sufficiently old expired trial records on the Cryptlex side to allow these users to start a new trial. However, how can we test in our app if an expired trial has no counterpart record on the Cryptlex servers anymore? We don’t want to show a “Start a new trial for this major version” button in our app when that user has no rights to a new trial.

I tried deleting my own trial record, and IsTrialGenuine afterwards (understandably) returned the cached status (‘you have a trial’). But it also does so after two restarts and thus after a LexActivator background thread server sync.

I also can’t call ActivateTrial for testing purposes, since that will auto-start a new trial on the spot if the record is indeed gone.

One (untested) way I can think of is to call GetTrialId, pass the ID along to a script on our own servers, and let that script use the Cryptlex API to see if a record with that ID is still present. But I hope there is a less convoluted way of doing this?

Hi Carl,

The way to go will be delete all existing trial activations which have expired, and in your app check if the trial has already expired and if yes then get the trial expiration date and if it is older than the date of release then call ActivateTrial() function.

Thanks Adnan! I already suspected so much :slight_smile:

As a (non-urgent) feature request: maybe “SyncTrialState()” and “SyncLicenseState()” could be nice additions to LexActivator? The latter is already implicitly implemented via LexActivator’s server sync thread, though there it could also be a nice way to force a resync at other times than the once-per-hour server sync period (e.g. after a button press).

1 Like

Oh, and another feature request: in the new Cryptlex interface you can filter trials by e.g. “creation date” and “expired” (y/n), but in this case an “expiration date” filter would have been very useful. I could then filter out all trial licenses expired more than a month ago, and bulk-delete them in one go. Creation date doesn’t cut it here due to extended trials.

For now though there’s already a script running here that deletes all sufficiently expired trial records one by one, but that one will take some hours to finish since it needs to throttle itself not to spam the API calls.

Hi Carl,

We will add the expiration date filter on the trial activations page.

I am not sure if sync methods will be added, but we will see.

Yes, please add a trial expiration date filter to the trials view in the Admin Dashboard. This would be excellent.

In our scenario, we wish to, for a specific software, edit all trials that are expiring within say 10 days.

It will be available early next week.

1 Like

Excellent news, thank you very much!