Back to Top

Mesa Script SDK

Mesa.log.info(message[, meta])

Log info to Mesa Logs.

Parameters

Name Type Description
message string
meta object Optional

Returns

Void

Mesa.log.warn(message[, meta])

Log a warning to Mesa Logs.

Parameters

Name Type Description
message string
meta object Optional

Returns

Void

Mesa.log.error(message[, meta])

Log an error to Mesa Logs.

Parameters

Name Type Description
message string
meta object Optional

Returns

Void

Mesa.log.debug(message[, meta])

Log info to Mesa Logs only if the Automation is in Debug Mode.

Parameters

Name Type Description
message string
meta object Optional

Returns

Void

Mesa.request.get(path[, options])

Make a GET request to an external Rest API.

Parameters

Name Type Description
path string
options object Optional
options.json bool

Automatically add JSON Content-Type headers and decode the response. Default: true

Optional
options.query object

Parameters to append to the querystring.

Optional
options.headers object

Headers to send to the request.

Optional
options.include_headers bool

Include headers in the response. The response format will be { "headers": {}, "body": {} }.

Optional
options.debug bool

Log request information and response headers. Defaults to context.automation.debug.

Optional

Returns

string object

The response returned by the request. object if options.json is true, string if options.json is false.

Mesa.request.post(path, data[, options])

Make a POST request to an external Rest API.

Parameters

Name Type Description
path string
data object
options object Optional
options.json bool

Automatically add JSON Content-Type headers and decode the response. Default: true

Optional
options.query object

Parameters to append to the querystring.

Optional
options.headers object

Headers to send to the request.

Optional
options.include_headers bool

Include headers in the response. The response format will be { "headers": {}, "body": {} }.

Optional
options.debug bool

Log request information and response headers. Defaults to context.automation.debug.

Optional

Returns

string object

The response returned by the request. object if options.json is true, string if options.json is false.

Mesa.request.put(path, data[, options])

Make a PUT request to an external Rest API.

Parameters

Name Type Description
path string
data object
options object Optional
options.json bool

Automatically add JSON Content-Type headers and decode the response. Default: true

Optional
options.query object

Parameters to append to the querystring.

Optional
options.headers object

Headers to send to the request.

Optional
options.include_headers bool

Include headers in the response. The response format will be { "headers": {}, "body": {} }.

Optional
options.debug bool

Log request information and response headers. Defaults to context.automation.debug.

Optional

Returns

string object

The response returned by the request. object if options.json is true, string if options.json is false.

Mesa.request.patch(path, data[, options])

Make a PATCH request to an external Rest API.

Parameters

Name Type Description
path string
data object
options object Optional
options.json bool

Automatically add JSON Content-Type headers and decode the response. Default: true

Optional
options.query object

Parameters to append to the querystring.

Optional
options.headers object

Headers to send to the request.

Optional
options.include_headers bool

Include headers in the response. The response format will be { "headers": {}, "body": {} }.

Optional
options.debug bool

Log request information and response headers. Defaults to context.automation.debug.

Optional

Returns

string object

The response returned by the request. object if options.json is true, string if options.json is false.

Mesa.request.delete(path[, options])

Make a DELETE request to an external Rest API.

Parameters

Name Type Description
path string
options object Optional
options.json bool

Automatically add JSON Content-Type headers and decode the response. Default: true

Optional
options.query object

Parameters to append to the querystring.

Optional
options.headers object

Headers to send to the request.

Optional
options.include_headers bool

Include headers in the response. The response format will be { "headers": {}, "body": {} }.

Optional
options.debug bool

Log request information and response headers. Defaults to context.automation.debug.

Optional

Returns

string object

The response returned by the request. object if options.json is true, string if options.json is false.

Mesa.request.send(method, path, data[, options])

Make a request to an external Rest API.

Parameters

Name Type Description
method string

One of GET, POST, PUT, PATCH, or DELETE

path string
data object
options object Optional
options.json bool

Automatically add JSON Content-Type headers and decode the response. Default: true

Optional
options.query object

Parameters to append to the querystring.

Optional
options.headers object

Headers to send to the request.

Optional
options.include_headers bool

Include headers in the response. The response format will be { "headers": {}, "body": {} }.

Optional
options.debug bool

Log request information and response headers. Defaults to context.automation.debug.

Optional

Returns

string object

The response returned by the request. object if options.json is true, string if options.json is false.

Mesa.request.base64(string)

Base-64 encode a string. This is helpful when building an Authorization header for basic auth requests.

Parameters

Name Type Description
string string

The string to encode

Returns

string

The base-64 encoded version of the input string parameter.

Mesa.request.hash(algorithm, string[, base64encode])

Generate a hash of a string. This is helpful when creating signed requests.

Parameters

Name Type Description
algorithm string

The algorithm to use. Options: sha1, sha256, md5

string string

The string to create the hash from

base64encode string

Should we base64-encode the raw value of the hash?

Optional

Returns

string

The raw binary data of the hash

Mesa.request.hashHmac(algorithm, string, string[, base64encode])

Generate a keyed hash value using the HMAC method. This is helpful when creating signed requests.

Parameters

Name Type Description
algorithm string

The algorithm to use. Options: sha1, sha256, md5

string string

The string to create the hash from

string string

Shared secret key used for generating the HMAC variant of the message digest

base64encode string

Should we base64-encode the raw value of the hash?

Optional

Returns

string

The raw binary data of the hash

Mesa.secret.get(key[, defaultValue])

Get a secret.

Parameters

Name Type Description
key string
defaultValue string

A default value to use if the secret cannot be found. If defaultValue is empty, the script will throw a fatal error if the secret is not found.

Optional

Returns

string

The secret value.

Mesa.secret.set(key, value)

Save a secret value.

Parameters

Name Type Description
key string
value mixed

Returns

Void

Mesa.storage.get(key[, defaultValue])

Get a storage item

Parameters

Name Type Description
key string
defaultValue string

A default value to use if the storage key cannot be found. If defaultValue is empty, the script will throw a fatal error if the storage key is not found.

Optional

Returns

string

The storage value.

Mesa.storage.set(key, value)

Get a storage item

Parameters

Name Type Description
key string
value string

Returns

Void

Mesa.liquid.render(template, params)

Render a liquid template with the params passed.

Parameters

Name Type Description
template string

String representing a liquid template.

params object

A keyed object of parameters to replace.

Returns

string

The rendered template code.

Mesa.output.done(payload, params)

Pass a payload to the Output configured to trigger this Script in the Mesa Dashboard.

Parameters

Name Type Description
payload object
params object

Parameters to send to the output, such as tokens to construct a Shopify API url

Returns

Void

Mesa.output.send(outputKey, payload)

Call an output from a Mesa Script

Parameters

Name Type Description
outputKey string
payload object

Returns

Void

Mesa.automation.send(automationKey, payload)

Call another automation from a Mesa Script

Parameters

Name Type Description
automationKey string

In the form ${automationKey}, this will trigger the first input in the Automation. In the form ${automationKey}/${inputKey}, this will trigger a specific input in the automation.

payload object

Returns

Void

Mesa.ftp.deleteFile(filename)

Delete the file loaded by the Input.

Parameters

Name Type Description
filename string

Typically passed from context.filename.

Returns

Void

Mesa.ftp.moveFile(filename, destinationFilenameAndPath)

Move the file loaded by the Input to a new location.

Parameters

Name Type Description
filename string

Typically passed from context.filename.

destinationFilenameAndPath string

Returns

Void

Mesa.xml.decode(xmlString[, namespaceSep='_'])

Convert an XML file into an {object}. This function will condense XML namespaces into {namespaceSep = '_'} separated values: soapenv:Body becomes { soapenv_Body: {} }

Parameters

Name Type Description
xmlString string

The xml file to be decoded

namespaceSep='_' string

Namespace separator for replacing soapenv:Body type values with soapenv_Body

Optional

Returns

object

Mesa.xml.encode(xmlObject[, wrapReplace, namespaceSep='_'])

Convert an object into an XML string.

Parameters

Name Type Description
xmlObject object

The object to be turned into xml.

wrapReplace string

Replace the default wrapping provided with another value

Optional
namespaceSep='_' string

Namespace separator for replacing soapenv_Body: {} values with soapenv:Body

Optional

Examples

// returns <?xml version="1.0" encoding="UTF-8"?><doc>\n  <book>\n ...
Mesa.xml.encode({ book: { ... }});
// returns <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n  <soapenv:Body>\n ...
Mesa.xml.encode({ soapenv_Body: { ... } }, '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">');

Returns

string

Mesa.xml.valid(xmlString)

Check if xml is valid

Parameters

Name Type Description
xmlString string

Examples

// returns true
Mesa.xml.valid('<?xml version="1.0" encoding="UTF-8"?><doc><book><Name>My Book</Name></book></doc>');
// throws error about namespace
Mesa.xml.valid('<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope><book><Name>My Book</Name></book></soapenv:Envelope>');

Returns

bool

Mesa.csv.decode(data[, returnObject])

Convert a CSV file into an object. Keys will be matched from the first header row of the CSV file.

Parameters

Name Type Description
data string
returnObject bool

Defaults to true, which will return an object keyed by the first row in the CSV content. Set to false to return an array.

Optional

Returns

object array

Mesa.csv.encode(data[, headerRow])

Convert an object a CSV string.

Parameters

Name Type Description
data object
headerRow bool

Defaults to true. Set to false to skip the header row when returning CSV.

Optional

Returns

string

Mesa.vo.push(outputKey, payload)

Push to a Virtual Output.

Parameters

Name Type Description
outputKey string
payload mixed

Returns

Void

Mesa.vo.clear(outputKey)

Mark the matching Virtual Output records as cleared by the current Mesa Script.

Parameters

Name Type Description
outputKey string

Returns

Void

Mesa.vo.clearOne(outputKey, mesaId)

Mark a single Virtual Output record as cleared by the current Mesa Script.

Parameters

Name Type Description
outputKey string
mesaId string

The ID of the record to clear (returned as mesa_id in the Virtual Output).

Returns

Void

Mesa.date.setTimezone(timezone)

Set the timezone to use to execute all script commands.

Parameters

Name Type Description
timezone string

The timezone identifier, like UTC or Europe/Lisbon.

Returns

string

The timezone identifier, like UTC or Europe/Lisbon.

Mesa.date.format(format, timestamp)

Returns a date as a formatted string.

Parameters

Name Type Description
format string

The format of the outputted date string. See full list of options.

timestamp int

Defaults to now. Optional

Returns

string

The formatted date string.

Mesa.email.send(to, subject, body)

Send an email.

Parameters

Name Type Description
to string
subject string
body string

Returns

Void