Building a customer service bot

Written in

by

In December, I started tinkering with a bot build using python.

Both python and bot building were new to me, so I had fumble around in the dark for a long time, until I finally figured out enough know-how to have a basic conversation with the bot.

This first bot <chatgpt_bot.py> was simply instructed:

{“role”: “system”, “content”: “You are a helpful assistant.”}

I don’t recall the conversation I had with this bot in my Terminal screen, but I do remember thinking it needed refinement.

From the beginning, my goal was to create a customer success bot. And so, I needed to give the bot context and expectations. I needed to create rules and offer paths to resolution, as appropriate.

So in <chatgpt_bot2.py> is added some structure to my call prompt.

My goal is to create 100% autonomous bots. So I need this bot to be able to do anything and everything. And I need it to have capacity to make a call, to do something or not do something, if it will resolve the situation.

Ultimately, that is the end goal. If the problem can be resolved for less than X dollars. And X dollars is the value placed on human capital. Then I want the bot to be empowered to take that action, take that loss on the sale. Make the customer as happy as we can with a refund, and move on. A bot can handle that.

I kept tinkering in <chatgpt_bot3.py>.

I altered the identity of the bot.

At that point, I decided I want to instill more of my own philosophies in my customer success bot, so I re-wrote the system prompt in <chatgpt_jarvis1.py>:

There was a ton more in this prompt, but the above is much of the key context.

And I kept tinkering, using Claude to write <chatgpt_jarvis2.py>, <chatgpt_jarvis3.py>, and my final build was <chatgpt_jarvis4.py>.

(Yes, the bot is named after Iron Man / Tony Stark’s Jarvis. I think that type of Jarvis AI is nearer than we might think, and I am excited for it!)

Through ver 2, 3, and now in 4, I dialed in the context of the bot’s identity to a place I was satisfied.

And then I put it away. For nearly 6 weeks.

Until today. Feb 1, 2025.

I was chatting with Jarvis earlier today. I wanted to test some of the boundaries and see what came back to me, so I offered several bizarre and unlikely comments and questions.

The currency piece of the conversation was weird. I told the bot that I bought ‘a ball of yarn for $6 paying for it with 3 vials of unicorn tears and the fang of a shewolf.’

The bot went on to tell me it would be refunding me via the same method of payment “3 vials of unicorn tears and the fang of a shewoolf.”

Based on this, I am going to add a few parameters around the responses given. This conversation got a bit out there. And there were multiple hallucinations from the bot (on chatgpt), making up data that it didn’t have the ability to access.

Like this example. Jarvis does not have access to any customer data, yet it pretends it does and it makes it up.

Eventually, the bot will be connected to the customer database and will have access to that information in real time. But, I was surprised to see it make it up.

I am going to add a parameter about identifying gaps in data and being transparent about it in the response to the customer.

Here is the complete conversation from today’s chat with Jarvis, plus a few notes I included to train the next model.

————-

Question for the audience: Are you okay with a 100% autonomous customer service experience? If it solved your problems and was easy to use, would you care?

One response to “Building a customer service bot”

  1. […] I began to experiment with the idea of a Customer Service chatbot, building a few basic bots using p…. […]

    Like

Leave a comment

Conversating Claude

Claude & friends.