Working with Lists, Part 1- The Making of Lists

This blog is Part 1 of  a 3 part blog series that covers various facets of list processing in Workato recipes. This post addresses the relevance of lists in business processes, the various events in a recipe that produce a list output and sample recipes to demonstrate the usage of lists.

What are lists?


Noun plural noun: lists

– a number of connected items or names written or printed consecutively, typically one below the other.


– make a list of.

Lists are ubiquitous in our daily lives. Laundry-list, grocery list, to-do list, checklist, short-list, playlist, bucket list — the list of lists is endless! Therefore, it is not surprising that lists are used excessively in business processes e.g. order to cash, quote to cash, order to ship, order fulfillment, payment automation etc. to organize information and data for opportunities, orders, customers, products etc.

In Workato, recipes lists are a powerful data structure that allow you to simplify operations and actions on multi-row inputs or outputs. Broadly speaking, the occurrence of lists in business processes can be classified as:


  • Basic: The rows in the list are self-contained i.e. all the information required is explicitly expressed in each column/field. Examples:
    • Product catalog consisting of product id, name, price etc.
    • Customer contacts consisting of name, address, phone, email etc in a CSV file
    • List of customer accounts retrieved from SQL Server.
    • List of responses returned by an HTTP request.
  • Nested: The details of the row in the parent list is contained in a separate child list. This relationship can be expressed in a multi-level hierarchy. Examples:
    • Retrieve list of opportunities for each account in Salesforce.
    • Retrieve list of transactions for an order in Xero.
    • List of orders for each customer in Shopify.
    • List of tickets for each Epic in JIRA.
    • List of contracts for a customer in Docusign.
    • List of leads for each campaign in Marketo.


 A list of use cases

Occasionally when automating a business workflow (e.g. order to cash, quote to cash, partner onboarding, employee onboarding etc.) using Workato recipes, the input and/or output data could be lists. Below are a few sample use cases where lists could be used as input or output in the recipe actions:

  • Lead Nurturing:
    • Lead nurturing is a critical process for developing relationships with consumers at every touchpoint in the sales funnel. Workato recipes  can help  streamline the marketing and communication efforts by listening to the lifecycle events of the customer. For example by integrating your e-commerce app (e.g. Shopify) with your marketing app (e.g. Marketo), you can automatically create a lead in Marketo when a new customer is added in Shopify. The leads can then be segmented for a “Welcome” campaign that helps with on-boarding or incentivizes them to complete a purchase with a soon to expire discount.
  • Order to Cash:
    • Workato recipes let you build seamless workflows by integrating your CRM apps (e.g. Salesforce) with your financial or ERP apps (e.g. Intacct, Netsuite, SAP). Efficiently manage bi-directional flow of order, productcustomer, and contract data to automate each step in the order to cash process e.g. contract signing, invoicing etc. Increase the effectiveness and productivity of the sales and finance teams by eliminating the manual steps, double entry and errors.

The Making of Lists in Recipes

Multiple triggers and actions in a recipe can result in an output that is a list.


Below is a list of the most common actions that generate a list output.

  • Search Results:

    • When the recipe action performs a bounded (i.e. with a search criteria) or unbounded (i.e. no criteria) search to retrieve a list of standard or custom objects (e.g. leads, opportunities, accounts, campaigns, customers, products) that match the search criteria, the result of the search could be a list
    • Examples of actions:
      • Search for Objects in CRM (e.g. Salesforce) application will return list of objects (e.g. accounts, opportunities, contacts, products, orders etc.) in the CRM application schema
      • Search for objects in ERP (e.g. NetSuite, Microsoft Dynamics CRM) application will return a list of objects (e.g. invoices, payments, orders, shipments etc.)  in the ERP schema
      • Search for Leads in your marketing application (e.g. Marketo) will return a list of leads
      • Search for entries in a Lookup Table will return a list of rows in the lookup table
      • Search products/customer in your eCommerce (e.g. Magento, Shopify) application will return a list of products/customer



  • CSV Input

    “CSV Input” is when a recipe reads and processes rows in a CSV file. For example, the recipe can search for leads in the CSV file and assign the lead to a campaign based on matching criteria.


  • Searching with SOQL Query:

    “Searching with SOQL query” is when the recipe retrieves a list of standard or custom objects e.g. leads, contacts, opportunities, orders from Salesforce using a SOQL search. The sample recipe above uses SOQL query to search contacts in Salesforce and for each contact found in Salesforce creates a contact in Intacct.


  • HTTP Output:

    “HTTP Output” is when a recipe action using HTTP includes multiple rows in the response. For example when you are trying to collate stats and comments for multiple blog posts, webinars etc.


Accessing Lists

When you navigate the data tree (hierarchical data structure containing variables that are output from a trigger or action in the recipe) for browsing or mapping variables, list data structures use the icon shown below:

The data pill (each variable in the data tree) can be mapped into input fields of subsequent steps in the recipe. The details of accessing and processing  lists in recipe actions will be covered in the “Working with Lists, Part 2: List Processing Techniques” post.