The Duzzit Steps panel is where you can combine logic and action to create an intelligent process. Duzzit logic is represented as a series of steps, each of which can contain logic (rules) and actions.
In this section, we’ll look at:
At the top of the editor are icons and icon menus that provide elements used within the duzzit:
![]()
The most commonly used elements are “if”, “do”, and “step”. The cloud menu provides shortcuts to frequently used actions:

The send menu provides quick access to commonly used communications channels:

The “more…” menu provides access to advanced duzzit structures (group, loop, and case statements) as well as shortcuts to getting generic web data (web pages, feeds, and services) and value setters:

Step Basics
The step is the fundamental unit of process within a duzzit. A step can be added by dragging the step icon into the panel:

You can release a step before or after an existing step. When the step is in an area it can be dropped, a blue drop zone will be displayed. After you drop the step icon, the new step will be displayed:

When you place your mouse over a step, an edit icon becomes available:

Clicking on an edit icon shows a list of ways that you can work with the step. In this case, you can duplicate the step, and remove the step.

Steps contain actions (‘do’ something), and logic (‘if’ expressions, and other logic). The simplest step contains a single ‘do’. To add a ‘do’, you can drag the ‘do’ icon onto a step:

You can release a ‘do’ before or after an existing ‘do’. When the ‘do’ is in an area it can be dropped, a red drop zone will be displayed. After you drop the ‘do’ icon, the new ‘do’ will be displayed:

Initially, the ‘do’ is empty. You can click on it to choose an action. One of the most frequently used actions is value setting – setting the value of an output. As a convenience, if you drag a value onto a step, a value setter ‘do’ is created. For example, let’s say there is an input value “Zipcode”, and an output value “Message”. If you simply want to set the value of Message from Zipcode, you can drag the Zipcode value onto the step:

After you release it (onto a red drop zone), the value setter ‘do’ will appear, with the left side containing the Zipcode value:

Next, you can drag the Message output value into the target box on the right:

The outline of the target box will become visible when the Message value can be dropped. The completed ‘do’ looks like this:

Finally, let’s clean up this step. We’ll change the name of the step by clicking on the step name (currently “Step 1”) and changing it to “Set Message”, and we’ll delete the empty ‘do’. Now the step appears as:

Expanding and Collapsing Steps
All step constructs (step, case, group, and loop) can be “expanded” and “collapsed”. The small icon at the left of the step / case / group / loop icon indicates if the step is expanded or collapsed, and clicking on it changes the state. When expanded, the step looks like this:

When collapsed, the step looks like this:

You can also expand or collapse all steps using the expand / collapse icon at the top of the duzzit editor. In the “collapsed” state, it looks like this:

To expand all steps, click on it. All the steps will be expanded, and the top of the duzzit editor now appears as:

Click the icon again will result in all steps being collapsed.
Logic – the ‘if’ statement
The ‘if’ statement is the fundamental rule logic construct of the Duzzit. Let’s say that in the step created above, we don’t always want to set the message. To add a rule, drag an ‘if’ icon onto the step:

When the outline is visible, the ‘if’ can be dropped. Now the ‘if’ rule is visible at the top of the step:

Let’s say we only want to write Zipcode to Message if the Zipcode value is 60601. To do this, you can drag the Zipcode value onto “(select value)”:

When the outline around “(select value)” is visible, the value can be dropped.

Next, we need to select a comparator. A comparator is an operator that can return a true / false answer. When you click on “(select comparator)”, you are presented with a list of available comparison operators:

In this example, we want “is equal to”, so we’ll select that, and then click on “(select value)” to select the value to compare to. This opens the “Value Picker”:

The Value Picker is used within itDuzzit whenever values need to be picked for comparisons (‘if’ statements), or actions (e.g. setting values) – anywhere where it isn’t sufficient to just drag and drop a value. In this case, we’re just going to enter the value 60601, and press “(accept)”. Now we have a completed ‘if’ rule:

Let’s say, however, that we want to set the value if the Zipcode is 60601 or 60602. One way of doing this is to create a compound statement, by dragging another ‘if’ icon onto the first ‘if’:

When the ‘if’ is dropped, we’re presented with a compound statement:

Let’s change the AND to an OR by clicking on it and selecting “change to OR”, and then setup the second ‘if’:

Another way of expressing this would be to use the ‘matches any of’ comparator. This allows you to match a value against a set of values. Let’s go back to having one ‘if’ comparison for Zipcode, choose ‘matches any of’ as the comparator, and click on ‘(select value)’:

Clicking on ‘(add new)’ in the ‘Add or Edit Match Value’ popup provides a text box for match text entry:

We’ll enter 60601 there, and click on ‘(accept and add another)’:

Now we’ll enter 60602, and click on ‘(accept)’. Then, when we close the popup, the rule is completed:

Now, let’s say we want to do something when the Zipcode value is not 60601 or 60602. Now that the step contains a rule, the edit icon choices for the step include doing something when the rule evaluates as false:

Clicking on ‘Do something when Not True’ adds another section to the step. You can drop ’do’ actions into this area.

Step Flow Control
Now that we’ve talked about the ‘if’ statement and rules, we can introduce the concept of flow control. That is, what the duzzit should do after it has finished the step it is on. In simple duzzits, it will just continue to the next step. However, it could also ‘GO TO’ another step, or ‘END’ the duzzit.
Let’s say we have a duzzit with several steps, but we don’t want to process any steps if the Zipcode is blank. We can insert a step that checks if the Zipcode is blank, and if it is, use flow control to end the duzzit.
So, let’s add the step:

By default, the duzzit will ‘CONTINUE’ to the next step when done with this one. However, we can change this by clicking on the flow control instruction – in this case, ‘CONTINUE’.

We’re given the choice to ‘END’ the duzzit, which is what we want in the scenario. However, we’re also given the choice to go directly to a subsequent step.
For a basic step, choices are limited to ‘CONTINUE’, ‘END’, and ‘GO TO’ a subsequent step. For more complex step types we’ll discuss next, there are more choices.
Note that recursion is not allowed. That is, a step cannot ‘GO TO’ itself, or a step that occurs previously.
Case Step
Case is a special kind of step that makes it convenient to take different actions depending upon the value of a single attribute or input value. Let’s say we want to do something when Zipcode is 60601, and something else when Zipcode is 60602. First, we add a case to the duzzit by dragging the ‘case’ icon onto the duzzit, and dropping (like a step) onto a blue drop zone. We then have an empty case:

Next, we’ll drag the Zipcode input value onto the ‘(select value)’:

Next, we’ll drag an ‘if’ onto the case. You can release an ‘if’ onto a case immediately after the box where the value is shown (here, “if Zipcode”), or before or after a condition block. When the ‘if’ is in an area it can be dropped, a blue drop zone will be displayed.

After dropping the ‘if’, the case now consists of the value to be compared, and one condition block.

Let’s choose the ‘is equal to’ comparator, and set the comparison value to 60601.

Now, let’s add a ‘do’ to set the output value Message to the value of Zipcode (as was done above in a previous example):

Let’s add another ‘if’ after the first condition block:

After adding the ‘if’, let’s add a ‘do’ to the second condition block. Now the case consists of the value to be compared, and two filled-in condition blocks.

As we’ve seen, ‘case’ provides a convenient way to tie outcomes to the value of a source attribute or input value. Programmers will notice that it is very similar to programming language concepts of a case statement. However, unlike typical programming languages, each comparison is not just limited to checking equality – for each comparison, any available comparator can be used, making this construct more flexible than typical programming case statements.
Case Step Flow Control
The Case Step flow control is different from simple steps. Choices for flow control are:
- END CASE: End the case and continue to the next step after the case in the duzzit.
- NEXT CASE: Proceed to the next case condition block in the case.
- END: End the duzzit.
Group Step
The group step is a special step that allows you to organize your duzzit by grouping logically related steps together. Let’s say we want to group two steps together. First we add a group to the duzzit by dragging the ‘group’ icon onto the duzzit, and dropping (like a step) onto a blue drop zone.

We then have an empty group:

Now we can drag the existing steps into the group, dropping on the blue drop zone within the group:

After dropping the first step in the group, we have:

And after moving the second step, we have:

Group Step Flow Control
Within a group, flow control choices for included steps are altered. In addition to the normal flow control choices, an END GROUP choice is provided for proceeding to the next step after the group, thereby skipping the remaining steps within the group.
Loop Step
The ‘loop’ step is an advanced feature – a step that allows you to loop through data from an input value or input source. For example, you might have an input value that is a comma delimited list of names. When running, let’s say that it has this value:
Anderson,Jones,Smith,Ford,Smith
Let’s say we want to count how many occurrences of “Smith” are in this input. We can do this with a loop. First, we’ll add a loop to the duzzit by dropping it into the panel (just like any other step).

To loop through last names, we’ll drop the input value “LastName” on ‘(select value)’:

To do something with each last name, we’ll want a step with an ‘if’. To create this step, as a shortcut, we can drop an ‘if’ into the loop:

Now we have a step in the loop with an ‘if’ in it:

When running the duzzit, the loop will execute 5 times. First, for “Anderson”, next for “Jones”, etc. To compare against the value, we can select a loop item for a comparison value in the ‘if’. We’ll check if it is equal to “Smith”. Then, if it is, we’ll use an arithmetic function to increment a value named “Number of Smiths”:

To see the number, we might subsequently create a Step to write results to an output message:

So, if we then run the duzzit with the LastName value of “Anderson,Jones,Smith,Ford,Smith”, the output message will be “Found 2 Smiths.”
Loop Step Flow Control
Additional flow control choices are available for steps within a loop. Choices include:
- END LOOP: End the loop and continue to the next step after the loop in the duzzit.
- NEXT ONE IN LIST: Proceed to the next item in the loop. This gets the next list item, and proceeds with the first step in the loop.
- END: End the duzzit.
- GO TO: Go to the specified step. The list of steps available is restricted to steps within the loop.

