---
title: Platform Update - Parallel Loops, Scheduled Workflow Runs, Instance Manager APIs
description: Losant's IoT platform release offers developers improved workflow performance for real-time data processing. Get the details of these updates in the blog.
---

[All Things IoT | Losant Blog ](https://www.losant.com/blog)

# [Platform Update - Parallel Loops, Scheduled Workflow Runs, Instance Manager APIs](https://www.losant.com/blog/platform-update-parallel-loops-scheduled-workflow-runs-instance-manager-apis)

 Written by [Dylan Schuster](https://www.losant.com/blog/author/dylan-schuster) | Wed, Mar 31, 2021

Today’s platform update includes two features that improve workflow performance for users who are doing heavy, real-time data processing within the workflow engine. There are a number of use cases that, prior to this release, fell just outside the capabilities of workflows, and these updates now make those use cases achievable.

While [Jupyter Notebooks](https://docs.losant.com/notebooks/overview/) are still best for batch analytics, they can be overwhelming for those without a programming background. Today’s release empowers such users to take advantage of the drag-and-drop workflow interface to accomplish more of their post-processing outside of a notebook environment.

## Parallel Loop Node Executions

It is quite common to loop over arrays of data stored on a payload and perform operations on each iteration, and sometimes those operations can be quite time consuming. A poorly constructed workflow, or an excessively large array, can then result in a timeout error, leaving iterations unprocessed.

Today we are exposing the ability to run [Loop Nodes](https://docs.losant.com/workflows/logic/loop/) in parallel (multiple iterations at one time), whereas previously they could only run serially (one after the other). A parallel loop can run as much as five times faster than a serial loop, drastically reducing the risk of timeouts.

Parallel loops do come with the drawback that the original payload cannot be modified, so we’ve also added the ability to define a result per iteration and return an array of each iteration’s results. Most workflows can easily be adjusted to utilize result-returning parallel loops.

## Scheduled Workflow Runs

Many users already take advantage of workflow-to-workflow invocation through the [Workflow Trigger Node](https://docs.losant.com/workflows/outputs/workflow-trigger/), which allows for spinning off complex calculations to a new process - and avoiding timeout issues. Today’s release extends the functionality of this node to allow for scheduling those invocations at a later time.

A common use case, especially for users taking advantage of our [Edge Compute](https://docs.losant.com/edge-compute/overview/) features, is to collect state reports locally on a device and then batch-report all of that state data the next time the device has an Internet connection. If those state reports pile up enough, this can lead to timeouts to third-party API calls or [Device State Triggers](https://docs.losant.com/workflows/triggers/device/) failing to fire due to concurrency limits.

If post-processing of state data can wait, users can spread the executions out over a wider time range, or schedule those workflow runs to occur when they expect lower trigger volume - such as the middle of the night. Also, scheduled runs can later be canceled, or pushed further into the future depending on conditions defined by the user.

## Instance Manager APIs

With this update, we’re also introducing our Instance Manager APIs: a set of endpoints that help Losant resellers and enterprise customers programmatically manage the organizations under their umbrella. Using these endpoints, instance managers can:

- Create new organizations, update resource limits, and temporarily disable organizations
- Add Losant users directly to managed organizations
- Generate resource usage reports, including payload and device counts

If you are interested in utilizing this suite of endpoints, contact your Losant account manager to learn more.

## Other Updates

As always, this release comes with a number of smaller feature improvements, including:

- [Devices queries](https://docs.losant.com/devices/device-queries/#advanced-queries) now support connection status, including by the timestamp they last connected or disconnected. This allows for returning, for example, a list of devices that have been disconnected for more than 24 hours.
- [Data Table Dashboard Blocks](https://docs.losant.com/dashboards/data-table/) now support a “Custom” column for rendering images, [Markdown](https://daringfireball.net/projects/markdown/syntax), and [string templates](https://docs.losant.com/workflows/accessing-payload-data/#string-templates), much like the [Device List](https://docs.losant.com/dashboards/device-list/) and [Event List](https://docs.losant.com/dashboards/event-list/) blocks.
- We’ve added an [Access Key: Create Node](https://docs.losant.com/workflows/data/access-key-create/), which allows for generating a set of credentials for authenticating with the [Losant Broker](https://docs.losant.com/mqtt/overview/#broker-authentication) in a workflow run. We expect this node to be used often in conjunction with the [Device: Create Node](https://docs.losant.com/workflows/data/create-device/) in a dynamic registration flow.
- The [Array Node](https://docs.losant.com/workflows/logic/array/) now supports the `slice` operation, which allows for quickly cloning a subsection of an array stored on your payload.
- The [Workflow Error Trigger](https://docs.losant.com/workflows/triggers/flow-error/) is now guaranteed to retain the original payload’s `replyId` property, which ensures that an [Experience Endpoint](https://docs.losant.com/experiences/endpoints/) request can receive an appropriate response using the [Endpoint Reply Node](https://docs.losant.com/workflows/outputs/endpoint-reply/).

## Template Library Updates

We’re continuing to grow our [Template Library](https://docs.losant.com/template-library/overview/) with new entries designed to demonstrate Losant best practices, shorten time to market, and improve end user experience. We’ve added the following templates since our last platform update:

- [Auth0 Experience User SSO](https://github.com/Losant/losant-templates/tree/master/library-templates/experiences/forms/auth0-social-login): Demonstrates how to use [Auth0](https://auth0.com/) to manage [Experience Users](https://docs.losant.com/experiences/users/), including a number of SSO providers exposed through the service.
- [Experience User File Upload](https://github.com/Losant/losant-templates/tree/master/library-templates/experiences/forms/file-upload): Allows [Experience Users](https://docs.losant.com/experiences/users/) to upload files larger than the maximum workflow payload size to [Application Files](https://docs.losant.com/applications/files/).

## What’s Next?

With every new release, we listen to your feedback. By combining your suggestions with our roadmap, we can continue to improve the platform while maintaining its ease of use. Let us know what you think in the [Losant Forums](https://forums.losant.com/?utm_campaign=Platform%20Updates&utm_source=December%20platform%20update&utm_content=blog).

[View full post](https://www.losant.com/blog/platform-update-parallel-loops-scheduled-workflow-runs-instance-manager-apis)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Dylan Schuster"
  },
  "dateModified" : "2021-03-31T14:21:39.997Z",
  "datePublished" : "2021-03-31T14:21:39Z",
  "headline" : "Platform Update - Parallel Loops, Scheduled Workflow Runs, Instance Manager APIs",
  "image" : {
    "@type" : "ImageObject",
    "height" : 628,
    "url" : "https://f.hubspotusercontent40.net/hubfs/742943/platformupdate.png",
    "width" : 1200
  },
  "mainEntityOfPage" : "https://www.losant.com/blog/platform-update-parallel-loops-scheduled-workflow-runs-instance-manager-apis",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60,
      "url" : "/hs/hsstatic/content_shared_assets/static-1.4092/img/default-amp-logo.png",
      "width" : 60
    },
    "name" : "All Things IoT"
  }
}
```