Hey @luke
I think you should listen to “app.activated” event. As pointed out in the documentation:
To enable the app to refresh itself at the right time, the ticket page triggers an app.activated() event. Apps in the ticket_sidebar location are initially in a minimized state. When the agent expands the app for the first time on the page, the app receives the app.activated() event. If the agent navigates to another ticket and then expands the app (for the first time on that page), the app.activated() event is triggered again.
When the ticket page is loaded for the first time, the app.js file registers for the app.initialized() event. In the callback, it receives a client object and registers for the app.activated() event. The core logic of the app, which is to retrieve the ticket requester’s name and append it to a string, is contained in this callback.
https://developers.freshdesk.com/v2/docs/your-first-app/
I tested it here and clicking in “Next” button, always fire this event.