happybara-io / WorkflowBuddy

The missing pieces of Slack Workflow Builder.
GNU Affero General Public License v3.0
28 stars 4 forks source link

Potential Step actions to add (partially based off of existing popular no-code flow tools) #10

Open I-Dont-Remember opened 1 year ago

I-Dont-Remember commented 1 year ago

Potential ideas seen in the wild for other automation use-cases (Zapier and n8n are good sources).

🤷‍♀️ = not really sure if this would be useful. Leave it here so there's a record.

I-Dont-Remember commented 1 year ago

Idea: Allow querying SQL databases

This could create a lot of headache in 1) having necessary packages to support it, 2) people running into issues with with their query output as variables later in Workflow - either it's too big, not in the shape they expect, etc. Needs some thought before adding.

I-Dont-Remember commented 1 year ago

Idea: connect to OpenAI/ Stable Diffusion / etc

AI is big right now - people want to use it. Make it dead simple to do so?

🧠hypothetically the Outgoing Webhook step should be able to do this already, maybe we just need an example to show it off.


Current step hits API just fine! Issues:

image

I-Dont-Remember commented 1 year ago

✅ Idea: JSON extractor

Done in #41

When we get a response body from the Outgoing Webhook step (or wherever else JSON could come from), right now we just have a variable for the raw response, but don't have a way to easily let people parse out specific variables.

This might be useful as an option in the webhook step, as well as potentially a standalone. Letting people define a JSONPATH for a variable they want parsed out.

We are able to get creative with specifying outputs - we do this already by changing which "Action" is happening for our Step, we just need a simple way for user to specify a variable number of variables (ha! :D) they want parsed and what they want them called.


I-Dont-Remember commented 1 year ago

Slack API wrappers

There are some Slack API methods that seem like they make sense to expose through Workflow builder - I would hope Slack will eventually get to them, but for now may as well track if we build out any as measures to bridge the gap when/if that time comes to pass.


I-Dont-Remember commented 1 year ago

Find Message

Slack's built-in Send a message doesn't return a ts variable or permalink to it, so if you want to use that message, you need to search for it. Some users are using Zapier's Find message functionality as a workaround to get the link of that recent message, but we should be able to handle it well within a Slack tool.

Get Message

This would be if you have ts, but really need the contents of the message for whatever you're doing. User has to provide the channel ID as well as the message ts - see "retrieving Slack messages with conversations.history"

I-Dont-Remember commented 1 year ago

Wait for Webhook

Extending the already in place Wait for manual completion step - workflow sits until some processing tool, like Zapier, has finished whatever it needs to do, then sends a webhook back to Buddy so it can continue the Slack workflow. Wouldn't need to save any state for execution, because we can require the execution_id to come in the request. We will need to come up with a simple way to tie the incoming request to the correct Slack bot_token, since we won't have that handled by Bolt.

⚠ _In the longer-term, we should add some sort of secret key or similar that is required to use the executionid to finish Workflow, but that would require storing state, and I'd like to keep Workflow Buddy Actions as stateless as possible.