Mobile app for the work of field sales representatives with Bitrix24

The client, an international company producing building materials, has a developed network of sales representatives who travel to retail outlets in their region, keep inventory records at the outlet, take orders from customers and sell new products.

Issues

All sales representatives work in Bitrix24, which is designed primarily for working from a desktop, and requires a constant connection to the Internet, while field employees only have a phone or tablet with them, and the Internet is not always stable.
For all field employees to have access to Bitrix24, we have developed a mobile application in which you can create a new outlet, schedule a visit, conduct various monitoring, and pre-order products, even if there is no Internet access now!

6 main features of the project

Unstable network connection - the application must save data locally, and when the network appears, synchronize data with the server. To do this, we created a synchronization service that updates the data on the server and in the application, and keeps a log of all synchronizations;
“Cranky” Bitrix24 API - all working services accessed by applications not native to Bitrix24, and for the correct interaction of the application and Bitrix24, it was necessary to add API methods with Bitrix24 tools;
The sales representative's calendar contains a huge amount of information, standard Android SDK solutions are indispensable, therefore we created the calendar component from scratch, placing all the information necessary for work in it;
On the object, the sales representative can perform many different actions, so we made a custom target screen that is drawn depending on the fields coming from the server;
The application is a working tool, so it is necessary to exclude the possibility of deceiving the company, or making a mistake when entering data, so that they are correctly entered in the Bitrix24 field. The interface contains tips on how to work, the application itself determines the position of the user, and does not allow to start working on the object if the distance to it is more than 250 meters;
The application is not intended for google play, so we made an update service that checks for new versions on the server and offers to update if one is found.

Technical description

The application was developed in Kotlin for Android OS, no iOS solution was expected. The server part is Bitrix24. Geolocation is determined by GPS and triangulation by communication towers. If the spread of geolocation is too large, the employee can start work bypassing the geolocation check.

The application is now at the implementation stage, there is a positive response from testing merchandisers. The client purchased Samsung galaxy tab tablets for employees, we quickly released the tablet version of the application, and optimized it for tablets.