GO-SEND is used to send packages between locations. Whether you need to get the charger you forgot at home picked up or send a cake to your friend on her birthday, GO-SEND is your go-to product.
Anything you need to move from one place to another, you GO-SEND it.
GO-SEND has two different delivery types you can choose from. You can use
Instant when you need to get the package delivered urgently (costing you a bit more, since a dedicated driver is assigned to your order). If you’re fine with the package being delivered a little later then you should definitely use
SameDay as it might save you a few bucks (multiple
SameDay orders get batched together).
Now that you have context of what GO-SEND does, let’s get to the interesting part. This post explains how we discovered a fraud in package returns and fixed it.
The problem with packages
Let’s take an example:
You place a GO-SEND order to send a cake to your friend.
You receive notifications about the status of the package:
- Driver is on his/her way to the pickup point.
- Driver has picked up the package.
- Driver is on his/her way to the drop off point.
- Driver couldn’t deliver the package (door was closed).
- Driver will return the package to you soon.
- Driver has returned the package.
Everything seems perfectly fine, right? WRONG ! Everything was perfectly fine except for one small thing.
You never got the package back!
We faced this conundrum quite a few times. Users complaining about packages not being returned, while drivers claimed that they returned the package successfully.
Since we had no proof of who was telling the truth, we had to compensate the user for his/her loss and also pay the driver as we couldn’t penalise him/her without any evidence.
GOJEK was burning a lot of money due to this fraud. So we pulled up our sleeves and began thinking of ways to mitigate this particular issue.
Rather than waste valuable resources finding culprits, we decided to eliminate the problem.
Enter Project Boomerang
The existing flow of package delivery warranted the drivers to scan a QR code before marking the order as picked up/delivered/returned to make sure the correct package is delivered to the recipient (drivers carry multiple packages in their bag at any given time).
We added one more layer to this process which would enhance security and eliminate the issue entirely.
Now, when a driver tries to mark the order as ‘returned’, the sender gets a verification code for that order. The driver has to enter this code in the app to proceed with the return request.
This ensures that the sender is aware of the return request placed by the driver and must validate it for the driver to complete the return.
Going the extra mile
To make our defence stronger and add one more weapon to our arsenal, we came up with Project Terminus.
We implemented geo-fencing to make sure the driver is within a predefined boundary from the pickup/drop off location when he/she tries to mark an order as picked up/delivered/returned.
A geo-fence is a virtual perimeter for a real-world geographic area.
This ensures that the driver has to reach the location to request a status change. After deploying these changes to production, we haven’t received a single complaint about users not receiving their packages back.
In case you were wondering… 🤔
Project Boomerang — Because the package is being “returned” to the sender.
Project Terminus — Terminus is a Roman God responsible for protecting boundary markers.
Scaling a Super App comes with opportunities and challenges in equal measure. Lucky for us, everyone at GOJEK loves a good challenge. Our team of 250+ engineers built and scaled a Super App with 18+ products in just three years, and now we’re expanding in South East Asia. Head to gojek.jobs and come help us find smart solutions to problems that matter. 😎