Complete steps

Complete steps in the app or using the API

Completing a form or decision step in the app

A form step is completed when you have finished all the form fields and click the Complete button under the form. That also applies to decision steps, where you select your decision and click Complete.

🚧

You can edit a completed step as long as the workflow instance is still in progress. However, if conditional steps follow, and they have already been completed, the updates to the form step won't affect the completed conmditions.

Completing an automated step

Those steps do not need your input and are completed automatically. If an automated step produces an error, the workflow technical lead is notified by email and can update and restart the step.

Completing steps using API

You can also use our API to complete steps.

Use the following information to structure your calls:

Field with a simple input form field

{
   "step_id":"STEP_ID",
   "actions":[
      {
         "action_id":"FORM_FIELD_ID",
         "input_object":{
            "inputValue":"STRING"
         }
      }
   ]
}

Field with an address input

{
   "step_id":"STEP_ID",
   "actions":[
      { "action_id":"FORM_FIELD_1_ID",
        "input_object":{
            "inputValue":{
               "city":"city",
               "street":"street",
               "zipCode":"zipCode"
            }
         } 
      }
   ]
}

Field with a date input

{
   "step_id":"STEP_ID",
   "actions":[
      {"action_id":"FORM_FIELD_1_ID",
       "input_object":{
            "date":"2021-06-16T10:00:00.000Z" //the date needs to follow the ISO format
         }
      }
   ]
}

Field with a checklist

{
   "step_id":"STEP_ID",
   "actions":[
      {"action_id":"FORM_FIELD_1_ID",
       "input_object":{
            "inputValue":{
               "itemsChecked":[
                  "Option A", //enter only one value for single selection
                  "Option B"
               ],
               "itemsNotChecked":[
                  "Option B",//If you want to select multiple values and leave only few options unselected, specify the options to leave unchecked and the remaining options will be checked by default
                  "Option C"
               ]
            }
         }
      }
   ]
}

Field with radio button selection

{
   "step_id":"STEP_ID",
   "actions":[
      {"action_id":"FORM_FIELD_1_ID",
       "input_object":{
            "inputValue":{
               "radioItemSelected":"Option A"
            }
         }
      }
   ]
}

Field with URL input

{
   "step_id":"STEP_ID",
   "actions":[
      {"action_id":"FORM_FIELD_1_ID",
       "input_object":{
            "url":{
               "url":"http://nextmatter.com"
            }
         }
      }
   ]
}

Filed with email input

{
    "step_id": "STEP_ID",
    "actions": [
        {"action_id":"FORM_FIELD_1_ID",
         "input_object": {
                "emailValue": "[email protected]"
            }
        }
    ]
}

Field with a drawing

{
   "step_id": "STEP_ID",
   "actions": [
      {"action_id":"FORM_FIELD_1_ID",
       "input_object": {
            "url": "https://MY_IMAGE_URL.png"//if the URL doesn't end with the .png or .jpg because it is hosted, for example on Google Drive, the file will be uploaded but the preview will be broken
         }
      }
   ]
}

Field with image upload

{
   "step_id": "STEP_ID",
   "actions": [
      {"action_id":"FORM_FIELD_1_ID",
       "input_object": {
            "images": "https://MY_IMAGE_URL.png"//if the URL doesn't end with the .png or .jpg because it is hosted, for example on Google Drive, the file will be uploaded but the preview will be broken
         }
      }
   ]
}

Field with file upload

{
   "step_id": "STEP_ID",
   "actions": [
      {"action_id":"FORM_FIELD_1_ID",
       "input_object": {
            "files": "https://MY_FILE_URL.txt"
         }
      }
   ]
}

Field with user selection dropdown

{
   "step_id":"STEP_ID",
   "actions":[
      {"action_id":"FORM_FIELD_1_ID",
         "input_object":{
             "selection":{
                 "user_email":"[email protected]"
               }  
         }
      }
   ]
}

Field with user selection dropdown (team as assignee)

{
    "step_id": "STEP_ID",
    "actions": [
        {"action_id":"FORM_FIELD_1_ID",
         "input_object": {
                "selection": {
                    "team_id": 1234 //If the assignee is a team, you need to enter the Team ID. Contact our Support Team to get the ID. //
                }
            }
        }
    ]
}

Instruction

{
   "step_id":"STEP_ID",
   "actions":[
      {"action_id":"FORM_FIELD_1_ID",
       "input_object":{
            "inputValue":{}//An instruction field doesn't require any input but still needs to be completed. That's why we recommend entering an empty input object.
         }
         }
      }
   ]
}

Routing

Return to step

{
  "step_id": <ACTIVE_STEP_ID>,
  "actions": [
    {
      "action_id": FORM_FIELD_1_ID,
      "input_object": {
        "action": "return",
        "comment": "comment_text", //leave as "" if there's no comment
        "returnToStep": <STEP_TO_RETURN_TO_ID>
      }
    }
  ]
}

Skip forward (to step)

{
  "step_id": <ACTIVE_STEP_ID>,
  "actions": [
    {
      "action_id": FORM_FIELD_1_ID,
      "input_object": {
        "action": "skip_forward",
        "comment": "comment_text", //leave as "" if there's no comment
        "returnToStep": <STEP_TO_SKIP_TO_ID>
      }
    }
  ]
}

Stop instance

 {
  "step_id": <ACTIVE_STEP_ID>,
  "actions": [
    {
      "action_id": FORM_FIELD_1_ID,
      "input_object": {
        "action": "decline",
        "comment": "comment_text", //leave as "" if there's no comment
        "returnToStep": -2
      }
    }
  ]
}

Continue

 {
  "step_id": <ACTIVE_STEP_ID>,
  "actions": [
    {
      "action_id": FORM_FIELD_1_ID,
      "input_object": {
        "action": "complete",
        "comment": "comment_text", //leave as "" if there's no comment
        "returnToStep": -1
      }
    }
  ]
}

Table

Ensure that the table content in jsonResult is a JSON-encoded string representation of the 2D array.

{
  "step_id": <ACTIVE_STEP_ID>,
  "actions": [
    {"action_id":"FORM_FIELD_1_ID",
      "input_object": {
        "jsonResult": "[[\"HeaderRow1Column1Value\", \"HeaderRow1Column2Value\", \"HeaderRow1Column3Value\"], [\"Row2Column1Value\", Row2Column2Value, \"Row2Column3Value\"], [\"Row3Column1Value\", Row3Column2Value, \"Row3Column3Value\"]]"
      },
      "action_id": FORM_FIELD_1_ID
    }
  ]
}

📘

Note that when the provided values are numbers (like the values in column 2 of the above examples), they don't need to be escaped (\"\").
For an empty field, escape it with no values provided.


Real-life call example

1: These will be header names for the 3 columns we're creating. This will be our first row.
Note: If you don't want to create a header with specific names, go to the table configuration and clear the Set first row as header option. Then your header will get default names.

2: These values will appear in the 2nd row in the respective columns.

3: The 3rd column of the 3nd row will be empty.

4: This is my step ID

5: This is my form field ID.

Completing conditional steps

To write a complete step request when some input form fields are conditional, you need to include all the fields in the request body, regardless of whether they are conditional. For conditional fields, simply provide empty values.

For example:

{
  "step_id": "STEP_ID",
  "actions": [
    {
      "action_id": "FORM_FIELD_1_ID",
      "input_object": {
        "selection":{
                 "user_email":"[email protected]"
               } 
      }
    },
    {
      "action_id": "FORM_FIELD_2_ID", //this field is conditional
      "input_object": {
        "images": [] //this is an empty value
      }
    }
  ]
}