Wise Data Science
Mapping the contact problem space
Wise customers contact our customer support when they encounter issues or difficulties using our product, or to remove any confusion and get a clearer understanding of how everything works. This serves as one of our most valuable forms of customer communication, and provides us with direct feedback about our product - highlighting where it is confusing, where problems exist, and what our customers actually need. The more we grow - which has been substantial over the past 10 years - the more this happens, it’s a fact of life for us. So much so that one might be inclined to rewrite the age-old adage “nothing is certain except death and contacts”. Understanding the problems customers encounter during these interactions is a crucial step not only in providing better customer service, but also in improving our product overall.
In order to serve our customers we offer the ability to contact us via multiple channels - email, phone and chat. We refer to the last two as our live channels, allowing our agents to help customers in real-time and we see higher rates of resolution on these channels. For the past 2-3 years we have been working on automated ways to assist the customers who contact us via email and chat, when we believe it makes sense to do so.
With every contact the first step is understanding the problem the customer is contacting us about - this is what our expert agents do too, on whom we model our automation system. This post will describe the approach we used to build our automation system’s core “problem understanding” component.
Defining problems
To begin with, we had to create a well structured definition of what a customer problem is. We ultimately arrived at a definition which broke down the problems customers contact us about into two attributes:
Customer problem = customer intent + additional information (optional)
Another way to frame this:
"i need your help with A,B,C and x,y,z is the related information that you need to know about my situation" is the description of the customer problem that they are contacting us about
“i need your help with A,B,C” is the customer intent, and “x,y,z is the related information that you need to know about my situation” is the additional information.
Both components of the customer problem (customer intent and additional info) are recorded from the customer’s perspective, and how they describe their problem.
Uncovering what problems exist
Our goal is to have both of these key aspects inherently represented in our problem-space map(s). We can refer to these components as “customer intent” and “additional info”.
For customer intent, in the context of building our issue map, we would like a perfect description of the customer problem (with any relevant associated context / info) so that an agent could realistically resolve the contact with a single response. We ask customers to describe their problem in as much detail as possible prior to beginning the chat to encourage context-rich conversations from the start.
In a perfect contact scenario, a customer would supply a complete description of their problem up-front
Because we have the luxury of hindsight when it comes to historical contacts, we can use a clever trick to prompt the LLM to provide us with the full description of the problem that a customer would ideally supply to us up-front in the description box. We do this by providing the following scenario along with the historical conversation transcript:
“Imagine you are a customer who has just had this conversation with a Wise CS agent {insert conversation}, but your session was disconnected and you have just been reconnected to a new agent. Provide a full description of your problem with all the necessary additional information you were asked for (if any) from the previous conversation. Frame your problem in two distinct (mutually exclusive) parts: {customer intent, and additional_information}”
This is essentially the prompting strategy we use to have the LLM extract the relevant information from the conversation transcript in a structured format. Chat transcripts have an inherently less standardized structure to email transcripts so introducing this structure was important for us. We couldn’t rely on the issue being represented well within an agent’s first reply (as we could with emails). In order to create the necessary structure to identify related groups (clusters) of customer problems we needed to create some standardization. We were confident that LLMs offered us our best chance of achieving the desired structure in such an unstructured setting.
Highly-structured output from (messy!) chat transcript input
When requesting the LLM to parse the chat, we did not impose any restrictions. We did not provide it with any prior knowledge of previously extracted intents and was not limited by a pre-defined list of intents. This enabled it to freely generate descriptions for any of the fields it was asked to populate.
Managing the process
In our map, we see each dimension of the customer problem as a graph consisting of various nodes, which are possibly related to one another. Extending this concept, customer problems can then be represented as node tuples (customer intent node, additional information node) - in which the additional information node can be None.
We have implemented parsing for historical chats. Since we did not impose any restrictions on the LLM, it is essential to organise these parsed entries into groups. Our initial step involved compiling a database of unique entries that contain embeddings generated by the text-embedding-ada-002 model.
For each new processed entry, we will verify whether its embedding is sufficiently close to the embedding of any previously encountered entry (with a cosine distance of less than 0.4). If this condition is met, we will refrain from saving the new entry in the database and instead create a mapping to the existing one.
Each category of entry (customer intent and additional information) is stored in its own dedicated database.
Illustration of the process to uncover and store new elements (i.e. how we discover new customer intents)
Imposing structure on our map:
Initially, we chose to concentrate on grouping the customer intent elements to achieve a certain level of Wise product representation, adopting a Directed Acyclic Graph (DAG) structure.
For each intent, we employ LLM parsing to ascertain which product this intent corresponds to. The available options for the LLM to select from are predefined and manually constructed based on our team’s understanding of our product and the relevant attributes.
How customer intent elements are assigned to group nodes
How customer intent elements are assigned to group nodes
Product representation of intents allows us to group them effectively. We can combine intents that share similarities based on their product representation. The name of each group reflects the commonalities among the intents it contains. We allow for each intent to belong to several groups depending on overlap.
For example, the intent "How to change country address" would belong to the action group "change," alongside intents like "How to change the name in the profile?" and "How to change the transfer reference?". It would also belong to the attribute group "address," alongside intents like "How to verify my address?" and "What address can I use for card delivery?". This allows us to find the correct intent in the future without relying on how the conversation goes. Whether a customer writes "I have problems with my address" and we find the address-related group, or "I need to change my details" and we find the "change" group, we will still consider the "How to change country address" intent as an option.
Once we have assessed all the groups, our intent map is complete.
When adding an intent to the map, we implemented a deduplication step. As noted in the first section of this document, we unify the names of entities after initial parsing by selecting the first entity encountered to represent the group. However, this is often not the most suitable name. Therefore, we evaluate each group of names and choose the most frequent one instead of the first encountered. This selected name will be used in the map.
After changing the name, it is essential to verify that it does not become too similar to other entities. We repeat the deduplication step by comparing the embedding representations of the new names, ensuring that the distance to others remains above the established threshold of 0.4 for cosine distance. If the new name is deemed too similar, we will skip this intent and refrain from adding it to the map.
At this point we have a system that is capable of processing new chat transcripts and uncovering any new customer intents that appear, essentially the capability to learn the problem space and apply suitable labels to each contact. This allows us to organize our contacts based on the customer intent, and also track changes in the incidence rate of the various contacts we receive. It also allows us to provide our automation system with an understanding of the different types of problems that our customers contact us about, so that it can determine which one it’s dealing with in a live setting.
Zoomed out view of our intent map
General “Money movement” section of our intent map
Zoomed in view of all node relations to granular intent for customers seeking alternative verification options (to using passport ID document)
Jobs you might be interested in
Salary
12,50,000 INR + RSUs
Location
Hyderabad
Team
Operations
Locations
Hyderabad
Description
We are looking for Payment Operations Senior Specialists to join our Payment Operations Regional team, with a focus on Service Delivery.Your mission: Wise has already pioneered new ways for people to
Reference
a794a68e-e860-47d7-8a04-75ecb98282f9
Expiry Date
01/01/0001
Salary
9250 - 12400 SGD Monthly + RSUs
Location
Singapore
Team
Operations
Locations
Singapore
Description
The Business Operations Associate Manager will support critical discovery, analysis, and improvement initiatives in servicing operations. This role focuses on leveraging servicing operations insights
Reference
911c266e-2f46-47ce-b455-b79c84d96a87
Expiry Date
01/01/0001
Salary
770,000 HUF Monthly
Location
Budapest
Team
Operations
Locations
Budapest
Description
We’re looking for FinCrime Investigators to join our growing AML Investigations team in Budapest. This role is a unique opportunity to have an impact on Wise’s mission, grow as a specialist in anti-mo
Reference
931eb331-544e-44b9-9b29-479c3474b817
Expiry Date
01/01/0001
Salary
650000 - 825000 INR Annual
Location
Hyderabad
Team
Operations
Locations
Hyderabad
Description
The Servicing Training Specialist role facilitates key learning and development initiatives that support business objectives and fosters employee growth. They are responsible for conducting onboarding
Reference
3285aa42-ff60-4cb2-9c59-36000321d801
Expiry Date
01/01/0001
Salary
4350 - 5850 EUR gross/monthly + RSUs
Location
Tallinn
Team
Operations
Locations
Tallinn
Description
We're looking for an experienced lead to join our growing AML Investigations team in Tallinn, Estonia. As a FinCrime Operations Senior Lead your mission is to ensure the effective assessment and mitig
Reference
dd288711-4f15-4d73-a3de-1d957816231e
Expiry Date
01/01/0001
Salary
1,490,000 - 2,000,000 HUF gross/monthly + RSUs
Location
Budapest
Team
Operations
Locations
Budapest
Description
We're looking for an experienced lead to join our growing AML Investigations team in Budapest, Hungary. As a FinCrime Operations Senior Lead your mission is to ensure the effective assessment and miti
Reference
74b74e87-2792-45e8-ad19-4f1839c1d4b9
Expiry Date
01/01/0001
Salary
6900 - 7450 BRL Monthly
Location
São Paulo
Team
Operations
Locations
São Paulo
Description
We’re looking for a Japanese speaker Sanctions Analyst, to join our growing Sanctions Screening team in Sao Paulo, Brazil. This role is a unique opportunity to have an impact on Wise’s mission, grow a
Reference
27347f87-4e28-4572-8c25-002140485f57
Expiry Date
01/01/0001
Salary
.
Location
São Paulo
Team
Operations
Locations
São Paulo
Description
The Regional Lead of AML Investigations is a leadership role responsible for the strategic direction and operational excellence of Anti-Money Laundering (AML) investigations. Beyond functional oversig
Reference
fa4e5c05-29af-48b0-8790-40f95a0c3ca8
Expiry Date
01/01/0001
Salary
4100 - 5100 EUR Monthly
Location
Tallinn
Team
Operations
Locations
Tallinn
Description
Our Servicing Operations team is on a critical path to scale by accelerating our adoption of Artificial Intelligence. We are building a hybrid workforce where every team member is empowered by an AI '
Reference
7c99a9c6-9dfa-461f-94f9-c5a49ef305ac
Expiry Date
01/01/0001
Related blogs
Teaser
People profileContent Type
BlogPublish date
03/02/2026
Summary
"When you join, you’ll see your own growth mirrored by the growth of the company. You won't just be watching change happen; you’ll be a direct part of it." Ataro Shoji (He/Him) Payment
by
Verona Hasani
Teaser
People profileContent Type
BlogPublish date
06/27/2025
Summary
We sat down with SK Saraogi, Head of Expansion APAC, to discuss our strategic expansion into Hyderabad, India 🇮🇳Read more to discover why Hyderabad is the perfect location for our second glo
by
Verona Hasani
Teaser
People profileContent Type
BlogPublish date
06/06/2025
Summary
Driven by a passion for growth and team development, discover how Anna Pavlics advanced from Agent to Team Lead in Wise's Fraud Prevention team 🚀 "We put tremendous effort into bui
by
Verona Hasani
Teaser
People profileContent Type
BlogPublish date
02/18/2025
Summary
Head of Servicing Scale and Experience, Ian Rynne, discusses his journey from starting as a Customer Support agent to becoming the Head of Servicing Scale and Experience at Wise.
by
Verona Hasani
Teaser
Our cultureContent Type
BlogPublish date
05/15/2024
Summary
My name is Cynthia. I'm a fraud agent at Wise, based in the Austin office. We strive to prevent fraudulent activity on the Wise platform. It can be tricky, as Wise supports many diff
Content Type
BlogPublish date
01/24/2024
Summary
Wise’s volunteer day is not just a perk; it’s a celebration of community, camaraderie, and making a difference.Meet Claire Adelman, Customer Support Training Specialist, and Javier Perdo
Teaser
People profileContent Type
BlogPublish date
11/24/2022
Summary
Hi! My name is Delis and I’m a Due Diligence Agent (CDD) in our Tallinn team, focusing on business verification. What this means is that I onboard high risk businesses by assessing their r
Teaser
People profileContent Type
BlogPublish date
11/24/2022
Summary
Hi! My name is Rza Mustafayev and I’m a Due Diligence Agent in our Latin America & Middle-East and Africa Region, focusing on personal and business customers. What this means is that I:Rev