SCAYLE actions
The SCAYLE extension provides actions for retrieving product and category data from SCAYLE within Workforce Flows. Use these actions to fetch individual products or search and browse products by keyword or category as part of your automated content processes.
The SCAYLE action extension can be installed from the Workforce integration marketplace.
See SCAYLE configuration for details of how to obtain the credentials you need to configure the SCAYLE action extension.
Tip
These action descriptions cover the most commonly used inputs and outputs. When designing flows, you may also notice additional input and output variables.
Shared inputsLink copied!
Several actions support the following optional inputs.
Shop and pricing inputsLink copied!
| Input | Type | Description |
|---|---|---|
shopId | string | Shop ID to query. Defaults to the SCAYLE_SHOP_ID environment variable if not provided |
campaignKey | string | Adjusts prices based on the specified campaign key. If the campaign does not exist, the default price is returned |
pricePromotionKey | string | Adjusts variant prices based on the specified price promotion key. If a variant has no matching promotion, the default price is returned |
Include and filter inputsLink copied!
| Input | Type | Description |
|---|---|---|
with | string | Specifies related data to include. For example, with=attributes, with=attributes:key(plusSize), with=variants.attributes. Multiple values are comma-separated, for example with=siblings,variants |
includeSoldOut | boolean | When set to true, includes sold out products in results. Default: false |
referenceKey | string | Fetches products by reference key (e.g. 014901100002-Blue) |
disableFuzziness | boolean | Disables typo tolerance for search. When not provided, typo tolerance is applied according to the SCAYLE panel configuration. Default: false |
Pagination inputsLink copied!
| Input | Type | Description |
|---|---|---|
pagination.page | string | Page number. Default: 1 |
pagination.perPage | string | Number of products per page. Default: 20. Values above 20 are ignored |
pagination.sort | string | Sort field. When not specified, results are sorted by productId |
pagination.sortDir | string | Sort direction. Accepted values: asc, desc |
pagination.sortingKey | string | Overrides sort and sorts results by the specified sorting key instead. Accepts a comma-separated list of predefined Smart Sorting Keys and custom sorting values |
Get product by IDLink copied!
Retrieves full product data for a single product by its ID from SCAYLE.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The unique identifier of the product |
shopId | string | No | See shared inputs |
with | string | No | See shared inputs |
campaignKey | string | No | See shared inputs |
pricePromotionKey | string | No | See shared inputs |
Outputs
| Output | Type | Description |
|---|---|---|
product | object | The full product object. See product object below |
Get basic product by IDLink copied!
Retrieves a simplified set of product data for a single product by its ID from SCAYLE. Intended for use with commerce repositories.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The unique identifier of the product |
shopId | string | No | See shared inputs |
Outputs
| Output | Type | Description |
|---|---|---|
product.id | string | Product ID |
product.name | string | Product name |
product.description | string | Product description |
product.images | array | List of image objects, each with a url field |
Get products by search termLink copied!
Retrieves a paginated list of products matching a search term from SCAYLE. Products whose names or attribute values match the provided text are returned.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
searchTerm | string | Yes | Search term used to return products whose names or attribute values match the provided text |
shopId | string | No | See shared inputs |
with | string | No | See shared inputs |
campaignKey | string | No | See shared inputs |
pricePromotionKey | string | No | See shared inputs |
includeSoldOut | boolean | No | See shared inputs. Default: false |
referenceKey | string | No | See shared inputs |
disableFuzziness | boolean | No | See shared inputs. Default: false |
pagination | object | No | See shared inputs |
Outputs
| Output | Type | Description |
|---|---|---|
total | number | Total number of matching products |
perPage | number | Number of products per page |
page | number | Current page number |
sort | string | Sort field applied |
sortDir | string | Sort direction applied |
sortingKey | string | Sorting key applied |
nextPage | number | Next page number |
products | array | List of full product objects. See product object below |
Get basic products by keywordLink copied!
Retrieves a cursor-paginated list of products matching an optional keyword from SCAYLE. Intended for use with commerce repositories.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
keyword | string | No | The search phrase used to find matching products. If omitted, returns all products |
before | string | No | A Base64-encoded pagination cursor to retrieve the page of products before a given position. Use the startCursor value from a previous response |
after | string | No | A Base64-encoded pagination cursor to retrieve the page of products after a given position. Use the endCursor value from a previous response |
Outputs
| Output | Type | Description |
|---|---|---|
products | array | List of basic product objects, each with id, name, description, and images (array of objects with a url field) |
pageInfo.startCursor | string | Cursor for the first item in the current page |
pageInfo.endCursor | string | Cursor for the last item in the current page |
pageInfo.hasPreviousPage | boolean | Whether a previous page exists |
pageInfo.hasNextPage | boolean | Whether a next page exists |
Get products by category IDLink copied!
Retrieves a paginated list of products belonging to a category from SCAYLE.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The unique identifier of the category |
shopId | string | No | See shared inputs |
with | string | No | See shared inputs |
campaignKey | string | No | See shared inputs |
pricePromotionKey | string | No | See shared inputs |
includeSoldOut | boolean | No | See shared inputs. Default: false |
referenceKey | string | No | See shared inputs |
disableFuzziness | boolean | No | See shared inputs. Default: false |
pagination | object | No | See shared inputs |
Outputs
| Output | Type | Description |
|---|---|---|
total | number | Total number of matching products |
perPage | number | Number of products per page |
page | number | Current page number |
sort | string | Sort field applied |
sortDir | string | Sort direction applied |
sortingKey | string | Sorting key applied |
nextPage | number | Next page number |
products | array | List of full product objects. See product object below |
Product objectLink copied!
The full product object returned by Get product by ID, Get products by search term, and Get products by category ID contains the following fields.
Core fieldsLink copied!
| Field | Type | Description |
|---|---|---|
id | string | Product ID |
isActive | boolean | Whether the product is active |
isSoldOut | boolean | Whether the product is sold out |
isNew | boolean | Whether the product is new |
createdAt | string | Created date |
updatedAt | string | Last updated date |
indexedAt | string | Last indexed date |
firstLiveAt | string | Date the product first went live |
masterKey | string | Master key |
referenceKey | string | Reference key |
customData | object | Custom data |
sellableTimeFrame.sellableFrom | string | Start of the sellable time frame |
sellableTimeFrame.sellableTo | string | End of the sellable time frame |
AttributesLink copied!
The attributes object contains localized product attributes. The standard attributes are:
| Field | Type | Description |
|---|---|---|
attributes.name | object | Name attribute with id, key, label, type, multiSelect, and values (id, label, value) |
attributes.description | object | Description attribute with id, key, label, type, multiSelect, and values (id, label, value) |
advancedAttributes | object | Additional advanced attributes |
ImagesLink copied!
The images array contains image objects, each with:
| Field | Type | Description |
|---|---|---|
hash | string | Image hash |
attributes | object | Image attributes |
customData | object | Custom data |
Note
SCAYLE images are identified by a hash rather than a direct URL. The image URL is constructed using the hash and your SCAYLE CDN configuration.
VariantsLink copied!
The variants array contains variant objects, each with:
| Field | Type | Description |
|---|---|---|
id | number | Variant ID |
referenceKey | string | Reference key |
firstLiveAt | string | Date the variant first went live |
createdAt | string | Created date |
updatedAt | string | Last updated date |
customData | object | Custom data |
Variant price fields (price object):
| Field | Type | Description |
|---|---|---|
price.currencyCode | string | Currency code |
price.withTax | number | Price including tax |
price.withoutTax | number | Price excluding tax |
price.recommendedRetailPrice | number | Recommended retail price |
price.tax.vat.amount | number | VAT amount |
price.tax.vat.rate | number | VAT rate |
price.appliedReductions | array | Applied price reductions, each with category (sale, campaign, or promotion), type, and amount (absoluteWithTax, relative) |
Variant stock fields (stock object):
| Field | Type | Description |
|---|---|---|
stock.supplierId | number | Supplier ID |
stock.warehouseId | number | Warehouse ID |
stock.quantity | number | Stock quantity |
stock.isSellableWithoutStock | boolean | Whether the variant can be sold without stock |
stock.expectedAvailabilityAt | string | Expected restocking date |
Variant merchant fields (merchant object):
| Field | Type | Description |
|---|---|---|
merchant.id | number | Merchant ID |
merchant.key | string | Merchant key |
merchant.name | string | Merchant name |
merchant.customData | object | Custom data |
merchant.legal | object | Legal information |
CategoriesLink copied!
| Field | Type | Description |
|---|---|---|
categories | array of arrays | Each entry is a category path array. Each item in the path is a category object with categoryId, categoryHidden, categoryName, categoryUrl, and categorySlug |
masterCategories | array | Master categories, each with categoryId and categoryName |
baseCategories | array | Base categories, each with categoryId and categoryName |
searchCategoryIds | array of numbers | IDs of searchable categories |
Pricing summaryLink copied!
| Field | Type | Description |
|---|---|---|
priceRange.min | object | Minimum price in the product's price range |
priceRange.max | object | Maximum price in the product's price range |
reductionRange.min | object | Minimum reduction applied across variants |
reductionRange.max | object | Maximum reduction applied across variants |
lowestPriorPrice.withTax | number | Lowest prior price including tax |
lowestPriorPrice.relativeDifferenceToPrice | number | Relative difference between the lowest prior price and the current price |
SiblingsLink copied!
| Field | Type | Description |
|---|---|---|
siblings | array | Simplified references to sibling products (other colour or style variants of the same master product). Only populated when with=siblings is specified |