How do I automate the provisioning and management of a service in Cloudmore?

This document provides an overview of how you can automate the provisioning and management of a service that you have added to Cloudmore.

In Cloudmore, there are three ways of adding services into the platform:

Connected service Graphics 3

Your Service Automation Options

The first step to add a service is to create a custom service, you can view our guide on how to do this in this guide.

When you have added a service, you have two options in terms of the required provisioning action. The provisioning action defines what action should be triggered when a service or subscription is created, updated, or deleted. Cloudmore supports two provisioning actions: Email and Service Connector.

Email provisioning

Email provisioning allows you to add a service to Cloudmore without any development effort and can be used if volumes are likely to be low, the service does not have mature APIs or to test a service before a Service Connector integration is developed. Using this method requires manual intervention to provision the service.

Service Connector

The Service Connector is a combination of tools and processes to build end-to-end automation between Cloudmore and the service.

Service Connector Overview

The Cloudmore Service Connector is built on web standards and will use webhooks to notify your middleware solution about changes in Cloudmore. Webhooks are HTTP callbacks that are widely adopted in modern web applications and will send out an HTTP call to trigger the external system.

Your middleware will receive the webhook, and depending on the data in the webhook, process actions required for the provisioning action of the service. Your middleware may also use the Cloudmore API to collect additional information if needed.

Screenshot 2020-04-28 at 17.16.05

Cloudmore Structure

To be able to integrate a service with Cloudmore Service Connector, it is important to understand the Cloudmore structure and naming conventions. Here is an overview of the Cloudmore structure, tenants, and relationships.

Connected service Graphics 2-1Service Structure

Connected service Graphics

Service

A service is a wrapper that contains the general service marketing information and provisioning type.

Product / Service Plan

A Product is SKU that is purchased. A product has a name, item code, price, and subscription and cancellation rules. A service may have one or several products.

Add-ons

One or more paid-for Add-ons can be added to a product.  An add-on will have a name, item code, and price details.

Custom Properties

One or more custom properties may be added to a product to add additional structured data to be stored together with the product. Custom properties can be hidden data used to provide extra information to an external API, or they can used to collect data at the point of purchase to be stored with the subscription.

Subscription

A subscription is created when a service is purchased. The subscription will contain one (1) product and optionally add-ons and has two important commercial components:

  1. Subscription Term – The duration of the subscription. i.e. Monthly, Annual, multi-year.
  2. Payment Frequency – The frequency of payment i.e. Monthly, Annual

Service Configuration

Custom services can be set up either at Seller or Broker level.

Please follow this guide to learn how to set up a Service.

When setting the service, the relevant options for the Service Connector are:

Option

Description

User assigned service

Services are created as either organization or user assigned services. Unless a service will be allocated to a specific user account, the service this option should be left unchecked.

Only allow one subscription per organization.

If an organization is only allowed one subscription for the service, then this option should be checked.

Provisioning type

By selecting the Cloudmore Service Connector option, the service will use the service connector with webhooks to provision the service.

License Keys

Select to option so that a license key is stored with each service subscription.

External administration portal

Enter a Name, URL, and service users will be presented with a link that will open in a new tab to your administration portal.

External Administrators

 

This is a useful option to be able to create user accounts for the external administration portal. Cloudmore doesn't manage or keep passwords for the admin accounts, and the service or middleware solution needs to handle password creation or management.

 

Products and Service Plan Setup

After the service is created, create one or several products (service plans) that you will offer.

The product defines what the end-user buys and has an item code, price, and subscription and cancellation settings. Use this guide to learn about setting up products and add-ons.

Webhooks Setup

Cloudmore uses webhooks to notify the middleware solution about provisioning actions and changes to the service and subscriptions. These webhooks needs to be defined for each service to inform Cloudmore where different events should be sent.

User Interface

The GUI is still to be developed for the webhooks. Instead, the Cloudmore API needs to be used. Use this guide to learn more about the Cloudmore API

The following API calls exist for Webhooks:

Resource

/api/sellers/{sellerId}

GET

read

POST

create

PUT

update

Delete

/webhooks

Returns all webhooks under the Seller

Creates a new webhook

Method not allowed (405) 

 

Method not allowed (405) 

 

/webhooks/{id}

Returns details about a specific webhook

Method not allowed (405) 

 

Update an existing webhook

Deletes an existing webhook

To create a new Webhook through the API, you should use the POST /webhooks command with the following parameters:

Name

Description

messageToSendType

Type of message to send. Possible values: OnlyTriggerAction

basicAuthPassword

Optional – Basic Authentication Password

basicAuthUserName

Optional – Basic Authentication User Name

httpHeader

Optional - specify http header parameters

url

The URL to send the webhook too. This should be a complete URL with http:// or https://

serviceId

The Cloudmore uuid of the service

triggerEventType

What event to trigger the webhook on. Possible values: BrokerAddService, BrokerDeleteService, OrganizationAddService, OrganizationDeleteService, SubscriptionCreated, SubscriptionUpdated, SubscriptionDeleted, ExternalAdminCreated, ExternalAdminDeleted, UserAttachedToSubscription, UserDetachedFromSubscription

name

Friendly name of the webhook

Webhook events

Name

Description

BrokerAddService

A Cloud Service Broker in Cloudmore adds the service from the Marketplace.

BrokerDeleteService

A Cloud Service Broker removes the service in Cloudmore. Services cannot be removed unless all organizations and subscriptions under the services are removed first.

OrganizationAddService

An organization under a Cloud Service Broker adds the services from the E-store in Cloudmore.

OrganizationDeleteService

An organization removes the services in Cloudmore. The service cannot be removed if there are active subscriptions.

SubscriptionCreated

A subscription is created for an organization in Cloudmore.

SubscriptionUpdated

A subscription has been updated in Cloudmore. Update means that either product, add-ons, quantity, or custom properties have changed. Keep in mind that you can define what changes are allowed when you create the product under the service.

SubscriptionDeleted

A subscription under an organization has been deleted.

ExternalAdminCreated

A new External Admin Account has been created in Cloudmore.

ExternalAdminDeleted

An External Admin Account has been deleted in Cloudmore.

UserAttachedToSubscription

A user has been assigned to a subscription. This option is only available if the service has been setup as a User Assigned Service. User objects are set up in Cloudmore under an organization.

UserDetachedFromSubscription

A user in Cloudmore has been unassigned from a subscription.

Middleware Development

The required middleware will be proprietary to the service being connected to Cloudmore, and it is up to you if you chose to use a middleware solution (like BizTalk or Mulesoft) or by building a custom application. The middleware will receive webhook events, use the Cloudmore API to collect additional information as needed, and then provision the service towards the service through API or other methods supported by the service.

You will need to decide and define what webhooks action is needed and are appropriate for the service and develop and test the required code to provision and manage the service.

Error Handling

Cloudmore will carry out the action and send the webhook to the middleware but does not check that the action was carried out successfully; this is the responsibility of your middleware. If the provisioning action towards the service fails, the middleware is also responsible to roll-back the action in Cloudmore and notify the user.

Synchronizations

If users make changes to the service in the service’s external administration interface, Cloudmore will not be aware of these changes. We recommend you ensure that all changes related to the commercial components of the services are processed in Cloudmore either by disabling user access or functionality or by building a synchronization feature in your middleware to detect commercially important changes in the service and update Cloudmore accordingly.

END