I did both.
I implemented an EXE BUT wanted something more dynamic (an EXE by definition locks you in) so I wrote a VB that runs a Python script.
The VB feeds the Python script a string of information (mostly variables) aka arguments from my run that I want I want acted upon. The EXE was fed a string as well.
And then that pushes it to my bot on Slack through their API/webhook. I’ve also accomplished this with Google Hangouts and Google sheets in the past.
The idea is that I can send whatever I want from the Fluent to ANY Python script that I want to run. I can use this info to directly integrate with Benchling or to just publish run metrics to a MySQL or Postgres db or send run updates to a messaging system of my choice. Your imagination is the limit!
Next steps (maybe) are to 1) directly write the VB and remove the Python layer for the ultra simple use cases and to 2) test it with Fluent’s powerful error handling tools. Until then, IFTTT is sufficient to send error messages since it’s a lot more passive. For large use cases, yeah you will have to experiment with the error handling to trigger on error an action.
To create an EXE from a Python script, use PyInstaller. You can also use Auto-Py-To-Exe which is GUI around PyInstaller. My advice also is to use an older (stable) version of Python like Python 3.9. If you know how to setup a virtual environment, build in one with 3.9. When I previously tried to build an exe in 3.10 there were bugs but that may have changed in the last few months.
I should really host a GitHub with all of this code and examples, it’s on my weekend list…