Building Apps For the World’s Poor: A Call For a More Inclusive Messenger Developers Platform

Pierre-Marie Riviere
The DApact
Published in
10 min readSep 16, 2018

--

A word about cultural peculiarities and low tech literacy

TL;DR

In many low-income countries, Messenger is an ideal channel to reach out to the underprivileged

Developers targeting these populations are hindered by poorly designed tools that do not take into account the cultural and economical specificities of low-income countries

This article rolls out proposals for improvement in the illustrative context of Cambodia

A few months ago I sent this feedback to the Community Management peeps at Facebook Messenger, in support of a feature request. I’m reiterating the arguments of the original piece in a public article here because I think there is a case for all devs in low-income countries, and for the Messenger team, to reflect on — and hum, my feature request hasn’t been implemented yet.

Starting with a bit of context, move your eyes down 1,000px if you just want to get straight to the point. We’re using a Messenger Chatbot to let unbanked people in Cambodia apply for microloans at multiple counters in one shot. This is very efficient for both microborrowers who increase their chances to find a lender whom they fit underwriting criteria as well as for microlenders who get access to prescreened loan applicants with proven available documentation.

Basic workflow:

  1. Disclose microlending conditions to the applicant
  2. Collect desired loan features
  3. Collect applicant gps location
  4. Collect personal documentation (id doc, utility bill, etc.)
  5. Resolve loan destination (what is the purpose of undertaking a microloan)

Getting this set of information is usually a costly process for microlenders, requiring multiple field visits and man-hours, as well as trust in the intermediary/staff collecting the data. With extensive use of computer vision, OCR and Speech-to-Text we make it quick & cheap. The interview process, in microfinance, is very much linear and standardized. There is an overall good use-case for chatbot here.

Now let’s dive into our topic, and we start with a counterpointed statement.

Messenger is a key channel to reach out to the World’s Poor

If you ever try to purchase a new smartphone in Cambodia, you’ll be surprised the merchant will unbox it right after you handle him the cash. No he ain’t checking for a dead pixel, but he is about to supercharge your phone with all the apps you need to survive in the tech era (plus a ridiculous number of games).

Why would he do that?

No this is not (well, not only) an Asian crack-it-all atavism. It’s more like when you treated yourself with that internet box and a company guy came over your place and set it all up for you. Might sound silly, but most people in Cambodia are not comfortable with creating an Appstore account, and finding and downloading apps, so smartphones retailers are expected to do it for your convenience.

Born late to the tech era, the economic poor strive to awaken to simple concepts the West had two full decades to grow used to

I see you’re unconvinced, so let’s break down the process of downloading an app.

First, you must have an Appstore account. This underlies having an email address. The object “email address” is often poorly understood in low-income countries because most people started to use the Internet with working Web 2.0 applications. Wake up 80s people, email is plain spooky now! Here is a recent case I’m involved with. One of my Cambodian acquaintance currently has a small Bitcoin problem: he cannot withdraw the ~4 BTC he holds on the decentralized crypto-exchange Binance (yep he is not one poor fellow). How come? Turns out he lost access to his email address naraxxx2017@gmail.com. Actually he just deleted it in January. What better way to celebrate the new year than having his address changed to naraxxx2018@gmail.com? At time of writing I think he’ll just have to forget about his BTC as it seems there is no way he can ever withdraw them from an unverified account.

Second you need to know what you’re looking for, aka the name of the app. Easy. Not if your native script is not the Roman alphabet (most apps just have a Roman script name). Not if your cultural norm is to not pay too much attention to orthography because how words sound is what matters — people will often misspell names in Cambodia, including local names, because it’s not deemed important / respectful to write names down properly.

Third, you’ll have to download the app. While this is just tapping a button, that button can have a real-world repercussion on your bank account (if it’s connected to the Store). This is mainly scary for Cambodians, who are used to misunderstanding internet stuff and try to avoid anything that can potentially suck their wealth. This is not to talk about the extremely low banking penetration in low-income countries (~20% in Cambodia) which prevents people from downloading apps altogether (remember linking a bank account used to be mandatory to get an Apple ID? That wasn’t so long ago).

The conclusion I want you to draw here: If you ever want to reach the less included populations in the less included nations, you’d better not ask them to download an app. Nesting my wisdom in a 10x theorem:

Any tech design friction is 10 times as much an impediment when dealing with the economic poor

Facebook Messenger is on every single smart device in Cambodia. Actually, a study by USAID and the Asia Foundation found that Messenger is the most widely used app on smartphones after flashlight and the camera! In this 2016 study, Facebook penetration was marked at 50% of total population, nearly as high as in the EU, and just 15 points under the US. Two years after, smart device are becoming an even more common item seen in the hands of the working poor, and people might live in remote, forsaken areas but there is always some uncle around with an access to the world wide web.

So before spitting fire, let’s say it clear and loud: thank you Facebook for providing devs with such a far reaching tool to address under-the-radar populations.

Dealing with low literacy

In low income countries, many people haven’t been to school beyond the age of 10. Reading abilities, thoroughness, business process understanding are poor. Meanwhile the GDP doubles every 6 years and people have been drawn to the tech era within just a few years. The USAID study I quoted above points out:

“While almost half of Cambodians said they used or had used Facebook in the previous month, just 37% claimed to have used the Internet”.

And the researcher to conclude “it presumably reflects the fact that some respondents don’t know that when they use Facebook they are using the Internet.”. This is how much people understand what the internet is.

Almost everyone can read in Cambodia. But almost everyone sucks at orthography too (and people don’t really care about spelling anyway, as explained above). This makes the use of NLP totally useless in our chatbot, and has constrained us to limit the volume of qualitative information we ask to the user (hopefully Speech-to-Text + Google translate has proved a satisfying workaround for specific cases).

It’s also proved very challenging to efficiently explain users how communication with a chatbot works. People with little school education tend to try out things as per their intuition and ignore the rules they are given. No matter how we explain that the bot is an automated conversational agent that sends buttons (quick_replies) to be tapped, but does not actually read free-text messages or listen to audio messages, people keep talking to it as if it was a human. Some users also seem to find not so intuitive there is a prompt to tap when a button is sent (although they are a minority of users).

Serving the low tech-literate, devs must use narrow-funnel design principles to avoid loosing users in a maze of complexity

If the chatbot does not do NLP and does not comprehend free-text messages, why don’t you just use disable_composer : true? I hear you ask.

Well, my little friend, this is because our chatbot prompts users to send pictures of personal documents at some point in the workflow, as well as their phone number, and one audio message.

(so yep, I know there is a special quick reply for phone number by now, but turns out Cambodian people usually have 2 or 3 phone numbers, and they might not use the one associated with their Facebook account — if only it really is their account).

Given that quick replies are only of two types (text and location), disabling the composer would prevent our users to send us these images/audio. On the other hand, keeping it enabled creates unwelcome, error prone freedom for the user to test his intuition that he’s talking to an actual, stunningly fast-typing human. So we’d really like to disable this composer while keeping the essential features of our bot.

Having an image type of quick_reply would also let devs specify how many images can be sent at a time, which is useful to avoid errors when performing tasks with the image.

On a side note, this would also allow for an opt-in field to get long-awaited-by-many uncompressed files (as is often recommended for improved accuracy in Computer Vision and Speech-to-Text analysis), without clogging up Facebook’s server with unnecessary HQ-for-all bits of data.

Dealing with cultural peculiarities

Another legit question you could ask is: why do we do OCR on documents instead of asking users for their name, birthday and address? As referenced earlier, there is a real who-cares approach to spelling in Cambodia. So people would sometimes give a different orthography of their name than the one on their ID card (believe me this is NOT acceptable in banking).

Besides, those of you who’ve traveled to Thailand, or Lao, or any Mekong region country will probably have noted that people really have an ingraphicacy issue. Yes, that’s the word for “inability to read maps”, thanks me later. On top of that, 95% of people in Cambodia do not know their very own address. I just came up with this figure but it’s close enough without a doubt . People here don’t give direction in the form of “I’m on street x, corner of street y” but be like “I’m close to market x, so get nearby and, hum, yeah call me then”.

In microlending, an applicant address is an important piece of information. So we go for a location quick reply, asking user to check in once they are at home, accepting only current location(not pinned_location, as this would be incorrect 99% of the time). Beyond the friction generated by asking users to move their butt home to move on in the application flow, we’ve also found out that some users, if they did click the “send location” quick reply, do not understand they should tap the ✉️ button once on the map, and rather just close the map view and get stuck at this stage (remember most people never, ever use geo-mapping functionalities in Cambodia).

We think it’d be extremely cool if Messenger allowed us to receive geolocation data as a user taps a location quick reply button, without enforcing the opening of an overkill webview.

Here is another fun fact for you. This is what a chat thread with my Cambodian friends look like on Messenger.

Khmer is a difficult language to write (and read), plus it hasn’t been long since the script was accounted for by smartphones operating systems (Khmer was only available as an unofficial cracked version of the Thai script unicode until 2012). So people here don’t actually write messages in Messenger, they speak out their messages. This is something we’ve had to count with in our UX, and a reason why we have built a Speech-to-Text engine — which ideally supposes lossless audio encoding #featurerequest.

Another specificity of Khmer script (that applies to every Pallava script) is that signs stack up. The Khmer for “me/myself” is ខ្ញុំ​ (historically meaning “I’m your slave”, if your were curious). Messenger platform has understandably limited text quick_reply to 20 characters in order to keep buttons under a reasonable length. That works fine most of the times with Roman script, but Khmer being a very much paraphrasal language, with concept expressed with many more words than in English, it is sometimes not enough. Indeed, ខ្ញុំ​ accounts for 5 characters, even though the design argument (i.e. button-sized button) doesn’t apply here. This is not an isolated case: many languages don’t have the rich vocabulary of culturally dominant nations. Words lack to express concept, or even stuffs. So dear Facebook, please chill out a little with the whole 20-characters limit thing. You could use your multicultural workforce to segregate which languages should be 20 max., and which ones could be 30 max?

Conclusion

Dear Messenger team member reading these lines, thank you, partner, for giving us this incredible Chatbot tool. You rock. I’ve been rolling out my personal experience working with Cambodian peoples all along this article, but believe me you will find similar problem in every each under regarded community (because it is too small or not significant from a GDP per capita perspective). But hey, you’ve made it a mission to “bring the world closer together” so how about you adapt a little bit to cultural and knowledge discrepancies? You’ve already proved you can do that when it comes to acquiring users e.g. when you allowed people to subscribe just using their phone number even though that probably didn’t deliver without a wrangle with your privacy/security department. We also, as developers on your platform, face specific user needs and a great great desire to create top-notch services.

The DApact is a blockchain framework for microfinance operations.

You can follow us on Twitter or join the Telegram

--

--