Monitoring Workflows

Monitor Looply Workflows from the Workflow History Section.

Looply has excellent monitoring and analytics for how each of your Looply Workflows are running. Whether a workflow is in-progress, failed, or complete you get instant feedback on what has happened in a workflow up to its current status.

Workflow History Table

Once in the Looply Workflow History section, you will see an ordered list of all your Looply Workflows Executions These are all your in-progress or completed workflow executions. This section has a built-in search bar to filter between workflow executions triggered with similar Process IDs or if you want to filter to find all executions for a particular Looply Workflow.

Each entry in this table should feature relevant information relating to each workflow execution. This includes:

  • Looply Workflow Execution date.

  • Process ID for each respective Looply Workflow Execution

  • Looply Workflow ID

  • Name of the Looply Workflow

  • Looply Workflow version number

  • How the Looply Workflow was triggered.

  • The current status of the Looply Workflow.

Examining a Workflow Execution

By clicking on any of the entries from the Workflow History Table, you will be transported to an interactive screen that resembles the Workflow Studio. Clicking on a state within the execution will show you in-depth metrics about what has happened. Each state will have details about how long it took, the input parameters passed to it, the outputs, and whether it was a successful state or not.

State Details

Once selecting a state from the workflow execution screen you will see the state details. This will show you all the parameters that you specified when designing the workflow, the date and time the state was triggered and completed, and the overall time the respective state took to complete. Each state will have a status associated. Check out our State Status Table.

State Input JSON

When building your Looply Workflow using the Workflow Studio you'll notice that each state needs a certain amount of fields filled out in order to make the state execute but also execute correctly. Each state can have manual data entered into its respective fields but can also bind data to those fields from the results of previous states. When looking at any particular Workflow Execution, clicking on a state will give you the ability to look at those state parameters but also see what the state could also use as it may contain data from previous states. There are a few things to note about how Looply displays its input JSONs.

{
  // start of current state-specific inputs (adaptive card state)
  "allow_responses": true,
  "card_version": 1,
  "previous_card_version": 0,
  "accessible_nodes": ["****"],
  "card_id": "****",
  "previous_card_id": "",
  "card_name": "Card Name 1",
  "name": "****",
  "recipient": "",
  "action": "SEND",
  "state_id": "adaptiveCard_1",
  "app_id": "****",
  "value": "",
  // end of current states specific inputs (adaptive card state)
  "$": { // outputs from all the previous states.
    "payload": { // initial input for the Looply Workflow (HTTP Request)
      "description": "Request",
      "output": {
        // output from the initial payload
      }
    },
    "function_3": {
      "description": "Time Formatter Function",
      "output": "2023-10-18"
    }
  }
}

The above is an Adaptive Card State input JSON. It contains all of its state-specific attributes at the top of the JSON and all of the previous state outputs nested inside the $ attribute.

Note: The payload state contained in the $ attribute contains all the data and information that was initially passed to the Looply Workflow. This will also only be apparent in HTTP request-triggered Looply Workflows.

State Output JSON

Very similar to the above input parameter section, except this will now include the output of the currently selected state from the workflow execution section of Looply.

{
  "payload": {
    "description": "Request",
    "output": {
      // output from the initial payload 
    }
  },
  "function_3": { // our latest states output.
    "description": "Time Formatter Function",
    "output": "2023-10-18"
  }
}

Above is an example of an output from a Function State. You will notice that you will also see all the other previous state outputs, however, unlike before they will not be nested in the $ attribute as this JSON is only to show what results have been collected by the Looply Workflow. This JSON however will be nested in the $ attribute of the input JSON for the next state in the workflow. Please see the example JSON from the State Input JSON section above.

Error Logging

As each state could be incorrectly configured or fail unexpectedly. Looply will provide a great insight into what has gone wrong with an errored or failed state. The output will change to show a stack trace of what has happened.

{
  "errorType": "Error",
  "errorMessage": "No user found",
  "trace": [
    "Error: No user found",
    "    at Runtime.dispatchAdaptiveCard [as handler] (/var/task/src/handlers/step-function/dispatchAdaptiveCard.js:183262:13)",
    "    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
  ]
}

Above is an error output for an Adaptive Card state that is missing data for a user that was supplied to receive an Adaptive Card.

State Statuses

Terminating Executions

Within Looply, users have the powerful capability to terminate workflow executions that are either in progress or awaiting a response. This feature ensures that you can swiftly intervene, stopping a workflow from progressing further when necessary.

Terminating an execution is particularly useful when a process is no longer relevant, requires immediate cessation due to unforeseen issues, or when a critical error needs to be rectified. By providing this level of control, Looply empowers users to maintain the integrity and efficiency of their operational processes, ensuring that only relevant and error-free workflows reach completion.

To terminate an in-progress or awaiting workflow execution, simply navigate to the execution's detail view and select the Terminate option. This action immediately halts the workflow, preventing any further steps from being executed and effectively ending the process at its current state

Last updated