Gravio Blog
July 22, 2022

[Case Study] Improving Staff Efficiency and Customer Experience in a Bar based in Tokyo

How a bar owner in Tokyo introduced IoT and AI to improve existing workflows to increase customer satisfaction and staff efficiency.
[Case Study] Improving Staff Efficiency and Customer Experience in a Bar based in Tokyo


Tomonori Yanagiya is a writer who specializes in the IT and business fields. In addition to being a writer, he also runs a restaurant "Cost BAR" and a submarine aged whiskey sales company "Tourbillon" in Tokyo.

The food and beverage industry generally has a low-margin, but the situation is getting worse due to covid-19. Although it is an industry with traditionally a low technology adoption rate, Tomonori is worried they will not be able to survive unless they take on the challenge of improving their efficiency, for example by visualizing information through digitalization and automating routine tasks..


  • During busy periods, staff may miss the attention required by some of the customers.
  • People who often visit the bar like to have a drink alone at the bar counter, but they always have to come and check to see if all the seats are occupied or whether it is crowded.
  • Manually entering data into Kintone, the workplace platform for inventory management, is a tedious task.


  • Whenever a Gravio button at the table is pressed, the table number is played from a wireless bluetooth speaker.
  • Gravio’s TensorFlow people counting AI models via a network camera count the number of people seated at the bar counter frequently and post it on Twitter.
  • A Gravio-enabled barcode reader is used to scan the barcode on the alcohol bottles and the data is sent to Kintone software for inventory management.

Playing Table Number On Speakers

The initial idea was simple: When a customer presses the button placed on the table, the connected messaging service, LINE WORKS, sends a message “A customer at table X is calling.”

But the staff were skeptical. They may miss the message during busy periods, and it may disappear from the screen. Therefore the decision was taken to trigger an audible signal instead.

Since the Gravio Hub does not have a speaker,   the team at Cost BAR connected it to a Bluetooth speaker to enable the playing of audio files. Here are some examples of the steps I took to create the “Action”.

First, in the Actions page, open the “Data folder” and upload the audio files to be played.

You will need to prepare as many audio files as there are tables in MP3 format. You can record it yourself or use a voice synthesis software. After that, in the “Actions editor”, set to play the respective table’s audio file when the “Action” is triggered. Add steps to play the file uploaded using the software component “Sound Play”. Now, since we have completed creating an Action, we will need to create a Trigger to run the Action, like in the next image.

Once you have created the Trigger, the application is complete. A sound file will be played announcing the table number when a button at the table is pressed.

With this, customers can easily call the waiting staff at the touch of a button. Of course, if you add a step in the Action, you can send a message to a designated channel in a messaging platform, record an event in a statistics database or at the same time while playing the audio.

The Cost BAR staff was also keen to get notifications outside the kitchen in the dining hall, so they decided to put a transceiver “BONX” connected to their LINE WORKS account in the hall, that reads out loud the incoming notifications whenever a button is being pressed. 

Thanks to this setup the team can serve their customers very efficiently and therefore save a lot of time while increasing efficiency.

People Counting at Bar Counter

The Cost BAR also features a popular bar counter, to which many customers often come to have a drink on their own. They make spontaneous decisions to pop in and get a drink after work or on their way home. Before the bar used Gravio, customers had to come in check if there are empty seats at the bar. But now that they use the Gravio people counting module, they can push out information on how busy they are in real-time to social media. 

In order to implement this feature, the bar staff used Gravio’s image inference function (People Counting with TensorFlow) that automatically posts the number of people using the counter to Twitter at various times in the day or whenever certain conditions are met. It is not possible to publish the camera image due to privacy concerns, but there is no problem if only the number of people sitting at the bar counter is mentioned. Customers love this feature.

The implementation was easy. A bar staff member just used the Gravio Hub to send a HTTP request to a tool called “IFTTT” that mediates various services and applications. By sending a HTTP request to IFTTT, the information about the amount of people sitting at the bar can be posted to the Twitter account.

Gravio is compatible with Open Network Video Interface Forum (ONVIF) standard cameras. The bar uses the I-O Data Device “TS-NA220W”. This camera is a dust and waterproof camera that can be used outdoors. It features a 2-megapixel CMOS sensor.

It is important to place  the camera at the right angle so that it can capture the entire bar counter and count people in the most optimal way. Various lighting conditions also have to be taken into consideration. But after a few tests and trials, the best positioning could be identified.

After setting the camera up using the native application, “Qwatch View”, the bar team deployed  the “Congestion Recognition” inference model in Gravio Studio. They then set up a simple trigger that runs whenever there are less than 5 people sitting at the bar. The trigger then fires a Gravio Action that sends the Twitter text to IFTTT via HTTP POST request..

As the results show, the number of people detected in real-time is good and there are no problems with Tweets. The key is that such a seemingly complicated setup can be built without programming within a very short time. 

However, when the bar actually deployed the system, the Twitter timeline became noisy. So they decided not to post in frequent intervals. Instead, they are now implementing a simple wireless button on the back of the bar counter and building a mechanism that the bartender will press it once or twice a day when he or she wants to attract customers. Modifying the application is very easy, just by modifying the Actions and Triggers.

Inventory Management

Cost BAR purchases hundreds of types of sake. Managing them properly is critical.  Inventory management is time-consuming and errors with far reaching consequences can happen very easily. Therefore, the bar staff used Gravio to prototype an inventory management system using the software “Kintone”.

Kintone is an application development platform developed and provided by Cybozu. Like Gravio, Kitone is a no-code solution, enabling their users to build a system with just drag-and drop operations. 

This time, there were two essential drivers for creating an inventory management application for the Cost BAR:

  • The bar staff want to input products by reading barcodes, not manually.
  • Kintone’s account is only given to employees, the inventory management work should be assisted by a Kintone staff.

To implement the bar code reader, staff created a Gravio action to send HTTP requests from Gravio’s barcode reading feature to the Kintone API.

After setting up Kintone to receive data via their API, in Gravio, set up an Action with HTTP POST Request and enter “https://kintone subdomain” as the POST destination. In the pre-mappings, you can use the following text:

cv.ProductCode = tv.Data

cv.Amount = 1

cp.Headers = {“X-Cybozu-API-Token”: “API token for inventory management app, API token for product master app”}

cv.Payload = {“app ”: Inventory management app number,“ record ”: {“ Timestamp ”: {“ value ”: tv.Timestamp},“ ID ”: {“ value ”: cv.ProductCode},“ Amount ”: {“ value ”: cv.Amount}}}

Now, when a barcode is read, it looks up the information from the product master in Kintone and the inventory number increases. As an improvement, the Cost BAR team created a mechanism not only to increase the inventory when new stocks arrive, but also to decrease the number of goods with another barcode reader.

One of the main benefits of using Gravio for this project was the fact that it is very easy and fast to use. The Cost BAR team did not require any engineering skills to achieve their goals. 

Note: This is an interpretation and translation of an original post by an Author, Tomonori Yanagiya. The original post is here and it covers more in depth regarding the solutions he has created for his Genkabar.

Latest Posts
[Tutorial] Using Ollama, LLaVA and Gravio to Build a Local Visual Question and Answer AI Assistant
Tutorial on how to use Gravio, Ollama, LLaVA AI to build a local Visual Question and Answer (VQA) application. Anyone can build this solution without coding required and deploy it as a PoC or even in a production environment if the use case fits.
Monday, June 3, 2024
Read More