1) Create a dynamic field "still_unlocked" of type text.
2) Use an event based GenericAgent that listens to the TicketCreate event and set the still_unlicked field to 0.
3) Use a time based GenericAgent that checks for tickets that are created "more than 30 minutes ago" and that have the still unlocked field set to 0. That GenericAgent sets the field to 1.
4) Use a ticket notification that listens to updates of the still_unlocked field und filters ticket that have the field set to 1. And define the recipients and texts.