Behind the scenes of Nubank’s Customer Support

How to offer an experience that would WOW our customers while being highly efficient

Nubank's customer support

Lines are one of the simplest and fairest ways to organize supply and demand. On one side, you have anxious customers demanding to be served and, on the other, a limited supply of well-trained employees. Balance those two well, and you’ll get happy customers and fulfilled employees but, if you fail, angry customers and a burned-out team will start to show.

In a growing fintech such as Nubank, this is an ongoing challenge. Banks in Brazil are well known for their poor customer experience, and we wanted to challenge that: we wanted to offer an experience that would WOW our customers while being highly efficient. That is the primary mission of the “Customer Support Design” squad, or CSD, as we call it.

When designing customer support for Nubank, we looked at the experiences available out there and came up with some principles we wouldn’t compromise when designing our customer support experience.

Story of my life.

Customer Support Experience – main principles:

Be simple

Fighting complexity is core to our values, so we wanted something as simple as a line/queue. A platform in which our support agents could just say “Next!” and the next customer would pop up on their screen. It should also be simple for customers. No extensive menus, IVRs, or protocols. Just state your problem, and someone will help you shortly.

Be fair

It’s infuriating when someone else cuts in front of you for no good reason. That’s just not fair! We wanted to create a fair experience, so people waiting longer would be served first, unless, of course, there’s a good reason for cutting the line. Your card was stolen, and the person in front of you just wants to ask a simple question? Well, then you should probably be served first, so we must be prepared for cases like that, too.

Be efficient

Waiting in line sucks, but nothing is worse than jumping through hoops and being sent to other people again and again until you reach someone that can finally help you. That’s a hard problem to solve, and after looking at all different tools out there, we couldn’t find anything that suited us.

The solution: Proximo!

Proximo is a queue management system created at Nubank to help us accomplish what we believe to be important when it comes to customer support. Its primary purpose is to manage several different queues. Each queue represents a specific problem domain.

For example, questions about your bill? We have a queue for that. Problems in a transaction? Another queue. Lost your card? A third queue. You get the idea. 

For each queue, we have trained agents that know everything there is to know about that problem domain. We call them Xpeers, and they are the heart of our Customer Support Operation. Xpeers have badges according to their skills, so if an Xpeer knows how to handle chargebacks, then they will get a badge for that. Learned how to reissue a card? You get another badge.

Those are digital badges, of course, and they are linked to queues as a way to tell Proximo which skill is required to work on a particular queue. Seasoned Xpeers have multiple badges, meaning that they can help customers with different types of problems. New Xpeers have fewer badges, usually for simpler problems, so they can start learning safely without frustrating customers.

A beautiful thing about this design is that we can use Proximo not only for customer support but also to organize back-office tasks in general. So, we created an important concept along with it called job. A job is a Proximo task. It can be a customer asking for support via email, a chat session to be attended, a back-office procedure an Xpeer must accomplish (like validating documentation for a disputed transaction), or performing a quality assessment for a teammate. 

Xpeers sign up to Proximo, so it knows who can work on each queue based on their badges. We developed a back-office WebApp called Shuffle that brings to one screen all the data and actions Xpeers need to perform their tasks. After opening Shuffle, they just have to click on a button called “Start,” and the next job related to their skills will pop up on the screen with all relevant information about that customer.

When they are done, they just click “Finish” and the next job pops up on their screen. Proximo guarantees the fair ordering of the line and makes sure that jobs are being dealt with by only one Xpeer at a time. 

Shuffle brings all information and actions needed to support customers to one single screen.

Our challenges:


Getting customers in the right queue is a huge concern. Get it right, and customers are served by the right Xpeer. Problems are solved at first contact, and satisfaction is guaranteed. Miss it, and Xpeers might have to manually send that customer to another queue to solve the problem.

Transfers are bad in two different ways. Customers get annoyed by being sent across different agents, and our team sizing is compromised since we’ll need more agents in one particular queue just to understand the problem and send customers to the correct one.

To solve the routing problem, we use several techniques, but AI and machine learning are core to our approach. By learning how Xpeers categorize each customer question, our Data Scientists created models that learn how people ask questions.

Furthermore, to these natural language and keyword models, we add contextual models that use customers’ recent information to infer the type of problem they are having. A stacked model finally combines these algorithms to come up with a prediction.

Our first task is to make sure each type of problem goes to the right queue.

That way, whenever a customer writes to us, our platform tries to figure out what they’re talking about by considering their context and places the customer in the best possible queue. We still have a long way to go, of course, but it gets better and better the more we use it.

Today our AI models get it right 75% of the time!


Dimensioning is another challenge and a classic supply vs. demand problem. As a simple goal, we need enough Xpeers working in the queues, so customers don’t have to wait too long. For each queue, we track the median “first response time” (or FRT), how long it takes for a customer to be served. FRTs should always be “under control,” meaning it should not be either too low (our Xpeers like talking to customers!) or too high (customers waiting for too long). 

Being able to balance those two levers is tricky and is a full-time job tackled by a team of Analysts here at Nubank. Their job is to figure out how many people we need for each queue at any time of the day, week, and month (seasonality matters!). They come up with Xpeers allocation, training requirements, and hiring plans.

To support that task, we make sure Proximo provides as much data as possible for them to work with. So, we gather a lot of information about the jobs we do every day: how many of them are sitting in queues waiting, how many were solved, how long it took to solve them, how long a job had to wait, etc. 

We need to balance supply and demand.

Our Analysts use that data to build dashboards that are visible all over the squads (we do like big TVs around here) and help managers keep track of queue sizes and adjust dimensioning on the spot if needed. We also use them to feed our hiring models, so we know how many new Xpeers we are going to need in the future.


So, at this point, we’re sending customers to the right queues and have enough Xpeers working on each one of them so they can be served in a timely fashion, right?

But are our customers’ problems being solved? Are they being served thoughtfully and with care? To make sure of that, we invest a lot in training, but we also use technology to help us check how our Xpeers are doing. For that, we developed a new job type inside Proximo called Atenta.

Checking samples.

Atenta is a quality control job that only selected Xpeers have badges to use. It chooses previous customer support cases at random and shows them to this team for review. The reviewers check the conversation history and give feedback regarding the procedure and “tone of voice” used by the Xpeer. Additionally, once a customer support job is finished, we ask customers for feedback. That is a key metric to keep track of at all times.

So, what’s Next!? (pun intended)

Today, Proximo manages almost 200 different queues and routes nearly 60,000 jobs to hundreds of Xpeers every single day. It has become a core tool to help make our award-winning Customer Support a reality, but there are still many things we’re working on in CSD.

Improving Self-Service

As we grow, Customer Support grows with us. The more customers we have, the more Xpeers we need to hire, and that becomes more challenging by the day. Hiring people is hard, takes time, and requires more physical space. Besides, onboarding and training new people put a lot of pressure on the fantastic team we already have.

To unleash our growth, we need to be able to handle more customers without growing our support team as much. And for that, we strongly believe in empowering our customers through our app and educating users so they can solve most problems without needing to contact us. That’s what we call self-service, and it’s a core goal of the CSD squad.

Self-service means having no tickets whatsoever.

We improve our app continuously to make it even more intuitive and simpler. There are several efforts we work on to improve our self-service initiatives while preserving the excellent customer experience our users grew accustomed to. We have some thoughts to share on this front, but that’s a subject for another post.

(Thanks to Paula Rothman) 

Enter your name