Minimizing customer churn

Consider an online marketplace that sells products to clients. The clients may sometimes reach out to customer service because they are unhappy about their experience (damaged product received, too long delay, disappointed about the quality…). The objective of the agent is to maximize the long-term benefit of the platform, by reducing customer churn.

For each customer complaint, the agent has to decide if it offers a compensation to the client (such as full or partial reimbursement, or discount on next order). We can define the following connectors:

  • Reward = the daily revenue from all clients that reached out to customer service so far: a connector to the sales database is needed here.
  • Observation: The observation is triggered when receiving a customer service message from a client
    • The fidelity of the customer: how long it has been a client, the monthly amount spent on the platform, the average number of orders per month… A connector to the sales database is needed here as well.
    • the unhappiness level of the customer (from 0 to 1): this number is obtained with a LLM tool to extract this unhappiness level from the client message.
  • Action = two numbers from 0 to 100, indicating the reimbursement percentage, and the next order discount percentage ([0,0] indicating no client compensation): Forproceeding to the reimbursement, a connector that takes the reimbursement percentage into account and makes the money transfer is needed. This implies getting the client id from the message, and crediting back the credit card. For proceeding to the next discount percentage, a basic database of discount percentages to discount codes can be used. One of the action connectors is then to convert [the two percentage numbers, the original client message, and (if applicable) the discount coupon] to the textual client answer by using a LLM tool.

We have seen in this use case that a LLM tool would be used in two of the connectors: the observation and action connectors.