| Next revision | Previous revision |
| procedures:new_tenant_creation [2026/02/25 14:39] – created gemma.coppeta | procedures:new_tenant_creation [2026/02/26 14:36] (current) – gemma.coppeta |
|---|
| ====== New tenant creation ====== | ====== New tenant creation ====== |
| | To learn more, visit the {{0:bplogo.png?25}}[[https://help.brightpattern.com/5.19:Service-provider-guide/Introduction/Overview | Bright Pattern official documentation]] . |
| |
| === Steps === | ===== Email template ===== |
| |
| * Create a new **tenant**. | {{0:outlooklogo.png?20}} **Subject: New Tenant //CustomerName//** |
| * Add the purchased **numbers** to the shared file [[https://becloudsolutionssrl.sharepoint.com/:x:/r/sites/IT_Billing/_layouts/15/Doc.aspx?sourcedoc=%7B03326DA4-B2C5-4838-9706-0EBAF2190980%7D&file=Costi-fornitori-Tecnici.xlsx&action=default&mobileredirect=true|Costi fornitori tecnici]]. | > Buongiorno, |
| * Add the customer's **name** to the file [[https://becloudsolutionssrl.sharepoint.com/:x:/r/sites/IT_Billing/_layouts/15/Doc.aspx?sourcedoc=%7B313F6BC5-5A4F-4CFC-BA4E-902C23F8D496%7D&file=Traffico-Telefonico_2026.xlsx&action=default&mobileredirect=true | Traffico Telefonico]]. | > Scrivo in quanto avrei necessità della creazione di un nuovo Tenant dedicato a //CustomerName// (new customer) su istanza //AWS Region//. |
| * Add the purchased **numbers** to the file [[https://git.ccaas.becloudsolutions.com/BeCloud/CDRs/src/branch/main/numbers.csv | CDRs numbers]]. | > Di seguito i dettagli del Tenant: |
| * Create the **Customer object** in the customers array in the [[https://git.ccaas.becloudsolutions.com/BeCloud/CDRs/src/branch/main/cdrs.py | cdrs.py]]. | > - __Nome__ (dominio dedicato, da creare)/(senza dominio): “//CustomerName//.beincontact.becloudsolutions.com” |
| * Create the **Result object** in the results array in the [[https://git.ccaas.becloudsolutions.com/BeCloud/CDRs/src/branch/main/Monthly/monthlyResults.py | monthlyResults.py]] file. | > - __Limiti__: |
| * The customer's **name** must be added in the customers array to the [[https://git.ccaas.becloudsolutions.com/BeCloud/Recharges/src/branch/main/recharges.php | Recharges]] file. | > - //N// concurrent users - //N// named users |
| * The customer's **name** must be added to the [[https://grafana.ccaas.becloudsolutions.com/d/cedg4a4h1qxa8f/voice-balance-monitor?orgId=1&from=now-6h&to=now&timezone=browser | Voice balance dashboard]] on Grafana. | > - //N// agents |
| * An [[https://grafana.ccaas.becloudsolutions.com/alerting/list |Alert rule]] on Grafana must be created for the new customer. | > - //N// supervisor (team leader licenses) |
| * The customer's **name** must be added to the Monitor database. | > - //N// administrator |
| | > - __Numeri da associare__: //Numbers// |
| | > |
| | > Puoi copiare (per tutte le configurazioni necessarie, al netto delle utenze), le feature del Tenant //“**CustomerName**”//. |
| | > |
| | > **Schedula, per favore, l’attività per //date//.** |
| | > Resto a disposizione. |
| | > Grazie |
| |
| ===== New tenant creation ===== | |
| To create a new {{0:logobecloud.png?30}}tenant you can follow [this guide] | |
| |
| ===== IT Billing ===== | Once you have created and tested the tenant, the response will be as follows: |
| The purchased **numbers** must be entered in the shared file in {{0:sharepoint.png?20}}[[https://becloudsolutionssrl.sharepoint.com/:x:/r/sites/IT_Billing/_layouts/15/Doc.aspx?sourcedoc=%7B03326DA4-B2C5-4838-9706-0EBAF2190980%7D&file=Costi-fornitori-Tecnici.xlsx&action=default&mobileredirect=true|IT Billing]] for **technical supplier costs**. | |
| \\ Depending on the carrier you are using, you will need to add a row to the table or add a unit in the quantity column.\\ | |
| |
| The customer's **name** must be added to the {{0:sharepoint.png?20}}[[https://becloudsolutionssrl.sharepoint.com/:x:/r/sites/IT_Billing/_layouts/15/Doc.aspx?sourcedoc=%7B313F6BC5-5A4F-4CFC-BA4E-902C23F8D496%7D&file=Traffico-Telefonico_2026.xlsx&action=default&mobileredirect=true | Traffico Telefonico]] file. | {{0:outlooklogo.png?20}} **Subject: R: New Tenant //CustomerName//** |
| \\ Add a new sheet, copy an existing one and delete the data inside of it. \\ | > Buongiorno, |
| | > Di seguito le specifiche del tenant: |
| | > |
| | > **Tenant Name** : //CustomerName// |
| | > **Access domain** : //CustomerName//.beincontact.becloudsolutions.com |
| | > **SIP domain** : //CustomerName//.beincontact.becloudsolutions.com |
| | > **Tenant limits** : //N// named, //N// concurrent |
| | > **Nostro accesso** : "admin" con solita password |
| | > **Numeri assegnati** : |
| | > - //Number// - //Result// |
| | > - //Number// - //Result// |
| | > **Provato inbound/outbound con utente admin** : //Status// |
| | > **Regola dial-out** : //Status// |
| | > **Regola Access Number** : Unassigned |
| | > **Collegamento a DB** : //Status// |
| | > **Puntamento Report** : //Status// |
| | > **Statistiche presenti nell' Interaction Records** : //Status// |
| | > |
| | > |
| | > Rimango a disposizione |
| |
| ===== BeCloud's Git ===== | |
| Once you open {{0:logobecloud.png?30}}[[https://git.ccaas.becloudsolutions.com/BeCloud/CDRs | this link]], you will find yourself in the CDRs repository. \\ | |
| * Click on [[https://git.ccaas.becloudsolutions.com/BeCloud/CDRs/src/branch/main/numbers.csv | numbers.csv]], then click on the {{0:editgitea.png?25}} //edit// button and add one or more lines with the **number**, customer's **name** and the **rate** applied to the number. | ===== Sysmgmt ===== |
| * Click on [[https://git.ccaas.becloudsolutions.com/BeCloud/CDRs/src/branch/main/cdrs.py | cdrs.py]], then click the {{0:editgitea.png?25}} //edit// button and create the **Customer object** with the customer's **name** and all **zeros** in the customers array. The zeros will be filled in during the course of the code and represent the inbound/outbound cost for each carrier. \\ Follow this example: <code python>customers = [ | {{0:configuration.png?22}}To create a new tenant, go to [[https://beincontact.becloudsolutions.com/sysmgmt/ | sysmgmt]] > Tenants and click on {{0:createtenantbp.png?30}} button, a window like this will appear: \\ |
| Customer("Name",0,0,0,0,0,0,0,0,0,0,0,0), | {{0:newtenantbp.png?270}} \\ |
| ... | |
| ] </code> | |
| * Click on the [[https://git.ccaas.becloudsolutions.com/BeCloud/CDRs/src/branch/main/Monthly/ | Monthly folder]] and on [[https://git.ccaas.becloudsolutions.com/BeCloud/CDRs/src/branch/main/Monthly/monthlyResults.py | monthlyResults.py]], then click the {{0:editgitea.png?25}} //edit// button and create the **Result object** with the customer's **name**, the name of the **carrier** in **__all caps__** and all **zeros** in the results array. The zeros will be filled in during the code and represent the inbound/outbound cost of BeCloud and the customer. \\ Follow this example: <code python>results = [ | |
| Result("Name","CARRIER",0,0,0,0), | |
| ... | |
| ] </code> | |
| |
| \\ | \\ |
| Once you open {{0:logobecloud.png?30}}[[https://git.ccaas.becloudsolutions.com/BeCloud/Recharges | this link]], you will find yourself in the Recharges repository. \\ Click on [[https://git.ccaas.becloudsolutions.com/BeCloud/Recharges/src/branch/main/recharges.php | recharges.php]], then click the {{0:editgitea.png?25}} //edit// button and add the customer's **name** in the customers array. | **Tenant** |
| | * **Name**: the name must be formatted in the same way as the others |
| | * **Access domain**: if they have the **domain** then //CustomerName.becloudsolutions.com//, if they don't, then //CustomerName.it// |
| | * **SIP domain**: it must be the same as the **Access domain** |
| | * **Default language**: it depends on the customer |
| | * **Default time zone**: it depends on the customer |
| | * **Default country**: it depends on the customer |
| | * **Region**: click the //Default// option |
| |
| ===== Grafana ===== | **Administrator** |
| * Once you open {{0:grafana.png?50}}[[https://grafana.ccaas.becloudsolutions.com/d/cedg4a4h1qxa8f/voice-balance-monitor?orgId=1&from=now-6h&to=now&timezone=browser | this link]], you will find yourself in the Voice balance monitor. \\ To add a new customer, you have to click the {{0:editgrafana.png?36}} //edit// button, then go to an existing panel, click on the //three dots//, hover your mouse over the “more” option and then click on //duplicate//.{{0:duplicategrafana.png?250}}\\ Once you have created the copy, you will need to edit it by **replacing** the field //title// and the value of the column //customer// with the name of the new customer. \\ Here's an example with the customer //"Alidays"//: \\ {{0:titlegrafana.png?250}} \\ {{0:customergrafana.png}} \\ Now you can **save** and exit the edit mode. | * **Username**: admin |
| | * **Password**: is the same for all tenants |
| | * **First name**: User |
| | * **Last name**: Super |
| | * **Email address**: support@becloudsolutions.com |
| |
| * Once you open {{0:grafana.png?50}}[[https://grafana.ccaas.becloudsolutions.com/alerting/list| this link]], you will find yourself in the Alert rules list and you have to look to the Balances_monitor. \\ To add a new customer, you have to click the //more// button of an existing alert rule and click on //duplicate// \\ {{0:duplicatealertrulesgrafana.png}} \\ Once you have created the copy, you will need to edit it by **replacing** the field //title// and the value of the column //customer// with the name of the new customer. \\ Here's an example with the customer //"Alidays"//: \\ {{0:titlealertrulesgrafana.png?320}} \\ {{0:customergrafana.png}} \\ Now you can **save** and exit the edit mode. | **Licensable limits** |
| | * **Concurrent users** |
| | * **Maximum users**: enter the ones indicated in the email |
| | * **Named (configured) users** |
| | * **Maximum users**: enter the ones indicated in the email |
| |
| | **Reporting DB** |
| | * **Database server**: click on the **DB1 - DB2** option |
| | * **Database name**: it must be the same as the others, it is automatically created, but double check if it's correct |
| | * **Username**: it is automatically created |
| | * **Password**: it is automatically created |
| |
| ===== Database ===== | |
| You must add the customer's name to the **“recharges”** and **“customers”** tables in the **Monitor** database of the **Monitoring** machine. | |
| | Once you have created the tenant, you will see it with the following sections: |
| | * Properties: this contains the information you entered previously (make sure the status is active) |
| | * Features: you need to copy the tenant features indicated in the email |
| | * Limits: these depends on the project |
| | * Contacts: leave blank |
| | * Resources: this will be populated when access numbers associated with this tenant are added |
| | * Reporting DB: make sure the Test connection is successful and then click Apply to database |
| | * Usage: no changes are needed |
| | * Advanced: make sure you copy the same options that are listed in the tenant you are copying |
| | |
| | ===== Admin ===== |
| | {{0:configuration.png?22}}In the admin page, the configurations you will need to modify are in the **//Configuration//** section. |
| | You will need to make sure you copy all the relevant fields from the sample tenant **specified in the email**. |
| | Obviously, in the sections you will find custom elements that have been created for that specific tenant, you don't have to copy these ones. |
| | |
| | Here are some things to pay particular attention to: |
| | - You will see all the //Skill Levels// by selecting all users in the drop-down menu. |
| | - For the guides in the //Help Screens// section: the default guides are from Bright Pattern, and you will need to **replace them with the official BeCloud guides**, which you can find on AWS S3. \\ __Please note that there is a drop-down menu with “Agent Desktop” and “Contact Center Administrator,” and you will need to change the guides for both options__. |
| | |
| | ===== Testing ===== |
| | {{0:test.png?22}}To perform the tests, follow these steps: |
| | |
| | === Sysmgmt === |
| | On the [[https://beincontact.becloudsolutions.com/sysmgmt/ | sysmgmt]], enter a test number: |
| | Sysmgmt > Phone System > Access Numbers, click on {{0:addtenantbp.png?30}} button and fill in only the following fields: |
| | * **Number**: with the number you want to test |
| | * **Carrier**: with the carrier that provided us with the number |
| | * **Tenant**: the new tenant we created |
| | * **Media type**: voice-only |
| | * **Trunks**: based on where the numbering is located |
| | |
| | === Admin === |
| | On the admin page: |
| | in Admin > Directory > Access Numbers you will find the number you just added in the sysmgmt. \\ |
| | You will make some call to try Inbound and Outbound. |
| | |
| | == Inbound == |
| | Select the number you added in //Access Numbers// and in //Destination// you have to select the **//user//** option. A //User// field will appear, select "User Super" and then //Apply//. \\ |
| | |
| | == Outbound == |
| | In Directory > Dial-out Entries create a dial-out rule. |
| | Example: |
| | Press the {{0:addtenantbp.png?30}} button: |
| | * **Digits**: 0039 |
| | * **Is a prefix (not a complete number)**: {{0:check.png?15}} |
| | * **Remove prefix**: {{0:check.png?15}} |
| | * **Insert prefix**: leave empty |
| | * **Set service (if not set by agent)**: << None >> |
| | * **Direct mapping of internal phones**: leave empty |
| | * **Use Caller ID from service configuration if service information is available, otherwise use this number**: the number you want to test |
| | |
| | === Agent Desktop === |
| | |
| | Now login on the [[https://beincontact.becloudsolutions.com/| Agent Desktop]], ensure you have granted the required permissions and authorized the domain. \\ |
| | Under Settings > Phone Device, also ensure you have checked the WebRTC option. \\ |
| | {{0:phonedevicebp.png?150}} {{0:webrtcbp.png?310}} |
| | \\ |
| | \\ |
| | Get ready: \\ {{0:readybp.png?160}} \\ and try to make an inbound call (from your **phone** to the **number** entered in the tenant) and an outbound call (from the **agent desktop** phone bar to your **phone number**). \\ |
| | Lastly remove the test number from the tenant and send the reply email with the results. |
| |