Inputs

Inputs are the starting point for actions that you would like to have executed based on a trigger from a system on your Shopify store. These inputs can either stem from your Shopify store and process an action for a third-party API or vice versa. 

To configure an input, you will first need to select the Input Type from the Input tab on the Mesa dashboard and then click Add New.

There are several to choose from: 

Each of these input types will have some standard fields to fill out across all of them: 

  • Name: Title of the input, which will help identify what it's for.
  • Key: The identifier for the input used by the system. Input keys will begin with in-.
  • Script: The Mesa Script [link] that will execute when this input is triggered. Scripts are also created on the Mesa dashboard, and will generally trigger an Output [link].

Each input has a toggle to enable/disable it, a duplicate button, and a test button (shown in the screenshot below) which will let you run an example payload. 

The number of inputs you can enable at one time is depends on your Mesa plan.

Here are the details on the available input types:

FTP

Download a file from a FTP server on a schedule.

  • See list of standard fields.
  • Method: Mesa supports FTP and SFTP connections.
  • Port: The FTP port to connect to. Often times 21 for FTP and 22 for SFTP.
  • Username: The FTP username.
  • Password: Create a Secret with your FTP password and select it in this dropdown.
  • Host: The FTP host to connect to.
  • File: The file path and name to read and pass to the script. This field supports the following tokens:
    • *: Wildcard matches one or more characters
    • {date:RELATIVE_STRING}: This token can be used to enter a relative date from today. Full syntax details. For example, out-{date:m_d_Y}.csv will read or save the file out-03_14_2019.csv.

Shopify Webhook

Automatically trigger tasks when events occur in Shopify, such as when an order is created, fulfilled, or products are modified.

JSON Webhook

Webhook Inputs make it possible for third party applications to trigger Mesa tasks.For example, a package tracking provider could trigger a Mesa Script when an order is delivered.

  • See list of standard fields.
  • Host: Automatically-generated callback URL to configure in a third party application.  The host is generated based on your key and includes your public API Key. Click the Copy link to copy the full hostname to your clipboard.

Shopify API

The Shopify API Input queries the Shopify API for data on a schedule. 

In the event of a  429: Rate Limit error response from Shopify, we will continue to retry the API call every two seconds. If your maximum script execution time is surpassed during retries, your task will fail and will be replay-able in the Query page.

  • See list of standard fields.
  • API: The Shopify API method you would like to call. Typically, this will be a GET method.
  • Schedule: How often this input should run. Uses crontab syntax.
  • Advanced Options: Connect to another Shopify site that Mesa is not installed on by connecting with Private App credentials.
    • Site Hostname: The admin hostname for the external site.
    • API Key: The Private App API key.
    • Password: The Private App password.
    • Parameters: A string of querystring parameters. If the Shopify API selected requires parameters, these will be added to the URL that is called.  All other parameters will be appended to the URL as parameters.  There are some special parameters that can be used:
      • limit: The number of results that should be retrieved from the Shopify API.  If you set the limit to -1, we will page through all results from Shopify, retrieving up to 5000 results.
      • {date:STRING}: This token can be used to enter a relative date from today. Full syntax details. For example, these parameters could be used to retrieve results from the last month:
        created_at_min={date:-1 month}&created_at_max={date:now}

Task

Run an arbitrary Mesa Script on a schedule.  Typically Task Input Scripts will call Mesa.request.get().