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:
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.
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.
Service Structure
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 be 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:
- Subscription Term – The duration of the subscription. i.e. Monthly, Annual, multi-year.
- Payment Frequency – The frequency of payment i.e. Monthly, Annual
Service Configuration
Custom services can be set up either at the 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