Q2 & Q3 2019

Badge Scanning Improvements in the Akkroo App

Two devices showing the user inteface for badge scanning in the Akkroo app


After the launch of the new Akkroo app built on React Native, there was a big focus on improving existing features and providing a more seamless experience for our app users. A piece of functionality that was severely improved was the badge scanner.

One of the biggest issues app users encountered when using our app was the perception of having lost data when an action was performed incorrectly — maybe they scanned the wrong QR code in an event badge, or their marketing manager forgot to correctly set up an integration with the badge provider. On both instances, the scan would not return any data, thus “losing” the lead and the opportunity for our sales user.

While those scenarios could be classified as user errors, the user perception was that it was the Akkroo app that had failed to retrieve the badge data, resulting in anxiety and lack of confidence in the product.

Badge scanning in Akkroo and similar apps works by scanning a badge, which typically returns a string. These strings are then sent to the badge provider API to be "exchanged" for the data contained in the badge.


We framed this project around the user persona of the Sales Representative — who we named Serena Sales —, the typical user of the Akkroo app.

Using the Jobs to Be Done framework, we arrived at the following goal:

As Serena Sales, I want to be able to know I have scanned the right badge in order to trust that the Akkroo app will retrieve the data contained within.

Discovery and ideation

We tackled this challenge by implementing three different solutions that, in the end, provided peace of mind to our users by assuring them that:

The badge scanning UI in the Akkroo app showing a warning telling the user that there is no badge integration set up for that event

1. There is a badge provider integration in place

By warning users when there is no integration in place, we can manage their expectations by letting them know the app will not be able to retrieve data from badges.

This allows them to either rectify the mistake (in case someone forgot to set up the integration) or make up for the loss of immediate data by collecting additional information.


2. They have scanned the correct code

When using the scanner in the app, we employ real-time validation to assure the user that they are scanning the right kind of code and that the string retrieved is in the expected format.

This helps us avoid scenarios in which the wrong badges are scanned, leaving Akkroo with no way to retrieve data for that lead.

Play the video to see the validation in action.

The badge scanning UI in the Akkroo app showing data retrieved from a badge

3. The badge contains data

By returning the badge data in real-time, we eliminate the users’ anxiety of wondering whether the badge contained real data or not.

By surfacing the information immediately, the users can confirm they scanned the correct badge, that it contained information, and even make additions or corrections.

The badge scanning UI in the Akkroo app prompting the user to scan a badge using NFC technology

Bonus: NFC badge support

In addition to improvements above, we’ve also added the ability to scan NFC badges, a much-requested feature, by plugging it into our existing badge data infrastructure.


This project is a great example of how you can supercharge a feature just by focusing on the possible points of failure and making sure to design for when those happen.

By doing so, we can build a trusting relationship with our users: they know that our product will let them know if anything goes wrong, giving them the chance to correct the mistake and giving them the peace of mind to focus on the task at hand.

Value added:

  • Assuring users they have a badge scan integration set up.
  • Assuring users they are scanning the right badge.
  • Assuring users the badge they scanned contained data.
  • Enabling users to scan NFC badges in addition to QR and barcode badges.