Custom Document Loader
Custom Document Loader Node
The Custom Document Loader provides the ability to create custom document loading functionality using JavaScript. This module enables flexible and customized document processing through user-defined functions.
This module provides a flexible document loader that can:
- Execute custom JavaScript functions for document loading
- Handle input variables dynamically
- Support both document and text outputs
- Run in a sandboxed environment
- Access flow context and variables
- Process custom metadata
Inputsβ
Required Parametersβ
- Javascript Function: Custom code that returns either:
- Array of document objects (for Document output)
- String (for Text output)
Optional Parametersβ
- Input Variables: JSON object containing variables accessible in the function with $ prefix
Outputsβ
- Document: Array of document objects containing metadata and pageContent
- Text: Concatenated string from pageContent of documents
Featuresβ
- Sandboxed execution environment
- Variable injection support
- Flow context access
- Custom dependency support
- Error handling
- Timeout protection
- Input validation
Document Structureβ
When returning documents, each object must have:
{
pageContent: 'Document Content',
metadata: {
title: 'Document Title',
// ... other metadata
}
}
Example Usageβ
Document Outputβ
return [
{
pageContent: 'Document Content',
metadata: {
title: 'Document Title',
source: 'Custom Source'
}
}
]
Text Outputβ
return "Processed text content"
Available Contextβ
- $input: Input value passed to the function
- $vars: Access to flow variables
- $flow: Flow context object containing:
- chatflowId
- sessionId
- chatId
- input
Notesβ
- Functions run in a secure sandbox
- 10-second execution timeout
- Built-in dependencies available
- External dependencies configurable
- Input variables must be valid JSON
- Error handling for invalid returns
- Supports async operations