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