kedro
kedro copied to clipboard
Create a #kedro-users Slackbot
Description
We receive anywhere between two and 10+ queries each day in the #kedro-users Slack channel, with probably more to come in the future as the community grows. Many times, @datajoely and others are asking a standard suite of questions or sending the same few links to the users, such as:
- What version of Kedro and Python are you using?
- Please provide the error message.
- At what step do you get that error exactly?
- Please refer to the migration guide.
- What you want here are hooks.
- And others
We could save time and energy by having a Slackbot respond to each message in the channel and prompt the user for more information while responding with context that may assist them.
Possible Implementation
The flow would be this:
- A user posts a message in the channel.
- a) The bot responds with a standard suite of questions. b) The Bot also reads the context of the user's message, and from that context responds with some links to documentation that may help.
- The user (hopefully) responds the to Bot's message with the additional information.
- When a Kedro maintainer comes to help, they have more information than if the Bot didn't exist, and (hopefully) have to ask fewer questions of the user.
For point 2b above, the mechanism would be to match a set of predefined keywords and respond with links to the documentation or GitHub issue/discussion related to that keyword. A possible list of keywords would include:
- Hooks
- Migration
- Config loader
- Docs
- Deployment
- Databricks
- Templating
- Modular pipeline
- ...
Possible Alternatives
We don't do part 2b above and only do the very low-level version, which could still add value.
We can get far with a Slack workflow without actually building a fully fledged bot :)
I didn't think a workflow was customizable enough. Can't you only trigger one if it falls under these four options?

I know you can also trigger a workflow via a webhook, though that doesn't seem like the way to do it either.
I'm just worried a chatbot is an unwinnable game, we could get quite far with emoji reactions for the some of the common ones like:
kedro-dynamic-pipelines
kedro-hooks
kedro-migration-guide
For me it isn't win/lose, more a nudge in some direction and a way to easier glean information.
How's the emoji sent though, via a human selecting it and sending the message, the way the powerpoint one works?
Yeah exactly - much more fragile and simple than a proper bot. It's a really hard topic to know what's the best approach.
We receive anywhere between two and 10+ queries each day in the #kedro-users Slack channel, with probably more to come in the future as the community grows.
Is the plan to (mostly) kill the Slack channel dead? Otherwise, this seems like work that will only provide value in the short term. Feels like it would make more sense to push more people to Discord, and at least build the bot/solution there.
That's a complicated one - I'll let @yetudada provide an answer there. That being said, the problem is the same and arguably the back-end should work via a platform that supports both Slack and Discord.
Just returning to this ticket--I think a Slackbot would be great to review the existing corpus of questions and come up with some links that potentially contain answers. I don't find search on Slack is that great (and we have a large chunk of question/answers on the Discord Linen) so if we had a bot that could run through existing content on linen/slack and provide pointers to the most relevant conversations, I think that would help since that could make a user-friendly interface on a Q&A knowledgebase comprised of those two resources.
I'm less enthused by having a bot that just asks for clarification on
that just asks for clarification on...
...on what?
Either way, I agree, and that's another part of what we thought of in the Hackathon: the Slackbot would use all previously-asked questions as the lookup and then return a (hopefully meaningful) result from that corpus.
Beware from pushback from the tech community https://github.com/mdn/yari/issues/9208
I think we could start by a very simple bot that helps locate specific bits of the documentation and is always triggered manually. For example:
User: How can I run nodes in parallel? Kedroid:
/kedro_helper ParallelRunner
@kedro_helper
: Here is the documentation for theParallelRunner
classhttps://docs.kedro.org/en/stable/kedro.runner.ParallelRunner.html
(This doesn't need AI by the way)
I agree with all of that, and also like that it leaves AI out, since that wasn't really ever in scope.
The truth is that we don't have more spots for apps and bots in Slack at the moment, unless we start paying a small fortune. I'm closing this issue for now, which doesn't mean we aren't ever going to do this - just that we will not do it for the time being.