Before discussing some technical details about PortaBilling and templates, let’s take a look at a "real life" example which will help us learn more.
Situation
You are the owner of a VoIP billing system. You receive list of rates from your vendors, which you need to import into the system.
Solution 1: Manual entry
In order to do this, you decide to hire a temporary worker to type in all the data. This person does not know much about your business, so you will have to give him or her detailed instructions on how to proceed. These might be similar to the following:
- This is an Excel file from our vendor.
- After you open it, in the first row of the second worksheet, entitled "Rates", you will see a title and a list of rates underneath it.
- The value in column C (entitled "Prefix") goes in the "Destination" field on the web interface, but do not enter 011 at the beginning of the number, if for example, your vendor provides the phone prefix for the Czech Republic as 011420. The value in column F (entitled "Price per minute") goes in the "Price 1" and "Price N" fields on the web. There is no "Effective From" data in the file, so just enter the current date in that field on the web.
Does this sound complicated? Let’s now take a look at what you have just done:
- You have specified the file format which the data is in ("an Excel file").
- You have specified where the required data is to be found within that file ("in the first row of the second worksheet, entitled ‘Rates’").
- And, finally, for each data element which needs to be imported into the system (Destination, Price) you have specified:
- Which column the data is in ("column C (entitled ‘Prefix’)").
- The format of the data (whether it needs to be changed somehow prior to being entered into the system) ("do not enter 011 at the beginning").
Now, let’s take a look at an alternative way of handling the same process more easily, faster, and with fewer errors.
Solution 2: Template engine
Instead of having your employees type in all the data, you can entrust this job to PortaBilling! The PortaBilling rate upload wizard and templates allow you to do the following:
- Upload your XLS or CSV rate file to the server and immediately see the result of file processing (in order to verify that the file was recognized correctly, and to adjust parameters such as the field delimiter).
- Using a drag-and-drop interface, you can place markers on columns in the file to identify where particular groups of data are located in it (e.g., the destination prefix in the third column, and the price in the fifth column). In fact, the rate upload wizard will try to automatically recognize data elements, so most of the time you will only need to confirm the proposed column assignment.
- You can adjust the format which each data element is in (for example, whether the phone prefix is given as 011420 or as 420). You can also apply post-processing rules (analogous to formulas in spreadsheet editors).
- The upload wizard will process all the rate information and allow you to compare new rates with the existing rates and make adjustments if necessary.
- If there are new destination prefixes in the file (not in the database yet), they can be created automatically during rate upload. Also, you can assign new prefixes into specific destination groups during the upload process.
- Once the new rates are uploaded into the system, PortaBilling saves all of your changes as a template associated with this tariff. Thus, the next time you receive a new file from the vendor and need to upload it, everything is ready and no special actions are required.