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
80,000 USD Annual
Location
Austin
Team
Operations
Locations
Austin
Description
Your Mission: Wise Assets is one of our fastest-growing products, already live in the UK, EU, Singapore, Australia, and Brazil. In this role, you will elevate that mission by acting as the go-to cons
Reference
9cf200c2-d7a6-47e9-8233-ffbf47833ff2
Expiry Date
01/01/0001
Salary
MYR 10,000 Monthly + RSUs
Location
Kuala Lumpur
Team
Operations
Locations
Kuala Lumpur
Description
If you're interested in the position, please apply by submitting your CV and cover letter in English. In your cover letter please explain why you want to join the RFI team and what makes you a good ca
Reference
13491fa1-feb2-410d-a707-10a7842efe4e
Expiry Date
01/01/0001
Salary
4000 - 5500 EUR Monthly
Location
Tallinn
Team
Operations
Locations
Tallinn
Description
We’re looking for a FinCrime Quality Team Lead to join our growing team. Quality Assurance Senior Lead - SanctionsWise is a global technology company, building the best way to move and manage the wor
Reference
0e239768-140b-411b-8c83-aa934c4cc1ad
Expiry Date
01/01/0001
Salary
4000 - 5500 EUR Monthly
Location
Tallinn
Team
Operations
Locations
Tallinn
Description
We’re looking for a FinCrime Quality Team Lead to join our growing team. Quality Assurance Senior Lead - AMLWise is a global technology company, building the best way to move and manage the world’s m
Reference
3f06bd57-7fae-4f50-91f6-74e9e3166a3c
Expiry Date
01/01/0001
Salary
8100 - 8700 BRL Monthly
Location
São Paulo
Team
Operations
Locations
São Paulo
Description
We’re looking for a Servicing Training Specialist to join our KYC Training team. Purpose of the roleThe Servicing Training Specialist role facilitates key learning and development initiatives that sup
Reference
0e297e4d-85b3-4997-9e02-18caf792660e
Expiry Date
01/01/0001
Salary
0 - 0 INR Annual
Location
Hyderabad
Team
Operations
Locations
Hyderabad
Description
We’re looking for an AML Investigator to join our growing AML Investigation team in Hyderabad. This role is a unique opportunity to have an impact on Wise’s mission, grow as a specialist in anti-money
Reference
b48816c6-6b6e-4779-8d6a-127f850dc3af
Expiry Date
01/01/0001
Salary
2500 EUR Monthly
Location
Tallinn
Team
Operations
Locations
Tallinn
Description
We’re looking for multiple Payment Operations Senior Specialists to join our regional teams in Tallinn.This role is a unique opportunity to have an impact on Wise’s mission by contributing to building
Reference
fcb57db5-a0bf-47c6-968f-ef8a96f6a2ab
Expiry Date
01/01/0001
Salary
INR
Location
Hyderabad
Team
Operations
Locations
Hyderabad
Description
We’re looking for a Payment Operations Team Lead who will help build, scale and lead our new India Payment Operations team in Hyderabad. This role is a unique opportunity to have an impact on Wise’s m
Reference
55ce0fdd-2e24-4f40-bb41-4f3114ed2c7c
Expiry Date
01/01/0001
Salary
4025 - 5000 EUR Monthly
Location
Tallinn
Team
Operations
Locations
Tallinn
Description
The KYC Operations Area Lead for Wise Platform is the full owner of their space, driving strategic direction and operational excellence across key sites and functional domains. In this role, you are r
Reference
016e633b-aeb9-43d8-a17f-ed3964cc65b8
Expiry Date
01/01/0001
Related blogs
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