Prerequisite Knowledge
To use Stubber effectively, it helps to have both conceptual understanding of the Stubber Framework and some technical familiarity with the tools used to configure templates.
Conceptual Prerequisites
Before building in Stubber, you should understand the core ideas of how Stubber models processes.
Understanding Processes
Stubber is designed to model real organizational processes at a high level. Before building, you should be comfortable identifying:
- where a process starts
- where a process ends
- the major phases in between
- the actions that move the process forward
Stubber works best when you think in terms of broad process phases rather than small technical workflow steps.
Templates and Stubs
A template defines a process. A stub is a unique running instance of that template.
For example, if the template is sales lead, then each individual sales lead is a stub created from that template.
Understanding this distinction is essential when working in Stubber.
States and Actions
Stubber defines processes using two main concepts:
- States: periods of time where the process is at rest or waiting
- Actions: points in time where something happens
A good mental model is:
- a state describes the current status of the process
- an action captures what is done next
Stubber is not a traditional workflow tool
If you come from a workflow or BPM background, it is important to understand that Stubber is more flexible than a strictly linear workflow engine.
In Stubber:
- a stub is only in one state at a time
- multiple actions may be available in a state
- actions are constrained by state availability and conditions
- the process is modeled at a higher level than a rigid task-by-task workflow
Technical Prerequisites
Once you understand the concepts above, the next step is becoming familiar with the technical tools commonly used in Stubber configuration.
JSON
What is JSON
JSON stands for JavaScript Object Notation. It is a common text format used to represent structured data.
JSON is made up of key-value pairs, where each key is a string and each value can be a:
- string
- number
- boolean
- null
- array
- object
Example:
How JSON is used in Stubber
In Stubber, JSON is used to configure template components such as fields, actions, tasks, notifications, and other aspects of the template structure.
When working in Stubber's JSON editor, you will often be defining objects that describe how part of the process should behave.
Example:
Variable Substitution
Variable substitution allows you to reference data dynamically inside a template.
Instead of writing fixed values, you can insert placeholders that are replaced with actual data when the stub runs.
Why it matters
Variable substitution makes templates more flexible by allowing messages, notifications, and configurations to adapt to the specific data of each stub.
Example
If a stub contains the following data:
You can write:
When the stub executes, Stubber replaces the placeholders with the actual values, resulting in:
For more information, see:
JSONata
What is JSONata
JSONata is a query and transformation language for JSON data.
In Stubber, JSONata is commonly used for:
- conditions
- data transformations
- extracting values from JSON structures
- evaluating logic inside template configuration
Example
In this example, the expression checks whether the first grade is above 50 and returns either "Passed" or "Failed".
Why it matters in Stubber
JSONata is especially useful when you need to make decisions based on data, control whether actions or tasks are available, or transform data for use elsewhere in the template.
For more advanced usage, refer to:
Recommended Learning Order
If you are new to Stubber, the best order is usually:
Learn the Stubber concepts:
- processes
- templates and stubs
- states and actions
Learn how to think about process design in Stubber
Learn the technical configuration tools:
- JSON
- variable substitution
- JSONata