Hi Will, Just checking back in on this to see if you have anything to test out?
Would love to get more feedback on those two:
In this thread or privately
best,
Ofer Rahat, Ph.D.
Data Scientist
leofer@gmail.com
Hey Justin,
I took a few months off to reset and am getting back into bringing this to a production quality integration. It’s close - I’m working on some of the less fun parts of development like writing a help file, putting together an installer, and testing on multiple common versions of Venus.
I’d be happy to give you a demo if you have half an hour one of these days.
Cheers,
Will
Hi Will, have you released this library? I am interested
Just wanted to let everyone here know that even without a dedicated Slack library on Venus, if your end goal is to send messages to certain channels on Slack and notify users when a protocol is complete or when a pause point has been reached, etc then all you need is the HSLHttp library to send POST requests to Slack.
Instructions below:
-
Create an API Application in Slack (Slack API: Applications | Slack). Below I created a bot for my organization named Hamilton STAR
-
Navigate to ‘Incoming Webhooks’
-
Click on “Add New Webhook to Workspace” and create webhook URLs for the channels you want to send Slack notifications to. This is the URL that you will be using in your HTTP POST request (the robot will ‘post’ to this channel through this webhook URL).
-
Initialize HSLHttp in Venus and assign a string to your webhook
-
Create your message and call the HttpPOST function below.
How do you create the content text?
Through Slack’s block kit builder!
Link here: Slack
@sm513 - short answer: No, I haven’t released it yet, but plan to next month.
Long answer:
The code for the library is effectively complete - including file uploads (for trace files, work lists, etc.), Slack notifications by an executable using Hamilton’s default (archaic) error notification mechanism, configurable channel / user / group message destinations, customizable bot image + name per method, and configurable Slack block templates for method milestones (Start, Complete, Progress, Errors).
I’m targeting to launch this for Venus in January 2025 as the initial product of a small start-up that bridges the gap between liquid handlers and modern software applications with tested and testable tools that just work and don’t require the implementation, maintenance, and troubleshooting of raw HTTP requests in Venus, although as @yhs.allen demonstrated above, that’s an option.
Awesome to hear, @WillTurman! Exciting for the start-up!
You can also set up incoming webhooks for Teams if your organization doesn’t use slack.
It’s not too bad to set up if you just want to send start/stop/generic error messages.
This is very helpful thank you! I ended up building the key functions in Python with the webclient API and making a wrapper/UI in Venus. I’m sending procedural updates using the wrapper and my SysConfig calls the same program on error
Hi all,
I’ve released a Venus library to integrate your Hamilton robots with Slack.
I essentially built this out to include nearly everything I’d want in a Slack integration from a development, troubleshooting, operations, and fleet visibility perspective and would love to hear what your think.
Sending a basic message to Slack takes three commands:
Sending a formatted message takes three commands using the included sub-method template library:
Uploading files directly to channels or linking them and having them unfurled in threads is supported as well:
Threaded messages are supported to keep information organized:
An executable to post dynamic content to Slack about those tricky to handle hardware errors (i.e. liquid not found, tip pickup errors) via the Hamilton hardware error reporting mechanism is included out-of-the-box:
Sending messages to channels, users, or group-dms is supported, as is tagging users for high-priority notifications.
There are any number of ways and tools to use to hit Slack’s API to post a message, or integrate notifications from liquid handlers - I’m thinking about this as an integration that enables you to bring timely, relevant information from your automation into a workspace you’re already using using tools you’re familiar with.