Internet of Things • 3 Feb 2019

CRM connected fluid sensor

Automation of processes through use of IoT is often seen as being a daunting task, even though the benefits are clear. Processes become more streamlined, less labor-intensive and mistakes occur less often. Generally, this results in a quick return on investments (link). However, sometimes changes don’t need to be complex in order to be beneficial.

In this article, we’ll look at a sensor connected to the Internet to monitor changes in the real world and to automatically make adjustments in a CRM system. We built this as a small proof of concept and to do some experiments at the office. 


Let’s say we provide fluids delivered in tanks to our customers. Tanks are checked manually by the customer. When a customer sees that one of its tanks is (almost) empty, he calls us to do a refill or to provide a new tank. Depending on the checking interval, customers may end up with empty tanks and some wait time before the next delivery. In some cases, this can have dramatical outcomes. Their operational continuity may be hindered with negative results/issues with end customers etc. Meanwhile, we are missing out on revenue and may fail to deliver fluids to the customer in a timely manner.


To avoid such situations, we improved upon this process by equipping our tanks with sensors. So, which hardware are we working with?

The sensor we use is the SEN0204 from DFROBOT. This is a contactless water level sensor which, as the name implies, does not need to make physical contact with the inside of the tank and the liquid it contains. A Raspberry Pi serves as the brain of our system, which will connect the tank to the CRM by forwarding its sensor data. As the sensor needs an Arduino board to operate, we have an Arduino shield on top of the Pi to act as an interface between them.


This is what our new situation looks like.

The sensors continually check the water level of the tank and send this information to the Arduino shield. The Raspberry Pi then receives this information through its data pins which is processed by some Python code. If this information confirms the water in the tank reached a specific level, the Pi will connect to the CRM via the REST API and automatically create a ticket. This way, we can pre-emptively call the customer to plan a new delivery.

Required materials/technologies



  • Python
  • Docker
  • Balena Cloud as to provision and manage the Pi’s ( this provides scaling possibilities )

Proof of concept