New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rocket.Chat Apps boilerplate Bot to replace Internal Hubot #10458

timkinnane opened this Issue Apr 16, 2018 · 0 comments


1 participant

timkinnane commented Apr 16, 2018

What is this?

Rocket.Chat Apps can provide a starting point for bespoke chat ops / messaging automation, to replace the current Internal Hubot.

Note the distinction between internal and external bots:

  • External hosted bots use a platform or framework adapter to login and operate a user account. They are suited to messaging-heavy interactions and/or where maintenance or processes are independent of Rocket.Chat.
  • Internal bots are tightly coupled with the architecture of Rocket.Chat, but (at least currently) have limited features for conversational UI. Their provisioning and operation is dependent on the Rocket.Chat server.

Why do it?

The internal Hubot is outdated, it’s utility for enterprises and teams is limited and its documentation and usability is a challenge blocking many users from making the most of it.

Rocket.Chat now has much better options for messaging automation from progress toward an app marketplace model and the recent updates towards an SDK for multiple bot platform/framework adapters.

Integrating custom processes into the core codebase and the generic “Rocket.Cat” bot identity is harder to maintain and can be confusing for users to interact with.

How will it help?

  • Instances can maintain bot driven logic without requiring a fork of core Rocket.Chat
  • Customised identity for bots in a Rocket.Chat instance distinct from the “system bot”
  • Clearer semantics between system notifications and instance’s specific business logic
  • Access to apps API endpoints will open new features to internal bots
  • Multiple internal bots can provide different behaviours from unique bot user profiles

What does it need?

  • App with same features as a bot: receive, send, reply, store data, call API
  • Provide http listeners for triggering internal methods / interactions
  • Make http requests to get data to trigger or populate a message send
  • Documentation for getting started with defining a new bot app and writing scripts
  • Boilerplate examples to show simple common use cases achieved by bot app

What’s the plan?

  • Identify some use cases of current internal Hubot extensions
  • Build and document example implementations with Rocket.Chat Apps to replace Internal Hubot interactions
  • Build a replacement for Rocket.Cat as default packaged app-bot
  • Update docs for a clear purpose for the single system bot as a simple service butler, that will no longer be extended with instance specific scripts.

How can we help?

If this spec effects you and you’d like to help out, what we need at this stage is to understand the types of use cases currently implemented with the Internal Hubot, so we can provide useful templates and guides to migrate your Hubot scripts into Rocket.Chat apps.

Related to #10456, #6640, #8025

@timkinnane timkinnane self-assigned this Apr 16, 2018

@timkinnane timkinnane added this to Backlog in Bots Roadmap via automation Apr 16, 2018

@timkinnane timkinnane moved this from Backlog to To do in Bots Roadmap Jul 5, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment