Many of you already know that Salesforce takes a huge part of my life. It is not just what I do for work, it is also something I am passionate about. However, there is something else I enjoy. It is dancing. I did consider a possibility of bringing these two things together. But I never thought it was going to be because of geolocation issues…
Being into dancing and also being a woman means I like shoes. At the same time, I have neither time nor a desire to go to multiple dancewear shops in trying to find a pair that I would like to buy.
Luckily, nowadays most of them have an online store. So why not to save time and order a pair of shoes online? Especially since they often offer the next day delivery. That’s exactly what I decided to do.
I placed an order, received an automated order acknowledgment, then an email confirming order dispatch and a text message with a delivery time slot.
I was passionately waiting for my shoes to arrive. But it didn’t happen. As I had a tracking number, I decided to check the delivery status online. Imagine my surprise when I saw a message that my order was delivered and signed by me. But I haven’t received it!
If you don’t like dancing, imagine, these were your football tickets or a new Apple watch or a MacBook…
I called customer services. A customer support representative opened a case and started an investigation. This was then followed by a number of calls and emails between a customer service representative, a delivery company and myself. And yes, they involved me in quite a few of those steps.
Eventually the shop sent me a new pair of shoes. But it only arrived a few days later and I couldn’t wear them to the event I bought them for. Annoying, isn’t it?
One thing is clear – delivery issues happen. Individuals and businesses place orders, which sometimes get delayed, lost and damaged. The consequences can be quite significant for both a buyer and a seller. Imagine, you have a financial contractual agreement with your customer and cannot fulfill it because a supplier delayed your order.
Would it not be nice to have a solution that eliminates a possibility of delivery issues?
After reading Summer 16 release notes ‘Automatically Get Geocodes for Addresses’, I realised that resolving my problem and preventing orders from getting lost or being delivered to a wrong address, isn’t such an unrealistic thing.
As I don’t have enough coding skills right now, I split this task into stages. And it is possible that after Stage #1 is complete (there will be another blog post once it is done), my view on a Stage #2 solution will also change. But here is what I’ve come up with.
Stage #1 Solution: Bring Geocodes into Salesforce
When a customer places an order, the Shipping Address on Account is automatically populated (or updated if already exists). Geocode information is also automatically populated/updated, as per Summer 16 Release Notes, and is then copied across to an Order Delivery Task associated with a customer order.
When a driver delivers an order and asks a customer to sign for it, a driver clicks ‘Deliver Order’ button. The app reads their current latitude and longitude and stores it on the Order Delivery Task record.
This data can then be passed to Salesforce and stored on Order Delivery Task record.
This solution may not eliminate a chance of a missing delivery or an order being delivered to a wrong address, but it will allow customer service representatives investigate such issues much quicker.
Note #1: right now automatic population of Geocodes in not available for Person Accounts and this needs to be taken into consideration for B2C companies.
Note #2: a customer may have multiple shipping addresses. If all of them need to be stored in Salesforce, you will need to create a custom object for keeping all shipping addresses. You should only store the address for the most recent order on an Account. You will then copy this automatically populated Geocode information to an Order Delivery Task.
Stage #2 Solution: Enhance Original Functionality
When a driver arrives at a location, they click ‘Deliver Order’ button. The app reads their current geolocation and compares it with the geolocation on the Order Delivery Task.
If the difference between captured latitude and longitude and those stored on the Order Delivery Task is outside of the allowed tolerance, a warning alert pops up. A driver can click ‘Deliver Anyway’ button and proceed with order delivery. A record about this event is automatically stored in Salesforce and linked to the Order Delivery Task.
A perfect solution, the way I see it now, will represent an integration between a shipping address on an Order Delivery Task and a driver’s sat nav. I’ll be honest, I haven’t thought about an exact logic of this solution yet as there are too many variables. But I am confident that a way towards this is in using automatically populated geocodes.
Awesome Admin Advice
This blog post is to show how you can benefit from automatically populated Geocodes. Think about your company needs and all the issues you could resolve using this functionality.
You might not be able to write code that will turn it into a working app without Developers help. But your job is not less important. Use your skills and knowledge to evaluate requirements and design the logic. Without the defined logic, Developers won’t be able to do much.