Proactive Ops logo

Proactive Ops

Subscribe
Archives
May 19, 2025

Summarising Support Tickets with Amazon Nova Lite

Learn how to use Amazon Nova Lite and Step Functions to summarise support tickets.

Some days are rough for customer support agents. A customer opens a support case. The problem described sounds unusual. You’re the unlucky support agent assigned to the ticket. The first action is to search for similar incidents. Your eyes start to glaze over as you read through all the details of half a dozen or so tickets. This is so boring. Internal discussion between teams. The back and forth with the customer. Followups and chasing people with templated messages. *yawn*

What if you could scroll to the bottom and read a well written, succinct summary of the ticket? You can! Read on to find out how to do it using GenAI.

In this post I will take you through using Amazon Nova Lite to summarise Zendesk tickets and post them as private comments. The flow is similar for other support ticket systems.

The best time to summarise tickets is when they’re marked as solved. Once a ticket is closed we can’t make any further changes.

Event Routing

We can set up a trigger to send webhook events when tickets are solved. The events are sent to AWS Lambda function URL. This in turn feeds an Amazon EventBridge event bus. The bus will then send the events to AWS Step Function. If you don’t have this in place, don’t worry, I will cover how to set up the trigger and bus in another post.

Today I want to focus on the Step Function flow for summarising tickets.

The Flow

The Step Function handles the flow. This is what it looks like: AWS Step Functions flow showing getting the comments, removing duplicates, invoking the Nova model via Amazon Bedrock and finally posting the summary.

Get Comments

First we fetch the comments for the ticket. Zendesk treats the initial submission as a comment. As a result, we get all of the discussion on the ticket from a single API call. I am using the PicoFun Zendesk example project to generate the Lambda functions for the Zendesk API endpoints.

On the output of the GetComments step I use JSONata $filter() to remove any existing summary messages. Older summaries cause the model to focus on the items already summarised and it ignores the newer comments. This isn’t what we want.

Single Comment

The downside of using $filter() is that the result is a string rather than array if only one item is returned. This is ok as we don’t really want to summarise the only comment on a ticket. Instead we bail out.

Summarise Ticket

Now we’re ready to pass the comments to Amazon’s Nova Lite model. We provide a system prompt that tells the model what to do. We then provide the comments as a list of user messages. Splitting it up provides better results when compared to stuffing everything into a single user message or system prompt.

Our system prompt should provide some context to the model and clearly explain what we expect to see in the output. If we just use “summarise the text” we will get a basic summary. Instead we should tell Nova that we need the output in markdown and specify a template it should populate. This results in higher quality and more consistent output.

Put Comment

Now we have our summary, we call the Zendesk API to post the summary as a private comment. This way other agents can see the comment, but the requester won’t.

A ticket marked as solved can be reopened. This can happen multiple times. Each time this happens the workflow runs. Earlier I mentioned we want to ignore these summaries on subsequent runs. For the filtering to work we need something consistent in these summary comments. In my case I added “This summary was generated by Amazon Nova”.

End Result

Here is an example of a ticket Nova summarised.

A support ticket where the customer was unhappy with IE6 crashing each time they accessed the website. The agent went back and forth with the customer before eventually closing the ticket. Nova summarised the discussion.

Now your agents can confidently scroll to the bottom of any closed ticket and read a summary of what happened.

Summary

I used Nova Lite as it is the Amazon Nova variant that provided the best trade off when it comes to speed, accuracy and price. The model provides clear summaries of the discussion on the ticket. The generated summary gives the agent a quick run down of the ticket, so they decide to dig in or move on. This makes the life of support agents.

The Step Function definition is available on GitHub.

Disclosure: AWS provided credits for me to test this workflow. I had already planned to implement this using an Amazon Nova model.

Need Help?

If you want to adopt Proactive Ops, but you're not sure where to start, get in touch! I am happy to help get you.

Proactive Ops is produced on the unceeded territory of the Ngunnawal people. We acknowledge the Traditional Owners and pay respect to Elders past and present.

Don't miss what's next. Subscribe to Proactive Ops:
GitHub Bluesky LinkedIn Dave Hall Consulting