...
Also, x-hoppers offers an integrated QR code system, which can provide store clerks with instant buyer alerts and lets you gather analytics on customer engagement. The system logs each occasion of scanning a QR code by customer. To set up the QR code system, you need to create dedicated pages on your web server, each page devoted either to a category of products or a separate product. Then, generate QR code for each of these pages, print and attach them wherever required in the store, letting customers request for assistance right on the spot. See more in the “QR code system” section of this guide.
Requirements
WMS 6 An x-hoppers system on WMS 6
W-AIR DECT Network components: W-AIR Base stations and repeaters. Amount depends on the store area and the number of users
...
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Documentation: Dialplan Applications - Admin Guide. |
Modifying the timeout of broadcast mute
Starting from WMS 6.06.20240315.1, users have possibility to mute the broadcast by double-pressing the Call button. By default, the broadcast gets muted for 60 seconds. If user wants to unmute the broadcast before the 60-second timeout, user can double-press the Call button again.
The default timeout can be customized. To do this:
Add the following line to the file /etc/systemd/system/pbx-data-engine.service.d/override.conf:
Code Block |
---|
# nano-tiny /etc/systemd/system/pbx-data-engine.service.d/override.conf
[Service]
Environment='XHOP_UNHOLD_TIMEOUT=120' |
Where 120 is the custom timeout. If you want to disable the timeout, set the value to 0:
Code Block |
---|
Environment='XHOP_UNHOLD_TIMEOUT=0' |
Reload systemd and restart the service to apply the changes:
Code Block |
---|
# systemctl daemon-reload
# systemctl restart pbx-data-engine |
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Note: For WMS versions prior to 6.07, instead of XHOP_UNHOLD_TIMEOUT, the parameter UNHOLD_TIMEOUT should be used. |
QR code system
Use cases
QR code for each product
Have a separate web page for each of the products and want customers to get to that exact page when scanning the QR code? Then, this option is just for you. Attach QR code next to each product, which customers can scan and get to the page with the product description.
QR code for a category of products
If you have a huge store, rather than attaching QR code to every single product, you can opt for using one QR code for a category of products. In this case, you can place the code in each row in your store, to be easily found by customers.
In either of the above scenarios, once QR code is scanned, clerks are instantly notified which exact product or product category a customer is interested in and can provide any necessary assistance and guidance. Moreover, you can collect statistics (e.g. via Google Analytics) on which product QRs were scanned and how many times, which allows you to analyze customer engagement and make weighted decisions.
Additionally, on the product web page you can place a Kite button, letting customers contact clerks or back office via chat, audio or video call.
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Kite documentation: Wildix WebRTC Kite - Admin Guide - English. |
How to set up
Generate a call
We provide SDK (REST APIs), which can be used to set up call generation when someone scans the code. So for this part, you need a web developer, who would configure the relevant POST and CURL requests for each QR code.
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Documentation: Developer Documentation. |
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Note: To protect the system from spam, you may set up CAPTCHA on your website before the call is initiated. |
Configure Dialplan
...
QR code system
Use cases
QR code for each product
Have a separate web page for each of the products and want customers to get to that exact page when scanning the QR code? Then, this option is just for you. Attach QR code next to each product, which customers can scan and get to the page with the product description.
QR code for a category of products
If you have a huge store, rather than attaching QR code to every single product, you can opt for using one QR code for a category of products. In this case, you can place the code in each row in your store, to be easily found by customers.
In either of the above scenarios, once QR code is scanned, clerks are instantly notified which exact product or product category a customer is interested in and can provide any necessary assistance and guidance. Moreover, you can collect statistics (e.g. via Google Analytics) on which product QRs were scanned and how many times, which allows you to analyze customer engagement and make weighted decisions.
Additionally, on the product web page you can place a Kite button, letting customers contact clerks or back office via chat, audio or video call.
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Kite documentation: Wildix WebRTC Kite - Admin Guide - English. |
How to set up
Generate a call
We provide SDK (REST APIs), which can be used to set up call generation when someone scans the code. So for this part, you need a web developer, who would configure the relevant POST and CURL requests for each QR code.
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Documentation: Developer Documentation. |
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Note: To protect the system from spam, you may set up CAPTCHA on your website before the call is initiated. |
Configure Dialplan
On the Dialplan side, you need to configure the call to be sent to the broadcast with clerks. The call should be accompanied with notification via our Text-to-speech feature, to inform clerks which page was scanned/ where in the store assistance is required. QR codes require separate Dialplan entries.
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Documentation: Dialplan applications - Admin Guide. |
Click and collect setup
Click and collect functionality speeds up and simplifies the process of processing the orders made online. When customers with online orders come to the store, they just need to enter their order ID number on a dedicated tablet. The staff is immediately notified in the conference that the relevant order number is there to collect.
To configure click and collect functionality:
Create a Dialplan rule e.g. clickcollect
Add number default:
Add Verify number of calls application, enter 1 for the max number of active calls and select the relevant procedure
Add application Play sound and enter the text that should be pronounced in the conference, e.g. Order number ${text} has arrived to collect the order
Add number wait with the following applications:
Custom application with parameter Wait(3)
Jump to application with the procedure clickcollect
...
Example of CURL request:
Code Block |
---|
curl -u admin:admin_password -X POST 'https://xhoppersdemo.wildixin.com/api/v1/Originate' --data-urlencode "channel=Local/conf*1@pbxservices" --data-urlencode "context=clickcollect" --data-urlencode "priority=1" --data-urlencode "exten=s" --data-urlencode "variable=text=124" --data-urlencode "callerid=1" |
Gather and post x-hoppers content to x-bees channel
It is possible to configure recording of in-store conversation, with possibility to listen to it in CDR-View, as well as post x-hoppers broadcast content to x-bees channel.
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Documentation: Dialplan applications - Admin Guide. |
Click and collect setup
Click and collect functionality speeds up and simplifies the process of processing the orders made online. When customers with online orders come to the store, they just need to enter their order ID number on a dedicated tablet. The staff is immediately notified in the conference that the relevant order number is there to collect.
To configure click and collect functionality:
Create a Dialplan rule e.g. clickcollect
Add number default:
Add Verify number of calls application, enter 1 for the max number of active calls and select the relevant procedure
Add application Play sound and enter the text that should be pronounced in the conference, e.g. Order number ${text} has arrived to collect the order
Add number wait with the following applications:
Custom application with parameter Wait(3)
Jump to application with the procedure clickcollect
...
Example of CURL request:
Code Block |
---|
curl -u admin:admin_password -X POST 'https://xhoppersdemo.wildixin.com/api/v1/Originate' --data-urlencode "channel=Local/conf*1@pbxservices" --data-urlencode "context=clickcollect" --data-urlencode "priority=1" --data-urlencode "exten=s" --data-urlencode "variable=text=124" --data-urlencode "callerid=1" |
Gather and post x-hoppers content to x-bees channel
It is possible to configure recording of in-store conversation, with possibility to listen to it in CDR-View, as well as post x-hoppers broadcast content to x-bees channel.
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Note: The support starts from WMS 6.03.20230630.3. |
Note |
---|
Important: For correct work of the features of gathering and posting content to x-bees channel, a correct email has to be set up for all the users in the channel. |
Record in-store conversations (listen in CDR-View)
Starting from WMS 6.03.20230630.3, it is possible to record in-store conversations and listen them via CDR-View. The recording starts when user unmutes himself in the conference and begins talking.
Conversations recording is also required if you wish to transcribe in-store conversations and post content to x-bees channel (setup instructions available in further section of this guide).
To enable the functionality:
create directory /etc/systemd/system/pbx-data-engine.service.d
Code Block # mkdir /etc/systemd/system/pbx-data-engine.service.d
Add the following key to the file:
Code Block # nano-tiny /etc/systemd/system/pbx-data-engine.service.d/override.conf [Service] ExecStart= ExecStart=/usr/sbin/pbx_data_engine.py --daemon --mode calls presence -cr
Reload systemd and restart the service to apply the changes:
Code Block # systemctl daemon-reload # systemctl restart pbx-data-engine
Note |
---|
Important: Reloading systemd is required each time you make any changes to the /etc/systemd/system/pbx-data-engine.service.d/override.conf file. |
Once enabled, the recording of in-store conversations get displayed in the CDR-View. Recording starts when a user unmutes themselves in the conference and starts talking.
Note |
---|
Current limitations:
|
Post content to x-bees channel
Use case 1: Veesion integration
When there is an alert from Veesion, the relevant message, containing alert type, date, time, camera IP, ID of the camera and group, as well as video attachment, is sent to x-bees conversation.
Documentation: https://x-hoppers.atlassian.net/wiki/x/AYAj
Use case 2: Transcribe all in-store conversations
It is possible to transcribe the content of x-hoppers conference (everything that was said during the day) and post it to x-bees conversation (both the transcription and the audio recording of each piece of the conversation). The transcription is posted on behalf of the users that were talking at a given moment.
Note |
---|
Important: Make sure you've also set up recording of the in-store conversations (see the "Record in-store conversations (listen in CDR-View)" section of this guide. |
How to configure
Create x-bees conversation with all the users that are participating in the x-hoppers conference and also needed managers.
Copy x-bees conversation ID (available in the URL of the conversation)
Add the following data to the /rw2/etc/pbx/x-hoppers.json file:
Code Block |
---|
[
{
"audio_conf_id": "2",
"xbees_channel_id": "f6d17593-98b6-471d-941a-cd03153f"
}
] |
Where:
audio_conf_id: ID of the audio broadcast channel in x-hoppers where the communication takes place
xbees_channel_id: ID of the x-bees conversation, copied in step 2, where the content will be posted.
When the feature is enabled, whatever is told in the conference is automatically transcribed and displayed in x-bees conversation, so managers could monitor what was discussed in the conference.
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Note: If user talks for more than 60 seconds without a pause, the message is not transcribed. |
How to increase volume for noisy environments
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Note: The support starts from WMS Beta 6.03.20230601.1. |
In case of noisy environment, you can increase x-hoppers volume. To do this, add the following parameters to the section [default_bridge] of the file /etc/callweaver/confbridge.conf:
Code Block |
---|
default_listening_volume=6 |
...
Note: The support starts from WMS 6.03.20230630.3. |
Note |
---|
Important: For correct work of the features of gathering and posting content to x-bees channel, a correct email has to be set up for all the users in the channel. |
Record in-store conversations (listen in CDR-View)
Starting from WMS 6.03.20230630.3, it is possible to record in-store conversations and listen them via CDR-View. The recording starts when user unmutes himself in the conference and begins talking.
Conversations recording is also required if you wish to transcribe in-store conversations and post content to x-bees channel (setup instructions available in further section of this guide).
To enable the functionality:
create directory /etc/systemd/system/pbx-data-engine.service.d
Code Block # mkdir /etc/systemd/system/pbx-data-engine.service.d
Add the following key to the file:
Code Block # nano-tiny /etc/systemd/system/pbx-data-engine.service.d/override.conf [Service] ExecStart= ExecStart=/usr/sbin/pbx_data_engine.py --daemon --mode calls presence -cr
Reload systemd and restart the service to apply the changes:
Code Block # systemctl daemon-reload # systemctl restart pbx-data-engine
Note |
---|
Important: Reloading systemd is required each time you make any changes to the /etc/systemd/system/pbx-data-engine.service.d/override.conf file. |
Once enabled, the recording of in-store conversations get displayed in the CDR-View. Recording starts when a user unmutes themselves in the conference and starts talking.
Note |
---|
Current limitations:
|
Post content to x-bees channel
Use case 1: Veesion integration
When there is an alert from Veesion, the relevant message, containing alert type, date, time, camera IP, ID of the camera and group, as well as video attachment, is sent to x-bees conversation.
Documentation: https://x-hoppers.atlassian.net/wiki/x/AYAj
Use case 2: Transcribe all in-store conversations
It is possible to transcribe the content of x-hoppers conference (everything that was said during the day) and post it to x-bees conversation (both the transcription and the audio recording of each piece of the conversation). The transcription is posted on behalf of the users that were talking at a given moment.
Note |
---|
Important: Make sure you've also set up recording of the in-store conversations (see the "Record in-store conversations (listen in CDR-View)" section of this guide. |
How to configure
Create x-bees conversation with all the users that are participating in the x-hoppers conference and also needed managers.
Copy x-bees conversation ID (available in the URL of the conversation)
Add the following data to the /rw2/etc/pbx/x-hoppers.json file:
Code Block |
---|
[
{
"audio_conf_id": "2",
"xbees_channel_id": "f6d17593-98b6-471d-941a-cd03153f"
}
] |
Where:
audio_conf_id: ID of the audio broadcast channel in x-hoppers where the communication takes place
xbees_channel_id: ID of the x-bees conversation, copied in step 2, where the content will be posted.
When the feature is enabled, whatever is told in the conference is automatically transcribed and displayed in x-bees conversation, so managers could monitor what was discussed in the conference.
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Note: If user talks for more than 60 seconds without a pause, the message is not transcribed. |
How to increase volume for noisy environments
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Note: The support starts from WMS Beta 6.03.20230601.1. |
In case of noisy environment, you can increase x-hoppers volume. To do this, add the following parameters to the section [default_bridge] of the file /etc/callweaver/confbridge.conf:
Code Block |
---|
default_listening_volume=6 |
Where 6 is the preferred volume. The maximum value is 10. The default value for both parameters is 0.
How to modify the timeout of broadcast mute
Starting from WMS 6.06.20240315.1, users have possibility to mute the broadcast by double-pressing the Call button. By default, the broadcast gets muted for 60 seconds. If user wants to unmute the broadcast before the 60-second timeout, user can double-press the Call button again.
The default timeout can be customized. To do this:
Add the following line to the file /etc/systemd/system/pbx-data-engine.service.d/override.conf:
Code Block |
---|
# nano-tiny /etc/systemd/system/pbx-data-engine.service.d/override.conf
[Service]
Environment='XHOP_UNHOLD_TIMEOUT=120' |
Where 120 is the custom timeout. If you want to disable the timeout, set the value to 0:
Code Block |
---|
Environment='XHOP_UNHOLD_TIMEOUT=0' |
Reload systemd and restart the service to apply the changes:
Code Block |
---|
# systemctl daemon-reload
# systemctl restart pbx-data-engine |
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Note: For WMS versions prior to 6.07, instead of XHOP_UNHOLD_TIMEOUT, the parameter UNHOLD_TIMEOUT should be used. |
Other features
ChatGPT Integration
...