Skip to main content

Suger Code

Execute JavaScript code dynamically.


Suger Code will execute the JavaScript code when running the workflow.

There are many Suger APIs available that can be called in the code. Type $ in the code editor to get the auto-complete suggestions.

Marketplace API

query

Execute a query on Suger's internal database. You can only access data under the organization you are executing the workflow.

Parameters

query string: The query to execute.

Return format

object array: The result of the query. It's an array of objects, each object is a row in the query result.

Example

const offers = $marketplaceApi.query("select * from workload.offer");
return [{ json: offers }];

http

Send an HTTP request to Suger's REST API.

Parameters

  • path string: The path to send the request to.
  • method string: The method to send the request with.
  • options object: The options for the request.
    • body string: The body of the request.
    • reader binary | json: The reader to read the body with.
    • additionalHeaders { [key: string]: string }: The additional headers to send with the request.
    • fileName string: The file name to save the response to.

Return format

string: The response body.

Example

Create a contact using POST request.

return $marketplaceApi.http("contact", "post", {
body: JSON.stringify({ name: "John Doe", emailAddress: "john@suger.io" }),
});

Get a contact using GET request.

return $marketplaceApi.http("contact/id_of_the_contact", "get");

getOrganization

Get the organization you are executing the workflow for.

Parameters

None.

Return format

object: The organization.

Example

const organization = $marketplaceApi.getOrganization();
return { organization };

getProduct

Get a product by ID.

Parameters

  • id string: The ID of the product.

Return format

object: The product.

Example

const product = $marketplaceApi.getProduct("id_of_the_product");
return { product };

listProducts

List all products.

Parameters

None.

Return format

object array: The list of products.

Example

const products = $marketplaceApi.listProducts();
return { products: products };

listProductsByPartner

List all products by partner.

Parameters

  • partner string: The partner to list products for, available partners are AWS, AZURE, GCP.

Return format

object array: The list of products.

Example

const products = $marketplaceApi.listProductsByPartner("AWS");
return { products: products };

getOffer

Get an offer by ID.

Parameters

  • id string: The ID of the offer.

Return format

object: The offer.

Example

const offer = $marketplaceApi.getOffer("id_of_the_offer");
return { offer };

listOffers

List offers.

Parameters

  • limit number: The limit of the offers to list.
  • offset number: The offset of the offers to list.

Return format

object array: The list of offers.

Example

const offers = $marketplaceApi.listOffers(10, 0);
return { offers: offers };

listOffersByPartner

List offers by partner.

Parameters

  • partner string: The partner to list offers for, available partners are AWS, AZURE, GCP.
  • limit number: The limit of the offers to list.
  • offset number: The offset of the offers to list.

Return format

object array: The list of offers.

Example

const offers = $marketplaceApi.listOffersByPartner("AWS", 10, 0);
return { offers: offers };

listOffersByProduct

List offers by product.

Parameters

  • productId string: The ID of the product.
  • limit number: The limit of the offers to list.
  • offset number: The offset of the offers to list.

Return format

object array: The list of offers.

Example

const offers = $marketplaceApi.listOffersByProduct("id_of_the_product", 10, 0);
return { offers: offers };

listOffersByContact

List offers by contact.

Parameters

  • contactId string: The ID of the contact.

Return format

object[]: The list of offers.

Example

const offers = $marketplaceApi.listOffersByContact("id_of_the_contact");
return { offers: offers };

getEntitlement

Get an entitlement by ID.

Parameters

  • id string: The ID of the entitlement.

Return format

object: The entitlement.

Example

const entitlement = $marketplaceApi.getEntitlement("id_of_the_entitlement");
return { entitlement };

listEntitlements

List entitlements.

Parameters

  • limit number: The limit of the entitlements to list.
  • offset number: The offset of the entitlements to list.

Return format

object[]: The list of entitlements.

Example

const entitlements = $marketplaceApi.listEntitlements(10, 0);
return { entitlements: entitlements };

listEntitlementsByPartner

List entitlements by partner.

Parameters

  • partner string: The partner to list entitlements for, available partners are AWS, AZURE, GCP.
  • limit number: The limit of the entitlements to list.
  • offset number: The offset of the entitlements to list.

Return format

object[]: The list of entitlements.

Example

const entitlements = $marketplaceApi.listEntitlementsByPartner("AWS", 10, 0);
return { entitlements: entitlements };

listEntitlementsByProduct

List entitlements by product.

Parameters

  • productId string: The ID of the product.
  • limit number: The limit of the entitlements to list.
  • offset number: The offset of the entitlements to list.

Return format

object[]: The list of entitlements.

Example

const entitlements = $marketplaceApi.listEntitlementsByProduct(
"id_of_the_product",
10,
0
);
return { entitlements: entitlements };

listEntitlementsByBuyer

List entitlements by buyer.

Parameters

  • buyerId string: The ID of the buyer.

Return format

object[]: The list of entitlements.

Example

const entitlements = $marketplaceApi.listEntitlementsByBuyer("id_of_the_buyer");
return { entitlements: entitlements };

listEntitlementsByOffer

List entitlements by offer.

Parameters

  • offerId string: The ID of the offer.

Return format

object[]: The list of entitlements.

Example

const entitlements = $marketplaceApi.listEntitlementsByOffer("id_of_the_offer");
return { entitlements: entitlements };

getBuyer

Get a buyer by ID.

Parameters

  • id string: The ID of the buyer.

Return format

object: The buyer.

Example

const buyer = $marketplaceApi.getBuyer("id_of_the_buyer");
return { buyer };

listBuyers

List all buyers.

Parameters

None.

Return format

object[]: The list of buyers.

Example

const buyers = $marketplaceApi.listBuyers();
return { buyers: buyers };

listBuyersByContact

List buyers by contact.

Parameters

  • contactId string: The ID of the contact.

Return format

object[]: The list of buyers.

Example

const buyers = $marketplaceApi.listBuyersByContact("id_of_the_contact");
return { buyers: buyers };

listBuyersByPartner

List buyers by partner.

Parameters

  • partner string: The partner to list buyers for, available partners are AWS, AZURE, GCP.

Return format

object[]: The list of buyers.

Example

const buyers = $marketplaceApi.listBuyersByPartner("AWS");
return { buyers: buyers };

getContact

Get a contact by ID.

Parameters

  • id string: The ID of the contact.

Return format

object: The contact.

Example

const contact = $marketplaceApi.getContact("id_of_the_contact");
return { contact };

getContactsByIds

Get contacts by IDs.

Parameters

  • contactIds string[]: The IDs of the contacts.

Return format

object[]: The list of contacts.

Example

const contacts = $marketplaceApi.getContactsByIds([
"id_of_the_contact1",
"id_of_the_contact2",
]);
return { contacts: contacts };

listContacts

List all contacts.

Parameters

  • limit number: The limit of the contacts to list.
  • offset number: The offset of the contacts to list.

Return format

object[]: The list of contacts.

Example

const contacts = $marketplaceApi.listContacts(10, 0);
return { contacts: contacts };

getFile

Get a file by ID.

Parameters

  • id string: The ID of the file.

Return format

object: The file.

Example

const file = $marketplaceApi.getFile("id_of_the_file");
return { file };

getFileDataByOfferId

Get the EULA file of an offer.

Parameters

  • offerId string: The ID of the offer.

Return format

object: The EULA file, which consists of the file name and file data.

Example

const eulaFile = $marketplaceApi.getFileDataByOfferId("id_of_the_offer");
return { eulaFile };

listFiles

List all files.

Parameters

None.

Return format

object[]: The list of files.

Example

const files = $marketplaceApi.listFiles();
return { files: files };

listRevenueRecordsByPartner

List revenue records by partner.

Parameters

  • partner string: The partner to list revenue records for, available partners are AWS, AZURE, GCP.
  • limit number: The limit of the revenue records to list.
  • offset number: The offset of the revenue records to list.
  • startTime string: The start time of the revenue records to list.
  • endTime string: The end time of the revenue records to list.

Return format

object[]: The list of revenue records.

Example

const revenueRecords = $marketplaceApi.listRevenueRecordsByPartner(
"AWS",
10,
0,
"2021-01-01",
"2021-01-31"
);
return { revenueRecords: revenueRecords };

updateBuyerInfo

Update the buyer info.

Parameters

  • buyerId string: The ID of the buyer.
  • info object: The buyer info to update.

Return format

object: The updated buyer info.

Example

const buyer = $marketplaceApi.getBuyer("id_of_the_buyer");
buyer.info.customerId = "newCustomerId";
const updatedInfo = $marketplaceApi.updateBuyerInfo(
"id_of_the_buyer",
buyer.info
);
return { buyerInfo: updatedInfo };

updateEntitlementMetaInfo

Update the entitlement meta info.

Parameters

  • entitlementId string: The ID of the entitlement.
  • metaInfo object: The meta info to update.

Return format

object: The updated entitlement meta info.

Example

const entitlement = $marketplaceApi.getEntitlement("id_of_the_entitlement");
if (entitlement.metaInfo.customMetaInfo == null) {
entitlement.metaInfo.customMetaInfo = {};
}
const customMetaInfo = JSON.parse(
JSON.stringify(entitlement.metaInfo.customMetaInfo)
);
customMetaInfo["key"] = "value";
entitlement.metaInfo.customMetaInfo = customMetaInfo;
entitlement.metaInfo.updateMessage = "updated";
const metaInfo = $marketplaceApi.updateEntitlementMetaInfo(
"id_of_the_entitlement",
entitlement.metaInfo
);
return { metaInfo: metaInfo };

Hubspot API

query

Search objects in Hubspot.

Parameters

  • objectType string: The type of the object to search.
  • query string: The query to search the object.
  • properties string[]: The properties to return.
  • filterGroups object[]: The filter groups to filter the object.
  • limit number: The limit of the objects to return.
  • after string: The cursor to continue the search.
  • sorts object[]: The sorts to sort the objects.
  • sortStrings string: The sort strings to sort the objects.

Return format

object: Search result. Which contains the following fields:

  • total number: The total number of objects.
  • results object[]: The list of objects.
  • paging object: The paging information.

Example

// Try finding an existing account by name/email.
const objectType = "contacts";
const query = "hubspot";
const properties = ["name", "email"];
let filterGroups = [
{
filters: [
{
propertyName: "email",
operator: "CONTAINS_TOKEN",
value: "*@hubspot.com",
},
],
},
];
const limit = 1;
let sorts = [
{
propertyName: "createdate",
direction: "DESCENDING",
},
];
let sortStrings = [];

let allResults = [];
let after = "0";
let continueFetching = true;
while (continueFetching) {
const response = $hubspotApi.query(
objectType,
query,
properties,
filterGroups,
limit,
after,
sorts,
sortStrings
);

if (response && response.results) {
allResults = allResults.concat(response.results);
after =
response.paging && response.paging.next.after
? response.paging.next.after
: null;
continueFetching = after !== null;
} else {
continueFetching = false;
}
}

return allResults.map((allResults) => ({ json: allResults }));

getRecordById

Get an object by ID.

Parameters

  • objectType string: The type of the object to get.
  • recordId string: The ID of the object to get.
  • properties string[]: The properties to return.

Return format

object: The object.

Example

const objectType = "contacts";
const recordId = "71805951324";
const properties = ["firstname", "lastname"];
const response = $hubspotApi.getRecordById(objectType, recordId, properties);
return { json: response };

create

Create an object.

Parameters

  • objectType string: The type of the object to create.
  • properties object: The properties of the object to create.

Return format

object: The created object.

Example

const deal = $hubspotApi.create("deals", {
dealname: "sugerCodeAssociateTest",
dealstage: "qualifiedtobuy",
amount: 1000,
});
return { deal };

associate

Associate an object with another object.

Parameters

  • fromObjectType string: The type of the object to associate.
  • fromObjectID string: The ID of the object to associate.
  • toObjectType string: The type of the object to associate with.
  • toObjectID string: The ID of the object to associate with.

Return format

boolean: Whether the association is successful.

Example

const fromObjectType = "deals";
const fromObjectID = "71805951324";
const toObjectType = "companies";
const toObjectID = "71805951324";
const response = $hubspotApi.associate(
fromObjectType,
fromObjectID,
toObjectType,
toObjectID
);
return { json: response };

Google Sheet API

read

Read a sheet.

Parameters

  • documentId string: The ID of the document.
  • sheetName string: The name of the sheet to read.
  • headerRowIndex number: The index of the header row.
  • dataRowStartIndex number: The index of the first row of data to read.

Return format

object[]: The list of rows.

Example

const rows = $googleSheetApi.read("id_of_the_document", "sheet_name", 1, 2);
return { rows: rows };

update

Update a sheet.

Parameters

  • documentId string: The ID of the document.
  • sheetName string: The name of the sheet to update.
  • headerRowIndex number: The index of the header row.
  • rows object[]: The list of rows to update.

Return format

object[]: The list of updated rows.

Example

const rows = $googleSheetApi.update("id_of_the_document", "sheet_name", 1, [
{ row_number: 1, name: "Lola", age: 4, breed: "Corgi" },
]);
return { rows: rows };

clear

Clear a sheet.

Parameters

  • documentId string: The ID of the document.
  • sheetName string: The name of the sheet to clear.
  • sheetRange string: The range of the sheet to clear.

Return format

boolean: Whether the sheet is cleared.

Example

const response = $googleSheetApi.clear(
"id_of_the_document",
"sheet_name",
"A1:Z100"
);
return { json: response };

Netsuite API

listRecords

List records.

Parameters

  • path string: The path of the record to list.
  • query string: The query to list the records.
  • limit number: The limit of the records to list.
  • offset number: The offset of the records to list.

Return format

object[]: The list of records.

Example

const customers = $netsuiteApi.listRecords(
"/customer",
"email CONTAINS 'suger'",
10,
0
);
return { customers: customers };

getRecord

Get a record.

Parameters

  • path string: The path of the record to get.
  • expandSubResources boolean: Whether to expand the sub resources.

Return format

object: The record.

Example

const customer = $netsuiteApi.getRecord("/customer/123");
return { json: customer };

createRecord

Create a record.

Parameters

  • path string: The path of the record to create.
  • record object: The record to create.
    • standardFields object: The standard fields of the record.
    • customFields object: The custom fields of the record.

Return format

string: The ID of the created record.

Example

const customerId = $netsuiteApi.createRecord("/customer", {
standardFields: {
name: "user_name",
},
customFields: {
custcol_owner: "owner_name",
},
});
return { customerId: customerId };

updateRecord

Update a record.

Parameters

  • path string: The path of the record to update.
  • record object: The record to update.
    • standardFields object: The standard fields of the record.
    • customFields object: The custom fields of the record.
  • replaces string[]: The fields to replace.

Return format

boolean: Whether the record is updated.

Example

const success = $netsuiteApi.updateRecord("/customer/123", {
standardFields: {
name: "user_name",
},
});
return { json: success };

deleteRecord

Delete a record.

Parameters

  • path string: The path of the record to delete.

Return format

boolean: Whether the record is deleted.

Example

const success = $netsuiteApi.deleteRecord("/customer/123");
return { json: success };

getSchema

Get the schema of a record.

Parameters

  • path string: The path of the record to get the schema.

Return format

object: The schema of the record.

Example

const schema = $netsuiteApi.getSchema("/customer");
return { json: schema };

query

Execute a query on Netsuite.

Parameters

  • query string: The query to execute.
  • params object: The parameters of the query.

Return format

object[]: The list of records.

Example

const records = $netsuiteApi.query("SELECT * FROM customer");
return { json: records };