Skip to main content

Custom Document Loader

<p>Custom Document Loader Node</p>

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