--- alias: user-guide-automation-business-scenarios-building-structure-step tags: - automation - connect iot description: "Steps define atomic actions within a business scenario, managing data and execution flow" --- # Step (JSON) Each step has an atomic functionality that will perform the desired action. It may store the result in the answers object that is shared across the execution of the scenario. | Name | Description | Mandatory | Type | Possible Values | Default Value | | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | -------- | -------------------------------------------------------------------------------------------- | ------------- | | name | Name (unique within the entire BusinessScenario) that identify the step | Y | `String` | | | | type | Type of step that will be performed
`Message` - Simple message to display to the user. No interaction is necessary
`Question` - Question to ask the user and expect for a valid answer to be provided
`Debug` - Debug the current state of the scenario
`Script` - Script to execute to calculate some values that may be necessary for a next step
`CallScenario` - Call another `BusinessScenario` before moving to the next step
`Condition` - Define the conditions to move to another step
`Foreach` - Iterate a list of items and execute a list of steps to process them | Y | `Enum` | `Message`
`Question`
`Debug`
`Script`
`CallScenario`
`Condition`
`Foreach` | | | settings | Specific settings depending on the type:
[[user-guide-automation-business-scenarios-building-structure-step-message]]
[[user-guide-automation-business-scenarios-building-structure-step-question]]
[[user-guide-automation-business-scenarios-building-structure-step-debug]]
[[user-guide-automation-business-scenarios-building-structure-step-script]]
[[user-guide-automation-business-scenarios-building-structure-step-callscenario]]
[[user-guide-automation-business-scenarios-building-structure-step-condition]]
[[user-guide-automation-business-scenarios-building-structure-step-foreach]] | Y | `Object` | | | | next | Next step to be executed after this one ends | N | `String` | | | | resultKey | Key name to use to store the result of this step
Leave this field as empty or null to ignore | N | `String` | | | ## Example snippets ### Message In this example snippet, the scenario will show the defined message to the user: ```json { "name": "MessageEnd", "type": "Message", "settings": { "message": "If the tab has not reloaded, please reload the Automation Controller tab, to see the changes." }, "next": "" } ``` ### Question This example creates a question: ```json { "name": "ConditionOfMapping", "type": "Question", "resultKey": "iotPropCondition", "settings": { "message": "Please write a condition to map the property to the chosen State Model State.\nThe $prop will map to the previously chosen property.\nFor example, '$prop == 0'. This will imply that when the property equals to 0 it will change the state to the chosen state.", "dataType": "String" }, "next": "PushConditionScript" } ```