When word started to spread about Amazon’s new initiative to capture photos upon delivery, the Onfleet team smiled.
Having introduced some form of photo capture to the Onfleet driver app back in mid-2014, it seemed like Amazon was a little late to the scene (like four years late). Not to toot our own horn (toot toot), but Onfleet captures and stores over 300,000 unique photos per week. On second thought, late might be an understatement.
John Haber, CEO of Atlanta based supply chain management firm Spend Management Experts, recently said in The USA Today:
For UPS and FedEx, getting a delivery confirmation signature costs about $5, it’s a huge revenue generator. If Amazon’s just offering it as standard proof of delivery, will the other parcel carriers have to match it?
Yeah… Onfleet offers signature capture upon proof of delivery as well. We also support barcode capture, which has been a very exciting development for some of our largest and most complex last-mile logistics customers.
Integrating the Onfleet barcode feature through our API is simple and only requires a few additional lines of code upon task creation. The easiest way to enforce specific barcodes requirements is to create a task with requested barcodes and simply blockCompletion of the task unless the required barcodes have been scanned.
WARNING: Code does appear after this line, but have no fear! Read on and we’ll get through this together.
Example API Calls
An example of a barcode requirement POST
would be:
$ curl -X POST "https://onfleet.com/api/v2/tasks" \
-u "cd3b3de84cc1ee040bf06512d233719c:" \
-d '{"destination":{...},"recipients":[...],...,"barcodes":[{"data":"aG VsbG8gd29ybGQh","blockCompletion":true},{"data":"aG93IGFyZSB5b3U/"}]}'
In order to block completion of a task until your driver has captured all required barcodes associated with that delivery, simply apply the following “blockCompletion”: true
snippet (with updated task ids):
{
"id": "0VuO6yDq5YrGeZ7NVwUqK8hu",
//...,
"barcodes": {
"required": [
{ "data": "aGVsbG8gd29ybGQh", "blockCompletion": true },
{ "data": "aG93IGFyZSB5b3U/", "blockCompletion": false }
],
"captured": [ ]
},
//...
}
You can also retroactively update an existing task with barcode requirements with the similar logic, just with a PUT
request to update the existing task. See our docs for this distinction.
The Results
Take a look at what your driver will see when the delivery they are completing has multiple required barcodes:
Chain of custody is a challenge that all delivery operations struggle to maintain, but with a smart barcode management system, this challenge can be turned into a competitive edge (warning: that was potentially contagious optimistic thinking).
Accessing this Captured Onfleet Data
Accessing barcode information captured by your drivers, and signatures or photos for that matter, is made incredibly simple through Onfleet’s API as well. An example of a standard barcode property would look something like this:
{
"id": "9I4cmNGtVTm5VRcq7B*lymEA",
//...
"barcodes": {
"required": [],
"captured": [
{
"symbology": "CODE39",
"data": "QkMzMjE=",
"wasRequested": false,
"time": 1498500964205,
"location": [
-122.42855072021484,
37.78808138412046
],
"id": "ku0fpiCqJPC25h3W0cnfgqNn"
},
{
"symbology": "UPCA",
"data": "MDEyMzQ1Njc4OTA1",
"wasRequested": false,
"time": 1498500964205,
"location": [
-122.49481201171875,
37.75307256315459
],
"id": "leElaPdbWobzlwDoP5MuHA~h"
}
]
},
//...
}
Lost packages, incorrect deliveries and general field visibility can be a source of constant headaches. However, with a printer, a massive roll of labels and Onfleet’s API, you can start competing with even the biggest players in the last-mile logistics field.
If you’d like to learn more about how barcodes might fit into your operations, visit our docs or don’t hesitate to reach out to contact@onfleet.com