Hey chief, checkout https://github.com/clonemeagain/osticket-slack/blob/master/slack.php for an example of intercepting/using the ThreadEntry Signal.To change a ticket's status, you'll need to load the desired TicketStatus object and apply it to the Ticket object, example here:Loading TicketStatus from config:https://github.com/clonemeagain/plugin-autocloser/blob/master/class.CloserPlugin.php#L100Applying TicketStatus to Ticket:https://github.com/clonemeagain/plugin-autocloser/blob/master/class.CloserPlugin.php#L220You don't have to do it that way, if you know exactly which ones you want to alternate between, you could use something like:// Check if this thread entry was created by clients:if ($entry instanceof MessageThreadEntry) { $new_status = TicketStatus:('id_of_waiting_for_agent_status');}elseif ($entry instanceof ResponseThreadEntry) { $new_status = TicketStatus:('id_of_waiting_for_client_status');}else {// this is a system message or NoteThreadEntry, so we should assume this shouldn't change the state return;}// don't change if already the same status:if ($ticket->getStatusId() != $new_status->getId()) { $ticket->status = $new_status; $ticket->save;}So, if you make a new plugin, use the Bootstrap method to listen for Signal 'threadentry.created', then run the above on the $entry. The fun part is fetching the Ticket from the $entry. The slack plugin above includes a method that fetches it from the $entry, you might want to grab a copy.Let me know if you need a hand, or if you're having trouble getting it going, if you want to use a Plugin Config screen, you can copy those from my plugins too, (they even include examples of Status drop-downs!). There are examples of logging the Event in the thread in the Closer Plugin, which might be useful for statistics later on.Enjoy!