Graphical programming of skills using Blockly (beta)
Note This is an early version of this tool and functionality will very likely change going forward. While we try to have backwards-compatibility, we can't guarantee it. Worst case, flows you have built in one Blockly version might not work in a newer version of the Blockly tool.
Aside from building skills using the Kotlin based dialog flows as described in skills, you can use a new (beta) graphical programming tool called Blockly. This allows non-programmers to build quite sophisticated skills - however limitations naturally exist and you will likely, eventually, have to move over to Kotlin/code as your skill grows in complexity. Blockly is a very fast way to prototype skills and works both with Wizarded and automated interactions.
Getting started with Blockly
Please see the (video) tutorial on how to build your first Blockly flow.
Example flows built with Blockly 5.0.3
- BlackJack 0.1 - Simple example to play Black Jack.
- FruitSeller simple 1.0 - The fruitseller tutorial example.
- GuessANumber 1.0 - Simple number guessing game.
- PrisonersDilemma 1.0 - The prisoners dilemma - split or steal.
- TrueOrFalse 1.0 - Play a game of true or false.
How the Blockly tool works
The Blockly tool is currently run as a skill and we are currently distributing it to existing customers in a binary format. So, you don't need to compile it to run it, rather you can run it using command-line as explained in the above tutorial.
When creating a dialog using the Blockly tool, the skill will save the flow as an xml file on your local computer (or robot, if you are running it straight on a Furhat robot). You can export this file and import it to a new instance of Blockly as you see fit.
Note: Currently the Blockly tool will not automatically save your work so remember to save it often using the save-button in the top bar
Current functionality and limitations of Blockly
The Blockly graphical programming tool already allows you to build quite complex flows and many of the concepts documented on this site are supported.
Functionality allowed (currently) exclusively in the Blockly tool:
- Extended, built-in GUI support for
- showing content (images, videos, websites)
- showing a selector with 1-8 options
- showing a form on screen, with a custom webhook allowing you to for example add an entry to a google sheet on form submission
Current limitations of skills built using the Blockly tool:
- Only one, global, parent state allowed.
- Only built-in NLU Entities supported. You can however create your own intents.
- Only one Blockly canvas supported which limits the possibility to overview a large amount of blocks created.
- When using the Show website block to display a web page in the GUI, make sure to use a HTTP(S) link, e.g. 'https://furhatrobotics.com', instead of 'furhatrobotics.com'.