Vulcan: Automations PoC

Created a new proof of concept to kick off our Automations module.

A brief summary:

Vulcan is a visual collaborative knowledge base tool. It enables teams to align on high level concepts, down to deep gritty details.

This is the core purpose of the knowledge / analysis tools feature. This is what I consider the core product (production-ready) today.

However, my theory is that knowledge management should be closer to automation, integrations, dynamic data, discrete services to enrich, enhance.

Some examples of this is the product today:

  • add ons - very simply recognising services like Twitter, youtube from values and re3ndering dynamic widgets in the Object details
  • custom components - enriching objects and presentation layer for the editor, access to state and actions inside the UI to manipulate objects

Continuing this journey, we then have Chatbot module. The original concept here was to be able to design conversation flows visually and then enable the functionality in the same environment as

  • the background research and knowledge required for conversation design
  • High level flow design, sketches and iterations
  • collaboration, comments and inputs fro multiple stakeholders

However, this is a very complex module, as it requires lots of peripheral assets:

  • chatbot.js for the embedded chat window for running the conversations
  • Chatbot tester - environment for testing the chatbot
  • Mobile SDKs - for enabling interface inside mobile apps
  • Integrations to Chatbot Platforms - Messenger, google assistant, telegram, Alexa etc

So this is a big area, requiring considerable investment which is not feasible today - but we have a good PoC in our Chatbot Module BETA which you can check out.

However, the idea of combining knowledge base with automations is a good one. Platforms like zapier, IFTTT started the SaaS movement. Tray.io doing very well. But, in all cases I still have to design workflows on paper or in a different tool, implement inside these tools, and it makes very difficult to work as a team and collaborate and manage.

It’s hard to see what automations I have created in these platforms to serve what use case or function. It’s not visible to the wider business context that these flows and automations exist in.

Bringing this inside Vulcan provides both:

  • environment for design and collaboration around automations, followed by implementation
  • context for automations and workflows

PoC Development

I used our existing chatbot module as a starter kit

There are a number of object types which convert well to this module:

Entry Point - becomes a Trigger object. To discuss further. (edited)

Router - connecting flows, to a Callable type trigger object, largely same as in chatbot

Filter - conditional logic step, mostly the same as chatbot

Endpoint - becomes Action object, encapsulates API calls to Vulcan API, third party APIs and custom http requests

And some new objects for starters

Calculation - ability to manipulate the Model and Signal state variables with calculations.

Delay - wait a bit…

PoC Progress

:white_check_mark: Backend: Created new project type in Vulcan Engine
:white_check_mark: Backend: New automation controller (similar to chatbot) for automation flows API
:white_check_mark: Backend: Documentation for above
:white_check_mark: Frontend: Registered new Project Type
:white_check_mark: Frontend: Created Object Types as derived from Chatbot object types
:white_check_mark: Frontend: Bootstrapped new object types: calculation, delay
:white_check_mark: Frontend: Registered objects in ObjectPicker

Next Steps

Backend

  • Webhook endpoint generation for Trigger Objects
  • Trigger Object Types
    – Manual: triggered via button action in the app
    – Callable: triggered as step from a Router object
    – Scheduled: triggered via a scheduled Job instance
    – Webhook: triggered via REST POST, PUT, GET etc.
    – Email: triggered via call from Mailgun on receipt of email according to email address structure, Mailgun hooks
  • Backend execution via queue