Activation flows
Different applications have different use cases, and so supporting multiple flows to enable the most appropriate customer journey is essential to a good experience. The flows described here are battle tested, and opinionated, the way we think software should be handled. If you have different needs or requirements, feel free to reach out to us through the support channel, or at developers@moonbase.sh.
When talking about activation flows, there is one of two goals for the flows;
- Activate a license when you own the product
- Start a trial license of the product if you don't own it
The first goal requires you to know which customer is trying to activate your software, you need to authenticate them. The flows below do this in different ways, which will have an impact of how much development you need to invest to integrate with Moonbase.
Browser activation
This is some times referred to as "auto activation", becuase everything feels very automatic. The way this flow works is that when a customer opens the software, they can activate it by having the software open a website where they can choose between using a license they own or starting a new trial.
The Moonbase customer portal that comes with your account has UI already in place to support this flow, so this flow requires minimal integration efforts from your developers.
What we have found is that in most cases, customers are already logged in to the customer portal, which means that for the customer, this is usually a one click activation process.
That's why this is the recommended activation flow to implement unless you have very specific requirements.
In-app activation
If you instead want to not divert customers to a browser from your app, but rather build the necessary UI yourself, that's totally possible. Our API supports customer authentication by using cookies or JWT tokens, which means that you simply need to build a basic login form to enable customers to log in with their chosen credentials and fetch a license for the product.
For starting trials, no authentication is necessary unless specified by the product configuration, so that can be a very easy process for the customer, effectively making it a one click activation process for trials.
Compared to the browser activation flow, this flow requires more work and maintenance in your software, as well as a more intricate experience for the customer.
Offline activation
In the case that you need to be able to activate your software offline, then that's also supported. The obvious challenge behind offline activations is that you can never reach a server to check the validity of a license.
Moonbase licensing solves this by using cryptography to sign licenses, proving that the metadata for a license has been issued by Moonbase. This metadata contains enough information to verify that the license is issued for the device in question, and that it is indeed an offline activated license.
To be able to create this offline activation file, your software needs to be able to generate a device token, a file that can describe what product and device are being activated. This device token can be uploaded to the Moonbase API, either through your own storefront UI, or by using the customer portal that comes with your Moonbase account. By uploading the device token, the customer will get a license file back, that they can load into your software, to activate the software.