### Configuring the Start Node in JSON Source: https://github.com/helloandworlder/next-layer/blob/main/INodeType/start.md This JSON snippet defines the 'Start' node, which serves as the entry point for manual workflow execution. It includes metadata like display name, description, version, group, and icon. It also specifies a 'notice' property for user guidance and defines its inputs (none) and outputs ('main'). ```JSON { "name": "start", "displayName": "Start", "description": "Starts the workflow execution from this node", "version": 1, "group": [ "input" ], "icon": "fa:play", "properties": [ { "displayName": "This node is where a manual workflow execution starts. To make one, go back to the canvas and click ‘execute workflow’", "name": "notice", "type": "notice", "default": "" } ], "inputs": [], "outputs": [ "main" ], "filePath": "/Users/yuxi/CodeSpace/n8n-try/n8n/packages/nodes-base/nodes/Start/Start.node.ts", "generated": "2025-06-02T18:50:47.962Z", "extractorVersion": "1.0.0" } ``` -------------------------------- ### Configuring Get Options for Coin Resource (JSON) Source: https://github.com/helloandworlder/next-layer/blob/main/INodeType/coingecko.md This JSON configuration defines options for the 'get' operation on the 'coin' resource. It includes boolean fields to control the inclusion of community data, developer data, localization, and market data in the response. ```JSON { "displayName": "Options", "name": "options", "type": "collection", "placeholder": "Add Field", "default": {}, "displayOptions": { "show": { "operation": [ "get" ], "resource": [ "coin" ] } }, "options": [ { "displayName": "Community Data", "name": "community_data", "type": "boolean", "default": false, "description": "Whether to include community data" }, { "displayName": "Developer Data", "name": "developer_data", "type": "boolean", "default": false, "description": "Whether to include developer data" }, { "displayName": "Localization", "name": "localization", "type": "boolean", "default": false, "description": "Whether to include all localized languages in response" }, { "displayName": "Market Data", "name": "market_data", "type": "boolean", "default": false } ] } ``` -------------------------------- ### Example Reply-To Header Placeholder (JSON) Source: https://github.com/helloandworlder/next-layer/blob/main/INodeType/mandrill.md This JSON string serves as a placeholder example for the 'Headers' JSON input field. It demonstrates the correct format for specifying a 'Reply-To' email header, including proper JSON syntax and escaping for newlines and tabs, guiding users on expected input. ```JSON {\n\t"Reply-To": "replies@example.com"\n} ``` -------------------------------- ### Quick Base API Node Configuration JSON Source: https://github.com/helloandworlder/next-layer/blob/main/INodeType/quickbase.md This JSON defines the configuration for a Quick Base API integration node. It specifies available resources like 'Field' and 'File', and operations such as 'Get Many' for fields and 'Delete'/'Download' for files, along with their associated parameters and display conditions. It outlines the structure for a Quick Base API connector, including credentials and various input properties. ```JSON { "name": "quickbase", "displayName": "Quick Base", "description": "Integrate with the Quick Base RESTful API", "version": 1, "group": [ "input" ], "icon": "file:quickbase.png", "subtitle": "={{$parameter["operation"] + ": " + $parameter["resource"]}}", "credentials": [ { "name": "quickbaseApi", "required": true } ], "properties": [ { "displayName": "Resource", "name": "resource", "type": "options", "noDataExpression": true, "options": [ { "name": "Field", "value": "field" }, { "name": "File", "value": "file" }, { "name": "Record", "value": "record" }, { "name": "Report", "value": "report" } ], "default": "record" }, { "displayName": "Operation", "name": "operation", "type": "options", "noDataExpression": true, "displayOptions": { "show": { "resource": [ "field" ] } }, "options": [ { "name": "Get Many", "value": "getAll", "description": "Get many fields", "action": "Get many fields" } ], "default": "getAll" }, { "displayName": "Table ID", "name": "tableId", "type": "string", "default": "", "required": true, "displayOptions": { "show": { "resource": [ "field" ], "operation": [ "getAll" ] } }, "description": "The table identifier" }, { "displayName": "Return All", "name": "returnAll", "type": "boolean", "displayOptions": { "show": { "resource": [ "field" ], "operation": [ "getAll" ] } }, "default": false, "description": "Whether to return all results or only up to a given limit" }, { "displayName": "Limit", "name": "limit", "type": "number", "displayOptions": { "show": { "resource": [ "field" ], "operation": [ "getAll" ], "returnAll": [ false ] } }, "typeOptions": { "minValue": 1, "maxValue": 100 }, "default": 50, "description": "Max number of results to return" }, { "displayName": "Options", "name": "options", "type": "collection", "placeholder": "Add Field", "default": {}, "displayOptions": { "show": { "resource": [ "field" ], "operation": [ "getAll" ] } }, "options": [ { "displayName": "Include Field Perms", "name": "includeFieldPerms", "type": "boolean", "default": false, "description": "Whether to get back the custom permissions for the field(s)" } ] }, { "displayName": "Operation", "name": "operation", "type": "options", "noDataExpression": true, "displayOptions": { "show": { "resource": [ "file" ] } }, "options": [ { "name": "Delete", "value": "delete", "description": "Delete a file", "action": "Delete a file" }, { "name": "Download", "value": "download", "description": "Download a file", "action": "Download a file" } ], "default": "download" }, { "displayName": "Table ID", "name": "tableId", "type": "string", "default": "", "required": true, "displayOptions": { "show": { "resource": [ "file" ], "operation": [ "download", "delete" ] } }, "description": "The table identifier" }, { "displayName": "Record ID", "name": "recordId", "type": "string", "default": "", "required": true, "displayOptions": { "show": { "resource": [ "file" ], "operation": [ "download", "delete" ] } }, "description": "The unique identifier of the record" }, { "displayName": "Field ID", "name": "fieldId", "type": "string", "default": "", "required": true, "displayOptions": { "show": { "resource": [ "file" ], "operation": [ "download", "delete" ] } }, "description": "The unique identifier of the field" } ] } ``` -------------------------------- ### Example Xero API Filter Expression for 'where' Parameter Source: https://github.com/helloandworlder/next-layer/blob/main/INodeType/xero.md This snippet provides an example of a filter expression used with the 'where' parameter in the Xero API. It demonstrates how to filter records based on conditions like non-null values and string prefixes. The expression 'EmailAddress!=null&&EmailAddress.StartsWith("boom")' filters for records where the 'EmailAddress' field is not null AND starts with 'boom'. This parameter allows flexible querying on endpoints without explicit parameters. ```Xero API Filter Expression EmailAddress!=null&&EmailAddress.StartsWith(\"boom\") ``` -------------------------------- ### Markdown Conversion Tool Configuration JSON Source: https://github.com/helloandworlder/next-layer/blob/main/INodeType/markdown.md This JSON snippet defines the configuration for a Markdown conversion tool. It specifies the tool's name, display name, description, version, and group. It also details the input and output properties, including 'mode' for conversion direction, 'html' and 'markdown' for input data, 'destinationKey' for output placement, and a collection of 'options' for fine-tuning the conversion process. ```JSON { "name": "markdown", "displayName": "Markdown", "description": "Convert data between Markdown and HTML", "version": 1, "group": [ "output" ], "icon": { "light": "file:markdown.svg", "dark": "file:markdown.dark.svg" }, "subtitle": "={{$parameter[\"mode\"]===\"markdownToHtml\" ? \"Markdown to HTML\" : \"HTML to Markdown\"}}", "credentials": [], "properties": [ { "displayName": "Mode", "name": "mode", "type": "options", "options": [ { "name": "Markdown to HTML", "value": "markdownToHtml", "description": "Convert data from Markdown to HTML" }, { "name": "HTML to Markdown", "value": "htmlToMarkdown", "description": "Convert data from HTML to Markdown" } ], "default": "htmlToMarkdown" }, { "displayName": "HTML", "name": "html", "type": "string", "displayOptions": { "show": { "mode": [ "htmlToMarkdown" ] } }, "default": "", "required": true, "description": "The HTML to be converted to markdown" }, { "displayName": "Markdown", "name": "markdown", "type": "string", "displayOptions": { "show": { "mode": [ "markdownToHtml" ] } }, "default": "", "required": true, "description": "The Markdown to be converted to html" }, { "displayName": "Destination Key", "name": "destinationKey", "type": "string", "displayOptions": { "show": { "mode": [ "markdownToHtml", "htmlToMarkdown" ] } }, "default": "data", "required": true, "placeholder": "", "description": "The field to put the output in. Specify nested fields using dots, e.g.\"level1.level2.newKey\"." }, { "displayName": "Options", "name": "options", "type": "collection", "placeholder": "Add option", "default": {}, "displayOptions": { "show": { "mode": [ "htmlToMarkdown" ] } }, "options": [ { "displayName": "Bullet Marker", "name": "bulletMarker", "type": "string", "default": "*", "description": "Specify bullet marker, default *" }, { "displayName": "Code Block Fence", "name": "codeFence", "type": "string", "default": "```", "description": "Specify code block fence, default ```" }, { "displayName": "Emphasis Delimiter", "name": "emDelimiter", "type": "string", "default": "_", "description": "Specify emphasis delimiter, default _" }, { "displayName": "Global Escape Pattern", "name": "globalEscape", "type": "fixedCollection", "typeOptions": { "multipleValues": false }, "default": {}, "description": "Setting this will override the default escape settings, you might want to use textReplace option instead", "options": [ { "name": "value", "displayName": "Value", "values": [ { "displayName": "Pattern", "name": "pattern", "type": "string", "default": "", "description": "RegEx for pattern" }, { "displayName": "Replacement", "name": "replacement", "type": "string", "default": "", "description": "String replacement" } ] } ] }, { "displayName": "Ignored Elements", "name": "ignore", "type": "string", "default": "", "description": "Supplied elements will be ignored (ignores inner text does not parse children)", "placeholder": "e.g. h1, p ...", "hint": "Comma separated elements" }, { "displayName": "Keep Images With Data", "name": "keepDataImages", "type": "boolean", "default": false, "description": "Whether to keep images with data: URI (Note: These can be up to 1MB each), e.g. <img src=\"data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSK......0o/\">" }, { "displayName": "Line Start Escape Pattern", "name": "lineStartEscape", "type": "fixedCollection", "typeOptions": { "multipleValues": false }, "default": {}, ``` -------------------------------- ### Defining Invoice Ninja API Credentials in JSON Source: https://github.com/helloandworlder/next-layer/blob/main/Credential/invoiceninjaapi.md This JSON snippet defines the configuration for connecting to the Invoice Ninja API. It specifies the required properties like 'url' for the API endpoint, 'apiToken' for authentication, and an optional 'secret' for v5 installations. It also includes a 'test' block with a GET request to '/api/v1/clients' to verify the credentials. ```json { "name": "invoiceNinjaApi", "displayName": "Invoice Ninja API", "documentationUrl": "invoiceNinja", "properties": [ { "displayName": "URL", "name": "url", "type": "string", "default": "", "hint": "Default URL for v4 is https://app.invoiceninja.com, for v5 it is https://invoicing.co" }, { "displayName": "API Token", "name": "apiToken", "type": "string", "typeOptions": { "password": true }, "default": "" }, { "displayName": "Secret", "name": "secret", "type": "string", "typeOptions": { "password": true }, "default": "", "hint": "This is optional, enter only if you did set a secret in your app and only if you are using v5" } ], "test": { "request": { "baseURL": "={{$credentials?.url}}", "url": "/api/v1/clients", "method": "GET" } }, "filePath": "/Users/yuxi/CodeSpace/n8n-try/n8n/packages/nodes-base/credentials/InvoiceNinjaApi.credentials.ts", "generated": "2025-06-02T18:50:48.364Z", "extractorVersion": "1.0.0" } ``` -------------------------------- ### Executing LangChain Prompt with LLM in JavaScript Source: https://github.com/helloandworlder/next-layer/blob/main/INodeType/code.md This JavaScript snippet demonstrates how to create a LangChain prompt, connect it to a language model (LLM) input, and invoke a chain to get an output. It shows how to handle single LLM input connections and return the result as a JSON object. Requires `@langchain/core/prompts` and an `ai_languageModel` input. ```JavaScript const { PromptTemplate } = require('@langchain/core/prompts'); const query = 'Tell me a joke'; const prompt = PromptTemplate.fromTemplate(query); // If you are allowing more than one language model input connection (-1 or // anything greater than 1), getInputConnectionData returns an array, so you // will have to change the code below it to deal with that. For example, use // llm[0] in the chain definition const llm = await this.getInputConnectionData('ai_languageModel', 0); let chain = prompt.pipe(llm); const output = await chain.invoke(); return [ {json: { output } } ]; ``` -------------------------------- ### Configuring Alert Operation Options Field - JSON Source: https://github.com/helloandworlder/next-layer/blob/main/INodeType/metabase.md Defines an 'Operation' field as an options selector for 'alerts' resources. It provides 'Get' and 'Get Many' options, each with specific HTTP GET request configurations for retrieving alerts, including dynamic URL construction for 'Get'. ```JSON { "displayName": "Operation", "name": "operation", "type": "options", "noDataExpression": true, "displayOptions": { "show": { "resource": [ "alerts" ] } }, "options": [ { "name": "Get", "value": "get", "description": "Get specific alert", "routing": { "request": { "method": "GET", "url": "={{\"/api/alert/\" + $parameter.alertId}}" } }, "action": "Get an alert" }, { "name": "Get Many", "value": "getAll", "description": "Get many alerts", "routing": { "request": { "method": "GET", "url": "/api/alert/" } }, "action": "Get many alerts" } ], "default": "getAll" } ``` -------------------------------- ### Compression Module Configuration in JSON Source: https://github.com/helloandworlder/next-layer/blob/main/INodeType/compression.md This JSON snippet defines the configuration schema for a compression module. It specifies operations for compressing and decompressing files, input/output binary fields, output formats (gzip/zip), file naming, and where to place the output file, with version-specific display options. ```JSON { "name": "compression", "displayName": "Compression", "description": "Compress and decompress files", "version": [ 1, 1.1 ], "group": [ "transform" ], "icon": "fa:file-archive", "iconColor": "green", "subtitle": "={{$parameter[\"operation\"]}}", "properties": [ { "displayName": "Operation", "name": "operation", "type": "options", "noDataExpression": true, "options": [ { "name": "Compress", "value": "compress", "action": "Compress file(s)", "description": "Compress files into a zip or gzip archive" }, { "name": "Decompress", "value": "decompress", "action": "Decompress file(s)", "description": "Decompress zip or gzip archives" } ], "default": "decompress" }, { "displayName": "Input Binary Field(s)", "name": "binaryPropertyName", "type": "string", "default": "data", "required": true, "displayOptions": { "show": { "operation": [ "compress" ] } }, "placeholder": "e.g. data,data2,data3", "hint": "The name of the input binary field(s) containing the file(s) to be compressed", "description": "To process more than one file, use a comma-separated list of the binary fields names" }, { "displayName": "Input Binary Field(s)", "name": "binaryPropertyName", "type": "string", "default": "data", "required": true, "displayOptions": { "show": { "operation": [ "decompress" ] } }, "placeholder": "e.g. data", "hint": "The name of the input binary field(s) containing the file(s) to decompress", "description": "To process more than one file, use a comma-separated list of the binary fields names" }, { "displayName": "Output Format", "name": "outputFormat", "type": "options", "default": "", "options": [ { "name": "Gzip", "value": "gzip" }, { "name": "Zip", "value": "zip" } ], "displayOptions": { "show": { "operation": [ "compress" ], "@version": [ 1 ] } }, "description": "Format of the output" }, { "displayName": "Output Format", "name": "outputFormat", "type": "options", "default": "zip", "options": [ { "name": "Gzip", "value": "gzip" }, { "name": "Zip", "value": "zip" } ], "displayOptions": { "show": { "operation": [ "compress" ] }, "hide": { "@version": [ 1 ] } }, "description": "Format of the output" }, { "displayName": "File Name", "name": "fileName", "type": "string", "default": "", "placeholder": "e.g. data.zip", "required": true, "displayOptions": { "show": { "operation": [ "compress" ], "outputFormat": [ "zip" ] } }, "description": "Name of the output file" }, { "displayName": "Put Output File in Field", "name": "binaryPropertyOutput", "type": "string", "default": "data", "displayOptions": { "show": { "outputFormat": [ "zip" ], "operation": [ "compress" ] } }, "hint": "The name of the output binary field to put the file in" }, { "displayName": "File Name", "name": "fileName", "type": "string", "default": "", "placeholder": "e.g. data.txt", "displayOptions": { "show": { "operation": [ "compress" ], "outputFormat": [ "gzip" ] }, "hide": { "@version": [ 1 ] } }, "description": "Name of the output file" }, { "displayName": "Put Output File in Field", "name": "binaryPropertyOutput", "type": "string", "default": "data", "displayOptions": { "show": { "outputFormat": [ "gzip" ], "operation": [ "compress" ] }, "hide": { "@version": [ 1 ] } }, "hint": "The name of the output binary field to put the file in" }, { "displayName": "Output File Prefix", "name": "outputPrefix", "type": "string", "default": "data", "required": true, "displayOptions": { "show": { "operation": [ ``` -------------------------------- ### OpenThesaurus Node Definition (JSON) Source: https://github.com/helloandworlder/next-layer/blob/main/INodeType/openthesaurus.md This JSON snippet defines an n8n node for the OpenThesaurus API. It outlines the node's metadata, available operations (specifically 'Get Synonyms'), and a comprehensive set of input parameters such as 'Text' for the word, and various 'Options' like 'Baseform', 'Similar', 'Starts With', 'Substring', 'Substring From Results', 'Substring Max Results', 'Subsynsets', and 'Supersynsets' to refine the synonym search. ```JSON { "name": "openThesaurus", "displayName": "OpenThesaurus", "description": "Get synonmns for German words using the OpenThesaurus API", "version": 1, "group": [ "output" ], "icon": "file:openthesaurus.png", "subtitle": "={{$parameter[\"operation\"] + \": \" + $parameter[\"resource\"]}}", "properties": [ { "displayName": "Operation", "name": "operation", "type": "options", "noDataExpression": true, "options": [ { "name": "Get Synonyms", "value": "getSynonyms", "description": "Get synonyms for a German word in German", "action": "Get synonyms" } ], "default": "getSynonyms" }, { "displayName": "Text", "name": "text", "type": "string", "default": "", "description": "The word to get synonyms for", "required": true, "displayOptions": { "show": { "operation": [ "getSynonyms" ] } } }, { "displayName": "Options", "name": "options", "type": "collection", "placeholder": "Add option", "displayOptions": { "show": { "operation": [ "getSynonyms" ] } }, "default": {}, "options": [ { "displayName": "Baseform", "name": "baseform", "type": "boolean", "default": false, "description": "Specifies the basic form for the search term if it is not already a basic form" }, { "displayName": "Similar", "name": "similar", "type": "boolean", "default": false, "description": "This also returns up to five similarly written words for each answer. This is useful to be able to make a suggestion to the user in the event of a possible typing error." }, { "displayName": "Starts With", "name": "startswith", "type": "boolean", "default": false, "description": "Like substring = true, but only finds words that begin with the specified search term" }, { "displayName": "Substring", "name": "substring", "type": "boolean", "default": false, "description": "Whether up to ten words are returned for each answer that only contain the search term as a partial word" }, { "displayName": "Substring From Results", "name": "substringFromResults", "type": "number", "default": 0, "description": "Specifies from which entry the partial word hits are to be returned. Only works together with substring = true." }, { "displayName": "Substring Max Results", "name": "substringMaxResults", "type": "number", "typeOptions": { "maxValue": 250 }, "default": 10, "description": "Specifies how many partial word hits should be returned in total. Only works together with substring = true." }, { "displayName": "Subsynsets", "name": "subsynsets", "type": "boolean", "default": false, "description": "Whether each synonym group has its (optional) sub-terms supplied" }, { "displayName": "Supersynsets", "name": "supersynsets", "type": "boolean", "default": false, "description": "Whether each synonym group is supplied with its (optional) generic terms" } ] } ], "inputs": [ "main" ], "outputs": [ "main" ], "usableAsTool": true, "filePath": "/Users/yuxi/CodeSpace/n8n-try/n8n/packages/nodes-base/nodes/OpenThesaurus/OpenThesaurus.node.ts", "generated": "2025-06-02T18:50:47.535Z", "extractorVersion": "1.0.0" } ``` -------------------------------- ### TravisCI API Integration Definition (JSON) Source: https://github.com/helloandworlder/next-layer/blob/main/INodeType/travisci.md This JSON configuration defines the structure for interacting with the TravisCI API. It specifies available resources (e.g., 'build'), operations (e.g., 'cancel', 'get', 'getAll', 'restart', 'trigger'), and their corresponding input parameters like 'buildId', 'limit', and 'include' for eager loading attributes. It also defines credentials and display options for UI rendering. ```JSON { "name": "travisCi", "displayName": "TravisCI", "description": "Consume TravisCI API", "version": 1, "group": [ "output" ], "icon": "file:travisci.png", "subtitle": "={{$parameter[\"operation\"] + \": \" + $parameter[\"resource\"]}}", "credentials": [ { "name": "travisCiApi", "required": true } ], "properties": [ { "displayName": "Resource", "name": "resource", "type": "options", "noDataExpression": true, "options": [ { "name": "Build", "value": "build" } ], "default": "build" }, { "displayName": "Operation", "name": "operation", "type": "options", "noDataExpression": true, "displayOptions": { "show": { "resource": [ "build" ] } }, "options": [ { "name": "Cancel", "value": "cancel", "description": "Cancel a build", "action": "Cancel a build" }, { "name": "Get", "value": "get", "description": "Get a build", "action": "Get a build" }, { "name": "Get Many", "value": "getAll", "description": "Get many builds", "action": "Get many builds" }, { "name": "Restart", "value": "restart", "description": "Restart a build", "action": "Restart a build" }, { "name": "Trigger", "value": "trigger", "description": "Trigger a build", "action": "Trigger a build" } ], "default": "cancel" }, { "displayName": "Build ID", "name": "buildId", "type": "string", "displayOptions": { "show": { "operation": [ "cancel" ], "resource": [ "build" ] } }, "default": "", "description": "Value uniquely identifying the build" }, { "displayName": "Build ID", "name": "buildId", "type": "string", "displayOptions": { "show": { "operation": [ "get" ], "resource": [ "build" ] } }, "default": "", "description": "Value uniquely identifying the build" }, { "displayName": "Additional Fields", "name": "additionalFields", "type": "collection", "placeholder": "Add Field", "default": {}, "displayOptions": { "show": { "resource": [ "build" ], "operation": [ "get" ] } }, "options": [ { "displayName": "Include", "name": "include", "type": "string", "default": "", "placeholder": "build.commit", "description": "List of attributes to eager load" } ] }, { "displayName": "Return All", "name": "returnAll", "type": "boolean", "displayOptions": { "show": { "operation": [ "getAll" ], "resource": [ "build" ] } }, "default": false, "description": "Whether to return all results or only up to a given limit" }, { "displayName": "Limit", "name": "limit", "type": "number", "displayOptions": { "show": { "operation": [ "getAll" ], "resource": [ "build" ], "returnAll": [ false ] } }, "typeOptions": { "minValue": 1, "maxValue": 500 }, "default": 100, "description": "Max number of results to return" }, { "displayName": "Additional Fields", "name": "additionalFields", "type": "collection", "placeholder": "Add Field", "default": {}, "displayOptions": { "show": { "resource": [ "build" ], "operation": [ "getAll" ] } }, "options": [ { "displayName": "Include", "name": "include", "type": "string", "default": "", "placeholder": "build.commit", "description": "List of attributes to eager load" }, { "displayName": "Order", "name": "order", "type": "options", "options": [ { "name": "ASC", "value": "asc" }, { "name": "DESC", "value": "desc" } ], "default": "asc", "description": "You may specify order to sort your response" }, { "displayName": "Sort By" } ] } ] } ``` -------------------------------- ### Oura API Node Configuration in JSON Source: https://github.com/helloandworlder/next-layer/blob/main/INodeType/oura.md This JSON snippet defines a node for interacting with the Oura API. It specifies available resources like 'Profile' and 'Summary', and operations such as 'Get' for user profiles, and 'Get Activity Summary', 'Get Readiness Summary', and 'Get Sleep Periods' for summary data. It also includes parameters for filtering by date, limiting results, and handling credentials. ```JSON { "name": "oura", "displayName": "Oura", "description": "Consume Oura API", "version": 1, "group": [ "output" ], "icon": { "light": "file:oura.svg", "dark": "file:oura.dark.svg" }, "subtitle": "={{$parameter[\"operation\"] + \": \" + $parameter[\"resource\"]}}", "credentials": [ { "name": "ouraApi", "required": true } ], "properties": [ { "displayName": "Resource", "name": "resource", "type": "options", "noDataExpression": true, "options": [ { "name": "Profile", "value": "profile" }, { "name": "Summary", "value": "summary" } ], "default": "summary" }, { "displayName": "Operation", "name": "operation", "type": "options", "noDataExpression": true, "displayOptions": { "show": { "resource": [ "profile" ] } }, "options": [ { "name": "Get", "value": "get", "description": "Get the user's personal information", "action": "Get a profile" } ], "default": "get" }, { "displayName": "Operation", "name": "operation", "type": "options", "noDataExpression": true, "displayOptions": { "show": { "resource": [ "summary" ] } }, "options": [ { "name": "Get Activity Summary", "value": "getActivity", "description": "Get the user's activity summary", "action": "Get activity summary" }, { "name": "Get Readiness Summary", "value": "getReadiness", "description": "Get the user's readiness summary", "action": "Get readiness summary" }, { "name": "Get Sleep Periods", "value": "getSleep", "description": "Get the user's sleep summary", "action": "Get sleep summary" } ], "default": "getSleep" }, { "displayName": "Return All", "name": "returnAll", "type": "boolean", "displayOptions": { "show": { "resource": [ "summary" ] } }, "default": false, "description": "Whether to return all results or only up to a given limit" }, { "displayName": "Limit", "name": "limit", "type": "number", "displayOptions": { "show": { "resource": [ "summary" ], "returnAll": [ false ] } }, "typeOptions": { "minValue": 1, "maxValue": 10 }, "default": 5, "description": "Max number of results to return" }, { "displayName": "Filters", "name": "filters", "type": "collection", "placeholder": "Add Filter", "displayOptions": { "show": { "resource": [ "summary" ] } }, "default": {}, "options": [ { "displayName": "End Date", "name": "end", "type": "dateTime", "default": "", "description": "End date for the summary retrieval. If omitted, it defaults to the current day." }, { "displayName": "Start Date", "name": "start", "type": "dateTime", "default": "", "description": "Start date for the summary retrieval. If omitted, it defaults to a week ago." } ] } ], "inputs": [ "main" ], "outputs": [ "main" ], "usableAsTool": true, "filePath": "/Users/yuxi/CodeSpace/n8n-try/n8n/packages/nodes-base/nodes/Oura/Oura.node.ts", "generated": "2025-06-02T18:50:47.539Z", "extractorVersion": "1.0.0" } ``` -------------------------------- ### Defining Get Many Workflows API Operation in JSON Source: https://github.com/helloandworlder/next-layer/blob/main/INodeType/n8n.md This JSON snippet defines the 'Get Many' operation for workflows, indicating a GET request to the '/workflows' endpoint with pagination enabled. It's used to retrieve multiple workflow records. ```JSON { "name": "Get Many", "value": "getAll", "action": "Get many workflows", "routing": { "request": { "method": "GET", "url": "/workflows" }, "send": { "paginate": true }, "operations": {} } } ```