This page describes how set up a simple multi-tenant environment.
The basic unit which each "tenant" exists in is the "customer". For the most part everything created within one customer is not visible by other customers, and the names and numbers of features used by one customer can be re-used by another customer as they'll be blissfully unaware of their existence anywhere else. There are a few exceptions to this, such as telephone line numbers, and these are mentioned where appropriate throughout the documentation.
The system level customer can have zero or more sub-customers, each of which can have their own sub-customers, and so on. This results in a tree-like structure of parent and child customers, and there are no limits on the number of levels of customers. Don't have more levels of customer than necessary though, as calls need to be billed for the customer which makes the call and all their parent customers.
Customers are also the basic unit of billing and we recommend you read how billing works. If customers are the units which are billed, and within which features such as telephones or mailboxes exist, then rate plans are the place where a customer's parent defines which features are available to that customer and how much they cost.
Configuring a reseller rate plan
- Log into the web interface and click on Commerce » Rate plans.
- Click on "New" in the bottom-right corner and you'll get a form for this rate plan's details to be entered. Most settings do not need changed.
- In the "Name" field enter "Reseller pricing".
- Set "Allow resellers to inherit from this plan" to Yes.
- Scroll to the Default markups section and set all the markups to 100%. Having a markup will help you understand pricing once you start making billable calls.
- Have a look at the other settings, but you don't need to change any for now. Many settings can be overridden at the customer level.
- Save the rate plan.
Configuring a reseller customer
- Click on Commerce » Customers.
- Click on "New" and choose "Normal customer". Residential customers are a special type that only have a telephone per customer and no other features.
- In the customer name field enter "Our Hosted PBX Service".
- Scroll to the Billing section and set the rate plan to "Reseller pricing".
- Set the "Billing type" to be None.
- Scroll to the Address section and for "Billing email address" enter your email address.
- Have a look at the other settings, but you don't need to change any for now. Note some settings say "Use rate plan setting" but you can change this to another value if you wish.
- Save the customer.
- Return to the list of customers and then click on the "Switch" link for your new customer.
- You are no longer working at the system level, but are inside your new customer. If you had created any features (e.g. in Features » Telephone lines) at the system level then they would no longer appear because you're now in a different customer. Notice that the System menu has also disappeared. Your currently selected customer is shown in the top-right corner, and using the drop-down list you can switch to your user at the system level and back again.
Configuring an end-user rate plan
- Still working as your reseller customer, click on Commerce » Rate plans.
- Click on "New" in the bottom-right corner.
- In the "Name" field enter "Normal end users".
- Set "Inherit settings from" to "Reseller pricing".
- Scroll to the Limits section and set the "Maximum call spending per day". It should be a value high enough that any customer on this rate plan won't reach the maximum accidentally, but low enough to protect you if a telephone line is hacked. Setting limits is an important part of security planning.
- Scroll to the Default markups section and set all the markups to 50%. This rate plan now adds 50% to call prices after the 100% markup from the "Reseller pricing" rate plan has been applied, resulting in a price to the customer of three times the system level price. For example, 0.60 x 100% = 1.20 x 50% = 1.80.
- Save the rate plan.
Configuring an end-user customer
In order to demonstrate multiple levels of customers, let's create another customer as a child of the "Our Hosted PBX Service" customer.
- Click on Commerce » Customers.
- Click on "New" and choose "Normal customer".
- In the customer name field enter "Our office".
- Scroll to the Billing section and set the rate plan to "Normal end users".
- Set the "Billing type" to be Post-paid.
- Set the "Credit limit" to be something useful like 100.00 that will allow you to make test calls once you set up call pricing.
- Scroll to the Address section and for "Billing email address" enter your email address.
- Save the customer.
- Click on the "Switch to this customer" link.
- You are now working as the "Our office" customer and have the beginnings of a multi-layered customer configuration. Go back and look at the "Reseller pricing" rate plan and click on the "Features" and "Fees for features" links at the bottom of it. Click on the "Custom settings" link, add a custom setting for "Footer text", and see how the setting applies to the web page footer for all customers on that rate plan.