The Monzo Weekly Diary 2.0

Unfortunately the merchant has to implement 3D Secure for their website so Monzo won’t be able to guarantee that your online transactions are authenticated this way.

But if the merchant does implement it, Monzo will be liable for fraudulent transactions on their website so I expect they’ll be keen to do the check which is good.

Here’s a pretty good overview of how 3D Secure works -

https://www.ecomm365.com/faq.aspx

2 Likes

That was a diary entry worth waiting for!

2 Likes

Hey everyone, and sorry for the delay! I’m an engineer in our internal product team. A big part of what we do is building features to make sure we can resolve customer issues quickly, even as we grow. This sometimes involves building features for our internal web tools that help our support team respond more quickly to support enquiries.

Another way to quickly resolve issues is to provide more support in the app, so that there’s no need to get in touch. This has a fantastic dual effect:

  • Many people get a resolution to their issues right away instead of waiting for a response from our support team (although they’re very quick, and definitely worth having a chat with!)
  • Load on the support team is decreased, so we can respond quicker to more complex queries that can’t be resolved in the app.

Because the inner workings of payment systems are very complex, many of the enquiries we receive are around transactions. For instance, the first time you use Transport for London services, you might be a bit bewildered by a charge appearing in your Monzo account a few days after travel. Or you might be surprised to see two transactions in your account for a single trip to a US restaurant — one authorisation for the cost of the meal, and one for a larger amount including the tip.

Based on transaction data, we can often identify someone’s transaction issue programmatically. What we’ve been working on this week is a new feature to show context-sensitive help content when you click “Something wrong? Tell us!” from the transaction screen.


(Note: These screenshots are based on a design rather than the implementation.)

A few thoughts on this feature:

  • Crucially, we’ll suggest options that we think most likely apply to this particular transaction. In the screenshot, the transaction is in Euros, so it’s probably a foreign transaction. Information about fees and charges abroad might be a helpful option.
  • If someone taps :-1:  No, I still need help”, we’ll get them straight through to customer support. It’s important that our improved in-app support doesn’t get in the way of customers getting help from a human.
  • We’ll use metrics for the :+1:   and :-1:   indicators to develop our content: both in terms of the the content itself and the options that we show for a particular class of transactions.
  • In the future, we want to use machine learning to come up with better rules to suggest help content. Our hypothesis is that sophisticated algorithms can probably come up with better recommendations in less time, compared to the time-consuming work of identifying classes of transaction issues and writing rules by hand.

Currently, the help content that we show is based on specific hard-coded rules. For instance, if we detect that a transaction is from Transport for London, we can show a help option that explains how TfL charge fares based on travel patterns over a full day.

Of course, not all transaction enquiries can be resolved in the app. People will need to get in touch with us as we develop our help content, and some transactions simply can’t be resolved by help content — such as when a merchant has made a charge in error.

In the future, we’re hoping to support menu options that go beyond help content. If a transaction is declined at the point of sale but goes through as an authorisation, we could offer “This transaction was declined” as an option. This might reveal a screen where you could upload a decline receipt that our customer team can verify and subsequently reverse the authorisation.

We’ll be trialling this feature in the coming weeks for a small number of customers. If we consider the change successful based on our analytics, we look forward to rolling it out to all customers.

I’d like to nominate @nigel for the next update! :monzo:

28 Likes

@enginoid It’s stuff like this that makes me :heart:️ monzo even more :+1:

1 Like

That was a great entry, thank you @enginoid

1 Like

Hey guys, I’m a data scientist in our two-person data team. We’re responsible for all the data related stuff for the company, anything from setting up and maintaining ETL pipelines so we can get clean accurate data, creating dashboards to track our KPIs, doing analysis/modelling to inform decisions, to creating machine learning data products.

One of the things I’ve been working on this week was modelling growth of our users. When a user signs up for a Monzo account, we track where they came from. Unfortunately, lots of signups can’t be attributed to a source. The model I’ve built helps us answer: of all the untracked users, how many came from word of mouth, and how many came from Monzo’s organic brand growth?

For those interested, I modelled this with a hierarchical/multilevel Bayesian model with heavily informative priors that impart our domain knowledge into the model. I also borrowed a few techniques from Facebook’s Prophet. Unfortunately, I don’t think I’m allowed to share my findings with you :pensive:. All I can say is that the results look pretty good for Monzo so far! :tada:

Another thing I’ve been working on is an attention based model for customer support. As @enginoid mentioned, we’re trying to make our customer support scale. This model basically takes a customer support enquiry and determines which sentences/words are important in order to resolve this issue. We can do many things with this model: build a classifier on top of it for auto-tagging conversations, use it as a search ranking algorithm for our in-app FAQs, or if we feed it transactional data, it can tell you what transaction a user is most likely asking about, making this a super versatile base model to use. An additional bonus is that it makes whatever model you’re creating down the line a lot more interpretable since you know why a model make a certain decision.

Here’s an example of what the model outputs (glad I can at least show this). It tells us that the first sentence is the most important, and the most important words in that sentence are ‘annual’, ‘withdrawal’, ‘limit’, ‘renew’. Pretty cool stuff! :grinning:

Happy to chat about this stuff if you’re interested! I’d like to nominate @yehudi for the next update

16 Likes

Hello :wave:

I’m Yehudi, and I’m in Monzo’s Customer Operations team :wave: I’ve mainly been working on complaints for the last few months: dealing with incoming complaints; designing and delivering training packages for the Customer Operations team; alongside working with @StuartM , @leah , @thomasageorge and @Patrick to refine our internal complaints procedures.

I’ll be writing a blog post about in the future, so this’ll serve as a preview to that, and I don’t want to give away too much just yet :wink: however I’ve pinched a few key paragraphs from the upcoming blog, as I believe that this a good opportunity to set a few things out about complaints at Monzo.

To begin with, we love dealing with complaints. We really do. It might sound intense or emotionally taxing, but we feel a connection with anyone we speak to who’s voiced disappointment about us. On a personal level, I love that each complaint we receive represents an opportunity to transform that disappointment into something better.

I’m very, very passionate about this, in fact, we all are: the last thing we want is some perfunctory process which exists solely to tick the regulator’s box. We believe that there’s real value in listening to and learning from the complaints we receive from our community, and wherever possible, we want to collaborate, feedback internally, and drive improvements based on what we’ve learnt from those complaints. To help us achieve that aim, I’m in the process of working through the following questions:

  • Procedure: What’s the optimal way to receive complaints? How can we deal with them efficiently, carefully, and in a way which shows that we’ve really taken on board the feedback we’ve received from a customer?
  • Reporting: How can we use the information we receive from complaints to improve? What are the common trends and themes? How can we best extrapolate root causes to prevent us from making the same mistakes with other customers?
  • Apologies: If we’ve made a mistake, what can we do to offer a personalised, meaningful apology? It’s sometimes appropriate to offer financial redress - particularly if we’ve messed up in a way which has impacted your finances, but sometimes, in comparison to a quick apology and cash deposit, a heartfelt, unique apology can mean so much more.

I think answering those questions will help us in our effort to deliver world-class customer service at all levels. If you ever make a complaint, we should treat it seriously, make things better for you, learn how we can make improvements based on your experience, and then apply those improvements to make those things better for everyone else too.

I’m very excited about developing a culture of collaboration, in which we work together with our customers to develop the best Monzo possible, and I believe that complaints will play a crucial role in that effort. As promised earlier, you’ll be hearing more about this in the future, so stay tuned!

Next up, I nominate Ivan, from our awesome Android engineering team :smile:

11 Likes

Thanks Yehudi - another great post in this topic.

The Monzo team already seems to do a great job of resolving issues & complaints but in my experience, closing the feedback loop - explaining the specific follow up actions that Monzo plans to take, to improve on something that a customer’s raised, to that customer, if something can’t be resolved immediately - seems to be a challenge.

Hopefully we’ll hear more about that in the blog :slight_smile:

2 Likes

Hello :wave:

I’m Ivan and I’m an android engineer in the external product team. I joined Monzo 10 months ago and I’ve been working on the Android app since its first version that was released in September last year. I usually work with another two amazing android engineers @kavi and @emmag, and we are looking for more android eng to join us so please apply if you’re one! :wink:

My day-to-day work involves implementing new features in the Android app, fixing bugs when you report issues with your app and also ensuring our codebase is kept in good shape and that we use the best possible technologies that allow use to move fast. For example, we have recently started using a new programming language Kotlin to write our Android app. Kotlin is a modern programming language that has many benefits compared to Java. This will hopefully allow us to write features faster than before and also reduce the number of bugs that we create when implementing those new features :tada:

Most recently, I’ve been focusing on adding current account features to the Android app :bank: (this is why we haven’t released any new major feature to the Play Store recently). For example, I’ve been adding bank payments so you will be able to send money to an account number and sort code as well as setting up recurring and scheduled payments (aka standing orders). The first version of this feature is now implemented on Android and we’re testing it internally :rocket:

This week I’ve been working on a new identity verification flow :camera_with_flash: The new identity verification is similar to the previous one but it will allow us to verify your identity quicker than before. It also has a bunch of improvements as well as camera fixes for some devices like the LG G4.

That’s all for now :slight_smile: Next I nominate @priscila

20 Likes

I’m really delighted to hear that standing orders etc are on the horizon! Also great to hear that there is investment going on to help the Android app along, was good to see an update from @kavi doing his bit. Keep up the good work, guys! :sunglasses:

1 Like

Hello there! I’m Priscila and I’m the product tester at Monzo. I joined the team in early February and hit the ground running testing the Android and iOS apps.

I spend my time checking everything new and rechecking everything old. Basically making sure new features work as expected and that nothing pre-existing has been broken due to recent changes. :mag_right: :bug: When someone in the external product team tells me an issue has been fixed, I make sure that’s really the case, before a release goes out to you.

I keep my eyes open to any bugs reported by users through the COps team. :eyes: When the issue sounds like something I’ve seen before I let COps know so users are aware we’re working on a fix for it. On the other hand, if it’s something new, I get super excited and try to reproduce it so the Android and iOS engineers have clear steps for approaching the bug.

Recently I’ve been testing the identity verification flow mentioned in this blog post, as well as everything new we’ve been working on for current accounts (e.g. faster/scheduled/recurring payments). It’s all very exciting for me and I can’t wait until everyone has their very own Monzo current account.

I also help organise our weekly user testing sessions in the office. That’s when we get a handful of people to come in, talk about how they bank and use the feedback to make Monzo something great. We are planning a session for the 22nd of June, Thursday, with some non-users. So if you know people who are not Monzo users yet and who would be keen to come in and talk to us, please let me know! The session is at 12h and we’ll provide lunch.

That’s all folks! I’d like to hear what @stompydan has been up to!

10 Likes

I can’t echo this enough! Please spread the word amongst family members, friends, neighbours pets… everyone! Input and feedback from people who aren’t yet familiar with Monzo will help us build a product which truly caters to the needs of everyone!

5 Likes

Hello again, you may remember me from the first diary thread. I’m currently on our Internal Product team, working on the tools our good COps people use to help you :slight_smile:

One of the two main tools is the Supportal, where we can get all the relevant details about you when you contact us, and click buttons to do various things – like order replacement cards, or change your name, and so on. I’m working on slicing and dicing the code so that it starts to understand its own structure, and is able to customise itself to particular tasks. It can then also allow COps people to find the action they want to perform quicker, through an interface similar to Alfred or LaunchBar. Another benefit is that this will make it easier for other engineers around the company to extend Supportal and support the particular things they’re building. This is all in the service of making it quicker when you contact us for some help. Also, I’ve kind of always wanted to build a sort-of command-line interface like this!

I nominate @vuokko for the next one…

14 Likes

Hi :wave:

I’m Vuokko, and I joined the Monzo design team in early June. We’re a team of four now, and we work horizontally across the company — which is awesome, as we get to work with everyone and on everything that goes on at Monzo :bank:. For example, during my first few weeks I’ve worked on infographics and illustrations (together with our community team), on new transaction details for Android :robot: (together with our external product team), and on features that will make our COps team’s lives easier (together with our internal product team). Right now I’m working on a 3D Secure flow that we’re presenting to Mastercard :credit_card:.

I’m super happy to have already gotten to user test my work and meet some of our lovely users :raised_hands:. We hold weekly user testing sessions for new features every Thursday, so do get in touch if you’d like to come visit us, have some lunch :green_salad: and weigh in on what we’re building. We’re also looking to hire a user researcher, so if you know or are one, let us know!

That’s all from me for now :v:️. Next up, I nominate @constantijn!

13 Likes

Hey everyone :fist_right: :fist_left:

Thanks for the nomination @vuokko! I joined the Internal Product team in mid-May as an engineer and have been focussing on two things since then.

The first is supporting @stompydan in overhauling a lot of our Supportal code to hopefully soon fulfil our Spotlight :mag: dream of letting :policewoman: COps :policeman: search for actions rather than scroll around. So much efficiency!

The second is the start of a huge project we’re scoping out: doing all support using our own software :upside_down_face:. You might ask why :question: So many reasons! I’ll list a few. The less we rely on third party software, the more reliable it gets. When we are in control of the whole experience we can also make it a lot nicer :raised_hands:, with more contextual information. For example, when you report an unrecognised transaction :woman_shrugging: we could show the feed item you are referring to directly in the chat :left_speech_bubble: . We can also crank the level of contextual information for our COps to over 9000, enabling them to help you better and faster.

At this point, the obvious question is how are we even going to do this? Outside of the Supportal, the second major tool Internal Product supports is the BizOps queue. This is where all types of tasks that require input from people live, whether its verifying your identities or approving merchant data feedback :world_map:. This is exactly where all support conversation will one day live. Of course we can’t make this change in one fell swoop :eagle: , so we are tackling email :email: support first, baby steps :footprints: if you will. Over the last few weeks I’ve written a very detailed RFC (Request For Comments, scroll up to @oliver’s post near the top for more details on what this is) on how we’ll tackle this problem. In the coming weeks we’ll be implementing this and rolling it out slowly until eventually all support emails you receive from us come directly out of BizOps!

I’m going back to building my email microservice, I hope this was interesting. Nominating @Irina next to see what she’s up to :pray:

13 Likes

Excellent to hear. Intercom is ok when using it, but the alert interactions and interface to reach ongoing conversations is awful, and there are other little issues.

Also, you score :100: on emoji use :tada: :grin:. Really enjoyable to read! :sunglasses:

2 Likes

Hi everyone! :wave:

Thanks for the nomination @constantijn! A slightly belated update from me since I was on holidays (a roller derby convention!) in sunny Barcelona last week :sunny:

This week was very exciting for us as we split the Core team into the Platform team :cloud_with_lightning_and_rain: and Payments team :money_with_wings:!

Our new :money_with_wings: team is responsible for everything related to payments and card operations. We’re working on making sure you can buy anything with your current account card (Mastercard), send money instantly to other bank accounts (Faster Payments) and set up Direct Debits (Bacs).

The :cloud_with_lightning_and_rain: team is in charge of the infrastructure at Monzo. They’re the people designing the systems that the bank runs on top of, making sure that everything runs safely and smoothly and that we stay connected :electric_plug: to all our partners, like the payment networks.

This week the :money_with_wings: team was working hard to make sure we can offer “unassisted" signup ASAP :soon:. Unassisted means (amongst other things) that you can sign up for a current account in the app store version of the Monzo app, and have a card (with your name on it! :name_badge:) arrive at your door.

We’ve also been improving our Bacs processing. To handle Direct Debits and Direct Credits (e.g. salary payments :money_mouth_face:) we need to do two things: automatically download payment files from the Bacs network and manually upload reports. This week I was working on making sure we can re-process files that we’ve downloaded before as many times as we want without duplicating :dancing_women: the payments inside them. @daniel.cannon was making the uploading of reports less manual by batching up all the files into one so that it only has to be uploaded once a day.

Guillaume, you’re up next!

15 Likes

Hey everyone,

Thank you @irina! I’m Guillaume (pronounce it Gui-yomeu :upside_down_face:). I’m an engineer here at Monzo and I’m part of the new Platform team :cloud_with_lightning_and_rain:. We are focused on making sure the infrastructure is perfect to run a bank :bank:; Here are some things I’ve been working on in the last … 6 months :stuck_out_tongue_closed_eyes:

  • Every time something happens on the platform a bunch of events are fired to perform tasks such as augmenting the transaction with relevant information and emoji. We use a tool called NSQ to do this, and I’m migrating the platform to Kafka because it better fit our needs.
  • I also started working on improving the way store our metrics :chart_with_upwards_trend:, because we have reached the limits of our current solution. The metrics are vital to us, as they allow us to monitor the platform.

In other news, we currently have 676 activated current accounts :tada: and we’re working hard to deploy more of them :muscle:.

Ho! … and I’m also the on-call engineer for this week​:man_firefighter:… So If anything goes wrong :rotating_light: on Thursday night at 3am while you try to buy your last drink :cocktail:, I’ll be the guy in front of his computer who makes sure everything run smoothly on the backend side :fire_engine:

I nominate @robinm for the next one … :slight_smile:

Have an awesome week!

7 Likes

Do they call you ‘Will’ at the office? I’m struggling to pronounce your name and I’m getting funny looks in the office here :rofl:

Hahah @BobT ! Everyone is really good at saying my name :smile: so I don’t need to use a simpler one

2 Likes