Transcript for:
Technician App Development Overview

welcome everyone uh hope you already had a nice session and I have a present for you uh I have some insights of an app we created uh also for technicians but uh first let me introduce myself so I'm Steven a business application consultant and I started in 2017 at avento those who attended previous Resco next sessions no aventer probably um and there I worked on the fearless leader product it's our vertical for specifically for fmcg and cpg uh industry since 2023 seeka took over avento and since then I'm spreading the word of Resco within uh seeka and uh that gives me also more opportunity to work on the Fess leader so um then at a certain point customer of ours came to us to create an app for technicians and technicians was not really my my uh comfort zone uh because I was used to the fmcg uh industry so um I stepped out of that uh that comfort zone but I took a lot of uh aspects from that a feess leader solution and I used it in the app we created so let's step out uh the comfort zone and let's have a look at what the actual solution was but first let's start with the business need so we are talking about um water softeners uh so we have technicians on the road who go and install water softeners repair them um so and because water softeners are mostly in the basement yeah definitely offline capabilities were needed and then was very specifically in in this case the planning was already done in the Erp system so we did not need any scheduling any planning it was already done but only the date was fixed not the hour so uh the only request was make the later planning as optimal as possible and doing further analysis we noticed that yeah we need some kind of an integration between the Erp and the CRM uh system uh to have these uh scheduled uh appointments in uh in surm but what about urgent interventions how do we manage that further as already said uh we need an optimized planning and uh technicians uh before the project were already used to drive with ways so we needed to somehow incorporate ways as well uh and last but not least also the calendar should give a nice and clear overview for the technician on what to do when and what to bring next next to that they also wanted SMS communication so a few days beforehand an SMS needed to be sent to the customer hey technician is arriving but also the typically I'm on my way uh SMS so just before the technician starts to drive an SMS need to be sent next to that the uh app should help the technician guide the technician on what to do when and in which order um so with with yeah giving them structure with checkin check out and do all the things like payment like automated email uh with a uh report and then at the end all the documentation and pictures needed to be shifted to SharePoint also so you might think why don't you use field service well the approach was a little bit different we have one appointment equals one intervention we don't have work orders bookable resources and so on also planning was already done so that's why we did not use field service um and if you think about uh technicians then you also think about inspections but here there was only a limited set of parameters that needed to be recorded like water soft uh water hardness uh the Water counter and pH and there was no change expected in the amount of uh parameters to be recorded so that's why uh we skipped the inspections so so um let's have a look on uh to our solution and what we build let's start with the integration of the interventions from the Erp system so as you can see we got a lot of data customer data contracts sales and so on and uh it's sent to the ER the CRM system in uh from four to six different tables to get all the data where we need it um and because of the Earp system did not supported you right we used our own develop data connection method that we use since yeah years and years uh and it has proven stability at more than 30 customers then um so the planning is from the Erp to the CRM let's see what we can do with this uh planning uh well all the appointments did not have yet a start date so we set all in in the morning 8:00 here all next to each other and then it was up to the technician to choose what to do he can use the optimize route uh that was just shown in the previous session as well or he can um drag and drop them manually but he uh was limited to drag and drop only in the same day um and that was just done by um Resco rules so no specific coding for that okay um next to that we have this uh overview uh for the technician um so he can also easily see how much kilogram of salt uh he needs to take in his fan before it start his work and you also already see here for every appointment has its colored line and this colored line is in fact um the the status of the appointment so green is complete and blue is uh still to do there are all other colors to come and uh this colored line is actually just an cell with a constant value that receives its style via the standard uh row scripts so uh as already said so the pl interventions are in blue but when the technician checks in it becomes orange it becomes yellow and checked out when he's doing the payment it becomes red and when it's all complete it's become green um and this is also just color coding standard rules on the agenda you might think um that yeah all the color coding might be some uh confusing for the technician but that's why we add color Legend also in the app and this is just an iframe on the home screen uh referring to an offline HTML uh page okay so planning is done now we need to communicate with the customer to say hey we are uh uh we are arriving almost um and that is with the SMS communication but first we have this SMS two days before um and actually the this is an Azure uh web job that is running every night and it will check all the appointments do I need to send an SMS yes or no and it will create SMS records but on creation a plug-in will actually then send uh the SMS um and then the uh technician also can see that the SMS is effectively sent and to which phone number so have he has proed that communication is done and he's quite sure that the customer will be at home so um yeah so indeed the sending is done with the plug-in bit important for the next one because we have also this I'm on my way uh SMS so if the technician opens the next appointment he can click on send approaching SMS and then we use some JavaScript to actually create uh a new SMS record and immediately sync it to the server and when it arrives on the server it's again the same plugin that will actually send uh the SMS and because it's an asynchronous plugin the result of that is also uh sent back during the same sync so the technician can immediately see that the SMS is effectively sent to the customer all right so um the customer is warned that we are on our way so now let's start navigating um and we can uh there use the uh standard connection with the navigate 2 function and it's all set for the technicians to use WS um but what about the address um so if you use the navigate 2 functionality latitudes and longitudes are sent to ways but are these coordinates okay are they good but uh we uh noticed that sometimes technicians were two blocks away why was that well the address is entered in the Erp system and there we don't have control we are not the Erp partner so we just receive the address information in that integration and when we receive the address uh we use an uh an Azure function with an Azure Maps key to generate the coordinates but sometimes there might be some mistakes in the address where uh uh the number is not correct or is missing or or the the ZIP code is entered in the field of the uh City and the other way around so and then you can have bad results so that's why we um added here this confidence level and if the confidence level is uh below then n uh then we advise the technician to manually enter the address into ways because then he get uh the online suggestions of ways instead of using probably the wrong coordinates all right um yeah so uh that I already said then if the technici arrives um it can start with uh yeah the intervention and here again um we use a same color codes so this is actually to help the technician the same color blue uh when he opens the appointment and here it says check in to get started or resc and if it checks in then it becomes um uh orange like we also saw in the uh in the uh calendar and also this is just uh done with Styles um and also for every status of the appointment we created another form to have really focus on the parts that they need to use and that is just done with uh yeah the form select rule okay while he's doing the intervention he can add um extra products here and you see that plus and minus button to to uh alter the quantity and this is uh just the image direct edit with a cell click rule on The View to do the mat um so then the calculation happens automatically and on the right we have this uh thumbnail um with all the pictures that have been taken that is just an horizontal uh subgrid uh with a list note on The View okay um then if everything is done all the products are added of course we need some calculation of the price the total price V level and so on uh perhaps some prepayment that has been done uh and then this calculation is just uh done with uh the onchange rules there is no code uh behind if everything is calculated then we can move on um to the payment and here we had some JavaScript to have um extra popups so they can choose between pay now and pay later um and uh let's have a look at the pay now that you can choose between the QR code and the payment terminal so if they choose the QR code then actually um an http request is done to our server that sends an AER uh function to get the exact um QR code to pay and then the uh customer can pay with his mobile phone when it um when we used the uh payment terminal it's more or less the same if they click on pay with terminal then an measure function is sending the request to the mly platform and the mly platform sends a request to the terminal including the ID of the terminal which is attached to the technician if the customer pays with his bank card then the terminal sends it back to the mly platform and the same Azure function that send it the request is pulling that platform every 5 Seconds to see if that payment is actually done or not all right so payment is done then we can uh continue with the automated email uh with the service report and here we did some extra JavaScript so it was um we wanted the technician to not have any choice of what to do with the report no it can just click on view service report and it's immediately generated and saved with the right naming Convention as an attachment if everything is okay um yeah so this is with the JavaScript if everything is okay then we just use the standard outof the book functionality with the enhanced mobile service report to add the signatures um into the PDF report and then the there are no screenshots of that but then behind the scenes an email record is automatically created and sent when uh the data is synchronized uh to the server if the appointment uh is is uh done then um the technician will complete the appointment and then he gets the question do you want to sync the data now and if it choose yes then uh our JavaScript will launch the Sync here we did not uh use the standard um out of sync of Resco because then it would sync just a little bit too much during the whole process so that's why we did it with the JavaScript all right so um in the end uh yeah there are a lot of pictures taken reports created and so on so yeah data ver space is growing and consuming a lot of uh megabytes um and on the other hand those uh reports and pictures also needed to be consultable of with for non-cm users so that's why uh we have a uh web job that is is running every night and is taking all the documents from CRM and sends it to SharePoint and replaces it with a hyperlink um that way if you still use CRM and you see an attachment you can click on it and then the hyperlink gets the picture or or the report from SharePoint and will show it to you and also the the Resco sync mechanism Will Follow That hyperlink to effectively fetch the documents from SharePoint then on SharePoint itself um we uh uh created uh a very fix structure uh and there we have per customer per service account per contract and per intervention we have a whole uh drill down of folders there we place all the reports and the pictures together with all possible metad data that we can find so uh we can enable an easy search there um and it's quite important that you uh have this structure very fixed because if you would want to change it or you move folders uh move files in another folder then the hyperlink I was talking about will uh lose its functionality so this is very important to um to speak that uh through with your client up front all right so um yeah as a conclud usion um there was a lot of things to do um in uh in this uh in these projects um and these are all the tentacles I was uh talking about but actually only the SMS uh communication and the payment was uh specifically created uh for this project and all the other things from the color coding the integration and so on these were just cherry picking uh from our fearless leader uh solution and speaking of the fearless leader solution here we have some nice thing uh to announce because since uh I think April um our solution is also available on the Microsoft app source and when uh you would try this uh solution you not only get our vertical solution our uh CRM uh managed solution but in that package is also the Resco Suite is included in the package together with our Woodford project so that's something we are uh very proud of all right my name is Steven thank you very much