I have decided to allow the user to input the string that will be sent with each message, so it can be customised. I will set some defaults. That effectively resolves one of the most difficult issues I faced. So the input screen will change.
With this change each user can decide which events will trigger an MQTT message, what the topic will be, and what the payload of the message will be. I may as well allow them to set the QOS and Retain values of the MQTT messages as the optimum values for these may depend on how the messages are to be used.