A Workflow creates a connection between a set of operations (each operation follows a particular flow) and defines the activation function.
For each workflow object, you will provide a match property that determines whether this is the workflow that needs to be executed at this time.
Each message that comes from RELE.AI, is being initialize with a workflow run.
To determine which workflow to run for each message, we use the Match attribute.
Match includes three properties: callback, input, weight and ignoreOnNext.
# Callback & Input
Callback and input are two parameters that are related to each other.
callback is used as the comparison method, and input is used as a value that are being compared to according to the comparison method.
Callback can be one of the following values:
contains callback attribute as part of some example workflow configuration:
match: callback: contains input: - /search - /pesquisa - /suche - /recherchez - /busca
When the message
/search is sent,
RELE.AI will recognize that there is a perfect match here because the message value contains one of the values in the input and a maximum rating will be given for this workflow.
match_any callback attribute as part of some example workflow configuration:
match: callback: match_any
And this example incoming message with value of:
Some hello world message!
The rank function will give the value of each workflow.
Assume that in the given organization there was no workflow that found a match for the incoming message. In this case, the workflow defined as match any will serve as a fallback if there was no better match - and its execution will begin.
# Ignore on next attribute
ignore_on_next determines whether this workflow should not be rematched after it was executed once.
By default the flag is
The weight property allow you to prioritize one workflow over the other.
For example, suppose we want to define a workflow that ends a session for each incoming message with the value of
/exit, regardless of whether we are in the middle of another workflow run.
match: callback: contains weigth: 2 input: - /exit - /salida - /sortie - /ausfahrt - /saída
In this case, even though you are running a different workflow, the message will throw you into this specific workflow.
If the weight value is not provided, the default value for it is 1, so the weights of the rank function will not be affected.
# Creating a Workflow
The following is a full example of an Workflow config. It creates a simple "Hello World" workflow within RELE.AI.
# define the type of the configuration type: Workflow # define the match operation match: # define the matching method compare # to the incoming message value callback: contains # list of matching options input: - /exit - /salida - /sortie - /ausfahrt - /saída # define weigth for incoming message weight: 2 # define the display name display_name: en: Drop Session # the app identifier key: hello-world
|type||string||Define the configurations type. Full list of support types can be found here|
|match||Match||Define the match options for specific workflow.|
|display_name||DisplayName||The workflow's display name.|
|key||string||A config identifier - must includes only |