Skip to main content

Knowledge and Data Processing Nodes

4. Knowledge and Data Processing Nodes​

The Knowledge category contains the nodes that read, transform, store and query data in workflows. They are listed under the KNOWLEDGE heading in the Nodes tab of the node catalog, and it is the largest category.

Most of these nodes require no credential connection; they run on SkyStudio's own data infrastructure.

Nodes​

NodeWhat it does
File to TableCreates a database table from a file
JSON to TableCreates a table from JSON data
List TablesLists all tables in the database
Table DataRetrieves the data of a given table
QueryRuns a query against a collection
Knowledge SaveSaves a file to the knowledge base
Knowledge SearchSearches the knowledge base and returns an answer with its sources
Text2dataExtracts structured data from free text
SkyDataAccesses the SkyStudio data service
Form BuilderGenerates a form to collect structured input from the user
FormulaPerforms calculations and formula operations
Save DataStores data persistently
TransformConverts data from one format to another
ParameterDefines a variable to be used within the workflow

Which Node Should You Use?​

What you needNode to use
Turn JSON/CSV into a tableFile to Table
Read data from a stored tableTable Data
See which tables existList Tables
Run a complex filter or queryQuery
Make a document available to agentsKnowledge Save
Get answers from company documentsKnowledge Search
Extract fields from free textText2data
Collect structured data from the userForm Builder
Perform a calculationFormula
Store a result persistentlySave Data
Change the data formatTransform
Carry a constant value through the workflowParameter

Table Operations​

File to Table​

Converts an uploaded file (Excel, CSV) into a database table, making the data queryable and reusable.

Parameters​

ParameterRequiredDescription
Node NameNoThe node's name on the canvas
FileYesThe file to convert (selected from a previous node with /)
Table NameYesThe name of the table to create
OverwriteNoWhether an existing table with the same name is overwritten

Example Use​

File Input → File to Table → Query → Text Output

File to Table settings:

  • File: Output of the File Input node
  • Table Name: satislar_2026

Note: Do not use spaces or non-ASCII characters in table names; separate words with underscores.

JSON to Table​

Converts JSON data into a table. Used to make API responses queryable.

Parameters​

ParameterRequiredDescription
Node NameNoThe node's name on the canvas
JSON DataYesThe JSON data to convert (selected with /)
Table NameYesThe name of the table to create
Root PathNoThe path to the array inside the JSON (e.g. data.items)

Example Use​

HTTP Call → JSON to Table → Data Analysis

Using Root Path: if the API response looks like { "data": { "items": [...] } }, enter data.items in the Root Path field.

List Tables​

Lists all tables in your database. Used to find out which tables exist and what they are called.

Parameters​

ParameterRequiredDescription
Node NameNoThe node's name on the canvas

Example Output​

{
"tables": [
{ "name": "satislar_2026", "row_count": 1248, "created_at": "2026-08-01" },
{ "name": "musteriler", "row_count": 342, "created_at": "2026-07-15" }
]
}

Table Data​

Retrieves data from a given table. Required to use tables you created earlier within a workflow.

Parameters​

ParameterRequiredDescription
Node NameNoThe node's name on the canvas
Table NameYesThe name of the table to read
LimitNoMaximum number of rows to return
OffsetNoNumber of rows to skip (for pagination)

Note: Use the Limit parameter on large tables; loading an entire table into memory slows the workflow down.

Query​

Runs a filtered query against a collection or table. Unlike the Table Data node, it can apply conditional filtering and grouping.

Parameters​

ParameterRequiredDescription
Node NameNoThe node's name on the canvas
Collection / TableYesThe source the query runs against
QueryYesThe filter expression
LimitNoMaximum number of records to return
SortNoThe sort field and direction

Example Use​

  • Collection: satislar_2026
  • Query: tutar > 10000 AND bolge = 'Marmara'
  • Sort: tutar DESC
  • Limit: 20

Knowledge Base​

Knowledge Save​

Saves a file to the workspace's knowledge base. Saved documents can be used as references by your agents.

Parameters​

ParameterRequiredDescription
Node NameNoThe node's name on the canvas
FileYesThe file to save (selected with /)
FolderNoThe knowledge base folder to save it in
TagsNoTags that make the document easier to find

Example Use​

A workflow that automatically adds incoming mail attachments to the knowledge base:

Search Mail (Outlook) → Knowledge Save → Send Message (Slack)

Note: Documents added to the knowledge base can also be managed from the agent's Knowledge section described in Section 04.

Runs an AI-assisted search over the workspace's knowledge base. It returns not only the matching text but an answer to your question together with the source document.

Parameters​

ParameterRequiredDescription
Node NameNoThe node's name on the canvas
QueryYesThe question or topic to search for
FolderNoThe folder the search is limited to
Result CountNoNumber of sources to return

Example Use​

A chatbot that answers internal policy questions:

Text Input → Knowledge Search → Anthropic API Call → Text Output

Knowledge Search settings:

  • Query: Output of the Text Input node, selected with /

Example Output​

{
"answer": "Yıllık izin hakkı 1-5 yıl kıdem için 14 gündür.",
"sources": [
{ "document": "IK-Politikalari-2026.pdf", "page": 12, "score": 0.94 }
]
}

Note: This node is the basis of internal question-and-answer workflows. It returns nothing while the knowledge base is empty — add documents first with Knowledge Save or from the Settings → Knowledge Base screen.

Data Transformation​

Text2data​

Extracts structured data from free text. Turns plain text such as an email body, a form response or a note into field-value pairs.

Parameters​

ParameterRequiredDescription
Node NameNoThe node's name on the canvas
TextYesThe free text to process
SchemaYesThe definition of the fields to extract

Schema Example​

{
"firma_adi": "string",
"fatura_no": "string",
"tutar": "number",
"tarih": "date"
}

Example Use​

A workflow that extracts the details from an incoming invoice email and records them in accounting:

Search Mail (Outlook) → Text2data → Create Purchase Invoice (Paraşüt)

Note: Use explicit field names in the schema; vague names (such as x or value) reduce extraction accuracy.

Transform​

Converts data from one format to another. Used to rename, combine or restructure fields.

Parameters​

ParameterRequiredDescription
Node NameNoThe node's name on the canvas
Input DataYesThe data to transform
Transformation RuleYesThe field mapping rules

Example Use​

To map column names in Excel to CRM field names:

Source fieldTarget field
Firmaaccount_name
Yetkilicontact_name
Epostaemailaddress1

When to Use It​

  • When field names do not match between two nodes
  • When a date or number format needs to be changed
  • When several fields need to be combined into one

Formula​

Performs calculations and formula operations. Used for sums, ratios, percentages and conditional calculations.

Parameters​

ParameterRequiredDescription
Node NameNoThe node's name on the canvas
FormulaYesThe calculation expression
Input ValuesNoThe values used in the formula

Formula Examples​

FormulaDescription
{{tutar}} * 1.20Amount including VAT
({{yeni}} - {{eski}}) / {{eski}} * 100Percentage change
{{adet}} * {{birim_fiyat}}Line total

Parameter​

Defines a fixed variable for use within the workflow. Lets you manage a value from a single place when it is used in more than one node.

Parameters​

ParameterRequiredDescription
Node NameNoThe node's name on the canvas
Parameter NameYesThe name of the variable
ValueYesThe value of the variable
TypeNoThe data type (text, number, date)

Example Use​

To manage a Jira project key used in many places in the workflow from a single point:

  • Parameter Name: jira_proje
  • Value: ENG

In later nodes you select this parameter with /. When the project changes, updating this one node is enough.

Save Data​

Stores data produced in the workflow persistently, making it available in later runs.

Parameters​

ParameterRequiredDescription
Node NameNoThe node's name on the canvas
DataYesThe data to store
KeyYesThe name the data is saved under
OverwriteNoWhether an existing entry with the same key is overwritten

Example Use​

Used in a workflow that runs daily to store the previous day's result and compare against it.

SkyData​

Accesses SkyStudio's data service. Used to query the data sources defined on the platform.

Parameters​

ParameterRequiredDescription
Node NameNoThe node's name on the canvas
Data SourceYesThe source to access
QueryNoThe filter expression

Form Builder​

Generates a form to collect structured input from the user. Used when you need specific fields to be filled in rather than free text.

Parameters​

ParameterRequiredDescription
Node NameNoThe node's name on the canvas
Form FieldsYesThe definition of the fields in the form
TitleNoThe title shown above the form
DescriptionNoThe description shown to the user

Field Types​

TypeUse
TextShort text input
Long textMulti-line description
NumberNumeric value
DateDate picker
SelectDropdown list
CheckboxYes/no

Common Errors​

SituationPossible CauseWhat to Check
The table is not createdThe File field is empty or fed from the wrong nodeSelect the output of a node that produces a file in the File field with /
The table name is rejectedThe name contains spaces or non-ASCII charactersUse lowercase letters, digits and underscores (e.g. satislar_2026)
The table is reset on every runOverwrite is enabledTurn Overwrite off if you want the data to accumulate
JSON to Table produces an empty tableThe Root Path is wrong or was not providedEnter the path to the array in the API response in the Root Path field (e.g. data.items)
Table Data returns no rowsThe table name is wrong, or the table has not been created yetVerify the table name and row count with List Tables
The workflow slows down or stalls on a large tableThe whole table is being retrieved at oncePage through it with Limit and Offset
Query returns no resultsA field name or value in the filter does not matchCheck the field names in the Table Data output; put text values in quotes
Knowledge Search produces no answerThere is no relevant document, or the search is limited to a folderTry again without the folder filter; add documents with Knowledge Save if needed
A document saved with Knowledge Save does not appear in searchIndexing may not have finished yetSearch again shortly; confirm the file appears in the knowledge base
Text2data returns empty fieldsThe schema field names are vague, or the text does not contain that informationUse explicit field names (such as fatura_no); confirm the text contains the information
Text2data returns a number or date as textNo type is set in the schemaDeclare the number and date types explicitly in the schema
The next node does not recognize the fieldsSource and target field names differMap the field names to the ones the target system expects with Transform
Formula produces no resultA variable name in the formula does not match the incoming dataCheck that the names inside {{...}} match the previous node's output exactly
The Parameter value is not visible in the next nodeThe Parameter node is not connected to the flowCheck that the Parameter node is connected before the node that uses the value
Save Data does not return the previous run's dataThe key changes on every run, or it is being overwrittenUse a fixed Key and set Overwrite according to your needs
The form is not submittedRequired fields are emptyReview the required-field settings of the form fields

Notes​

  • Most nodes in this category require no credential connection; they run on SkyStudio's own data infrastructure.
  • Table names are used as references throughout the workflow; renaming one later affects every node that uses that table.
  • Table Data retrieves the entire table while Query retrieves only the matching records; Query is faster on large data sets.
  • A Knowledge Search answer is limited to the content of the knowledge base; the node produces no result while the knowledge base is empty.
  • Do not confuse Text2data with Transform: Text2data extracts fields from free text, while Transform reshapes data that is already structured.
  • Parameter suits constant values that recur throughout a workflow (a project key, a folder name, an email address); they are updated from a single place.
  • Save Data and SkyData are different: Save Data stores the data the workflow itself produces, while SkyData reads the data sources defined on the platform.
  • Form Builder is for collecting specific fields from the user instead of free text; if the field order changes, the output order changes with it.
  • Give your nodes meaningful names; it makes finding the right output in the / menu easier.

Loop​

The Loop node enables you to iterate through an array or a numerical range and invoke a separate workflow for each element. It is designed for scenarios that require processing large numbers of records—such as hundreds of orders, customers, or data rows—individually through a sub-workflow.

The node enqueues each element for processing and immediately returns a unique batch identifier (batchId). All operations are executed asynchronously in the background, allowing the main workflow to continue without waiting for the batch to complete. You can monitor execution progress and retrieve results at any time using the batchId.

The Loop node is available in the node catalog under Nodes → Information.

Connection Setup and Management​

The Loop node uses an invocation token associated with the target workflow to execute a sub-workflow for each element. This token identifies the sub-workflow to be invoked.

Prerequisites​

Before configuring the Loop node, ensure that the target sub-workflow has been published and that its invocation token is available. You can obtain this token from the target workflow's trigger settings.

Note: The invocation token determines which sub-workflow will be executed. Configure separate connections for loops that invoke different sub-workflows. Using descriptive connection names, such as "Order Processing Loop" or "Reporting Loop," helps prevent configuration errors.

Adding a Connection in SkyStudio​

  1. Click the chain icon (Application Connections) in the bottom toolbar of the workflow canvas.
  2. Click + New Connection.
  3. Select Loop from the provider list. It is located under the Other category. Alternatively, enter loop in the search field.
  4. Complete the following fields:
FieldRequiredDescription
Connection NameYesA descriptive name for the connection (e.g., Order Processing Loop).
Who Can UseYesOnly Me / Workspace / Selected Users / Integrations.
Authentication TypeAutomaticAutomatically set to Custom.
NameNoAn optional label for the credentials.
Workflow Token (Bearer)YesThe invocation token identifying the target workflow.
  1. Click Add Connection to save the configuration.

Note: Instead of completing each field individually, you can select Edit as Raw JSON and paste the connection configuration in JSON format.

Assigning a Connection to the Node​

After adding the Loop node to the workflow canvas, select the previously configured connection from the Application Connections dropdown menu in the right-hand configuration panel.

Alternatively, expand the Connection section and enter the Name and Workflow Token (Bearer) values directly in the node configuration.

Although direct configuration is convenient for testing, using a saved connection is recommended for persistent and production environments.

Note: The Queue Status operation does not require an authentication connection. A connection is required only for the two Enqueue operations.

Operations​

The Loop node provides three operations:

OperationCategoryDescription
Enqueue (Array)FeaturedIterates through an array and invokes the target sub-workflow for each element.
Enqueue (Number Range)StandardIterates through a numerical range and invokes the target sub-workflow for each number.
Queue StatusStandardRetrieves the execution progress and results associated with a specified batchId.

Enqueue (Array)​

This operation iterates through an array, enqueues a processing task for each element, and immediately returns a batchId.

Each array element is passed to the target sub-workflow through the query field.

Parameters​

ParameterRequiredDefaultDescription
Application ConnectionsYesManualThe Loop connection to be used.
ItemsYes—The array to iterate through. Reference the output of a previous node using /, or provide a JSON array directly (e.g., ["a","b","c"]).
Payload (String or JSON)No—Static data included with each element. The same payload is used for every iteration (e.g., { "src": "loop" }).
Max RetriesNo3The maximum number of retry attempts for a failed operation.
Max Items (Safety Limit)No10000The maximum number of elements that can be processed in a single batch.

Note: The Items and Payload fields support dynamic parameter references. Click either field and press / to select an output from a previous node.

Data Passed to the Sub-Workflow​

For each element, the following request body is sent to the target sub-workflow:

{ "query": <current_element>, ...payload }
FieldDescription
queryThe current array element — dynamic data that changes with each iteration.
payload fieldsAdditional fields, if provided, that remain constant throughout the loop.

Usage Example​

Items:

[
{ "id": "ORD-001", "musteri": "Eti Gıda", "tutar": 12500 },
{ "id": "ORD-002", "musteri": "Ülker", "tutar": 8300 }
]

Payload:

{ "kaynak": "loop" }

Example Output​

{
"batchId": "batch-ab12-cd34",
"enqueued": 2,
"status": "queued"
}

Note: All iteration-specific data must be provided through the query field. The Payload parameter is intended exclusively for static contextual information. Data that varies between iterations should be included in the individual array elements rather than in Payload, allowing the sub-workflow to access it through query.

Enqueue (Number Range)​

This operation iterates through a numerical range defined by a starting value, an ending value, and an increment.

For each number in the range, the target sub-workflow is invoked. This operation is particularly useful for pagination and workflows that require a predetermined number of repetitions.

Parameters​

ParameterRequiredDefaultDescription
Application ConnectionsYesManualThe Loop connection to be used.
StartYes1The starting value of the numerical range.
End (Inclusive)Yes100The ending value of the numerical range. The ending value is included.
StepNo1The increment applied between iterations.
Payload (String or JSON)No—Static data included with every iteration.
Max RetriesNo3The maximum number of retry attempts for a failed operation.
Max Items (Safety Limit)No10000The maximum number of iterations allowed.

Usage Example​

When Start is set to 1, End to 5, and Step to 1, the following request bodies are generated for the target sub-workflow:

{ "query": 1 }
{ "query": 2 }
{ "query": 3 }
{ "query": 4 }
{ "query": 5 }

Pagination Example​

To process an API containing 100 pages, configure the operation as follows:

FieldValue
Start1
End (Inclusive)100
Step1

The target sub-workflow uses the incoming query value as the page number.

Note: When processing large numerical ranges, configure the Max Items limit carefully. If the range exceeds the configured limit, the remaining elements are not processed, and the output includes truncated: true.

Queue Status​

The Queue Status operation retrieves the execution progress of a batch identified by its batchId. It can also return individual execution results, including errors, when requested.

This operation is used to monitor batch completion and retrieve processing results.

No authentication connection is required for this operation.

Parameters​

ParameterRequiredDescription
Batch IDYesThe batchId returned by an Enqueue operation. Use / to reference the value from a previous node's output.
Include ResultsNoWhen enabled, returns the execution result or error for each processed element.

Example Output​

{
"batchId": "batch-ab12-cd34",
"total": 5,
"counts": { "done": 4, "failed": 1 },
"complete": true,
"results": [
{ "index": 0, "item": { "id": "ORD-001" }, "ok": true, "result": { "ok": true } },
{ "index": 1, "item": { "id": "ORD-002" }, "ok": false, "error": "..." }
]
}

Output Fields​

FieldDescription
batchIdThe unique identifier of the queried batch.
totalThe total number of elements enqueued for processing.
counts.doneThe number of successfully completed operations.
counts.failedThe number of failed operations.
completeIndicates whether batch processing has finished.
resultsA list of element-level execution results, returned when Include Results is enabled.

Note: You can periodically invoke this operation until complete: true is returned. If the target sub-workflows persist their execution results independently, retrieving and aggregating those results through Queue Status may not be necessary.

Reliability​

FeatureDescription
Automatic RetriesFailed operations are automatically retried up to the configured Max Retries limit. Operations that continue to fail are marked as failed.
Failure RecoveryInterrupted operations are automatically re-enqueued for processing, while previously completed operations are not repeated.
Processing Safety LimitThe Max Items parameter restricts the maximum number of elements processed in a single batch. The default limit is 10,000 elements.

Note: The total execution time of a batch depends on the processing time required by the target sub-workflow for each element. The Loop node executes these operations asynchronously, without blocking the main workflow.

Quick Start Examples​

Example 1: Processing Orders Individually​

The following workflow processes order records from a table by invoking a sub-workflow for each order:

Text Input → Table Data → Enqueue (Array) → Text Output

Enqueue (Array) configuration:

  • Items: Use / to select the output of the Table Data node.
  • Payload: { "kaynak": "gunluk-siparis" }
  • Max Items: 500

Example 2: Processing a Paginated API​

The following workflow processes an API containing 100 pages:

Webhook → Enqueue (Number Range) → Text Output

Enqueue (Number Range) configuration:

  • Start: 1
  • End (Inclusive): 100
  • Step: 1

The target sub-workflow uses the incoming query value as the page number and performs the corresponding HTTP Request.

Example 3: Monitoring Batch Completion and Reporting Results​

The following workflow starts a batch operation, monitors its completion, and sends a notification when processing finishes:

Enqueue (Array) → Queue Status → If-Else Condition ─┬─ (True)  → Send Message (Slack)
└─ (False) → Queue Status

Queue Status configuration:

  • Batch ID: Use / to select the batchId field from the Enqueue operation's output.
  • Include Results: Enabled

If-Else configuration:

  • Conditions: Use / to select the complete field.
  • Operator: Equals
  • Value: true

Example 4: Reporting Failed Records​

The following workflow identifies failed operations after batch completion and generates a summary report:

Queue Status → LLM (Summarize Errors) → Send Email (Outlook)

Queue Status configuration:

  • Include Results: Enabled

The LLM node analyzes the results array and summarizes records where ok: false.

Troubleshooting​

IssuePossible CauseResolution
The {{...output}} expression remains unresolved in the Items field.The Loop node was tested independently before the preceding node generated its output.Execute the entire workflow from the beginning. Ensure that the node generating the array executes before the Loop node.
Only one operation is created, and its data differs from the expected input.The Items parameter does not contain a valid array.Reference the output of the node generating the array, or manually provide a JSON array for testing.
An invocation error such as [400] or [404] occurs.The target workflow token is incorrect or missing.Verify the Workflow Token (Bearer) value in the connection configuration.
An "Authentication connection required" warning appears.No connection has been assigned to the node.Select the Loop node and assign a connection through the Application Connections menu.
The output contains truncated: true.The number of elements exceeds the configured Max Items limit.Increase the limit or divide the input array into smaller batches.
The complete field never becomes true.The target sub-workflow is experiencing errors or requires an extended execution time.Enable Include Results to inspect errors and test the target sub-workflow independently.
Element-specific data is not received by the target sub-workflow.Dynamic data was incorrectly placed in Payload.Include element-specific data within the individual array elements. Use Payload only for static contextual information.

Additional Notes​

  • The Loop node is available in the node catalog under Nodes → Information, while its connection provider is located under the Other category.
  • Enqueue operations return a batchId immediately, allowing the main workflow to continue while processing takes place asynchronously.
  • The Queue Status operation does not require an authentication connection.
  • Data that changes between iterations is always passed through the query field, while Payload remains constant throughout the loop.
  • The End (Inclusive) value is included in the numerical range. For example, a range from 1 to 5 produces five iterations.
  • The default Max Items limit is 10000. It is recommended to configure an appropriate processing limit for production environments.
  • Define separate Loop connections for different target sub-workflows. Each connection is associated with a single target workflow.
  • To monitor batch completion, combine the Queue Status operation with an If-Else Condition.