Call supervision from external apps
Now, service providers can enable their PBX customers to supervise calls using third-party or in-house developed applications such as CRM. The manager can see the list of calls in progress when they open their CRM page and can join an ongoing call by pressing a single button. In the background, the CRM widget sends a call control API request to PortaSwitch which initiates a call to the manager’s phone. As soon as they pick it up, they automatically join the active call. Once the manager is on the call, they can switch between the Spy, Whisper, or Barge-in modes in one click and monitor or assist their employees.
The application uses the new CallControl/join_to_active_call and extended CallControl/update_on_spot_conference_participant methods to enable call supervision.
The ABC company has a call center with customer support and sales teams. The company’s managers use the CRM system to train new agents and monitor their performance. They hire a new agent John to the customer support team. Adam is his manager who is authorized to join agents’ calls to assist or provide feedback.
John is busy talking with a client. Adam decides to check how John is handling the call. Adam selects the spy mode in the CRM widget to join the call. Adam’s phone starts ringing, he answers the call and is connected to an ongoing call between the client and John. Adam can hear the conversation. John answers a few of the client’s questions. When the client asks another question, John can’t find the required information. So, Adam who has been listening in on this call switches to the Whisper mode in the CRM widget with one click. Adam tells John how to find the information.
Service providers can offer call center managers, applications that allow supervising calls in an application, with no need to remember and dial service codes from a phone.
- To enable using the call supervision feature, make sure that the role of the customer/account allows call control (check Role > Permissions > Other features > Call control – Modify).
- A manager under the customer realm can add any account as a supervisor to the call initiated via their application with no need to additionally enable the call supervision feature for this account. However, if the account (under the account realm) initiates the call supervision, the Supervision allowed option should be enabled.
- Switching the modes using service (DTMF) codes is unavailable in the calls initiated via the application for now.
New distributor web interface
Starting with MR107, distributors will see the new web interface when they log in. The updated version covers the same functionality as the old distributor interface, but is quicker and more user-friendly. It looks similar to the administrator’s web interface, so the admin can better assist distributors if they need some help.
To show distributors the old web interface by default, set the Cluster Suite > Web Cluster > Global > Web > UseNewInterfaceForDistributor option to “No” on the Configuration server web interface. Note that the old version will be completely removed in 2024.
Ability to trace admin actions on self-care portals
With this release, you can trace when admins read or modify information on self-care portals like the customer self-care portal. When an admin needs to assist a customer by guiding them through a step-by-step process, they will access the customer self-care portal page on behalf of the customer using the built-in link. The PortaBilling audit log shows the admin as a user who read/modified information on the customer self-care portal. Now it’s also possible to trace your resellers’ actions on the self-care portals in the audit log on behalf of the corresponding entity, e.g., their customers.
Note that the audit log information is available for administrators only from the admin web interface.
Let’s say Adam is a support engineer at ABC company. He has full access to the customers’ personal data (admin in PortaBilling) and is responsible for assisting John Doe, ABC’s customer. So each time Adam logs in to the customer self-care portal from his admin interface, the Audit log on the customer page in PortaBilling shows that the actions have been performed by the admin, Adam.
Service providers have tighter control over users’ access to customer data and fully comply with GDPR.
Customizable “From” and “Reply-to” email addresses for customer notifications
By default, customer class notifications like “Invoice is overdue” or “Credit card expired” are sent to customers from the company email address specified on the company info page, e.g., no-reply@companydomain.com. With this release, you can customize the “From” email address per customer class. For example, suppose you sell services under two different brands: “EasyCall” and “MegaStar” and have two corresponding customer classes. In that case, you can send emails to customers of these customer classes from separate email addresses and senders. The users of the “EasyCall” brand will receive emails from EasyCall (no-reply@easycall.com), while users of the “MegaStar” brand will receive emails from MegaStar (no-reply@megastar.com).
Also, since the customer notifications are typically sent from a non-monitored mailbox (so all delivery errors are ignored), you can additionally specify a “Reply-to” email address for each customer class, e.g., support@easycall.com and support@megastar.com. This enhancement allows your customers to quickly and conveniently make inquiries related to received notifications, e.g., invoice due dates or invoice totals.
- Send your customers email notifications with the “From” email address that they associate with your business to ensure that your customers can trust the emails they receive from you.
- Enable customers to reply to your emails to improve user experience.
Skip the payment collection if a customer owes a negligible amount
You can choose to skip the payment collection process – i.e., not send outstanding balance notifications and not enforce service suspension – for an invoice in which the amount the customer owes is relatively small, for example, if a customer pays the majority of the balance but leaves a small fraction unpaid.
If the collection threshold is set, each invoice is assigned a payment collection status, which can be either “collect” or “do not collect.” Previously, the payment collection status of an invoice was solely determined by its amount due at the time of generation. Since payments that are made after the invoice generation do not change the invoice amount due (PortaBilling does not re-generate an invoice after every payment), the payment collection status remained unchanged regardless of any subsequent payments made by the customer. This could lead to situations where a customer who paid the majority of their debt but fell short of paying a small amount, e.g., $0.10, would not be able to continue using the service.
Starting from MR107, you can choose whether PortaBilling should consider only the amount due at the time of invoice generation (old behavior) or also take into account any payments made after the invoice has been generated (new behavior). In the latter case, when a customer makes a payment, that payment is applied to the oldest invoice first and triggers a “payment collection status” check on each invoice. PortaBilling takes the difference between the amount due and the paid amount and compares it with the collection threshold. If it falls below the collection threshold, the invoice status is changed to “do not collect.” If there are no overdue invoices left with the “collect” payment status, the customer’s service, suspended due to non-payment, will resume.
Say you set the collection threshold of $10 on the customer class.
A customer subscribes to your services in May. On June 1st, an invoice with an amount due of $10 is generated for the customer. The invoice status is “unpaid” since auto-payment failed due to an expired credit card. The May invoice becomes overdue, but since the total amount due of $10 does not exceed the $10 threshold, the payment collection status is “do not collect,” so the customer does not receive notifications and continues using the service.
On July 1st, the $10 invoice for June is generated, and the amount due is already $10+$10=$20. The payment is not received before the due date, so the invoice for June also becomes overdue. Since the amount of $20 is more than the $10 threshold, the payment collection status for the June invoice is “collect.” This triggers the regular payment collection process and the customer starts receiving notifications about the upcoming due date, possible suspension, and so on.
At the end of July, the customer makes a partial payment of $15. The payment covers the May invoice in full (the status is changed from “overdue” to “paid”), and the June invoice becomes partially paid (the status remains “overdue”). The payment collection status for both invoices becomes “do not collect” since the remaining unpaid amount ($20-$15=$5) is less than the collection threshold of $10. The customer’s service is resumed. While the customer’s balance remains $5, the customer continues enjoying the service. The payment collection process will be launched only when the amount they owe crosses the $10 threshold again.
Find the configuration details and specifics here.
- Customers are not chased for negligible overdue amounts.
- You can deliver a better customer experience and maintain positive relationships rather than collecting the relatively small overdue amounts.
Full Spanish and Brazilian-Portuguese language support for voice prompts
The Spanish and Brazilian-Portuguese prompts are now updated and fully supported in features like call recording, voice mailbox, auto attendant, etc.
As a result, service providers can now reach new markets of Spanish-speaking and Brazilian-Portuguese-speaking customers since they can now provide services with voice prompts in the customer’s native language.
Find the full list of supported languages for voice prompts in the Supported languages for voice prompts chapter.
Enabling resellers to manage product groups
The option to manage product groups is now available on the new reseller web self-care interface. Resellers can now access and modify the product groups to which admin has provided them managing rights, or create their own product groups. By organizing products into groups, resellers can simplify product management for their own administrators and the product choice for the users that sign up for the add-on products via the account self-care portal.
Say a reseller has 10 add-on products: 5 of them offer 50 to 250 SMSes for Europe, the US, and Canada, and the other 5 offer different EU Internet packages, ranging from 5 GB to 25 GB. All these products are available for users to sign-up on the account self-care web interface.
For easier product management, the reseller creates separate product groups for SMS and Internet packages. They log in to their reseller self-care web interface > open Service Catalog > Product Groups page, create 2 groups: “SMS packages” and “Internet packages,” and then add the products to their corresponding group.
When a reseller’s customer wants to add an Internet package on their account self-care interface, they can go to the “Internet packages” tab and choose among all available Internet packages (they are not mixed up with SMS packages).
At a later point in time, to be competitive on the market, the reseller decides to add 2GB to all Internet packages, without changing the price. For this, the reseller creates a new volume discount plan with the increased Internet quota for each package. Then, they navigate to the Product groups page, select the “Internet packages” group, and see the list of products to be modified. The reseller replaces the volume discount plan in each product within the group.
The Product groups panel enables resellers to save time and improve customer experience.
Display subscriptions of all customer accounts on the same page
With MR107, it’s possible to get all subscriptions across customer’s accounts via the PortaBilling API. You can use this feature in your in-house or third-party developed portals, e.g., to provide your customers a consolidated overview of all their accounts’ subscriptions with no need to navigate through each and every account.
The new method get_accounts_subscriptions is available under the administrator, customer, and reseller realms.
Say a service provider Panda Telecom offers their customers an in-house developed self-care portal. Except for standard bundles such as voice calls, Internet service, and IPTV, Panda Telecom also sells subscriptions to Netflix and HBO. Since the external services are not managed in PortaSwitch, the corresponding subscriptions are assigned to accounts directly, not within a specific add-on product.
John, a Panda Telecom customer, has three accounts which include subscriptions for himself and his family. John purchases an “Essentials” package at $20 per month for each account. As a bonus, John receives a complimentary one-month subscription to Netflix. Additionally, John purchases an HBO subscription at $15 per month. John decides to check his active subscriptions to estimate how much he will be charged for the current month. He opens their self-care portal and navigates to the page displaying all the subscriptions on his accounts. John can see that he has three $20 “Essentials” subscriptions, a Netflix subscription with no fee this month, and a $15 HBO subscription. Therefore, John can expect to be charged $75 in total for the current month ($20*3+$15=$75).
- Users can better estimate their expenses.
- Developers can implement the consolidated subscription overview more easily, since there’s no need to separately retrieve the data about subscriptions on each account .