Automating workflows with the SaaS Accelerator
Published Dec 08 2023 09:24 AM 2,085 Views
Microsoft

Introduction

 

The SaaS Accelerator is an opensource, community-supported, turnkey solution that meets all technical requirements to publish a SaaS offer on the Azure Marketplace. Typical development cycles for meeting SaaS offer technical requirements can last several weeks, even months. By comparison, SaaS Accelerator can be installed to Azure in 15 minutes. The solution not only meets the technical requirements for SaaS offers by providing a landing page and webhook, but it also offers a host of other features via the administration portal that is installed as part of the accelerator.

 

If you aren’t familiar with the SaaS Accelerator, please see my previous article that introduces it in detail. If you need more background on SaaS offers in general, see my article on the topic.

 

A feature recently added in the SaaS Accelerator enables partner to kick off workflows via a publisher-provided webhook. This article walks through that feature and proposes some ideas on how to use it to streamline your SaaS offer subscription processes. For example, you may want to automatically create new customer accounts in your SaaS solution when someone purchases a new subscription.

 

Automation for SaaS offers

 

SaaS offers in the Azure Marketplace enable partners to sell subscriptions to their SaaS solution. But that doesn’t mean you need to change your actual SaaS solution code. The technical requirements of SaaS offers can be met without direct integration to the SaaS product.

 

While this makes creating SaaS offers in the marketplace simple, it doesn’t help partners who want to automate backend processes such as creating accounts for new customers or removing old accounts for subscriptions that are cancelled by the customer. Automation like this reduces the time to onboard new customers and increases the quality of new customer onboarding. Additionally, automation reduces the time spent administering subscriptions, freeing staff from tedious subscription management activities.

 

The SaaS Accelerator has traditionally provided a turnkey solution for meeting SaaS offer requirements, but has not integrated into the publisher’s backend systems. A new feature in the accelerator enables integration with other systems that may automate further steps in subscription management.

 

External web notification overview

 

The SaaS Accelerator team recently released a new feature designed to enable automation scenarios for partners who want to use the SaaS Accelerator and automate subscription management processes.

 

This “external web notification” feature is a simple webhook notification that is called when subscription change events occur. This model allows partners using the SaaS Accelerator to automate tasks that occur when events like the following are forwarded to the webhook.

 

  • A new customer purchases a subscription
  • An existing customer cancels a subscription
  • A customer changes the plan they are subscribing to
  • The customer’s payment instrument is no longer valid, so they won’t be paying you until this is corrected
  • More …

 

As you may imagine, responding to all of these events without automation can be a costly manual process fraught with defects and missed steps. Because of this, automating the processes for dealing with subscription change events should be very attractive. The “external web notification” feature of the SaaS Accelerator is specifically designed to enable automation for these scenarios.

 

Using external web notification

 

Using the feature is simple and straightforward. Simply expose a webhook on the internet and update a value in the SaaS Accelerator administration portal settings to point at the webhook. Simply go to the settings and set the value of the WebNotificationUrl setting to the URL of the webhook. Saving this URL activates pushing all landing page and subscription change events to the partner’s webhook.

 

The webhook will be called for every subscription notification received by the SaaS Accelerator. When the call comes to your webhook, it will post a JSON payload containing the relevant subscription information.

 

Additionally, the webhook will be called every time a customer submits the SaaS Accelerator landing page. The payload posted for this event is different than that received for subscription change events. The JSON received on the webhook for landing page events includes any custom fields filled out on the landing page and more information about the subscription.

 

What to do with this capability

 

So, your webhook is created and is being called by the SaaS Accelerator. What next? I can provide a couple of ideas but what action you take is ultimately up to you.

 

A common process flow follows, but this is just one possible implementation.

 

  1. Receive events on the webhook
  2. The webhook stores the incoming JSON to a queue or other data store
  3. Return HTTP 200
  4. A process, like an Azure function, picks up the message from the queue and acts on it
  5. If the landing page was submitted, the process will likely be creating a new customer account in the SaaS solution
  6. If a subscription change event was submitted, the process picks up the message from the queue and makes appropriate changes to an existing subscription in the SaaS solution

 

An architectural overview of this solution is represented in the following illustration.

 

DavidStarr_0-1702056143833.png

 

 

The above model is just an example architecture, not a recommendation or guidance. Your processes should take whatever actions are appropriate for your environment.

 

Conclusion

 

External web notification is a powerful new feature of the SaaS Accelerator that enables partners to create backend processes that manage product subscriptions.

 

Information about subscription change events is sent to an external webhook provided by the publisher. The next steps are proprietary and up to the publisher.

3 Comments
Co-Authors
Version history
Last update:
‎Dec 08 2023 09:24 AM
Updated by: