# Connections (/docs/editor/connections) Short Description: Learn how to connect nodes to create powerful AI Agents in Deforge. ## What Are Connections? Connections are the links between nodes that determine how data flows through your Deforge workflow. They represent the paths that data takes as it moves from one operation to another, allowing you to create complex, multi-step processes without writing code. ## Connection Basics Understanding how connections work is fundamental to building effective AI agents: ### Data Flow Direction Connections always flow from an output port on one node to an input port on another node. Data moves from left to right in the visual interface, representing the progression of your workflow. ### Type Compatibility Connections can only be made between compatible port types. For example, a Text output can connect to a Text input, but not to a Number input without a conversion node in between. ### Flow Connections Many nodes use a special 'Flow' type for connections, which controls the execution order of nodes rather than passing data. Flow connections are particularly important when working with LLM nodes, conditional logic, and triggers. All LLM nodes (Google Chat, Anthropic Chat, OpenAI Chat, Custom Chat) require a Flow input to properly integrate into the workflow execution chain. ## Creating Connections There are several ways to create connections between nodes in Deforge: ### Drag and Drop Click and hold on an output port, then drag to an input port and release. If the connection is valid, a line will appear linking the two ports. ### Quick Connect When you add a new node to the canvas, Deforge may suggest automatic connections based on the surrounding nodes and compatibility. You can accept these suggestions with a single click. ### Port Selection Click on an output port to select it, then click on a compatible input port to create a connection. This method is useful when working with nodes that are far apart on the canvas. ## Managing Connections As your workflows grow more complex, you'll need to manage your connections effectively: ### Editing Connections Click on a connection line to select it. You can then delete it with the Delete key, or drag either end to reconnect it to a different port. ### Multiple Connections An output port can connect to multiple input ports, allowing you to send the same data to different parts of your workflow. However, an input port can only receive one connection at a time. ### Organizing Connections For complex workflows, you can organize your connections by rearranging nodes on the canvas. Deforge will automatically adjust the connection lines to follow the new layout. ## Advanced Connection Features Deforge offers several advanced features for working with connections: ### Data Transformation When connecting incompatible data types, you can use transformation nodes to convert data from one type to another. For example, the Text to JSON node can convert text strings to JSON objects, and the Date to Number node can convert dates to numerical values. ### Conditional Connections Using the If Condition node, you can create conditional connections that only pass data when certain conditions are met. This allows for dynamic, responsive workflows that can make decisions based on input data. ### Flow Control Flow connections (using the Flow data type) allow you to control the execution order of your workflow. This is particularly important when working with trigger nodes like Cron Trigger, which initiate workflows at specific times. ## Troubleshooting Connections When connections aren't working as expected, check for these common issues: ### Type Mismatches Ensure that the output and input ports have compatible data types. If they don't, add appropriate transformation nodes between them, such as Text to JSON or Date to Number. ### Missing Required Inputs Check that all required inputs have connections or default values. Nodes with missing required inputs won't execute properly. ### Execution Order Issues Remember that nodes execute in order from left to right, and flow connections can affect this order. If a node depends on data that isn't available yet, rearrange your workflow to ensure proper sequencing. ## Next Steps Now that you understand how to work with connections,. learn about deploying your AI agents to make them available to users # Deployment (/docs/editor/deploy) Short Description: Learn how to deploy your Deforge AI agents to production environments. ## Deployment Overview Deployment is the process of making your AI agent available for use in real-world scenarios. Deforge simplifies this process with one-click deployment options, allowing you to quickly share your agents with users or integrate them into existing systems. ## Deployment Options Deforge offers several ways to deploy your AI agents: ### Web Deployment Deploy your agent as a web application with a unique URL. Users can interact with your agent directly through a web interface without needing to install anything. ### API Deployment Expose your agent as a RESTful API that can be called from other applications or services. This option is ideal for integrating your agent into existing software systems. ### Embedded Deployment Generate an embeddable widget that you can add to your website or application. This allows users to interact with your agent without leaving your platform. ### Scheduled Deployment Deploy agents that run on a schedule using Cron Trigger nodes. These agents can perform automated tasks at specified intervals without user interaction. ## Deployment Process Deploying an AI agent in Deforge involves these steps: ### Pre-Deployment Testing Before deploying, thoroughly test your agent using Deforge's built-in testing tools. Verify that all nodes are functioning correctly and the agent produces the expected outputs for various inputs. ### Deployment Configuration Configure deployment settings such as environment variables, access controls, and scaling options. These settings determine how your agent will behave in production. ### One-Click Deployment Once your agent is ready and configured, click the 'Deploy' button in the Deforge interface. The platform will handle the deployment process automatically, including provisioning necessary resources. ### Deployment Verification After deployment, verify that your agent is working correctly in the production environment. Test it with real-world inputs and monitor its performance. ### Transitioning Between Environments When your agent is ready to move from testing to production, use the 'Deploy to Production' option in the Deforge interface. This creates a locked, production-ready version of your agent that can be safely used by end users. If you need to make changes later, you'll work in the test environment and then redeploy to update the production version. ## Deployment Environments Deforge supports multiple deployment environments to suit different stages of development: ### Test Environment A development environment where nodes can be run freely and tested through the editor. This environment requires authentication and allows you to modify, test, and debug your agent before deploying to production. Changes made in the test environment don't affect your production deployment. ### Production Environment The live environment where your agent is available to end users. In production, all nodes are locked and production-ready, preventing accidental modifications. This ensures stability and reliability for your deployed agents. To make changes to a production agent, you must first modify it in the test environment and then redeploy. ## Managing Deployments After deploying your agent, you can manage it through the Deforge dashboard: ### Monitoring and Analytics Track your agent's usage, performance, and error rates through the Deforge dashboard. Set up alerts to be notified of any issues that require attention. ### Updating Deployed Agents When you make changes to your agent, you can deploy updates with a single click. Deforge handles the update process with zero downtime, ensuring a seamless experience for your users. ### Version Management Deforge maintains a history of your agent's deployments, allowing you to roll back to previous versions if needed. You can also create named versions for major releases. ### Scaling and Performance As your agent's usage grows, Deforge automatically scales resources to maintain performance. You can also manually adjust scaling settings for specific needs. ## Deployment Best Practices Follow these best practices to ensure successful deployments: ### Thorough Testing Test your agent with a wide range of inputs, including edge cases and potential errors. This helps identify and fix issues before they affect users. ### Proper Environment Workflow Always develop and test your agents in the test environment before deploying to production. Use the test environment to experiment with different configurations, debug issues, and validate functionality. Only deploy to production when you're confident that your agent works as expected and is ready for end users. ### Gradual Rollout For major updates, consider deploying to a small percentage of users first and gradually increasing the rollout as you confirm everything is working correctly. ### Comprehensive Monitoring Set up monitoring for all critical aspects of your agent, including performance, error rates, and user satisfaction metrics. ### User Documentation Provide clear documentation for your agent, including its purpose, how to use it, and any limitations or requirements. This improves the user experience and reduces support requests. ## Next Steps Now that you know how to deploy your AI agents, explore our Nodes to learn more about the building blocks of Deforge workflows. learn about the building blocks of Deforge workflows # Your First AI Agent (/docs/editor/first-agent) Short Description: Follow this step-by-step guide to build your first AI agent with Deforge - a Telegram chatbot with knowledge base integration. ## Prerequisites Before you begin, make sure you have a Deforge account and a Telegram bot token. If you don't have a Deforge account yet, you can [sign up for free](https://app.deforge.io/). To create a Telegram bot, message [@BotFather](https://t.me/BotFather) on Telegram and follow the instructions to get your bot token. ## Step 1: Create a New Project Start by creating a new Workflow in Deforge. Click on the 'New Workflow' button on your dashboard and give your project a name, such as 'My First Telegram Bot'. ## Step 2: Add a Telegram Trigger Node Every Telegram bot needs a trigger to respond to messages. From the node library, drag a 'Telegram Trigger' node onto the canvas. This node will automatically detect incoming messages from your Telegram bot. ### Configure the Telegram Trigger Click on the Telegram Trigger node to open its configuration panel. In the 'On Start' field, add a welcome message like 'Hi, I am a helpful assistant who answers questions based on a company's documentation'. This message will be sent when users first interact with your bot. You'll also need to add your Telegram bot token in the environment variables section. ## Step 3: Add a Knowledge Base Node To make your bot intelligent and informative, add a 'Knowledge Base' node. This will allow your bot to reference specific documentation or information when answering questions. ### Configure the Knowledge Base Set the 'Data Type' to 'Link to a webpage' and enter the URL of the documentation you want your bot to reference (e.g., '[https://docs.deforge.io](https://docs.deforge.io)'). You can leave 'Deep Search' disabled for now. This node will process the content and create a searchable knowledge base. ## Step 4: Add an OpenAI Chat Node Now, add an 'OpenAI Chat' node to process user messages and generate intelligent responses using the knowledge base. ### Configure the OpenAI Chat Node Select 'gpt-4.1' as the model for high-quality responses. In the 'System Prompt' field, enter: 'You are a helpful assistant who answers questions based on our company's documentation. Remove any markdown based symbols, like "\*", "#", etc'. Set the temperature to 0.3 for more focused responses, and ensure 'Save Context' is disabled to keep conversations independent. ## Step 5: Add a Send Telegram Message Node Finally, add a 'Send Telegram Message' node to send the AI's response back to the user on Telegram. ### Configure the Send Message Node This node will automatically receive the chat ID from the Telegram Trigger and the response message from the OpenAI Chat node. You'll need to configure your Telegram bot token in the environment variables. ## Step 6: Connect the Nodes Now it's time to connect all the nodes to create a complete workflow: ### Flow Connections Connect the 'Flow' output from the Telegram Trigger to the 'Flow' input of the OpenAI Chat node. Then connect the 'Flow' output from the OpenAI Chat node to the 'Flow' input of the Send Telegram Message node. This ensures proper execution order. ### Data Connections Connect the 'Message' output from the Telegram Trigger to the 'Query' input of the OpenAI Chat node. Connect the 'Rag Database' output from the Knowledge Base node to the 'RAG' input of the OpenAI Chat node. Connect the 'Output' from the OpenAI Chat node to the 'Message' input of the Send Telegram Message node. Finally, connect the 'Chat ID' from the Telegram Trigger to the 'ChatID' input of the Send Telegram Message node. ## Step 7: Test Your Agent Before deploying, test your agent in the Deforge test environment. Use the test interface to simulate Telegram messages and verify that your bot responds correctly with information from the knowledge base. ## Step 8: Deploy Your Agent Once you're satisfied with your agent's performance, click the 'Deploy to Production' button. Your Telegram bot will now be live and ready to respond to users with intelligent, knowledge-based answers. ## Next Steps Congratulations on building your first AI agent! You've created a sophisticated Telegram bot that can answer questions using a knowledge base. Try enhancing your bot by adding more knowledge sources, implementing different trigger conditions, or integrating with other services. # Overview (/docs/editor) Short Description: Learn about the Deforge Editor and how to use it to build AI agents visually. import { Boxes, Link, Rocket } from 'lucide-react'; ## Getting Started Learn about Deforge and how it can help you build AI agents without code. Follow this step-by-step guide to build your first AI agent with Deforge. ## Core Concepts } href="/docs/library/nodes"> Learn about the building blocks of Deforge workflows. } href="/docs/editor/connections"> Understand how to connect nodes to create workflows. } href="/docs/editor/deploy"> Deploy your AI agents to production environments. # Create Node Documentation (/docs/library/create-node-doc) Short Description: Learn how to create documentation for nodes in Deforge import { Step, Steps } from 'fumadocs-ui/components/steps'; This guide will help you create documentation for nodes in Deforge. Proper documentation is essential for users to understand the functionality and usage of each node. ## Overview Node documentation is written in MDX files and they are stored in their respective folders under `content/docs/library/nodes/`. Each node should have its own MDX file that includes a title, description, and any relevant examples or usage instructions.
Example Node Documentation Structure ```mdx title="node-type.mdx" --- title: create-node-doc description: Sample description tags: [] # Tags here github: https://github.com/DeForge-Labs/library/ # Finish with the path to the node's code difficulty: easy # easy, medium, hard credits: 100 # Number of credits required to use this node --- import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; --- ## Description Description goes here ### Common Use Cases {/* List common use cases here */} ## Inputs The input connections this node accepts: {/* Table goes here */} ## Outputs The output connections this node provides: {/* Table goes here */} ## Fields The configurable fields this node provides: {/* Table goes here */} ```
The node documentation file name should match the node's identifier(`type` field in node's `config`). It should be located in a folder named after the node's category. There are multiple tools and ways to create node documentation. They are explained in the following sections. ## Using the Node Documentation Generator Deforge provides a Node Documentation Generator that can automatically create a basic MDX file for a node based on its configuration. To use the generator, follow these steps: Go to the following URL: [Node Documentation Generator](https://json-to-full-mdx.netlify.app/) On the page, you will see a text area where you can paste the JSON configuration of your node (Left column). Copy the JSON configuration of your node and paste it into the text area. The text area should show a sample JSON by default. After pasting the JSON, click on the "Generate MDX" button. If the JSON is valid, the right column will display the generated MDX content. Copy the generated MDX content using the "Copy to Clipboard" button and create a new MDX file in the appropriate category folder under `content/docs/library/nodes/`. The file name should match the node's identifier. Paste the copied MDX content into the new MDX file and save it. You can now further edit the MDX file to add more details. You need to add the following details : * Longer description in the "Description" section. * Common use cases in the "Common Use Cases" section. * Optionally, you can add any other information as needed for the node to function. ## Using the VSCode Snippet If you prefer to write the documentation manually, you can use the VSCode snippet `node` to create a template for the node documentation. It will create the basic structure of the MDX file as shown in the [example](#example) above. When writing the documentation manually, you will need to format the inputs, outputs and fields sections into tables using our custom table tags. You can use the following tool to quickly format your `inputs`, `outputs` and `fields` arrays into the required table format: [Node Table Formatter](https://json-to-mdx.netlify.app/) ## Finalizing the Documentation After creating the documentation file, you may want to visualise it. So the following steps will demonstrate how to run the documentation locally and preview your pages. Clone the Deforge Docs repository from GitHub if you haven't already: ```bash git clone https://github.com/DeForge-Labs/docs.git ``` Navigate to the cloned repository: ```bash cd docs ``` Install the dependencies: npm pnpm yarn bun ```bash npm install ``` ```bash pnpm install ``` ```bash yarn install ``` ```bash bun install ``` Start the development server: npm pnpm yarn bun ```bash npm run dev ``` ```bash pnpm run dev ``` ```bash yarn dev ``` ```bash bun run dev ``` Open your web browser and go to `http://localhost:3000/docs/library/nodes/` to view the documentation. Navigate to your newly created node documentation to verify that everything looks correct. # Create Node (/docs/library/create-node) Short Description: Learn how to create custom nodes for Deforge import { File, Folder, Files } from 'fumadocs-ui/components/files'; import { Accordion, Accordions } from 'fumadocs-ui/components/accordion'; import { TypeTable } from 'fumadocs-ui/components/type-table'; This guide will help you create your own node for the Deforge system. Please follow all instructions carefully to ensure compatibility and maintainability. ## Concept A node is a modular unit of functionality that can be connected to other nodes to create complex workflows. Each node performs a specific task, such as processing data, interacting with APIs, or manipulating information. Nodes can have inputs and outputs, allowing them to receive data from other nodes and pass results along the workflow. A node consist of the following main components: * The `config` object that defines the node's metadata, inputs, outputs, and fields. This same object is used to determine the appearance of the node in the editor. * The `run()` method that contains the logic to be executed when the node is run. Each node is independent of any other node and must be able to function on its own. Hence, each node should have its own `package.json` file if it requires external dependencies. ## File structure The nodes are organized in a specific file structure within the Deforge library. Each node should be placed in its own folder under the appropriate category. The file name of the script will always be `node.js`. The folder name of the node should match the `type` field in the [node configuration](#node-configuration-format) and it should be unique across the library. The file structure looks like this (You can click on folders to expand/collapse them and see the files inside): ## Boilerplate Use the snippet `node` if you are on VSCode, and it will generate a boilerplate code for you to start with. It has all the necessary imports and structure to get you started quickly. It generates the following code:
See boilerplate code ```js title="node.js" import BaseNode from "../../core/BaseNode/node.js"; const config = { title: "", category: "", type: "", icon: {}, desc: "", credit: 0, inputs: [], outputs: [], fields: [], difficulty: "", tags: [] }; class DirectoryName extends BaseNode { constructor() { super(config); } /** * @override * @inheritDoc * @param {import('../../core/BaseNode/node.js').Inputs[]} inputs * @param {import('../../core/BaseNode/node.js').Contents[]} contents * @param {import('../../core/BaseNode/node.js').IServerData} serverData */ estimateUsage(inputs, contents, serverData) { return this.getCredit(); } /** * @override * @inheritDoc * @param {import('../../core/BaseNode/node.js').Inputs[]} inputs * @param {import('../../core/BaseNode/node.js').Contents[]} contents * @param {import('../../core/BaseNode/node.js').IWebConsole} webconsole * @param {import('../../core/BaseNode/node.js').IServerData} serverData */ async run(inputs, contents, webconsole, serverData) { } } export default DirectoryName ```
You can edit the boilerplate code to fit your node's requirements. Read the further sections for a detailed explanation on how to create a node. ## Extend from BaseNode Every node must extend the `BaseNode` class (imported from `../../core/BaseNode/node.js`) and implement the `run()` method. This is essential for the node to function correctly within the Deforge system. Check [`BaseNode/node.ts`](https://github.com/DeForge-Labs/library/blob/main/core/BaseNode/node.ts) for all available methods. ```js title="node.js" import BaseNode from "../../core/BaseNode/node.js"; // Important [!code highlight] class my_node extends BaseNode { // [!code word:BaseNode] constructor() { super(config); } // ... async run(inputs, contents, webconsole, serverData) { } } ``` ## Node Configuration Format Each node file *must* define a `config` object at the top, following the format below (see [`BaseNode/node.ts`](https://github.com/DeForge-Labs/library/blob/main/core/BaseNode/node.ts) for reference): ```js title="node.js" const config = { title: "Node Title", category: "category_folder_name", type: "node_class_name", // should match the folder name icon: { type: "svg/jpeg/png", content: "base64 of the image" }, desc: "Optional node description", credits: 0, // Amount of deforge credits to be used by the node inputs: [ { name: "Name", type: "NodeType", desc: "" }, ], outputs: [ { name: "Name", type: "NodeType", desc: "" }, ], fields: [ { name: "fieldOnNode", type: "HTML input type", desc: "", value: "placeholder value" }, ], difficulty: "easy/medium/hard", tags: ["tag1", "tag2"], } ``` This config object is pretty much the identity of the node and will be used for creating documentations, rendering the node in the editor, and validating inputs/outputs. ## Accessing Inputs and Contents Each node's `run()` method receives `inputs` and `contents` arrays as parameters. These represent the data passed to the node via a connection (inputs) or via the fields on the node itself (contents). To get a value, you should always *prioritize* `inputs` over `contents`. Here's how to access them: ```js title="node.js" // Utility method to get input or content value getValue(inputs, contents, name, defaultValue = null) { const input = inputs.find((i) => i.name === name); if (input?.value !== undefined) return input.value; const content = contents.find((c) => c.name === name); if (content?.value !== undefined) return content.value; return defaultValue; } // Example usage in run() async run(inputs, contents, webconsole, serverData) { const myInputValue = this.getValue(inputs, contents, "MyInputField", "default"); } ``` Example from the [google sheets node](/docs/library/nodes/office-nodes/google_sheets) : ```js title="node.js" async run(inputs, contents, webconsole, serverData) { const Title = this.getValue(inputs, contents, "Title", "New Sheet"); const CsvRaw = this.getValue(inputs, contents, "CSV Raw", ""); const CsvLink = this.getValue(inputs, contents, "CSV Link", ""); } ``` ## Accessing other information You can access some information passed on from the server via the `serverData` object. The object contains information and utility objects from the server. The following objects are always available in the `serverData` parameter: * `workflowId`: The ID of the current workflow being executed. * `chatId`: An id that represents a chat, its value depends on how the workflow is being executed (via chatbot, api, widget, etc). * `envList`: A key-value pair list of env variables for the given workflow. * `socialList`: A key-value pair list of the social accounts and access tokens for the connected accounts in the given workflow. * `chatId`: A chat or user ID of the user executing the workflow. (Must be passed as a chatId query via the deployment url) * `redisUtil`: An utility class that contains three methods: setKey, deleteKey and getKey that can be used to store data in redis. (Key format: `deforge:subcontext:task`. Example: `deforge:twitter:cookies`) * `refreshUtil`: An utility to update refreshed oauth tokens in the database. * `s3Util`: An utility class to manage files in the S3 storage used by Deforge. The following objects are available based on certain conditions in the workflows: * `tgPayload`: If the workflow is triggered via Telegram Trigger, this object contains the Telegram payload data. * `slackPayload`: If the workflow is triggered via Slack Trigger, this object contains the Slack payload data. * `widgetPayload`: If the workflow is triggered via Widget Trigger, this object contains the Widget payload data. * `chatbotPayload`: If the workflow is triggered via Chatbot Trigger, this object contains the Chatbot payload data. * `apiPayload`: If the workflow is triggered via API Trigger, this object contains the API request data. * `email`: If the workflow is triggered via Gmail Trigger, this object contains the Email address. ### Details about serverData objects Below you will find more details about a few selected `serverData` objects. An utility class that contains three methods: setKey, deleteKey and getKey that can be used to store data in redis. (Key format: `deforge:subcontext:task`. Example: `deforge:twitter:cookies`). It has the following methods: * `setKey(key: string, value: any): Promise`: Method to set a key-value pair in Redis. The key must be in 'deforge:scope:name' format. ### Parameters \[!toc] ### Returns \[!toc] A promise that resolves to a RedisResponse object indicating success or failure. * `getKey(key: string): Promise`: Method to retrieve a value given a key from redis ### Parameters \[!toc] ### Returns \[!toc] A promise that resolves to a RedisGetResponse object containing the value or an error message. * `deleteKey(key: string): Promise`: Method to delete a particular key from redis. ### Parameters \[!toc] ### Returns \[!toc] A promise that resolves to a RedisResponse object indicating success or failure. An utility to update refreshed oauth tokens in the database. It has the following methods: * `handleTwitterToken(token: any): void`: Method to update the new set of twitter tokens in the database ### Parameters \[!toc] An utility object that allows you to get pricing information for models from OpenRouter. It has the following methods: * `getModelPricing(model: string): Promise`: Method to get pricing information for a specific model ### Parameters \[!toc] ### Returns \[!toc] Promise with model pricing information including price details, and message An utility class to manage files in the S3 storage used by Deforge. It has the following methods: * `addFile(fileName: string, body: ReadableStream, contentType: string, doExpire?: boolean, bucket?: string, userId?: string | null): Promise`: Method to upload a file to S3 ### Parameters \[!toc] ### Returns \[!toc] Promise with upload result including success status, file URL, and message * `getFile(key: string, bucket?: string): Promise`: Method to retrieve a file from S3 ### Parameters \[!toc] ### Returns \[!toc] The file content as a ReadableStream, or undefined if the file does not exist * `getFileURL(key: string, bucket?: string, userId?: string | null): Promise`: Method to retrieve the URL of a file from S3 ### Parameters \[!toc] ### Returns \[!toc] Promise with file URL response including success status, URL, and message * `deleteFile(key: string, bucket?: string, userId?: string | null): Promise`: Method to delete a file from S3 and its record from the database ### Parameters \[!toc] ### Returns \[!toc] Promise with operation result including success status and message * `getFileListByUser(userId: string): Promise`: Method to retrieve a list of files uploaded by a specific user ### Parameters \[!toc] ### Returns \[!toc] Promise with list of files including fileName, fileKey, and bucket ', required: true, }, message: { type: 'string', required: true, }, }} /> * `renameFile(oldKey: string, newFileName: string, bucket?: string, userId?: string | null): Promise`: Method to rename a file in S3 (updates the database record, not the S3 key) ### Parameters \[!toc] ### Returns \[!toc] Promise with operation result including success status and message Check [Available types](https://core.telegram.org/bots/api#available-types) section of the Telegram docs to learn more about the structure of Telegram payloads. Check [Event JSON](https://docs.slack.dev/apis/events-api/#events-JSON) section of the Slack docs to learn more about the structure of Slack payloads. If the workflow is triggered via Widget Trigger, this object contains the Widget payload data. It has the following properties: If the workflow is triggered via API Trigger, this object contains the API request data. It has the following properties: If the workflow is triggered via API Trigger, this object contains the API request data. It has the following properties: ### Metadata object details \[!toc] The `metadata` object can contain the following optional properties: ## Returning Output To return output from your node, you need to return an array of output objects from the `run()` method. Each output object should have a `name` (matching the output defined in the config) and a `value`. ```js title="node.js" return { "Output Name": outputValue }; ``` Example from the [YouTube Upload node](/docs/library/nodes/social/yt_upload) : ```js title="node.js" return { "Video Link": uploadedUrl }; ``` If your node can fail, return `null`. ## Logging Use the `webconsole` object passed to the `run()` method for logging. Logs created with `webconsole` will show up on the execution logs section of Deforge Editor. The `webconsole` object has three methods: * `webconsole.success(...args)` - Shows the logs in green. * `webconsole.info(...args)` - Shows the logs in blue. * `webconsole.error(...args)` - Shows the logs in red. You can pass as many parameters as you want to these methods. Example: ```js webconsole.info("Starting download", url); webconsole.success("Upload complete", resultUrl); webconsole.error("Failed to process", error.message); ``` ## Example Node Structure ```js title="node.js" import BaseNode from "../../core/BaseNode/node.js"; const config = { /* ...see above... */ }; class my_node extends BaseNode { constructor() { super(config); } async run(inputs, contents, webconsole, serverData) { const Field = this.getValue(inputs, contents, "Field", "default"); webconsole.info("Processing field", Field); // ... your logic ... return { "Output": result }; } } export default my_node; ``` Now you are ready to create your very own nodes for Deforge ## Conclusion Creating custom nodes for Deforge allows you to extend the platform's capabilities and tailor it to your specific needs. By following this guide, you should be able to create nodes that integrate seamlessly with the Deforge ecosystem. For more examples, see other nodes in the [repository](https://github.com/DeForge-Labs/library). Always follow this structure for compatibility with the Deforge system. An application to test your own nodes visually will be available soon... # Overview (/docs/library) Short Description: Learn how to build AI agents visually with Deforge's node-based interface. Welcome to the docs! Here you can learn a lot of exciting stuff about Deforge like * The details of the nodes present in our Node Library * Guides on how to create your own nodes and agents * Tutorials to get you started quickly ## Getting Started # Introduction to Deforge (/docs/library/intro) Short Description: Learn about Deforge and how it can help you build AI agents without code. ## What is Deforge ? Deforge is a powerful visual platform that allows you to build AI agents without writing a single line of code. Using an intuitive node-based interface, you can create, connect, and deploy sophisticated AI workflows that can automate tasks, process data, and interact with external services. ## Key Features Deforge offers a range of features that make AI development accessible to everyone: ### Visual Node-Based Interface Create complex AI workflows by connecting nodes in a visual canvas. No coding required - just drag, drop, and connect. ### Extensive Node Library Access a growing library of pre-built nodes for input handling, data processing, API integration, LLM interactions, and more. ### One-Click Deployment Deploy your AI agents with a single click and integrate them into your existing systems and workflows. ### Third-Party Integrations Connect to popular services and APIs, from simple REST endpoints to advanced LLM providers like OpenAI, Google, and Anthropic. ## Common Use Cases Deforge can be used to build a wide variety of AI agents, including: ### Conversational Agents Build chatbots and virtual assistants that can understand and respond to user queries in natural language using the latest LLM technologies. ### Data Processing Pipelines Create workflows that collect, transform, and analyze data from multiple sources, with support for various data formats and operations. ### Business Process Automation Automate repetitive tasks and business processes with intelligent agents that can make decisions based on data and conditions. ### API Orchestration Connect multiple APIs and services to create complex workflows that leverage the best tools for each task, including advanced AI capabilities. ## Getting Started Ready to build your first AI agent with Deforge? Check out our [Your First AI Agent](/docs/editor/first-agent) guide to get started quickly! # All Nodes (/docs/library/nodes/all-nodes) Short Description: Explore the complete list of nodes available in Deforge's Node Library for building AI agents import { Accordion, Accordions } from 'fumadocs-ui/components/accordion'; * [Text to Speech](/docs/library/nodes/audio/text_to_speech) * [Speech to Text](/docs/library/nodes/audio/speech_to_text) * [Dub Video Audio](/docs/library/nodes/audio/dub_media) * [Generate OTP (Passwordless)](/docs/library/nodes/auth/passwordless_otp_generate) * [Verify OTP (Passwordless)](/docs/library/nodes/auth/passwordless_otp_verify) * [Verify Session](/docs/library/nodes/auth/verify_session) * [Airtable - Create Records](/docs/library/nodes/database/airtable_create_records) * [Airtable - Get Record](/docs/library/nodes/database/airtable_get_record) * [Airtable - List Bases](/docs/library/nodes/database/airtable_list_bases) * [Airtable - List Records](/docs/library/nodes/database/airtable_list_records) * [Airtable - List Tables](/docs/library/nodes/database/airtable_list_tables) * [Airtable - Update Record](/docs/library/nodes/database/airtable_update_record) * [PostgreSQL - Query Rows](/docs/library/nodes/database/postgres_query_node) * [PostgreSQL - Check Table](/docs/library/nodes/database/postgres_check_table_node) * [PostgreSQL - Create Table](/docs/library/nodes/database/postgres_create_table_node) * [PostgreSQL - Insert Row(s)](/docs/library/nodes/database/postgres_insert_node) * [PostgreSQL - Custom Query](/docs/library/nodes/database/postgres_custom_query_node) * [MongoDB - Create Collection](/docs/library/nodes/database/mongodb_create_collection_node) * [MongoDB - Check Collection](/docs/library/nodes/database/mongodb_check_collection_node) * [MongoDB - Insert Document(s)](/docs/library/nodes/database/mongodb_insert_node) * [MongoDB - Query Documents](/docs/library/nodes/database/mongodb_query_node) * [If Condition](/docs/library/nodes/flow/if_condition) * [Boolean Operation](/docs/library/nodes/flow/bool_operation) * [Flux Image Gen](/docs/library/nodes/GenAI/flux_image_gen) * [Imagen AI Images](/docs/library/nodes/GenAI/imagen_node) * [Lyria AI Music](/docs/library/nodes/GenAI/lyria_node) * [Suno Music Gen](/docs/library/nodes/GenAI/suno_music_gen) * [Suno Music Status](/docs/library/nodes/GenAI/suno_music_status) * [Veo AI Video](/docs/library/nodes/GenAI/veo_node) * [Number Input](/docs/library/nodes/input/num_var) * [Map Input](/docs/library/nodes/input/map_var) * [Text Input](/docs/library/nodes/input/str_var) * [Object Input](/docs/library/nodes/input/obj_var) * [Boolean Input](/docs/library/nodes/input/bool_var) * [OpenAI Chat](/docs/library/nodes/LLM/openai_chat_node) * [Google Chat](/docs/library/nodes/LLM/google_chat_node) * [Anthropic Chat](/docs/library/nodes/LLM/claude_chat_node) * [Custom Chat](/docs/library/nodes/LLM/custom_chat_node) * [AI Persona Creator](/docs/library/nodes/LLM/persona_generator) * [HubSpot - Create Company](/docs/library/nodes/management/hubspot_create_company_node) * [HubSpot - Search Companies](/docs/library/nodes/management/hubspot_search_companies_node) * [HubSpot - Associate Objects](/docs/library/nodes/management/hubspot_associate_objects_node) * [HubSpot - Get Contact](/docs/library/nodes/management/hubspot_get_contact_node) * [HubSpot - Create Contact](/docs/library/nodes/management/hubspot_create_contact_node) * [HubSpot - Update Contact](/docs/library/nodes/management/hubspot_update_contact_node) * [HubSpot - Create Deal](/docs/library/nodes/management/hubspot_create_deal_node) * [HubSpot - Search Deals](/docs/library/nodes/management/hubspot_search_deals_node) * [Notion - Create Page](/docs/library/nodes/management/notion_create_page_node) * [Notion - Delete Page](/docs/library/nodes/management/notion_delete_page_node) * [Notion - List Databases](/docs/library/nodes/management/notion_list_database_node) * [Notion - List Pages](/docs/library/nodes/management/notion_list_page_node) * [Notion - Read Page](/docs/library/nodes/management/notion_read_page_node) * [Notion - Update Page](/docs/library/nodes/management/notion_update_page_node) * [Create Google Sheet](/docs/library/nodes/office/google_sheets) * [Output Text](/docs/library/nodes/output/output_text) * [Output JSON](/docs/library/nodes/output/output_json) * [Output Number](/docs/library/nodes/output/output_number) * [Send Slack Message](/docs/library/nodes/output/slack_msg_send) * [Send Slack Media Message](/docs/library/nodes/output/slack_media_msg_send) * [Send Telegram Message](/docs/library/nodes/output/tg_msg_send) * [Send Telegram Media Message](/docs/library/nodes/output/tg_media_msg_send) * [Delete Telegram Message](/docs/library/nodes/output/tg_msg_delete) * [Send Chatbot Response](/docs/library/nodes/output/chatbot_msg_send) * [Send Widget Response](/docs/library/nodes/output/widget_msg_send) * [Send Discord Message](/docs/library/nodes/output/discord_msg_send) * [Objects To Map](/docs/library/nodes/processing/obj_to_map) * [Get Cal.com Schedule](/docs/library/nodes/processing/cal_schedule) * [Book Cal.com Meeting](/docs/library/nodes/processing/cal_book) * [Text to Number](/docs/library/nodes/processing/text_to_number) * [Text Join](/docs/library/nodes/processing/text_join) * [Terminate Agent](/docs/library/nodes/processing/terminate_node) * [JSON to Text (Stringify)](/docs/library/nodes/processing/json_to_text) * [JSON To Array](/docs/library/nodes/processing/json_to_array) * [JSON to CSV](/docs/library/nodes/processing/json_to_csv) * [CSV to JSON](/docs/library/nodes/processing/csv_to_json) * [Extract JSON Value](/docs/library/nodes/processing/json_extract) * [Text to Date](/docs/library/nodes/processing/text_to_date) * [Number to Text](/docs/library/nodes/processing/num_to_text) * [Date to Text (Formatted)](/docs/library/nodes/processing/date_to_text) * [Date to Number (Timestamp)](/docs/library/nodes/processing/date_to_number) * [Knowledge Base](/docs/library/nodes/processing/rag_node) * [Quick RAG](/docs/library/nodes/processing/quick_rag_node) * [Math Operation](/docs/library/nodes/processing/math_operation) * [API Call](/docs/library/nodes/processing/api_node) * [Text Replace](/docs/library/nodes/processing/text_replace) * [Text Extract](/docs/library/nodes/processing/text_extract) * [Text to JSON (Parser)](/docs/library/nodes/processing/text_to_json) * [Delay](/docs/library/nodes/processing/delay_node) * [AI Web Search](/docs/library/nodes/search/web_search_node) * [Get URL Data](/docs/library/nodes/search/url_data_node) * [Job Search](/docs/library/nodes/search/jobs_search) * [Add Discord Role](/docs/library/nodes/social/discord_add_role) * [Find Discord Channel](/docs/library/nodes/social/discord_find_channel) * [Find Discord User](/docs/library/nodes/social/discord_find_user) * [List Discord Roles](/docs/library/nodes/social/discord_list_roles) * [Register Discord Command](/docs/library/nodes/social/discord_register_command) * [Remove Discord Role](/docs/library/nodes/social/discord_remove_role) * [Get Gmail Email](/docs/library/nodes/social/gmail_get) * [Send Deforge Email](/docs/library/nodes/social/send_deforge_email_node) * [Send Email](/docs/library/nodes/social/send_email_node) * [YouTube Upload](/docs/library/nodes/social/yt_upload) * [Tweet Post](/docs/library/nodes/social/tweet_post) * [X (Twitter) Browser](/docs/library/nodes/social/twitter_browser) * [LinkedIn Post](/docs/library/nodes/social/linkedin_post) * [Gmail Trigger](/docs/library/nodes/trigger/gmail_trigger) * [API Trigger](/docs/library/nodes/trigger/api_trigger) * [Slack Trigger](/docs/library/nodes/trigger/slack_trigger) * [Telegram Trigger](/docs/library/nodes/trigger/tg_trigger) * [Cron Trigger](/docs/library/nodes/trigger/cron_trigger) * [Chatbot Trigger](/docs/library/nodes/trigger/chatbot_trigger) * [Widget Trigger](/docs/library/nodes/trigger/widget_trigger) * [Discord Trigger](/docs/library/nodes/trigger/discord_trigger) # Nodes (/docs/library/nodes) Short Description: Learn about the building blocks of Deforge workflows and how to use them effectively. import { Accordion, Accordions } from 'fumadocs-ui/components/accordion'; ## What Are Nodes? Nodes are the fundamental building blocks of any Deforge workflow. Each node represents a specific function or operation that can be connected to other nodes to create complex AI agents. Think of nodes as individual LEGO pieces that you can combine to build sophisticated structures. ## Anatomy of a Node Every node in Deforge consists of several key components: ### Input Ports These are connection points on the left side of a node that receive data from other nodes. Different nodes have different input requirements, and some nodes (like input nodes) may not have any input ports at all. ### Output Ports These are connection points on the right side of a node that send data to other nodes. The data type of an output port determines which input ports it can connect to. ### Configuration Panel Each node has a configuration panel that allows you to customize its behavior. The available settings depend on the type of node, but might include things like default values, API endpoints, or processing options. ## Node Categories Deforge organizes nodes into several categories based on their function: These nodes provide GenAI audio features from elevenlabs. Examples include Text to Speech and Speech to Text nodes. These nodes provide authentication and authorization features for your workflows. Examples include Passwordless OTP Generate and Verify nodes. These nodes help you manage and interact with databases within your workflows. Examples include PostgreSQL and MongoDB nodes. These nodes control the execution path of your workflow based on conditions. Examples include the If Condition node, which allows for branching logic based on comparisons. These nodes provide generative AI capabilities for creating images, music, and videos. Examples include the Imagen AI Images node, Lyria AI Music node, and Veo AI Video node. These nodes provide data to your workflow, either from user input, predefined values, or external sources. Examples include the User Input node, Number Input node, and Object Input node. These nodes connect to large language models to generate text, answer questions, or process natural language. Examples include OpenAI Chat, Google Chat, Anthropic Chat, and Custom Chat nodes. These nodes help you use CRM tools within your workflows. Examples include HubSpot nodes. These nodes help you work with office tools within your workflows. Examples include Google Sheets nodes. These nodes display results to users or send data to external systems. Examples include the Output Text node, Output JSON node, and Output Number node. These nodes transform, analyze, or manipulate data. Examples include the API Call node, Objects To Map node, Extract JSON node, and Math Operation node. These nodes help you implement various search functionality within your workflows. Examples include AI Web Search and Get URL Data. These nodes help you connect social media platforms within your workflows. Examples include Twitter and YouTube nodes. These nodes initiate workflows based on events or schedules. Examples include the Cron Trigger node, which starts a workflow at specified time intervals. ## Node Properties Each node has specific properties that determine its behavior and capabilities. These properties include: ### Data Types Nodes work with specific data types, such as Text, Number, Boolean, JSON, Flow, Date, or specialized types like Rag (for knowledge bases). Understanding data types is crucial for creating valid connections between nodes. ### Required vs. Optional Inputs Some node inputs are required for the node to function, while others are optional. Required inputs are typically marked with an asterisk (\*) in the node's configuration panel. ### Default Values Many nodes have default values for their inputs or configuration fields. These values are used when no specific value is provided, making it easier to get started with a node. ## Using Nodes Effectively To make the most of Deforge's node system, keep these best practices in mind: ### Start Simple Begin with a small number of nodes and test your workflow frequently. Add complexity gradually as you confirm each part is working as expected. ### Use Clear Naming Give your nodes descriptive names that indicate their purpose in the workflow. This makes it easier to understand and maintain complex agents. ### Organize Your Canvas Arrange your nodes in a logical flow from left to right. Group related nodes together and use comments to document complex sections of your workflow. ### Reuse Common Patterns Save frequently used node combinations as templates or subflows that you can reuse across different projects. ## Next Steps Now that you understand the basics of nodes, you can Explore all the nodes available in Deforge's Node Library Learn how to connect nodes effectively # Flux Image Gen (/docs/library/nodes/GenAI/flux_image_gen) Short Description: Generate images using Flux AI. Tags: image, flux, ai, generation GitHub: https://github.com/DeForge-Labs/library/blob/main/GenAI/flux_image_gen/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 65 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Flux Image Gen node allows you to generate images based on text prompts using Flux AI. You can specify the image description, resolution, and an optional random seed to create unique images for your workflows. ### Common Use Cases * Generating images for content creation * Creating visuals for social media posts * Enhancing user interfaces with AI-generated images ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Prompt The image description Text Seed Random seed for generation Number ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Image URL The generated image URL Text Tool The tool version of this node Tool ## Fields The configurable fields this node provides: Name Description Type Prompt The image description **Value:** `A futuristic city...` Text Resolution Image resolution **Value:** `1024x768` **Options:** 1024x768 1024x1024 1440x1440 select Seed Random seed (optional) **Value:** `42` Number # Imagen AI Images (/docs/library/nodes/GenAI/imagen_node) Short Description: Generate AI images using Google Imagen Tags: imagen, google, ai, image GitHub: https://github.com/DeForge-Labs/library/blob/main/GenAI/imagen_node/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 14 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} This node is now archived and not available for use in Deforge *** ## Description Imagen AI Images node allows you to generate high-quality images from text prompts using the Google Imagen API. ### Common Use Cases * Create textures for games and 3D modelling * Create images from your imagination using text prompts ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Prompt Image generation prompt Text Seed Seed value for generation (optional) Number Image Quality Quality of the image (applicable only if the output type is jpeg Number ## Outputs The output connections this node provides: Name Description Type Image Link Temporary link to the image Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Prompt Image generation prompt **Value:** `Enter text here...` TextArea Seed Seed value for generation (optional) **Value:** `0` Number Ratio Aspect ration of the generated image **Value:** `1:1` **Options:** 1:1 9:16 16:9 3:4 4:3 select Model Model to be used for image generation **Value:** `imagen-3.0-generate-002` **Options:** imagen-4.0-generate-preview-06-06 imagen-4.0-fast-generate-preview-06-06 imagen-4.0-ultra-generate-preview-06-06 imagen-3.0-generate-002 imagen-3.0-generate-001 imagen-3.0-fast-generate-001 select Person Should people be generated in the image **Value:** `allow_all` **Options:** allow_adult allow_all dont_allow select Image Format Output type of the image **Value:** `jpeg` **Options:** jpeg png select Image Quality Quality of the image (applicable only if the output type is jpeg **Value:** `75` **Min:** `0` **Max:** `100` **Step:** `1` Slider # Lyria AI Music (/docs/library/nodes/GenAI/lyria_node) Short Description: Generate AI music using Google Lyria Tags: lyria, google, ai, music GitHub: https://github.com/DeForge-Labs/library/blob/main/GenAI/lyria_node/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 40 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} This node is now archived and not available for use in Deforge *** ## Description Lyria AI Music node allows you to generate music tracks using Google's Lyria API. ### Common Use Cases * Create your own BGM for games, videos, etc. * Create SFXs for your media ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Prompt Music generation prompt Text Negative Prompt Negative music generation prompt Text Seed Seed value for generation (optional) Number ## Outputs The output connections this node provides: Name Description Type Audio Link Temporary link to the audio Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Prompt Music generation prompt **Value:** `Enter text here...` TextArea Negative Prompt Negative music generation prompt **Value:** `Enter text here...` TextArea Seed Seed value for generation (optional) **Value:** `0` Number Model Model to be used for music generation **Value:** `lyria-002` **Options:** lyria-002 select # Suno Music Gen (/docs/library/nodes/GenAI/suno_music_gen) Short Description: Generate music using Suno AI. Returns a Task ID to check status later. Tags: suno, music, ai, audio GitHub: https://github.com/DeForge-Labs/library/blob/main/GenAI/suno_music_gen/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 65 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Suno Music Gen node allows you to generate music based on text prompts using Suno AI. You can specify the song description or lyrics, choose between custom mode for more control, and generate either instrumental or vocal tracks. The node returns a Task ID that you can use to check the status of the music generation process later. ### Common Use Cases * Creating custom music for videos or podcasts * Generating background music for games or apps * Experimenting with AI-generated music compositions ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Prompt Description of the song or Lyrics (depending on mode) Text Custom Mode Enable Custom Mode (Requires Style & Title) Boolean Instrumental Instrumental only (No lyrics) Boolean Style Music Style (Required for Custom Mode) Text Title Song Title (Required for Custom Mode) Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Task ID The Task ID to track progress Text Tool The tool version of this node Tool ## Fields The configurable fields this node provides: Name Description Type Prompt Description or Lyrics **Value:** `A relaxing lofi beat...` TextArea Custom Mode Enable Custom Mode **Value:** `false` CheckBox Instrumental Instrumental **Value:** `false` CheckBox Style Music Style (Custom Mode only) **Value:** \`` TextArea Title Song Title (Custom Mode only) **Value:** \`` TextArea Model Model Version **Value:** `V4` **Options:** V4 V4_5 V4_5PLUS V5 select # Suno Music Status (/docs/library/nodes/GenAI/suno_music_status) Short Description: Check the status of a Suno generation task. Returns Audio URL if complete. Tags: suno, status, check GitHub: https://github.com/DeForge-Labs/library/blob/main/GenAI/suno_music_status/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description This node checks the status of a Suno Music generation task using the Task ID from the Generation Node. It outputs the current status (e.g., PENDING, SUCCESS) and provides the Audio URL if the generation is complete, along with the full JSON data and tool version. ### Common Use Cases * Monitor the progress of a Suno Music generation task in real-time. * Trigger subsequent actions in a workflow based on the status of the music generation. * Retrieve the generated audio URL once the task is complete for further processing or playback. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Task ID The Task ID from the Generation Node Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Status Current Status (PENDING, SUCCESS, etc) Text Audio URL The Audio URL (if ready) Text Full Data Full JSON Data (Includes both tracks) JSON Tool The tool version of this node Tool ## Fields The configurable fields this node provides: Name Description Type Task ID The Task ID **Value:** \`` Text # Veo AI Video (/docs/library/nodes/GenAI/veo_node) Short Description: Generate AI videos using Google Veo Tags: veo, google, ai, video GitHub: https://github.com/DeForge-Labs/library/blob/main/GenAI/veo_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 2667 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} This node is now archived and not available for use in Deforge *** ## Description Google Veo node allows you to create AI videos using Google Veo2 or Veo3, the choice upto you. The node also has plethora of options to configure your AI video generation. Some options are exclusive to Veo2 and some to Veo3. They are: - Duration: only applicable to Veo2 (can choose from 5 to 8 seconds. Veo3 can only generate 8 seconds videos) - Ratio: only applicable to Veo2 (can also create 9:16 videos while Veo3 can only generate 16:9 videos) - Generate Audio: only applicable to Veo3 (only Veo3 can generate audio along with video). ### Common Use Cases * Can be used to create automated video uploads to YouTube. * Create videos via telegram messages and easily share among people. * Create videos for work purposes, privately. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Prompt Video generation prompt Text Negative Prompt Negative video generation prompt Text Duration Duration of the video (only applicable for Veo2) Number Generate Audio Generate audio along with video (applicable only for Veo3) Boolean ## Outputs The output connections this node provides: Name Description Type Video Link Temporary link to the video Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Prompt Video generation prompt **Value:** `Enter text here...` TextArea Negative Prompt Negative video generation prompt **Value:** `Enter text here...` TextArea Duration Duration of the video (only applicable for Veo2) **Value:** `6` **Min:** `5` **Max:** `8` **Step:** `1` Slider Model Model to be used for video generation **Value:** `Veo3` **Options:** Veo3 Veo2 select Ratio Aspect ratio of the video (applicable only for Veo2) **Value:** `16:9` **Options:** 16:9 9:16 select Generate Audio Generate audio along with video (applicable only for Veo3) **Value:** `true` CheckBox Person Should people be generated in the video **Value:** `Allow adults` **Options:** Allow adults Dont allow select # Generate OTP (Passwordless) (/docs/library/nodes/auth/passwordless_otp_generate) Short Description: Initiates passwordless sign-in by sending an OTP to the provided email. Tags: auth, otp, login GitHub: https://github.com/DeForge-Labs/library/blob/main/auth/passwordless_otp_generate/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Generate OTP (Passwordless) node is designed to facilitate passwordless authentication in your workflows. When triggered, it sends a One-Time Password (OTP) to the specified email address, allowing users to sign in without needing a traditional password. This node is particularly useful for enhancing security and improving user experience by eliminating the need for password management. ### Common Use Cases * User Authentication: Implement passwordless login flows for applications, allowing users to authenticate using OTPs sent to their email. * Account Recovery: Use OTPs to verify user identity during account recovery processes. * Temporary Access: Provide temporary access to resources or features by sending OTPs to users. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Email User's email address Text CompanyName Company name for the email template (Default: Acme Inc) Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Success True if OTP was sent Boolean Tool LLM Tool Tool ## Fields The configurable fields this node provides: Name Description Type Email User's email address Text CompanyName Company Name **Value:** `Acme Inc` Text # Verify OTP (Passwordless) (/docs/library/nodes/auth/passwordless_otp_verify) Short Description: Verifies the OTP and logs the user in. Tags: auth, verify, login GitHub: https://github.com/DeForge-Labs/library/blob/main/auth/passwordless_otp_verify/node.js Difficulty: medium import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Verify OTP (Passwordless) node is responsible for validating the One-Time Password (OTP) entered by the user. When triggered, it checks if the provided OTP matches the one that was generated and sent to the user's email. If the OTP is valid, the node logs the user in by generating a session token and retrieving their profile data. This node is essential for completing passwordless authentication flows, ensuring that only users with access to the registered email can successfully log in. ### Common Use Cases * User Authentication: Validate OTPs during passwordless login flows to authenticate users securely. * Account Recovery: Verify OTPs sent to users during account recovery processes to confirm their identity. * Temporary Access: Confirm OTPs for users requesting temporary access to resources or features. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Email User's email Text OTP The 6-digit code Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Token The session token (Bearer) Text User User profile data JSON Tool LLM Tool Tool ## Fields The configurable fields this node provides: Name Description Type Email User's email Text OTP One Time Password Text # Verify Session (/docs/library/nodes/auth/verify_session) Short Description: Validates a Bearer token and returns session details. Tags: auth, session, validate GitHub: https://github.com/DeForge-Labs/library/blob/main/auth/verify_session/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Verify Session node is designed to validate a Bearer token and retrieve associated session details. This node is essential for workflows that require authentication, allowing you to ensure that a user or agent has a valid session before proceeding with certain actions. When you provide a Bearer token to this node, it checks the token's validity and returns several outputs: * **IsValid**: A boolean indicating whether the session is valid or not. * **Session**: A JSON object containing details about the session, such as its creation time, expiration time, and any associated metadata. * **User**: A JSON object with information about the user associated with the session, such as their ID, name, email, and roles. * **Tool**: If the session is valid, this output can provide an LLM Tool that can be used in subsequent nodes for making authenticated API calls or accessing protected resources. ### Common Use Cases * **Authentication Workflows**: Use this node to validate user sessions before allowing access to certain parts of your workflow or before performing sensitive actions. * **Conditional Logic**: Combine this node with flow control nodes to create branches in your workflow based on whether a session is valid or not. * **Session Management**: Use the session and user details returned by this node to personalize interactions or to make informed decisions in your workflow based on the user's identity and session status. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Token Bearer Token Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow IsValid Is session valid? Boolean Session Session object JSON User User object JSON Tool LLM Tool Tool ## Fields The configurable fields this node provides: Name Description Type Token Bearer Token Text # Dub Video Audio (/docs/library/nodes/audio/dub_media) Short Description: Dub your video or audio to another language using Eleven Labs Tags: Dubbing, Translate, Audio, Elevenlabs GitHub: https://github.com/DeForge-Labs/library/blob/main/audio/dub_media/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 500 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} This node is now archived and not available for use in Deforge *** ## Description The Dub Video Audio node allows you to dub the audio of a video or audio file into another language using the Eleven Labs API. ### Common Use Cases * Dub youtube videos to your language for easier consumption * Dub ad campaigns to multiple languages * Use as a realtime translator agent ## Inputs The input connections this node accepts: Name Description Type Flow The Flow to trigger Flow Media Link Link to the Media to dub Text ## Outputs The output connections this node provides: Name Description Type Dubbed Link Link to the dubbed media file Text ## Fields The configurable fields this node provides: Name Description Type Media Link Link to the Media to dub **Value:** `Link here ...` Text Dub Language Language to dub media into **Value:** `Japanese` **Options:** English Hindi Portuguese Chinese Spanish French German Japanese Arabic Russian Korean Indonesian Italian Dutch Turkish Polish Swedish Filipino Malay Romanian Ukrainian Greek Czech Danish Finnish Bulgarian Croatian Slovak Tamil select # Speech To Text (/docs/library/nodes/audio/speech_to_text) Short Description: Convert speech to text using Eleven Labs Tags: Transcribe, Audio, Elevenlabs GitHub: https://github.com/DeForge-Labs/library/blob/main/audio/speech_to_text/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 100 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description The Speech to Text node allows you to transcribe audio input into text using the Eleven Labs API. ### Common Use Cases * Transcribing videos to create subtitles * Transcribing user speech to perform further task with what they said * Create a voice activated agent ## Inputs The input connections this node accepts: Name Description Type Flow The Flow to trigger Flow Audio Link Link to the Audio to convert Text ## Outputs The output connections this node provides: Name Description Type Transcription Transcribed text Text ## Fields The configurable fields this node provides: Name Description Type Audio Link Link to the Audio to convert **Value:** `Link here ...` Text Model Model to use for transcription **Value:** `scribe v1` **Options:** scribe v1 scribe v1 experimental select # Text to Speech (/docs/library/nodes/audio/text_to_speech) Short Description: Convert text to speech using Eleven Labs Tags: TTS, Audio, Elevenlabs GitHub: https://github.com/DeForge-Labs/library/blob/main/audio/text_to_speech/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 150 import { Badge } from '@/components/ui/badge'; import { VoiceBadge } from '@/components/ui/voice-badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description Text to Speech node allows you to convert text into natural-sounding speech using the Eleven Labs API. ### Common Use Cases * Add voiceover to your videos without actually speaking * Create an agent which can reply with voice * Create an audiobook agent ## Inputs The input connections this node accepts: Name Description Type Flow The Flow to trigger Flow Content Text to generate speech for Text VoiceID Specific voice ID to use (will override the above option) Text Emotion Emotional setting of the voice (lower is more emotional) Number Speed Speed of the generated speech Number ## Outputs The output connections this node provides: Name Description Type Audio Link Generated audio Text ## Fields The configurable fields this node provides: Name Description Type Content Text to generate speech for **Value:** `Text here ...` TextArea Voice Voice model to use **Value:** `George (warm resonance)` **Options:** Aria (middle aged female calm) Sarah (young adult woman confident) Laura (young adult female sunny) Charlie (young aussie male confident) George (warm resonance) Callum (gravelly edgy) select VoiceID Specific voice ID to use (will override the above option) **Value:** `ID here ...` Text Emotion Emotional setting of the voice (lower is more emotional) **Value:** `0.5` **Min:** `0` **Max:** `1` **Step:** `0.1` Slider Speed Speed of the generated speech **Value:** `1` **Min:** `0` **Max:** `2` **Step:** `0.1` Slider Model Model to use for speech generation **Value:** `eleven_multilingual_v2` **Options:** eleven_multilingual_v2 eleven_v3 eleven_flash_v2_5 eleven_turbo_v2_5 select # Airtable Create Records (/docs/library/nodes/database/airtable_create_records) Short Description: Create new records in an Airtable Base. Tags: airtable, database, create GitHub: https://github.com/DeForge-Labs/library/blob/main/database/airtable_create_records/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 10 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Airtable Create Records node allows you to create new records in a specified Airtable Base and Table. You can provide the fields for the new record as a JSON object, and the node will return the IDs of the created records along with a tool output for further actions. ### Common Use Cases * Adding new entries to an Airtable Base based on user input or data from other nodes. * Automating the creation of records in Airtable as part of a larger workflow. * Integrating Airtable with other tools and APIs to keep your data in sync. ## Inputs The input connections this node accepts: Name Description Type Flow undefined Flow Base ID undefined Text Table Name undefined Text Fields JSON object of fields (e.g. {'Name': 'John'}) JSON ## Outputs The output connections this node provides: Name Description Type Flow undefined Flow Created IDs List of new Record IDs JSON Tool undefined Tool ## Fields The configurable fields this node provides: Name Description Type Base ID undefined **Value:** \`` Text Table Name undefined **Value:** \`` Text Fields Fields to create **Value:** \`` Map Airtable Connect your Airtable Account **DefaultValue:** \`` social # Airtable Get Record (/docs/library/nodes/database/airtable_get_record) Short Description: Fetch a single record by its ID in an Airtable Base. Tags: airtable, database, get GitHub: https://github.com/DeForge-Labs/library/blob/main/database/airtable_get_record/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Airtable Get Record node allows you to retrieve a single record from an Airtable Base using its unique Record ID. This is useful for accessing specific data stored in Airtable and using it within your workflow. ### Common Use Cases * Fetching user information stored in Airtable to personalize interactions. * Retrieving configuration settings or parameters stored in Airtable for use in your workflow. * Accessing specific records in Airtable to perform updates or trigger actions based on their content. ## Inputs The input connections this node accepts: Name Description Type Flow undefined Flow Base ID undefined Text Table Name undefined Text Record ID undefined Text ## Outputs The output connections this node provides: Name Description Type Flow undefined Flow Fields The record fields JSON Tool undefined Tool ## Fields The configurable fields this node provides: Name Description Type Base ID The Base ID (app...) **Value:** \`` Text Table Name The Table Name **Value:** \`` Text Record ID The Record ID (rec...) **Value:** \`` Text Airtable Connect your Airtable Account **DefaultValue:** \`` social # Airtable List Bases (/docs/library/nodes/database/airtable_list_bases) Short Description: Get a list of all Airtable Bases you have access to. Tags: airtable, database, search, meta GitHub: https://github.com/DeForge-Labs/library/blob/main/database/airtable_list_bases/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description This node connects to your Airtable account and retrieves a list of all the Bases you have access to. Each Base in the output list includes its ID and Name, allowing you to easily identify and work with your Airtable data in subsequent nodes. ### Common Use Cases * **Base Selection**: Use this node at the beginning of a workflow to allow users to select which Airtable Base they want to work with. * **Dynamic Workflows**: Create dynamic workflows that can adapt based on the available Bases in Airtable, enabling more flexible and powerful agents. * **Data Management**: Combine this node with other Airtable nodes to manage and manipulate data across different Bases seamlessly. ## Inputs The input connections this node accepts: Name Description Type Flow undefined Flow ## Outputs The output connections this node provides: Name Description Type Flow undefined Flow Bases List of Bases with IDs and Names JSON Tool undefined Tool ## Fields The configurable fields this node provides: Name Description Type Airtable Connect your Airtable Account **DefaultValue:** \`` social # Airtable List Records (/docs/library/nodes/database/airtable_list_records) Short Description: Fetch records from an Airtable Base using OAuth. Tags: airtable, database, list GitHub: https://github.com/DeForge-Labs/library/blob/main/database/airtable_list_records/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Airtable List Records node allows you to fetch records from a specified Airtable Base and Table using OAuth authentication. This node is useful for retrieving data stored in Airtable and using it within your Deforge workflows. ### Common Use Cases * Fetching data from Airtable to use in other nodes (e.g., for processing or output). * Integrating Airtable data into larger workflows that involve multiple steps and nodes. * Automating data retrieval from Airtable on a scheduled basis or in response to specific triggers. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Base ID The Base ID (starts with app...) Text Table Name The Table Name or ID (starts with tbl...) Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Records The records found (JSON) JSON Tool The tool version of this node Tool ## Fields The configurable fields this node provides: Name Description Type Base ID The Base ID (e.g., appAbc123...) **Value:** \`` Text Table Name The Table Name (e.g., Tasks) **Value:** \`` Text Airtable Connect your Airtable Account **DefaultValue:** \`` social # Airtable List Tables (/docs/library/nodes/database/airtable_list_tables) Short Description: Get a list of Tables inside a specific Airtable Base. Tags: airtable, database, schema, meta GitHub: https://github.com/DeForge-Labs/library/blob/main/database/airtable_list_tables/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Airtable List Tables node allows you to retrieve a list of all the tables within a specified Airtable Base. This can be useful for dynamically exploring the structure of your Airtable data, generating tools based on your schema, or simply understanding what tables are available in a given base. ### Common Use Cases * **Dynamic Tool Generation**: Use the list of tables to create dynamic tools that can interact with any table in the base without hardcoding table names. * **Schema Exploration**: Understand the structure of your Airtable base by listing all tables and their fields. * **Data Validation**: Check if a specific table exists in the base before attempting to read or write data to it. ## Inputs The input connections this node accepts: Name Description Type Flow undefined Flow Base ID The ID of the Base to inspect Text ## Outputs The output connections this node provides: Name Description Type Flow undefined Flow Tables List of Tables with IDs, Names, and Fields JSON Tool undefined Tool ## Fields The configurable fields this node provides: Name Description Type Base ID The Base ID (app...) **Value:** \`` Text Airtable Connect your Airtable Account **DefaultValue:** \`` social # Airtable Update Record (/docs/library/nodes/database/airtable_update_record) Short Description: Update a record in Airtable. Tags: airtable, database, update GitHub: https://github.com/DeForge-Labs/library/blob/main/database/airtable_update_record/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 10 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description This node allows you to update a record in Airtable. You can specify the base, table, and record you want to update, as well as the fields and their new values. This is useful for keeping your Airtable data up-to-date based on actions or events in your workflow. ### Common Use Cases * Updating a contact's information in Airtable after receiving new data from a form submission. * Modifying a task's status in Airtable when it's marked as complete in another tool. * Changing a product's inventory count in Airtable after a purchase is made. ## Inputs The input connections this node accepts: Name Description Type Flow undefined Flow Base ID undefined Text Table Name undefined Text Record ID undefined Text Fields Fields to update JSON ## Outputs The output connections this node provides: Name Description Type Flow undefined Flow Success undefined Boolean Tool undefined Tool ## Fields The configurable fields this node provides: Name Description Type Base ID undefined **Value:** \`` Text Table Name undefined **Value:** \`` Text Record ID undefined **Value:** \`` Text Fields Fields to update **Value:** \`` Map Airtable Connect your Airtable Account **DefaultValue:** \`` social # MongoDB - Check Collection (/docs/library/nodes/database/mongodb_check_collection_node) Short Description: Check if a collection exists and get its metadata Tags: mongodb, database, check, metadata, collection GitHub: https://github.com/DeForge-Labs/library/blob/main/database/mongodb_check_collection_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 3 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description The MongoDB - Check Collection node allows you to verify the existence of a specific collection within a MongoDB database and retrieve its metadata. ### Common Use Cases * Validate if a collection exists before performing operations * Retrieve collection metadata for auditing or logging purposes * Ensure database integrity in workflows ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Collection Name of the collection to check Text ## Outputs The output connections this node provides: Name Description Type exists Whether the collection exists Boolean documentCount Number of documents in the collection Number collectionSize Size of the collection in bytes Number indexes Array of indexes on the collection JSON options Collection options (capped, size, etc.) JSON sampleDocument A sample document showing the structure JSON Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Collection Name of the collection to check **Value:** `users` Text MONGODB_CONNECTION_STRING MongoDB connection string **DefaultValue:** `mongodb://localhost:27017/dbname` env # MongoDB - Create Collection (/docs/library/nodes/database/mongodb_create_collection_node) Short Description: Create a new collection in MongoDB database Tags: mongodb, database, create, collection GitHub: https://github.com/DeForge-Labs/library/blob/main/database/mongodb_create_collection_node/node.js Difficulty: hard Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description The MongoDB - Create Collection node allows you to create a new collection within a specified MongoDB database. This is useful for organizing your data into different collections based on your application's requirements. ### Common Use Cases * Setting up a new collection for storing user data * Creating collections for different types of documents in your application * Organizing data for better retrieval and management ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Collection Name of the collection to create Text Options Collection options (capped, size, max, validator, etc.) JSON Indexes Array of indexes to create [{keys: {field: 1}, options: {unique: true}}] JSON[] ## Outputs The output connections this node provides: Name Description Type success Whether the collection was created successfully Boolean collectionName The name of the created collection Text message Success or error message Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Collection Name of the collection to create **Value:** `users` Text Options Collection options (capped, size, max, validator, etc.) **Value:** `{}` Map Indexes Array of indexes to create [{keys: {field: 1}, options: {unique: true}}] **Value:** `[]` JSON[] MONGODB_CONNECTION_STRING MongoDB connection string **DefaultValue:** `mongodb://localhost:27017/dbname` env # MongoDB - Insert Document(s) (/docs/library/nodes/database/mongodb_insert_node) Short Description: Insert one or more documents into a MongoDB collection Tags: mongodb, database, insert, write GitHub: https://github.com/DeForge-Labs/library/blob/main/database/mongodb_insert_node/node.js Difficulty: hard Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description MongoDB - Insert Document(s) node allows you to insert one or more documents into a specified MongoDB collection. ### Common Use Cases * Store user data collected from an AI agent * Log events or actions taken by an AI agent * Maintain a history of interactions for analysis or auditing ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Collection Name of the collection to insert into Text Documents A document object or an array of document objects to insert JSON[] Options Insert options (ordered, writeConcern, etc.) JSON ## Outputs The output connections this node provides: Name Description Type insertedIds The IDs of the inserted documents JSON insertedCount The number of documents that were successfully inserted Number Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Collection Name of the collection to insert into **Value:** `logs` Text Documents A document object or an array of document objects to insert **Value:** `[{"level": "info", "message": "process started"}]` JSON[] Options Insert options (ordered, writeConcern, etc.) **Value:** `{}` Map MONGODB_CONNECTION_STRING MongoDB connection string **DefaultValue:** `mongodb://localhost:27017/dbname` env # MongoDB - Query Documents (/docs/library/nodes/database/mongodb_query_node) Short Description: Query MongoDB database Tags: mongodb, database, query, nosql GitHub: https://github.com/DeForge-Labs/library/blob/main/database/mongodb_query_node/node.js Difficulty: hard Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description MongoDB Query Documents node allows you to query documents from a MongoDB collection using specified filters and options. ### Common Use Cases * Retrieve user data based on specific criteria * Fetch product information for e-commerce applications * Aggregate data for reporting and analytics ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Collection Name of the collection to query Text Filter MongoDB filter query object (e.g., {status: 'active'}) JSON Projection Fields to include/exclude (e.g., {name: 1, email: 1, _id: 0}) JSON Sort Sort order (e.g., {createdAt: -1}) JSON Limit The maximum number of documents to return Number Skip Number of documents to skip Number ## Outputs The output connections this node provides: Name Description Type documents The array of documents returned by the query JSON documentCount The number of documents returned Number Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Collection Name of the collection to query **Value:** `users` Text Filter MongoDB filter query object (e.g., {status: 'active'}) **Value:** `{}` JSON Projection Fields to include/exclude (e.g., {name: 1, email: 1, _id: 0}) **Value:** `{}` JSON Sort Sort order (e.g., {createdAt: -1}) **Value:** `{}` JSON Limit The maximum number of documents to return **Value:** `10` Number Skip Number of documents to skip **Value:** `0` Number MONGODB_CONNECTION_STRING MongoDB connection string **DefaultValue:** `mongodb://localhost:27017/dbname` env # PostgreSQL - Check Table (/docs/library/nodes/database/postgres_check_table_node) Short Description: Check if a table exists and get its metadata Tags: postgres, database, check, metadata, table GitHub: https://github.com/DeForge-Labs/library/blob/main/database/postgres_check_table_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 3 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description PostgreSQL - Check Table node allows you to verify the existence of a table in your PostgreSQL database and retrieve its metadata. ### Common Use Cases * Validate if a table exists before performing operations * Retrieve table schema information for dynamic queries * Monitor database structure changes ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Table Name of the table to check Text Schema Schema name (optional, defaults to 'public') Text ## Outputs The output connections this node provides: Name Description Type exists Whether the table exists Boolean columns Array of column metadata (name, type, nullable, default) JSON tableSize Human-readable size of the table Text indexes Array of indexes on the table JSON Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Table Name of the table to check **Value:** `users` Text Schema Schema name (optional, defaults to 'public') **Value:** `public` Text PG_CONNECTION_STRING Postgres connection string **DefaultValue:** `postgres://user:password@localhost:5432/dbname` env # PostgreSQL - Create Table (/docs/library/nodes/database/postgres_create_table_node) Short Description: Create a new table in PostgreSQL database Tags: postgres, database, create, table, ddl GitHub: https://github.com/DeForge-Labs/library/blob/main/database/postgres_create_table_node/node.js Difficulty: hard Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description PostgreSQL - Create Table node allows you to create a new table in your PostgreSQL database by specifying the table name and column definitions. ### Common Use Cases * Set up database schema for new applications * Dynamically create tables based on user input or application needs * Automate database management tasks ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Table Name of the table to create Text Schema Schema name (optional, defaults to 'public') Text Columns Array of column definitions [{name, type, constraints}] JSON IfNotExists Add IF NOT EXISTS clause to prevent errors if table exists Boolean ## Outputs The output connections this node provides: Name Description Type success Whether the table was created successfully Boolean tableName The full name of the created table (schema.table) Text message Success or error message Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Table Name of the table to create **Value:** `users` Text Schema Schema name (optional, defaults to 'public') **Value:** `public` Text Columns Array of column definitions [{name, type, constraints}] Map IfNotExists Add IF NOT EXISTS clause to prevent errors if table exists **Value:** `true` Boolean PG_CONNECTION_STRING Postgres connection string **DefaultValue:** `postgres://user:password@localhost:5432/dbname` env # PostgreSQL - Custom Query (/docs/library/nodes/database/postgres_custom_query_node) Short Description: Executes a custom SQL query with parameters. For advanced users. Tags: postgres, database, custom, sql, raw GitHub: https://github.com/DeForge-Labs/library/blob/main/database/postgres_custom_query_node/node.js Difficulty: hard Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description The PostgreSQL - Custom Query node allows you to execute any SQL query on your PostgreSQL database. This node is designed for advanced users who need more flexibility than the standard query nodes provide. You can write complex SQL statements, including joins, subqueries, and transactions. ### Common Use Cases * Execute complex queries that involve multiple tables * Perform database maintenance tasks * Run batch updates or deletes based on specific conditions ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Query The raw SQL query to execute, using $1, $2, etc. for placeholders Text Parameters The values for the placeholders in the query Text[] ## Outputs The output connections this node provides: Name Description Type rows The array of rows returned by the query (if any) JSON rowCount The number of rows affected or returned Number Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Query The raw SQL query to execute, using $1, $2, etc. for placeholders **Value:** `SELECT * FROM users WHERE status = $1 LIMIT 10;` TextArea Parameters The values for the placeholders in the query **Value:** `Enter values here...` Text[] PG_CONNECTION_STRING Postgres connection string **DefaultValue:** `postgres://user:password@localhost:5432/dbname` env # PostgreSQL - Insert Row(s) (/docs/library/nodes/database/postgres_insert_node) Short Description: Inserts one or more rows into a PostgreSQL table. Tags: postgres, database, insert, write GitHub: https://github.com/DeForge-Labs/library/blob/main/database/postgres_insert_node/node.js Difficulty: hard Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description PostgreSQL - Insert Row(s) node allows you to insert one or more rows into a specified PostgreSQL table using the provided connection details. ### Common Use Cases * Storing user data collected from an AI agent interaction * Logging events or actions performed by an AI agent * Maintaining a history of AI agent decisions or outputs ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Table Name of the table to insert into Text Data A JSON object or an array of JSON objects to insert JSON[] Returning Optional. Columns to return after insertion (e.g., 'id' or '*') Text ## Outputs The output connections this node provides: Name Description Type rows The data from the inserted rows, if 'Returning' is used JSON rowCount The number of rows that were successfully inserted Number Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Table Name of the table to insert into **Value:** `logs` Text Data A JSON object or an array of JSON objects to insert **Value:** `[{"level": "info", "message": "process started"}]` JSON[] Returning Optional. Columns to return after insertion (e.g., 'id' or '*') **Value:** `*` Text PG_CONNECTION_STRING Postgres connection string **DefaultValue:** `postgres://user:password@localhost:5432/dbname` env # PostgreSQL - Query Rows (/docs/library/nodes/database/postgres_query_node) Short Description: Query postgres database Tags: postgres, database, query GitHub: https://github.com/DeForge-Labs/library/blob/main/database/postgres_query_node/node.js Difficulty: hard Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description The PostgreSQL - Query Rows node allows you to query rows from a PostgreSQL database based on specified conditions. ### Common Use Cases * Retrieve user data based on specific criteria * Fetch records for reporting or analysis * Get configuration settings stored in the database ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Table Name of the table to query Text Columns Comma-separated columns to select (or * for all) Text WhereClause The WHERE clause with placeholders ($1, $2, etc.) Text WhereValues Array of values for the WHERE clause (e.g., [123, 'active']) Text[] Limit The maximum number of rows to return Number ## Outputs The output connections this node provides: Name Description Type rows The array of rows returned by the query JSON rowCount The number of rows returned Number Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Table Name of the table to query **Value:** `users` Text Columns Comma-separated columns to select (or * for all) **Value:** `*` Text WhereClause The WHERE clause with placeholders ($1, $2, etc.) **Value:** `id = $1` Text WhereValues Array of values for the WHERE clause (e.g., [123, 'active']) **Value:** `Enter values here...` Text[] Limit The maximum number of rows to return **Value:** `10` Number PG_CONNECTION_STRING Postgres connection string **DefaultValue:** `postgres://user:password@localhost:5432/dbname` env # Anthropic Chat (/docs/library/nodes/LLM/claude_chat_node) Short Description: Chat with Anthropic based LLM Tags: llm, chatbot, claude GitHub: https://github.com/DeForge-Labs/library/blob/main/LLM/claude_chat_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 200 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description The Anthropic Chat node connects your agent to Anthropic's Claude language models. Claude models are known for their helpfulness, harmlessness, and honesty, making them suitable for a wide range of conversational and content generation tasks. ### Common Use Cases * Building conversational agents with nuanced understanding * Creating content that requires careful reasoning * Developing assistants that can follow complex instructions * Generating detailed explanations and analyses ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Query Chat text to send Text Files List of files to send to LLM (Direct links to files, Images and PDFs only, max 5 files, 25 MB each) Text[] Tools List of tools that the LLM can use Tool[] System Prompt System prompt for the LLM Text Temperature Creativity of the LLM Number RAG RAG Knowledge base Rag Save Context Save chat as context for LLM Boolean ## Outputs The output connections this node provides: Name Description Type output The response of the LLM Text ## Fields The configurable fields this node provides: Name Description Type Model The LLM model **Value:** `claude-3-7-sonnet-latest` **Options:** claude-sonnet-4-5 claude-opus-4-1 claude-opus-4-0 claude-sonnet-4-0 claude-3-7-sonnet-latest claude-3-5-haiku-latest select Query Chat text to send **Value:** `Enter text here...` TextArea Files List of files to send to LLM (Direct links to files, Images only, max 5 files, 25 MB each) Text[] Tools List of tools that the LLM can use Tool[] System Prompt System prompt for the LLM **Value:** `You are a helpful assistant` TextArea Temperature Creativity of the LLM **Value:** `0.5` **Min:** `0` **Max:** `1` **Step:** `0.01` Slider Save Context Save chat as context for LLM **Value:** `true` CheckBox # Custom Chat (/docs/library/nodes/LLM/custom_chat_node) Short Description: Chat with custom OpenAI-API-compatible LLMs Tags: llm, chatbot GitHub: https://github.com/DeForge-Labs/library/blob/main/LLM/custom_chat_node/node.js Difficulty: hard Credits (Minimum amount required to execute the node): 10 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Custom Chat node allows you to connect to any OpenAI-compatible LLM API endpoint. This provides flexibility to use custom-deployed models, open-source models, or specialized LLMs that aren't directly supported by other nodes. ### Common Use Cases * Connecting to self-hosted open-source models * Using specialized domain-specific LLMs * Integrating with custom-fine-tuned models * Working with models that require specific API configurations ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Endpoint The endpoint of the OpenAI compatible LLM API Text Query Chat text to send Text Tools List of tools that the LLM can use Tool[] System Prompt System prompt for the LLM Text Temperature Creativity of the LLM Number RAG RAG Knowledge base Rag Save Context Save chat as context for LLM Boolean ## Outputs The output connections this node provides: Name Description Type output The response of the LLM Text ## Fields The configurable fields this node provides: Name Description Type Endpoint The endpoint of the OpenAI compatible LLM API **Value:** `https://api.openai.com/v1` Text Model The LLM model **Value:** `gpt-4o` Text Query Chat text to send **Value:** `Enter text here...` TextArea Tools List of tools that the LLM can use Tool[] System Prompt System prompt for the LLM **Value:** `You are a helpful assistant` TextArea Temperature Creativity of the LLM **Value:** `0.5` **Min:** `0` **Max:** `1` **Step:** `0.01` Slider Save Context Save chat as context for LLM **Value:** `true` CheckBox LLM_API_KEY Api Key for the custom LLM **DefaultValue:** `your-api-key-here` env # Google Chat (/docs/library/nodes/LLM/google_chat_node) Short Description: Chat with Google based LLM Tags: llm, chatbot, gemini GitHub: https://github.com/DeForge-Labs/library/blob/main/LLM/google_chat_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 200 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Google Chat node enables interaction with Google's large language models (LLMs) like Gemini. It allows your agent to generate human-like text responses based on user input, system prompts, and optional knowledge bases. ### Common Use Cases * Creating conversational AI assistants * Generating creative content like stories or poems * Answering questions based on provided knowledge * Summarizing or explaining complex information ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Query Chat text to send Text Files List of files to send to LLM (Direct links to files, Images, PDFs and audio only, max 5 files, 50 MB each) Text[] Tools List of tools that the LLM can use Tool[] System Prompt System prompt for the LLM Text Temperature Creativity of the LLM Number RAG RAG Knowledge base Rag Save Context Save chat as context for LLM Boolean ## Outputs The output connections this node provides: Name Description Type output The response of the LLM Text ## Fields The configurable fields this node provides: Name Description Type Model The LLM model **Value:** `gemini-2.0-flash` **Options:** gemini-2.5-pro gemini-2.5-flash gemini-2.5-flash-lite gemini-2.0-flash gemini-2.0-flash-lite select Query Chat text to send **Value:** `Enter text here...` TextArea Files List of files to send to LLM (Direct links to files, Images, PDFs and audio only, max 5 files, 50 MB each) Text[] Tools List of tools that the LLM can use Tool[] System Prompt System prompt for the LLM **Value:** `You are a helpful assistant` TextArea Temperature Creativity of the LLM **Value:** `0.5` **Min:** `0` **Max:** `1` **Step:** `0.01` Slider Save Context Save chat as context for LLM **Value:** `true` CheckBox # OpenAI Chat (/docs/library/nodes/LLM/openai_chat_node) Short Description: Chat with OpenAI based LLMs Tags: llm, chatbot, chatgpt GitHub: https://github.com/DeForge-Labs/library/blob/main/LLM/openai_chat_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 50 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The OpenAI Chat node connects your agent to OpenAI's powerful language models like GPT-5 and GPT-4.1. These models excel at understanding and generating human-like text for a wide variety of applications. ### Common Use Cases * Creating sophisticated conversational agents * Generating high-quality content like articles or code * Building assistants that can understand complex instructions * Developing tools that require advanced reasoning capabilities ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Query Chat text to send Text Files List of files to send to LLM (Direct links to files, Images and PDFs only, max 5 files, 25 MB each) Text[] Tools List of tools that the LLM can use Tool[] System Prompt System prompt for the LLM Text Temperature Creativity of the LLM Number RAG RAG Knowledge base Rag Save Context Save chat as context for LLM Boolean ## Outputs The output connections this node provides: Name Description Type output The response of the LLM Text ## Fields The configurable fields this node provides: Name Description Type Model The LLM model **Value:** `gpt-4o` **Options:** gpt-5 gpt-5-mini gpt-5-nano gpt-4.1 gpt-4.1-mini gpt-4.1-nano gpt-4o gpt-4o-mini o3-mini o4-mini select Query Chat text to send **Value:** `Enter text here...` TextArea Files List of files to send to LLM (Direct links to files, Images only, max 5 files, 25 MB each) Text[] Tools List of tools that the LLM can use Tool[] System Prompt System prompt for the LLM **Value:** `You are a helpful assistant` TextArea Temperature Creativity of the LLM **Value:** `0.5` **Min:** `0` **Max:** `1` **Step:** `0.01` Slider Save Context Save chat as context for LLM **Value:** `true` CheckBox # AI Persona Creator (/docs/library/nodes/LLM/persona_generator) Short Description: Generate a persona of any user from any social media and add to a LLM Tags: ai, search, social GitHub: https://github.com/DeForge-Labs/library/blob/main/LLM/persona_generator/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 200 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description Generate an AI Persona of a person and mimic their thoughts and style in a chat LLM. ### Common Use Cases * Roleplay using LLMs with a celebrity * Make an LLM think like your role model ## Inputs The input connections this node accepts: Name Description Type Username Username or Link to the user Text ## Outputs The output connections this node provides: Name Description Type Persona The persona details of the user Text ## Fields The configurable fields this node provides: Name Description Type Username Username or Link to the user **Value:** `Enter username or link here...` Text Social The social media to search for **Value:** `Twitter` **Options:** Twitter select # Boolean Operation (/docs/library/nodes/flow/bool_operation) Short Description: Performs a logical operation based on a condition Tags: logic, and, or, not GitHub: https://github.com/DeForge-Labs/library/blob/main/flow/bool_operation/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description Perform boolean logical operations on boolean values ### Common Use Cases * Add complex conditional logic to your agent * Add multiple conditions ## Inputs The input connections this node accepts: Name Description Type Input 1 First input Boolean Input 2 Second input Boolean ## Outputs The output connections this node provides: Name Description Type True The Flow of the Condition if true Flow False The Flow of the Condition if false Flow Result Result Boolean ## Fields The configurable fields this node provides: Name Description Type Logic Logic (NOT operation only works on input 1) **Value:** `AND` **Options:** AND OR NOT select # If Condition (/docs/library/nodes/flow/if_condition) Short Description: Performs a conditional operation based on a condition Tags: condition, if GitHub: https://github.com/DeForge-Labs/library/blob/main/flow/if_condition/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} ", "<", ">=", "<="], }, ], difficulty: "easy", tags: ["condition", "if"], }} /> *** ## Description The If Condition node evaluates a condition and directs the flow of execution based on whether the condition is true or false. This allows your agent to make decisions and take different actions depending on the input data or other factors. ### Common Use Cases * Creating branching logic in workflows * Implementing decision-making based on user input * Handling different cases based on API responses * Validating data and taking appropriate actions ## Inputs The input connections this node accepts: Name Description Type Input 1 First input Any Input 2 Second input Any ## Outputs The output connections this node provides: Name Description Type True The Flow of the Condition if true Flow False The Flow of the Condition if false Flow Result Result Boolean ## Fields The configurable fields this node provides: Name Description Type Condition Condition **Value:** `==` **Options:** == != > < >= <= select # Boolean Input (/docs/library/nodes/input/bool_var) Short Description: Boolean variable Tags: bool, true, false GitHub: https://github.com/DeForge-Labs/library/blob/main/input/bool_var/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description A True/False binary value node meant for logical operations ### Common Use Cases * Manage checkbox values * Parse yes/no replies from users ## Inputs The input connections this node accepts: *This node does not have any input ports.* ## Outputs The output connections this node provides: Name Description Type Boolean The boolean value provided in the field Boolean ## Fields The configurable fields this node provides: Name Description Type Boolean Truthy value **Value:** `true` CheckBox # Map Input (/docs/library/nodes/input/map_var) Short Description: Map variable Tags: map, variable GitHub: https://github.com/DeForge-Labs/library/blob/main/input/map_var/node.js Difficulty: medium import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description This node allows you to input a map (key-value pairs) into your workflow. ### Common Use Cases * Store configuration settings as key-value pairs * Pass structured data between nodes ## Inputs The input connections this node accepts: Name Description Type Input Input JSON JSON ## Outputs The output connections this node provides: Name Description Type Output Output JSON JSON ## Fields The configurable fields this node provides: Name Description Type Input Input JSON Map # Number Input (/docs/library/nodes/input/num_var) Short Description: Number variable Tags: int, float, number GitHub: https://github.com/DeForge-Labs/library/blob/main/input/num_var/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description The Number Input node allows you to define numerical values that can be used throughout your workflow. It supports both integers and floating-point numbers, making it versatile for various calculations and operations. ### Common Use Cases * Setting numerical constants for calculations * Defining thresholds for conditional operations * Configuring parameters for API calls * Setting delays or timeouts in workflows ## Inputs The input connections this node accepts: *This node does not have any input ports.* ## Outputs The output connections this node provides: Name Description Type Number The number given in the field Number ## Fields The configurable fields this node provides: Name Description Type Number The number to output **Value:** `0` Number # Object Input (/docs/library/nodes/input/obj_var) Short Description: Object variable Tags: object, variable GitHub: https://github.com/DeForge-Labs/library/blob/main/input/obj_var/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description The Object Input node allows you to create and manipulate key-value pairs, which can be combined into complex data structures. This is essential for organizing related data and passing structured information between nodes. ### Common Use Cases * Creating structured data for API requests * Organizing related information in a single container * Building configuration objects for other nodes * Storing multiple properties related to a single entity ## Inputs The input connections this node accepts: Name Description Type key The key of the object Text value The value of the object Any ## Outputs The output connections this node provides: Name Description Type Object The object of the variable JSON ## Fields The configurable fields this node provides: Name Description Type key The key of the object **Value:** `key...` Text value The value of the object **Value:** `value...` Text # Text Input (/docs/library/nodes/input/str_var) Short Description: String input from users Tags: str, text, user, input GitHub: https://github.com/DeForge-Labs/library/blob/main/input/str_var/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; {/* */} *** ## Description The User Input node allows you to collect text input from users interacting with your AI agent. This is essential for creating interactive experiences where the agent responds to user queries or commands. ### Common Use Cases * Collecting user queries for a chatbot * Getting search parameters from users * Accepting commands for an AI assistant * Gathering user preferences or settings ## Inputs The input connections this node accepts: *This node does not have any input ports.* ## Outputs The output connections this node provides: Name Description Type Text The given text in field Text ## Fields The configurable fields this node provides: Name Description Type Text The text to output **Value:** `Enter text here...` Text # Create Google Sheet (/docs/library/nodes/office/google_sheets) Short Description: Create a sheet in google sheets Tags: create, sheets, google, csv GitHub: https://github.com/DeForge-Labs/library/blob/main/office/google_sheets/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Create Google Sheet node allows you to create a new Google Sheets spreadsheet and populate it with data from a CSV file or raw CSV string. This node is useful for automating the creation of spreadsheets for data analysis, reporting, or sharing information. ### Common Use Cases * Automatically generate spreadsheets from data collected in other parts of your workflow. * Create reports in Google Sheets format for easy sharing and collaboration. * Convert raw CSV data into a structured Google Sheets document. ## Inputs The input connections this node accepts: Name Description Type Flow The Flow to trigger Flow Title The title for the new spreadsheet Text CSV Raw Raw CSV data as string Text CSV Link Link to a CSV file Text ## Outputs The output connections this node provides: Name Description Type Sheet URL The URL of the newly created Google Sheet Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Title The title for the new spreadsheet **Value:** `New Sheet` Text CSV Raw Raw CSV data as string **Value:** `CSV here ...` TextArea CSV Link Link to a CSV file **Value:** `Link to CSV here ...` Text Google_Sheets Connect your google account social # Send Chatbot Response (/docs/library/nodes/output/chatbot_msg_send) Short Description: Send a response to your chat bot chat Tags: output, chat, bot GitHub: https://github.com/DeForge-Labs/library/blob/main/output/chatbot_msg_send/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description Send a response to your chat UI corresponding to the workflow that has the chat trigger. ### Common Use Cases * Send a message to use the chat UI as a normal chat window for your agent * Send confirmation messages * Send information from your workflow to the UI ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Message Text to send Text ## Outputs The output connections this node provides: Name Description Type Result The final output object of chat bot JSON ## Fields The configurable fields this node provides: Name Description Type Message Text to send **Value:** `text here ...` TextArea # Send Discord Message (/docs/library/nodes/output/discord_msg_send) Short Description: Send a text, media message, or interactive components via your Discord bot Tags: output, discord, bot, message, media, components GitHub: https://github.com/DeForge-Labs/library/blob/main/output/discord_msg_send/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Send Discord Message node allows you to send messages directly to a specified Discord channel using your connected Discord bot. You can send plain text messages, embed media by providing a direct link, and even include interactive components like buttons or dropdowns by passing an array of JSON objects representing Discord Components (Action Rows). This node is perfect for automating announcements, updates, or any communication you want to push to your Discord server as part of your workflow. ### Common Use Cases * Sending notifications to a Discord channel when certain events occur in your workflow. * Posting updates or results from your workflow to keep your team informed. * Sharing media content like images or videos directly to Discord channels. * Creating interactive messages in Discord with buttons or dropdowns for users to engage with. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Message The main text message you want to send Text ChannelID Channel ID to send the message to Text Media Link (Optional) Direct link to an image/media file you want to embed Text Components (Optional) Array of JSON objects representing Discord Components (Action Rows) JSON[] ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Response The response from Discord containing the message ID JSON ## Fields The configurable fields this node provides: Name Description Type Message The main text message you want to send **Value:** `Hello from Deforge!` TextArea ChannelID Channel ID to send the message to **Value:** `123456789` Text Media Link (Optional) Direct link to an image/media file you want to embed **Value:** \`` Text Components (Optional) Array of Discord Components **Value:** `[]` JSON[] Discord Connect to your Discord account **DefaultValue:** \`` social # Output JSON (/docs/library/nodes/output/output_json) Short Description: Outputs JSON to the user Tags: output, json GitHub: https://github.com/DeForge-Labs/library/blob/main/output/output_json/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Output JSON node displays structured JSON data to the user. This is useful for showing complex data structures, API responses, or formatted results in a way that preserves their hierarchical organization. ### Common Use Cases * Displaying structured data to users * Showing API responses in their original format * Presenting complex data hierarchies * Debugging or inspecting JSON objects during workflow development ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow JSON JSON to output JSON ## Outputs The output connections this node provides: *This node does not have any output ports.* ## Fields The configurable fields this node provides: Name Description Type JSON JSON to output **Value:** `Enter JSON here...` Map # Output Number (/docs/library/nodes/output/output_number) Short Description: Outputs number to the user Tags: output, number GitHub: https://github.com/DeForge-Labs/library/blob/main/output/output_number/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Output Number node displays numerical values to the user. This is useful for showing calculation results, counts, measurements, or any other numerical information that needs to be presented to the user. ### Common Use Cases * Displaying calculation results * Showing counts or totals * Presenting metrics or measurements * Outputting numerical values from data processing ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Number Number to output Number ## Outputs The output connections this node provides: *This node does not have any output ports.* ## Fields The configurable fields this node provides: Name Description Type Number Number to output **Value:** `0` Number # Output Text (/docs/library/nodes/output/output_text) Short Description: Outputs text to the user Tags: output, text GitHub: https://github.com/DeForge-Labs/library/blob/main/output/output_text/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Output Text node displays text content to the user. This is typically used as the final step in a workflow to show results, messages, or other text-based information to the user. ### Common Use Cases * Displaying messages or results to users * Showing the output of LLM responses * Presenting formatted information * Providing feedback or instructions to users ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Text Text to output Text ## Outputs The output connections this node provides: *This node does not have any output ports.* ## Fields The configurable fields this node provides: Name Description Type Text Text to output **Value:** `Enter text here...` Text # Send Slack Media Message (/docs/library/nodes/output/slack_media_msg_send) Short Description: Send a media message via your slack bot Tags: output, media, slack, bot GitHub: https://github.com/DeForge-Labs/library/blob/main/output/slack_media_msg_send/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The **Send Slack Media Message** node allows you to send a media message (such as an image or video) to a specified Slack channel using your Slack bot. This node is useful for sharing rich media content within your Slack workspace. ### Common Use Cases * Sharing images or videos in Slack channels * Sending media updates or reports * Enhancing communication with visual content ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Media Link Direct link to the Media file you want to send Text Caption Caption text to send Text ChannelID Channel ID to send the text to Text ## Outputs The output connections this node provides: *This node does not have any output ports.* ## Fields The configurable fields this node provides: Name Description Type Media Link Direct link to the Media file you want to send **Value:** `link here ...` Text Caption Caption text to send **Value:** `text here ...` TextArea ChannelID Channel ID to send the text to **Value:** `123456` Text # Send Slack Message (/docs/library/nodes/output/slack_msg_send) Short Description: Send a message via your Slack bot Tags: output, slack, bot GitHub: https://github.com/DeForge-Labs/library/blob/main/output/slack_msg_send/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The **Send Slack Message** node allows you to send a text message to a specified Slack channel using your Slack bot. This node is useful for automating notifications, alerts, or updates within your Slack workspace. ### Common Use Cases * Sending automated notifications to team channels * Alerting users about important events or updates * Sharing information or reports generated by other nodes in the workflow ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Message Text to send Text ChannelID Channel ID to send the text to Text ## Outputs The output connections this node provides: *This node does not have any output ports.* ## Fields The configurable fields this node provides: Name Description Type Message Text to send **Value:** `text here ...` TextArea ChannelID Channel ID to send the text to **Value:** `123456` Text # Send Telegram Media Message (/docs/library/nodes/output/tg_media_msg_send) Short Description: Send a media message via your telegram bot Tags: output, media, telegram, bot GitHub: https://github.com/DeForge-Labs/library/blob/main/output/tg_media_msg_send/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The **Send Telegram Media Message** node allows you to send a media message (such as an image, video, or audio file) to a specified Telegram chat using your Telegram bot. This node is useful for sharing rich media content within your Telegram chats. ### Common Use Cases * Send media files to telegram * Send text to speech voice messages via agent * Send dubbed videos via eleven labs agent ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Media Link Direct link to the Media file you want to send Text Caption Caption text to send Text ChatID Chat ID to send the text to Text ## Outputs The output connections this node provides: *This node does not have any output ports.* ## Fields The configurable fields this node provides: Name Description Type Media Link Direct link to the Media file you want to send **Value:** `link here ...` Text Caption Caption text to send **Value:** `text here ...` TextArea ChatID Chat ID to send the text to **Value:** `123456` Text Media Type Media type that you want to send **Value:** `voice` **Options:** voice audio video gif photo document select TG_API_KEY Api Key of your Telegram bot **DefaultValue:** `eydnfnuani...` env # Delete Telegram Message (/docs/library/nodes/output/tg_msg_delete) Short Description: Delete a specific message in a Telegram chat Tags: action, telegram, bot, delete GitHub: https://github.com/DeForge-Labs/library/blob/main/output/tg_msg_delete/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Delete Telegram Message node allows you to delete a specific message in a Telegram chat. This can be useful for managing conversations, removing outdated information, or moderating content in group chats. By providing the Chat ID and Message ID, you can target the exact message you want to remove. ### Common Use Cases * **Chat Moderation:** Automatically delete messages that contain inappropriate content or violate chat rules. * **Information Management:** Remove messages that contain outdated information or have been superseded by newer messages. * **Workflow Cleanup:** Delete messages that were sent as part of a workflow but are no longer relevant after certain conditions are met. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow ChatID Chat ID where the message is located Text MessageID ID of the message to delete Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow ## Fields The configurable fields this node provides: Name Description Type ChatID Chat ID where the message is located **Value:** `123456` Text MessageID ID of the message to delete **Value:** `987` Text TG_API_KEY Api Key of your Telegram bot **DefaultValue:** `eydnfnuani...` env # Send Telegram Message (/docs/library/nodes/output/tg_msg_send) Short Description: Send a message via your telegram bot Tags: output, telegram, bot GitHub: https://github.com/DeForge-Labs/library/blob/main/output/tg_msg_send/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description Sends a text message via your Telegram bot to a specified chat ID. Allows your workflow to send dynamic messages to Telegram users. ### Common Use Cases * Sending notifications via Telegram * Alerting users about events * Providing real-time updates via Telegram bots ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Message Text to send Text ChatID Chat ID to send the text to Text ## Outputs The output connections this node provides: *This node does not have any output ports.* ## Fields The configurable fields this node provides: Name Description Type Message Text to send **Value:** `text here ...` TextArea ChatID Chat ID to send the text to **Value:** `123456` Text TG_API_KEY Api Key of your Telegram bot **DefaultValue:** `eydnfnuani...` env # Send Widget Response (/docs/library/nodes/output/widget_msg_send) Short Description: Send a response to your support bot widget Tags: output, support, bot, widget GitHub: https://github.com/DeForge-Labs/library/blob/main/output/widget_msg_send/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description Send a response to your widget corresponding to the workflow that has the chat trigger. ### Common Use Cases * Send a message to use the widget as a normal chat window for your agent * Send confirmation messages * Send information from your workflow to the UI * Send messages to a customer and use the widget for customer support. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Message Text to send Text ## Outputs The output connections this node provides: Name Description Type Result The final output object of chat bot JSON ## Fields The configurable fields this node provides: Name Description Type Message Text to send **Value:** `text here ...` TextArea # HubSpot - Associate Objects (/docs/library/nodes/management/hubspot_associate_objects_node) Short Description: Associate two objects in HubSpot CRM (e.g., contact to company, deal to contact) Tags: hubspot, crm, associate, management GitHub: https://github.com/DeForge-Labs/library/blob/main/management/hubspot_associate_objects_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 3 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The HubSpot - Associate Objects node allows you to associate two objects in HubSpot CRM, such as linking a contact to a company or a deal to a contact. This node is useful for maintaining relationships between different entities in your CRM system. ### Common Use Cases * Linking a contact to a company to track interactions and communications. * Associating a deal with a contact to monitor sales progress. * Creating relationships between various HubSpot objects for better data organization. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow FromObjectType Type of the first object (contact, company, deal, etc.) Text FromObjectId ID of the first object Text ToObjectType Type of the second object (contact, company, deal, etc.) Text ToObjectId ID of the second object Text AssociationType Association type ID (optional, uses default if not provided) Text ## Outputs The output connections this node provides: Name Description Type success Whether the association was created successfully Boolean message Success or error message Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type FromObjectType Type of the first object (contact, company, deal, etc.) **Value:** `contact` Text FromObjectId ID of the first object **Value:** \`` Text ToObjectType Type of the second object (contact, company, deal, etc.) **Value:** `company` Text ToObjectId ID of the second object **Value:** \`` Text AssociationType Association type ID (optional, uses default if not provided) **Value:** \`` Text HubSpot Connect to your HubSpot account social # HubSpot - Create Company (/docs/library/nodes/management/hubspot_create_company_node) Short Description: Create a new company in HubSpot CRM Tags: hubspot, crm, company, create, management GitHub: https://github.com/DeForge-Labs/library/blob/main/management/hubspot_create_company_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The HubSpot - Create Company node allows you to create a new company record in your HubSpot CRM. This node is useful for automating the process of adding new companies based on data collected from various sources, such as web forms, lead generation tools, or other CRM systems. ### Common Use Cases * Automating the creation of company records when new leads are generated. * Integrating with lead generation tools to add companies directly to HubSpot. * Streamlining the onboarding process by automatically creating company profiles. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Name Company name (required) Text Domain Company domain/website Text Industry Company industry Text Phone Company phone number Text City Company city Text AdditionalProperties Additional company properties as key-value pairs JSON ## Outputs The output connections this node provides: Name Description Type success Whether the company was created successfully Boolean companyId The HubSpot company ID Text company The created company object JSON Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Name Company name (required) **Value:** `Acme Corporation` Text Domain Company domain/website **Value:** `acme.com` Text Industry Company industry **Value:** \`` Text Phone Company phone number **Value:** \`` Text City Company city **Value:** \`` Text AdditionalProperties Additional company properties as key-value pairs **Value:** \`` Map HubSpot Connect to your HubSpot account social # HubSpot - Create Contact (/docs/library/nodes/management/hubspot_create_contact_node) Short Description: Create a new contact in HubSpot CRM Tags: hubspot, crm, contact, create, management GitHub: https://github.com/DeForge-Labs/library/blob/main/management/hubspot_create_contact_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The HubSpot - Create Contact node allows you to create a new contact in your HubSpot CRM system. This node is useful for automating the process of adding new leads or customers to your CRM directly from your workflows. ### Common Use Cases * Automatically adding new leads from web forms to HubSpot * Creating contacts from customer support interactions * Syncing contacts from other systems into HubSpot ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Email Contact email address (required) Text FirstName Contact first name Text LastName Contact last name Text Phone Contact phone number Text Company Company name Text AdditionalProperties Additional contact properties as key-value pairs JSON ## Outputs The output connections this node provides: Name Description Type success Whether the contact was created successfully Boolean contactId The HubSpot contact ID Text contact The created contact object JSON Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Email Contact email address (required) **Value:** `contact@example.com` Text FirstName Contact first name **Value:** `John` Text LastName Contact last name **Value:** `Doe` Text Phone Contact phone number **Value:** \`` Text Company Company name **Value:** \`` Text AdditionalProperties Additional contact properties as key-value pairs **Value:** \`` Map HubSpot Connect to your HubSpot account social # HubSpot - Create Deal (/docs/library/nodes/management/hubspot_create_deal_node) Short Description: Create a new deal in HubSpot CRM Tags: hubspot, crm, deal, create, management GitHub: https://github.com/DeForge-Labs/library/blob/main/management/hubspot_create_deal_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The **HubSpot - Create Deal** node allows you to create a new deal in your HubSpot CRM account. This node is useful for automating sales processes, tracking potential revenue, and managing customer relationships effectively. ### Common Use Cases * Automating the creation of sales deals based on lead generation activities. * Integrating with other sales and marketing tools to streamline workflows. * Tracking deal progress and updating sales pipelines automatically. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow DealName Deal name (required) Text Amount Deal amount Number Pipeline Pipeline ID Text Stage Deal stage ID Text CloseDate Expected close date (YYYY-MM-DD) Text AdditionalProperties Additional deal properties as key-value pairs JSON ## Outputs The output connections this node provides: Name Description Type success Whether the deal was created successfully Boolean dealId The HubSpot deal ID Text deal The created deal object JSON Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type DealName Deal name (required) **Value:** `New Deal` Text Amount Deal amount **Value:** `10000` Number Pipeline Pipeline ID **Value:** \`` Text Stage Deal stage ID **Value:** \`` Text CloseDate Expected close date (YYYY-MM-DD) **Value:** \`` Text AdditionalProperties Additional deal properties as key-value pairs **Value:** \`` Map HubSpot Connect to your HubSpot account social # HubSpot - Get Contact (/docs/library/nodes/management/hubspot_get_contact_node) Short Description: Retrieve a contact from HubSpot CRM by email or ID Tags: hubspot, crm, contact, get, management GitHub: https://github.com/DeForge-Labs/library/blob/main/management/hubspot_get_contact_node/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 3 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The HubSpot - Get Contact node allows you to retrieve detailed information about a contact stored in your HubSpot CRM. You can search for a contact using their email address or unique HubSpot ID. This node is essential for workflows that require access to contact data for personalization, follow-ups, or analytics. ### Common Use Cases * Fetching contact details for personalized email campaigns. * Retrieving contact information for customer support interactions. * Accessing contact data for sales follow-ups and lead nurturing. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Email Contact email address Text ContactId HubSpot contact ID (alternative to email) Text ## Outputs The output connections this node provides: Name Description Type success Whether the contact was found Boolean contact The contact object with all properties JSON Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Email Contact email address **Value:** `contact@example.com` Text ContactId HubSpot contact ID (alternative to email) **Value:** \`` Text HubSpot Connect to your HubSpot account social # HubSpot - Search Companies (/docs/library/nodes/management/hubspot_search_companies_node) Short Description: Search for companies in HubSpot CRM with filters Tags: hubspot, crm, company, search, management GitHub: https://github.com/DeForge-Labs/library/blob/main/management/hubspot_search_companies_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The HubSpot - Search Companies Node allows you to search for companies within your HubSpot CRM account using various filters and criteria. This node is useful for retrieving company information based on specific attributes, enabling you to integrate company data into your workflows seamlessly. ### Common Use Cases * Retrieve a list of companies that match specific criteria, such as industry, location, or company size. * Integrate company search functionality into automated workflows for lead generation or customer relationship management. * Use the search results to update or enrich other data sources or systems. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Query Search query string Text Filters Array of filter objects [{propertyName, operator, value}] JSON Limit Maximum number of results (default: 10, max: 100) Number ## Outputs The output connections this node provides: Name Description Type success Whether the search was successful Boolean companies Array of matching companies JSON total Total number of matching companies Number Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Query Search query string **Value:** \`` Text Filters Array of filter objects [{propertyName, operator, value}] **Value:** \`` Map Limit Maximum number of results (default: 10, max: 100) **Value:** `10` Number HubSpot Connect to your HubSpot account social # HubSpot - Search Deals (/docs/library/nodes/management/hubspot_search_deals_node) Short Description: Search for deals in HubSpot CRM with filters Tags: hubspot, crm, deal, search, filter, management GitHub: https://github.com/DeForge-Labs/library/blob/main/management/hubspot_search_deals_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The **HubSpot - Search Deals** node allows you to search for deals in your HubSpot CRM using various filters and criteria. This node is useful for retrieving specific deals based on search queries, filtering conditions, and sorting preferences. ### Common Use Cases * Retrieve deals that match specific search criteria * Filter deals based on properties such as deal stage, amount, or close date * Sort deals by different attributes like creation date or amount ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Query Search query string Text Filters Array of filter objects [{propertyName, operator, value}] JSON Limit Maximum number of results (default: 10, max: 100) Number Sorts Array of sort objects [{propertyName, direction}] JSON ## Outputs The output connections this node provides: Name Description Type success Whether the search was successful Boolean deals Array of matching deals JSON total Total number of matching deals Number Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Query Search query string **Value:** \`` Text Filters Array of filter objects [{propertyName, operator, value}] **Value:** \`` Map Limit Maximum number of results (default: 10, max: 100) **Value:** `10` Number Sorts Array of sort objects [{propertyName, direction}] **Value:** \`` Map HubSpot Connect to your HubSpot account social # HubSpot - Update Contact (/docs/library/nodes/management/hubspot_update_contact_node) Short Description: Update an existing contact in HubSpot CRM Tags: hubspot, crm, contact, update, management GitHub: https://github.com/DeForge-Labs/library/blob/main/management/hubspot_update_contact_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description This node allows you to update an existing contact in HubSpot CRM by specifying the contact's unique identifier and the fields you wish to update. ### Common Use Cases * Update a contact's email address * Change a contact's phone number * Modify a contact's properties based on user input ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Email Contact email address Text ContactId HubSpot contact ID (alternative to email) Text Properties Properties to update as key-value pairs JSON ## Outputs The output connections this node provides: Name Description Type success Whether the contact was updated successfully Boolean contact The updated contact object JSON Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Email Contact email address **Value:** `contact@example.com` Text ContactId HubSpot contact ID (alternative to email) **Value:** \`` Text Properties Properties to update as key-value pairs **Value:** \`` Map HubSpot Connect to your HubSpot account social # Notion Create Page (/docs/library/nodes/management/notion_create_page_node) Short Description: Create a new page inside a Database or as a sub-page of another Page. Tags: notion, create, write, database GitHub: https://github.com/DeForge-Labs/library/blob/main/management/notion_create_page_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 10 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Notion Create Page node allows you to create a new page within your Notion workspace, either as a sub-page of an existing page or as a new entry in a database. This node is useful for automating content creation, task management, note-taking, and more within Notion. ### Common Use Cases * Automatically create a new page for each new lead in a CRM database. * Generate a new note page for each meeting scheduled. * Create a new task in a project management database when a specific event occurs. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Title Title of the new page Text Content Body content (Markdown supported) Text Parent ID ID of the parent Database or Page Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Page ID The ID of the newly created page Text Page URL The URL of the newly created page Text Tool The tool version for LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Notion Connect your Notion Workspace **DefaultValue:** \`` social Title Title of the new page **Value:** \`` Text Content Body content (Markdown supported) **Value:** \`` TextArea Parent Type Are you creating this inside a Database or a Page? **Value:** `database_id` **Options:** database_id page_id select Parent ID The ID of the parent (Database or Page) **Value:** \`` Text Title Property Name Only for Databases: The name of the primary title column (e.g. 'Name', 'Task', 'Topic') **Value:** `Name` Text # Notion Delete Page (/docs/library/nodes/management/notion_delete_page_node) Short Description: Move a Notion page to the Trash (Archive). Tags: notion, delete, archive, remove GitHub: https://github.com/DeForge-Labs/library/blob/main/management/notion_delete_page_node/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Notion Delete Page node allows you to move a page in your Notion workspace to the Trash (Archive). This is useful for automating the cleanup of outdated or irrelevant pages, managing content lifecycle, and keeping your Notion workspace organized. ### Common Use Cases * Automatically archive a page when a project is completed. * Remove a page from a database when a specific condition is met. * Clean up test pages created during development or automation testing. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Page ID The 32-character ID of the page to delete Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Success Success status (true/false) Boolean Tool The tool version for LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Notion Connect your Notion Workspace **DefaultValue:** \`` social Page ID The ID of the page to delete **Value:** \`` Text # Notion List Databases (/docs/library/nodes/management/notion_list_database_node) Short Description: Fetches a list of all Notion databases shared with this integration. Tags: notion, productivity, search, database GitHub: https://github.com/DeForge-Labs/library/blob/main/management/notion_list_database_node/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Notion List Databases node allows you to fetch a list of all databases in your Notion workspace that are shared with this integration. This is useful for discovering available databases, retrieving their IDs for use in other nodes, and managing your Notion data within your workflows. You can also provide an optional query to filter the databases by name, making it easier to find specific databases in larger workspaces. ### Common Use Cases * Retrieve a list of Notion databases to display to users or use in subsequent nodes. * Filter databases by name to find the right one for your workflow. * Use the database IDs in other Notion nodes to create pages, query data, or update content. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Query Optional query to filter databases by name Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Databases The list of databases found (JSON) JSON Tool The tool version of this node Tool ## Fields The configurable fields this node provides: Name Description Type Query Optional query to filter databases by name **Value:** \`` Text Notion Connect your Notion Workspace **DefaultValue:** \`` social # Notion List Pages (/docs/library/nodes/management/notion_list_page_node) Short Description: Search for specific pages in your Notion workspace to get their IDs. Tags: notion, productivity, search, docs GitHub: https://github.com/DeForge-Labs/library/blob/main/management/notion_list_page_node/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Notion List Pages node allows you to search for specific pages in your Notion workspace and retrieve their IDs and other metadata. This is useful for finding the right pages to work with in your workflows, especially in larger workspaces with many pages. You can provide an optional query to filter the pages by title, making it easier to locate specific pages based on keywords or naming conventions. ### Common Use Cases * Search for pages in Notion to retrieve their IDs for use in other nodes. * Filter pages by title to find the right one for your workflow. * Use the page IDs in other Notion nodes to update content, manage pages, or query data. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Query Optional query to filter pages by title Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Pages The list of pages found (JSON) JSON Tool The tool version of this node Tool ## Fields The configurable fields this node provides: Name Description Type Query Optional query to filter pages by title **Value:** \`` Text Notion Connect your Notion Workspace **DefaultValue:** \`` social # Notion Read Page (/docs/library/nodes/management/notion_read_page_node) Short Description: Reads the content of a specific Notion page and converts it to Markdown text. Tags: notion, read, content, ocr GitHub: https://github.com/DeForge-Labs/library/blob/main/management/notion_read_page_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Notion Read Page node allows you to read the content of a specific Notion page and convert it to Markdown text. This is useful for extracting information from Notion pages and using it in your workflows, such as for summarization, analysis, or integration with other tools. ### Common Use Cases * Extracting meeting notes from a Notion page and sending them via email. * Reading a project plan from Notion and creating tasks in a project management tool. * Summarizing the content of a Notion page using an LLM and sending the summary to a chat application. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Page ID The 32-character ID of the page to read Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Content The full text content of the page Text Title The title of the page Text Tool The tool version for LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Notion Connect your Notion Workspace **DefaultValue:** \`` social Page ID The ID from the URL (e.g., 18c369...) **Value:** \`` Text # Notion Update Page (/docs/library/nodes/management/notion_update_page_node) Short Description: Update properties of a Notion page or archive (delete) it. Tags: notion, update, edit, database GitHub: https://github.com/DeForge-Labs/library/blob/main/management/notion_update_page_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 10 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Notion Update Page node allows you to update the properties of an existing Notion page or archive (soft delete) it. You can specify the page to update using its unique ID and provide a JSON object with the properties you want to change. This node is useful for keeping your Notion workspace up-to-date with changes from your workflows, such as updating task statuses, modifying project details, or archiving completed items. ### Common Use Cases * Updating the status of a task in a Notion project management database when it's marked as complete in your workflow. * Modifying the details of a Notion page based on user input or data changes in your workflow. * Archiving a Notion page when it's no longer needed, such as moving completed tasks to the Trash. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Page ID The 32-character ID of the page to update Text Properties JSON object of properties to update (e.g., { 'Status': 'Done' }) JSON ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Page URL The URL of the updated page Text Tool The tool version for LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Notion Connect your Notion Workspace **DefaultValue:** \`` social Page ID The ID of the page to update **Value:** \`` Text Properties JSON object of properties to update (e.g., { 'Status': 'Done' }) **Value:** \`` Map Archive Page If true, this page will be moved to Trash (Soft Delete) **Value:** `false` Boolean # API Trigger (/docs/library/nodes/trigger/api_trigger) Short Description: Triggers the flow when an HTTP request is received at a unique webhook URL. Tags: trigger, api, webhook, http GitHub: https://github.com/DeForge-Labs/library/blob/main/trigger/api_trigger/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The API Trigger node allows you to start a flow when an HTTP request is received at a unique webhook URL. This is useful for integrating with external services that can send webhooks, or for creating custom API endpoints that trigger specific workflows in your automation system. ### Common Use Cases * Receiving webhooks from third-party services (e.g., payment gateways, form submissions). * Creating custom API endpoints for triggering workflows. * Integrating with other applications that can send HTTP requests. ## Inputs The input connections this node accepts: *This node does not have any input ports.* ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger upon receiving a request. Flow Body The JSON payload sent in the request body. JSON Headers The HTTP headers from the incoming request. JSON Query The URL query parameters from the request. JSON Metadata Metadata about the request, like IP address and timestamp. JSON ## Fields The configurable fields this node provides: Name Description Type method The HTTP request method that will trigger this flow. **Value:** `GET` **Options:** GET POST PUT DELETE select # Chat Bot Trigger (/docs/library/nodes/trigger/chatbot_trigger) Short Description: Triggers the flow when a message is recieved from the Chat Bot UI Tags: trigger, chat, bot GitHub: https://github.com/DeForge-Labs/library/blob/main/trigger/chatbot_trigger/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description Activates your workflow upon receiving a message from its corresponding chat UI. Allows you to perform task based on the text sent by user. ### Common Use Cases * Creating custom chatbots with specific knowledge base * Perform agentic tasks intelligently with chat commands * Create an intelligent assistant ## Inputs The input connections this node accepts: *This node does not have any input ports.* ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Message Message recieved by the bot Text ## Fields The configurable fields this node provides: *This node has no configurable fields.* # Cron Trigger (/docs/library/nodes/trigger/cron_trigger) Short Description: Triggers a flow at a specific time with optional start delay and limits Tags: trigger, cron, schedule GitHub: https://github.com/DeForge-Labs/library/blob/main/trigger/cron_trigger/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Cron Trigger node initiates a workflow at specified time intervals. This allows you to create scheduled tasks, periodic updates, or recurring processes without manual intervention. ### Common Use Cases * Scheduling regular data updates or synchronizations * Creating automated reports at specific intervals * Performing periodic maintenance tasks * Triggering workflows based on time-based conditions ## Inputs The input connections this node accepts: *This node does not have any input ports.* ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow timeStamp Timestamp of execution Date ## Fields The configurable fields this node provides: Name Description Type Interval in Hours Interval in Hours (e.g., 0.5 for 30 mins, 24 for daily) **Value:** `1` Number Start Time Start Date & Time (Optional). Must be within next 10 days. **Value:** \`` Date Max Executions Max Executions (0 for infinite) **Value:** `0` Number Timezone Timezone for the schedule **Value:** `UTC` **Options:** UTC America/New_York America/Los_Angeles America/Chicago Europe/London Europe/Paris Europe/Berlin Asia/Tokyo Asia/Shanghai Asia/Dubai Asia/Kolkata Asia/Singapore Australia/Sydney Pacific/Auckland select # Discord Trigger (/docs/library/nodes/trigger/discord_trigger) Short Description: Triggers the flow when a user uses a slash command, clicks a button, or sends a text message on your Discord bot Tags: trigger, discord, bot, command, button, message GitHub: https://github.com/DeForge-Labs/library/blob/main/trigger/discord_trigger/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Discord Trigger node allows you to start a workflow in Deforge when a user interacts with your Discord bot. This node can trigger flows based on three types of interactions: 1. **Slash Commands**: When a user types a slash command that your bot has registered (e.g., `/hello`), this node can trigger a flow and provide the command name and query as outputs. 2. **Button Clicks**: If your bot sends messages with interactive buttons, you can use this node to trigger flows when users click those buttons. The node will output the custom ID of the button clicked. 3. **Text Messages**: You can also configure this node to trigger on any text message received by the bot, allowing you to create flows that respond to user messages in Discord. ### Common Use Cases * Building a Discord bot that responds to slash commands with dynamic content generated by Deforge. * Creating interactive Discord messages with buttons that trigger specific workflows when clicked. * Setting up automated responses to user messages in Discord based on keywords or phrases. ## Inputs The input connections this node accepts: *This node does not have any input ports.* ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Interaction Type Type of interaction (COMMAND, BUTTON, or MESSAGE) Text Action Value The name of the slash command, or the custom ID of the button clicked Text Message Message received by the bot (or the query from a slash command) Text Channel ID Channel ID where the interaction happened Text User ID User ID of the person who interacted Text Server ID Server (Guild) ID where the interaction happened Text Payload The full raw payload from Discord JSON ## Fields The configurable fields this node provides: Name Description Type Discord Connect to your Discord bot **DefaultValue:** \`` social # Gmail Trigger (/docs/library/nodes/trigger/gmail_trigger) Short Description: Triggers the flow when a mail is recieved on Gmail Tags: trigger, gmail, email GitHub: https://github.com/DeForge-Labs/library/blob/main/trigger/gmail_trigger/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Gmail Trigger node allows you to trigger a flow when a new email is received in your Gmail account. This node listens for incoming emails and initiates the flow execution whenever a new email arrives, enabling you to automate actions based on email events. ### Common Use Cases * Automatically send a reply or acknowledgment when a new email is received. * Extract specific information from incoming emails and use it in subsequent nodes. * Create tasks or tickets in project management tools based on email content. ## Inputs The input connections this node accepts: *This node does not have any input ports.* ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow All Email All email data (if multiple) JSON Subject The email subject (if only one email found) Text Body The email body (if only one email found) Text ## Fields The configurable fields this node provides: Name Description Type Gmail_Trigger Connect to your Gmail account social # Slack Trigger (/docs/library/nodes/trigger/slack_trigger) Short Description: Triggers the flow when a message is recieved on the slack bot Tags: trigger, slack, bot GitHub: https://github.com/DeForge-Labs/library/blob/main/trigger/slack_trigger/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Slack Trigger node allows you to trigger a flow when a message is received by your Slack bot. This is useful for responding to user messages, processing commands, or integrating with other services based on Slack interactions. ### Common Use Cases * Responding to user messages in Slack channels or direct messages. * Processing commands sent to the bot. * Integrating Slack interactions with other services or workflows. ## Inputs The input connections this node accepts: *This node does not have any input ports.* ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Message Message recieved by the bot Text Channel ID Channel ID of the channel or DM Text User ID User ID of the user Text Is Bot Mentioned Was the bot mentioned in the text ? Boolean ## Fields The configurable fields this node provides: Name Description Type Slack Connect to your Slack account social # Telegram Trigger (/docs/library/nodes/trigger/tg_trigger) Short Description: Triggers the flow when a message is recieved on the telegram bot Tags: trigger, telegram, bot GitHub: https://github.com/DeForge-Labs/library/blob/main/trigger/tg_trigger/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description Activates a workflow upon receiving a message by your configured Telegram bot. Allows for dynamic actions based on user input from Telegram. ### Common Use Cases * Creating Telegram-based command interfaces * Receiving alerts or notifications via Telegram * Building interactive Telegram bots ## Inputs The input connections this node accepts: Name Description Type On Start Text to send when recieving the /start command Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Message Message recieved by the bot Text Voice Link to the voice message recieved by the bot Text Chat ID Chat ID of the user Text Username Username of the user Text Is Command Is the message a bot command ? Boolean ## Fields The configurable fields this node provides: Name Description Type On Start Text to send when recieving the /start command **Value:** `text here ...` TextArea TG_API_KEY Api Key of your Telegram bot **DefaultValue:** `eydnfnuani...` env # Widget Trigger (/docs/library/nodes/trigger/widget_trigger) Short Description: Triggers the flow when a message is recieved from the support bot Widget Tags: trigger, support, bot, widget GitHub: https://github.com/DeForge-Labs/library/blob/main/trigger/widget_trigger/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; ', }, ], difficulty: "easy", tags: ["trigger", "support", "bot", "widget"], }} /> *** ## Description Activates your workflow upon receiving a message from its corresponding widget. Allows you to perform task based on the text sent by user. Also allows you to customize the widget appearance by setting intro message, company name, description and logo. ### Common Use Cases * Creating custom chatbots with specific knowledge base * Perform agentic tasks intelligently with chat commands * Create an intelligent assistant ## How to Use The method is as simple as adding a simple script to your site that too via a CDN. Here are some ways you can add it to your site listed by specific frameworks: ```html title="index.html" Your Website ``` Widget Layout ```tsx title="components/chatbot-widget.tsx" 'use client' import { useEffect } from 'react' interface ChatbotWidgetProps { workflowId: string theme?: 'deforge-light' | 'deforge-dark' position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' } export default function ChatbotWidget({ workflowId, theme = 'deforge-light', position = 'bottom-right' }: ChatbotWidgetProps) { useEffect(() => { // Load the script dynamically const script = document.createElement('script') script.src = 'https://cdn.jsdelivr.net/npm/deforge-widget/chatbot.min.js' script.async = true script.onload = () => { // Initialize widget after script loads if (typeof window !== 'undefined' && (window as any).ChatbotWidget) { new (window as any).ChatbotWidget({ workflowId, theme, position }) } } document.head.appendChild(script) // Cleanup return () => { document.head.removeChild(script) } }, [workflowId, theme, position]) return null // Widget renders itself } ``` ```tsx title="app/layout.tsx" import ChatbotWidget from '@/components/chatbot-widget' export default function RootLayout({ children, }: { children: React.ReactNode }) { return ( {children} ) } ``` ```tsx title="pages/_app.tsx" import { useEffect } from 'react' import type { AppProps } from 'next/app' export default function App({ Component, pageProps }: AppProps) { useEffect(() => { const script = document.createElement('script') script.src = 'https://cdn.jsdelivr.net/npm/deforge-widget/chatbot.min.js' script.async = true script.onload = () => { if (typeof window !== 'undefined' && (window as any).ChatbotWidget) { new (window as any).ChatbotWidget({ workflowId: "4d4e2caa-fe46-4f5c-9e51-5de0cf8111a9", theme: "deforge-light", position: "bottom-right" }) } } document.head.appendChild(script) }, []) return } ``` Hook App ```ts title="hooks/useChatbotWidget.ts" import { useEffect } from 'react' interface UseChatbotWidgetProps { workflowId: string theme?: 'deforge-light' | 'deforge-dark' position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' } export function useChatbotWidget({ workflowId, theme = 'deforge-light', position = 'bottom-right' }: UseChatbotWidgetProps) { useEffect(() => { const script = document.createElement('script') script.src = 'https://cdn.jsdelivr.net/npm/deforge-widget/chatbot.min.js' script.async = true script.onload = () => { if ((window as any).ChatbotWidget) { new (window as any).ChatbotWidget({ workflowId, theme, position }) } } document.head.appendChild(script) return () => { if (document.head.contains(script)) { document.head.removeChild(script) } } }, [workflowId, theme, position]) } ``` ```tsx title="App.tsx" import { useChatbotWidget } from './hooks/useChatbotWidget' function App() { useChatbotWidget({ workflowId: "4d4e2caa-fe46-4f5c-9e51-5de0cf8111a9", theme: "deforge-light", position: "bottom-right" }) return (

Your React App

{/* Your app content */}
) } export default App ```
Component App ```vue title="components/ChatbotWidget.vue" ``` ```vue title="App.vue" ``` Service Component ```ts title="services/chatbot-widget-service.ts" import { Injectable } from '@angular/core' export interface ChatbotWidgetConfig { workflowId: string theme?: 'deforge-light' | 'deforge-dark' position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' } @Injectable({ providedIn: 'root' }) export class ChatbotWidgetService { private scriptLoaded = false async loadWidget(config: ChatbotWidgetConfig): Promise { if (this.scriptLoaded) { this.initializeWidget(config) return } return new Promise((resolve, reject) => { const script = document.createElement('script') script.src = 'https://cdn.jsdelivr.net/npm/deforge-widget/chatbot.min.js' script.async = true script.onload = () => { this.scriptLoaded = true this.initializeWidget(config) resolve() } script.onerror = () => { reject(new Error('Failed to load chatbot widget script')) } document.head.appendChild(script) }) } private initializeWidget(config: ChatbotWidgetConfig): void { if ((window as any).ChatbotWidget) { new (window as any).ChatbotWidget({ workflowId: config.workflowId, theme: config.theme || 'deforge-light', position: config.position || 'bottom-right' }) } } } ``` ```ts title="app.component.ts" import { Component, OnInit } from '@angular/core' import { ChatbotWidgetService } from './services/chatbot-widget.service' @Component({ selector: 'app-root', template: `

Your Angular App

` }) export class AppComponent implements OnInit { constructor(private chatbotService: ChatbotWidgetService) {} ngOnInit(): void { this.chatbotService.loadWidget({ workflowId: "4d4e2caa-fe46-4f5c-9e51-5de0cf8111a9", theme: 'deforge-light', position: 'bottom-right' }).catch(error => { console.error('Failed to load chatbot widget:', error) }) } } ```
Component App ```svelte title="ChatbotWidget.svelte" ``` ```svelte title="App.svelte"

Your Svelte App

```
## Inputs The input connections this node accepts: Name Description Type Intro Intro message shown by the bot Text Company Name Company Name shown in the widget header Text Description Company or Chatbot description shown in the widget header Text Logo Company Logo shown in the widget header (SVG) Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Message Message recieved by the bot Text ## Fields The configurable fields this node provides: Name Description Type Intro Intro message shown by the bot **Value:** `🎉 Welcome! I'm your AI assistant. This is a demo workflow. Ask me anything!` Text Company Name Company Name shown in the widget header **Value:** `Deforge Assistant` Text Description Company or Chatbot description shown in the widget header **Value:** `AI Agent is ready to help!` Text Logo Company Logo shown in the widget header (SVG) **Value:** `` TextArea # Add Discord Role (/docs/library/nodes/social/discord_add_role) Short Description: Assign a specific role to a user in the server Tags: action, discord, bot, role, add GitHub: https://github.com/DeForge-Labs/library/blob/main/social/discord_add_role/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Add Discord Role node allows you to assign a specific role to a user in your Discord server. This can be useful for managing permissions, granting access to certain channels, or organizing users based on their roles. By providing the User ID and Role ID, you can automate role assignments as part of your workflow. ### Common Use Cases * Automatically assign a "New Member" role to users when they join the server. * Grant a "VIP" role to users who make a purchase or reach a certain milestone. * Remove a "Muted" role after a specified time period. * Manage event attendees by assigning roles based on their registration status. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow User ID The ID of the User to receive the role Text Role ID The ID of the Role to assign Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger next Flow Success Was the role added successfully? Boolean Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type User ID The ID of the User **Value:** \`` Text Role ID The ID of the Role **Value:** \`` Text Discord Connect Discord **DefaultValue:** \`` social # Find Discord Channel (/docs/library/nodes/social/discord_find_channel) Short Description: Search for a channel by its name and return its ID Tags: action, discord, bot, channel, find GitHub: https://github.com/DeForge-Labs/library/blob/main/social/discord_find_channel/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Find Discord Channel node allows you to search for a specific channel within a connected Discord server by its name. This node is useful for workflows that need to interact with specific channels, such as sending messages, retrieving channel information, or managing channel settings. By providing the channel name, the node will return the channel's ID and full data, which can then be used in subsequent nodes within your workflow. ### Common Use Cases * **Sending Messages to a Channel**: Use this node to find the channel ID before sending a message with the Send Discord Message node. * **Retrieving Channel Information**: Get details about a channel, such as its topic, member count, or permissions. * **Channel Management**: Use the channel ID to manage channel settings or roles with other Discord nodes. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Channel Name The name of the channel to find (e.g., 'general') Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger next Flow Channel ID The ID of the found channel Text Channel Data Full JSON object of the channel JSON Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Channel Name The name of the channel to find **Value:** \`` Text Discord Connect Discord **DefaultValue:** \`` social # Find Discord User (/docs/library/nodes/social/discord_find_user) Short Description: Search for a user in the server by their username or nickname Tags: action, discord, bot, user, find GitHub: https://github.com/DeForge-Labs/library/blob/main/social/discord_find_user/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Find Discord User node allows you to search for a specific user within a connected Discord server by their username or nickname. This node is useful for workflows that need to interact with specific users, such as sending direct messages, retrieving user information, or managing user roles. By providing a search query, the node will return the user's ID and full data, which can then be used in subsequent nodes within your workflow. ### Common Use Cases * **Sending Direct Messages**: Use this node to find the user ID before sending a direct message with the Send Discord Message node. * **Retrieving User Information**: Get details about a user, such as their roles, join date, or activity status. * **User Management**: Use the user ID to manage user roles or permissions with other Discord nodes. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Search Query The username or nickname to search for Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger next Flow User ID The ID of the found user Text User Data Full JSON object of the guild member JSON Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Search Query Username or nickname to search **Value:** \`` Text Discord Connect Discord **DefaultValue:** \`` social # List Discord Roles (/docs/library/nodes/social/discord_list_roles) Short Description: Retrieve a list of all roles in the server, or search for a specific role by name Tags: action, discord, bot, role, list, find GitHub: https://github.com/DeForge-Labs/library/blob/main/social/discord_list_roles/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description This node connects to Discord and retrieves a list of all roles in the server. You can optionally provide a role name to filter the results and return only roles that match the specified name. The output includes a JSON array of roles and a tool version of the node for use by LLMs. ### Common Use Cases * **Role Management:** Use this node to manage roles within a Discord server, such as listing roles for administrative purposes or to assign roles to users based on certain conditions. * **Integration with LLMs:** The tool output can be used by large language models to understand the available roles in a Discord server and make decisions based on that information, such as assigning roles to users or sending targeted messages. * **Automated Moderation:** Combine this node with other Discord nodes to automate moderation tasks, such as checking if a user has a specific role before allowing them to perform certain actions. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Role Name (Optional) The name of a specific role to find Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger next Flow Roles Array JSON Array of roles (Filtered if a name was provided) JSON Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Role Name (Optional) The name of a specific role to find **Value:** \`` Text Discord Connect Discord **DefaultValue:** \`` social # Register Discord Command (/docs/library/nodes/social/discord_register_command) Short Description: Checks if a slash command exists in the connected server, and registers it if it doesn't Tags: action, discord, bot, setup, command GitHub: https://github.com/DeForge-Labs/library/blob/main/social/discord_register_command/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Register Discord Command node allows you to create custom slash commands for your Deforge agents in Discord. When executed, the node checks if a command with the specified name already exists in the connected Discord server. If it doesn't exist, the node registers the new command with the provided description. This enables users to interact with your Deforge agent directly through Discord using the defined slash command. ### Common Use Cases * Setting up custom commands for your Deforge agent in Discord * Allowing users to trigger specific workflows in your agent via Discord commands * Managing and organizing your agent's Discord interactions with clear command structures ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Command Name The name of the slash command (lowercase, no spaces) Text Description Description of what the command does Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger next Flow ## Fields The configurable fields this node provides: Name Description Type Command Name The name of the slash command (e.g., check-inventory) **Value:** \`` Text Description Description of what the command does **Value:** `A custom Deforge agent command` Text Discord Connect to your Discord account **DefaultValue:** \`` social # Remove Discord Role (/docs/library/nodes/social/discord_remove_role) Short Description: Remove a specific role from a user in the server Tags: social, discord, bot, role, remove GitHub: https://github.com/DeForge-Labs/library/blob/main/social/discord_remove_role/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Remove Discord Role node allows you to remove a specific role from a user in your connected Discord server. By providing the User ID and Role ID, this node will attempt to remove the specified role from the user. The output will indicate whether the operation was successful, allowing you to handle the flow accordingly in your workflow. This is useful for managing user permissions and roles dynamically based on interactions with your Deforge agent. ### Common Use Cases * Managing user roles in Discord based on their interactions with your Deforge agent * Automatically removing roles from users who no longer meet certain criteria * Keeping your Discord server organized by dynamically updating user roles through your agent's workflows ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow User ID The ID of the User to remove the role from Text Role ID The ID of the Role to remove Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger next Flow Success Was the role removed successfully? Boolean Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type User ID The ID of the User **Value:** \`` Text Role ID The ID of the Role **Value:** \`` Text Discord Connect Discord **DefaultValue:** \`` social # Get Gmail Email (/docs/library/nodes/social/gmail_get) Short Description: Retrieve email from your connected gmail account using a search query (requires Gmail_Read connection). Tags: get, gmail, email, inbox, search GitHub: https://github.com/DeForge-Labs/library/blob/main/social/gmail_get/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The **Get Gmail Email** node allows you to retrieve email from your connected Gmail account using a search query. You can specify the search criteria similar to how you would in the Gmail search bar (e.g., `is:unread from:amazon`). The node can return multiple emails based on the specified count. ### Common Use Cases * Retrieve unread emails from a specific sender. * Fetch emails containing specific keywords. * Integrate email retrieval into automated workflows. ## Inputs The input connections this node accepts: Name Description Type Flow The Flow to trigger Flow Search Query Search query for email (same as gmail search bar, e.g., 'is:unread from:amazon') Text Count Number of email to retrieve Number ## Outputs The output connections this node provides: Name Description Type All Email All email data (JSON array of {subject, body}) JSON Subject The email subject (if only one email selected) Text Body The email body (if only one email selected) Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Search Query Search query for email (same as gmail search bar) **Value:** `search query here ...` Text Count Number of email to retrieve **Value:** `5` **Min:** `1` **Max:** `50` **Step:** `1` Slider Gmail_Read Connect to your Gmail account social # LinkedIN Post (/docs/library/nodes/social/linkedin_post) Short Description: Make a post on LinkedIn with optional text, image, or video (requires LinkedIn connection). Tags: linkedin, video, image, post, social media GitHub: https://github.com/DeForge-Labs/library/blob/main/social/linkedin_post/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The LinkedIn Post node allows you to create a post on LinkedIn with optional text, image, or video content. You can configure the content of the post and other parameters. This node is useful for sharing information, updates, or any other messages via LinkedIn. ### Common Use Cases * Sharing updates or news on LinkedIn * Posting promotional content or announcements * Engaging with your LinkedIn network through posts ## Inputs The input connections this node accepts: Name Description Type Content Text content to post Text Video Link Link of the video to upload Text Image Link Link of the image to upload Text ## Outputs The output connections this node provides: Name Description Type Post Link The link of the newly created post Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Content Text content to post **Value:** `Enter text here...` TextArea Video Link Link of the video to upload **Value:** `Enter video link here...` Text Image Link Link of the image to upload **Value:** `Enter image link here...` Text Visibility The visibility of the post **Value:** `PUBLIC` **Options:** PUBLIC CONNECTIONS LOGGED_IN select LinkedIn Connect to your Linked In account social # Send Deforge Email (/docs/library/nodes/social/send_deforge_email_node) Short Description: Send an email using the system's default Deforge mailer. Tags: email, communication, notification, system GitHub: https://github.com/DeForge-Labs/library/blob/main/social/send_deforge_email_node/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 15 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Send Deforge Email node allows you to send an email using the system's default Deforge mailer. You can specify the recipient(s), subject, body content, and additional options such as CC, BCC, and whether the body is in HTML format. This node is useful for sending notifications, updates, or any other email communication directly from your Deforge workflows without needing to integrate with external email services. ### Common Use Cases * Sending notifications or alerts to users based on workflow events * Communicating updates or results from your Deforge agents to stakeholders * Automating email communication as part of larger workflows, such as sending a summary report after a task is completed ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow To Recipient email address (comma-separated for multiple) Text Subject Email subject line Text Body Email body content Text CC CC email addresses (comma-separated, optional) Text BCC BCC email addresses (comma-separated, optional) Text HTML Whether the body is HTML (default: false for plain text) Boolean ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow success Whether the email was sent successfully Boolean messageId The message ID from the email server Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type To Recipient email address (comma-separated for multiple) **Value:** \`` Text Subject Email subject line **Value:** \`` Text Body Email body content **Value:** \`` TextArea CC CC email addresses (comma-separated, optional) **Value:** \`` Text BCC BCC email addresses (comma-separated, optional) **Value:** \`` Text HTML Whether the body is HTML (default: false for plain text) **Value:** `false` CheckBox # Send Email (/docs/library/nodes/social/send_email_node) Short Description: Send an email using SMTP Tags: email, smtp, communication, send, notification GitHub: https://github.com/DeForge-Labs/library/blob/main/social/send_email_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 5 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Send Email node allows you to send emails using SMTP (Simple Mail Transfer Protocol). You can configure the recipient, subject, body, and other email parameters. This node is useful for sending notifications, alerts, or any other email communications from your workflow. ### Common Use Cases * Sending notification emails to users * Alerting administrators of important events * Sending reports or summaries via email ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow To Recipient email address (comma-separated for multiple) Text Subject Email subject line Text Body Email body content Text CC CC email addresses (comma-separated, optional) Text BCC BCC email addresses (comma-separated, optional) Text HTML Whether the body is HTML (default: false for plain text) Boolean ## Outputs The output connections this node provides: Name Description Type success Whether the email was sent successfully Boolean messageId The message ID from the email server Text response Response message from the email server Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type To Recipient email address (comma-separated for multiple) **Value:** `recipient@example.com` Text Subject Email subject line **Value:** `Hello from AI Agent Builder` Text Body Email body content **Value:** `This is a test email sent from the AI Agent Builder.` TextArea CC CC email addresses (comma-separated, optional) **Value:** \`` Text BCC BCC email addresses (comma-separated, optional) **Value:** \`` Text HTML Whether the body is HTML (default: false for plain text) **Value:** `false` CheckBox SMTP_HOST SMTP host (e.g., smtp.gmail.com) **DefaultValue:** `smtp.gmail.com` env SMTP_PORT SMTP port (e.g., 587 for TLS, 465 for SSL) **DefaultValue:** `587` env SMTP_USER SMTP username/email **DefaultValue:** `your-email@gmail.com` env SMTP_PASSWORD SMTP password or app password **DefaultValue:** `your-app-password` env SMTP_SECURE Use TLS (true/false) **DefaultValue:** `false` env # Tweet Post (/docs/library/nodes/social/tweet_post) Short Description: Post an update to your Twitter/X account Tags: twitter, tweet, post, social GitHub: https://github.com/DeForge-Labs/library/blob/main/social/tweet_post/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 10 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Tweet Post node allows you to post updates to your Twitter/X account. You can configure the content of the tweet and other parameters. This node is useful for sharing information, updates, or any other messages via Twitter. ### Common Use Cases * Post your thoughts enhanced by LLMs via your agent * Make posts via Telegram * Make automated regular posts via agents. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Post Text that you want to post Text ## Outputs The output connections this node provides: Name Description Type Tweet Link The link of the posted tweet Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Post Text that you want to post **Value:** `Enter text here...` TextArea Twitter Connect to your Twitter account social # X (Twitter) Browser (/docs/library/nodes/social/twitter_browser) Short Description: Search tweets, track keywords, or browse user profiles Tags: twitter, x, social, search, osint GitHub: https://github.com/DeForge-Labs/library/blob/main/social/twitter_browser/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 30 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The X (Twitter) Browser node allows you to search for tweets, track keywords, or browse user profiles on X (formerly Twitter). By providing a search query with optional operators (like from:username or #hashtag), you can retrieve relevant tweets based on your criteria. The node also lets you specify the type of search (Latest or Top) and the number of tweets to fetch, making it a powerful tool for social media monitoring, sentiment analysis, or gathering real-time information from X. ### Common Use Cases * Monitoring brand mentions or specific keywords on X * Gathering real-time information or news on specific topics * Analyzing sentiment or trends on X for market research * Tracking competitor activity or industry conversations on X ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Query The search query (e.g. 'AI from:elonmusk' or '#web3') Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Tweets List of tweets found JSON Tool The tool version for LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Query Search query (supports operators like from:, since:, #) **Value:** `AI news` Text Query Type Type of search **Value:** `Latest` **Options:** Latest Top select Limit Number of tweets to fetch (max 20 per request) **Value:** `10` **Min:** `1` **Max:** `20` **Step:** `1` Slider # YouTube Upload (/docs/library/nodes/social/yt_upload) Short Description: Upload videos to your YouTube channel Tags: youtube, video, upload, social GitHub: https://github.com/DeForge-Labs/library/blob/main/social/yt_upload/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description YouTube upload node allows you to upload a video to your channel. You can set various options for your upload. They range from Category to Privacy. Uploads can only be done after you connect your YouTube account to the workflow. ### Common Use Cases * Can be used to upload your AI generated video * Can be used to upload video automatically from another service. ## Inputs The input connections this node accepts: Name Description Type Link Link to the video to upload Text Title Title of the video to upload Text Description Description of the video to upload Text Tags Tags for the video to upload (Comma separated list of tags) Text ## Outputs The output connections this node provides: Name Description Type Video Link The link of the uploaded video Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Link Link to the video to upload **Value:** `Enter text here...` Text Title Title of the video to upload **Value:** `Enter text here...` Text Description Description of the video to upload **Value:** `Enter text here...` TextArea Tags Tags for the video to upload (Comma separated list of tags) **Value:** `Enter tags here...` Text Category The category of the video **Value:** `People & Blogs` **Options:** Autos & Vehicles Comedy Education Enterntainment Film & Animation Gaming Howto & Style Music News & Politics Nonprofits & Activism People & Blogs Pets & Animals Science & Technology Sports Travel & Events select Privacy The privacy status of the video **Value:** `Public` **Options:** Public Private Unlisted select YouTube Connect to your YouTube account social # Jobs Search (/docs/library/nodes/search/jobs_search) Short Description: Search for jobs with a given search term using Adzuna API Tags: jobs, adzuna, search GitHub: https://github.com/DeForge-Labs/library/blob/main/search/jobs_search/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 10 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Jobs Search node allows you to search for job listings based on specific terms using the Adzuna API. You can specify search terms, minimum salary, and the country where you want to find jobs. The node retrieves a list of job postings that match your criteria and provides the results in both JSON and CSV formats. This node is useful for automating job search processes and integrating job data into your workflows. ### Common Use Cases * Automating job searches based on specific keywords and criteria. * Integrating job listings into applications or services. * Filtering job postings by salary and location. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Terms Terms to search Text Min Salary Minimum Salary you want Number ## Outputs The output connections this node provides: Name Description Type Job List The list of retrieved jobs (JSON array) JSON Job List CSV The list of jobs in CSV format Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Terms Terms to search **Value:** `Enter text here...` Text Min Salary Minimum Salary you want **Value:** `0` Number Country The country where you want to work **Value:** `United States` **Options:** Great Britain United States Austria Australia Belgium Brazil Canada Switzerland Germany Spain France India Italy Mexico Netherlands New Zealand Poland Singapore South Africa select # Get URL Data (/docs/library/nodes/search/url_data_node) Short Description: Scrape data from a given URL Tags: link, search, web, scrape GitHub: https://github.com/DeForge-Labs/library/blob/main/search/url_data_node/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 10 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Get URL Data node scrapes data from a specified URL and returns the content in a structured format. This is useful for extracting information from web pages, APIs, or other online resources. ### Common Use Cases * Extracting article content from news websites for summarization or analysis. * Scraping product details from e-commerce sites for price comparison. * Gathering data from public APIs for integration into workflows. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow URL URL to get data from Text ## Outputs The output connections this node provides: Name Description Type output The scraped content in markdown Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type URL URL to scrape **Value:** `Enter text here...` Text # AI Web Search (/docs/library/nodes/search/web_search_node) Short Description: Search the web and get summarised information Tags: llm, search, web GitHub: https://github.com/DeForge-Labs/library/blob/main/search/web_search_node/node.js Difficulty: easy Credits (Minimum amount required to execute the node): 10 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The AI Web Search node searches the web, based on your query and preferred language and then returns the output in markdown format. Markdown format makes it easier for LLMs to parse the information from around the web. ### Common Use Cases * Gather latest and trending news for automated content generation. * Gather information from around the web for summarisation. * Gather specific information from the web to create newsletters. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Query Query to search Text ## Outputs The output connections this node provides: Name Description Type output The content of all the search results in markdown Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Query Query to search **Value:** `Enter text here...` TextArea Language The preferred search language **Value:** `English` **Options:** English Spanish French German Japanese Chinese Hindi Portugese Italian Korean Dutch Arabic Sweedish Hebrew Afrikaans Russian select # API Call (/docs/library/nodes/processing/api_node) Short Description: Call external API Tags: api, http, external GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/api_node/node.js Difficulty: medium import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The API Call node enables your AI agent to interact with external services and data sources through HTTP requests. It supports various methods like GET, POST, PUT, and DELETE, allowing for comprehensive integration with third-party APIs. ### Common Use Cases * Fetching data from external services * Sending data to external platforms * Integrating with third-party APIs like weather services or payment gateways * Retrieving information from databases or content management systems ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow endpoint The endpoint of the API Text body The body of the API JSON headers The headers of the API JSON ## Outputs The output connections this node provides: Name Description Type output The response of the API JSON Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type method The method of the API **Value:** `GET` **Options:** GET POST PUT DELETE select endpoint The endpoint of the API **Value:** `endpoint...` Text body The body of the API **Value:** `Enter body here...` Map headers The headers of the API **Value:** `Enter headers here...` Map # Book Cal.com Meeting (/docs/library/nodes/processing/cal_book) Short Description: Book cal.com meeting Tags: cal.com, book, meeting GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/cal_book/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description Books a meeting on Cal.com, requiring user details, a meeting link, timezone, and a selected time slot. Automates meeting bookings via your Cal.com account. ### Common Use Cases * Automatically booking meetings based on workflow triggers * Scheduling appointments for users via API * Integrating meeting bookings into automated processes ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Name Name of the user Text Email Email of the user Text Meeting Link Cal.com Public Link Text timezone Timezone of the meeting in IANA format (e.g., Europe/London) Text Date Slot to book (Date object or string representation of a specific time) Date Duration Duration of the meeting (e.g., 30mins, 45mins, 1hr) Text ## Outputs The output connections this node provides: Name Description Type Success The flow of the workflow if booking is successful Flow Error The flow of the workflow if error occurs Flow Error payload Error details Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Name Name of the user **Value:** `Name...` Text Email Email of the user **Value:** `Email...` Text Meeting Link Cal.com Public Link **Value:** `Meeting Link...` Text timezone The timezone of the meeting in IANA format **Value:** `Europe/London` Text Date Slot to book Date Duration Duration of the meeting **Value:** `30mins` **Options:** 30mins 45mins 1hr select # Get Cal.com Schedule (/docs/library/nodes/processing/cal_schedule) Short Description: Get cal.com schedule Tags: cal.com, schedule, meeting GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/cal_schedule/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description Fetches available meeting slots from a Cal.com public booking link, allowing users to find suitable times for scheduling. It requires the Cal.com link and the timezone for accurate slot retrieval. ### Common Use Cases * Automating appointment scheduling * Checking availability before booking meetings * Integrating calendar availability into workflows ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Meeting Link Cal.com Public Link Text timezone Timezone of the meeting in IANA format Text ## Outputs The output connections this node provides: Name Description Type Slots Slots of the meeting JSON Error The flow of the workflow if error occurs Flow Error payload Error details Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Meeting Link Cal.com Public Link **Value:** `Meeting Link...` Text timezone The timezone of the meeting in IANA format **Value:** `Europe/London` Text # CSV to JSON (/docs/library/nodes/processing/csv_to_json) Short Description: Converts CSV text into a JSON array of objects. Tags: json, csv, parser, data GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/csv_to_json/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The CSV to JSON node takes in CSV-formatted text and converts it into a JSON array of objects. Each row in the CSV becomes an object in the JSON array, with the column headers serving as the keys. This node is useful for transforming tabular data into a structured format that can be easily consumed by other nodes or LLMs in your workflow. ### Common Use Cases * Parsing CSV data from user input or external sources into JSON for further processing. * Converting CSV data into a format that can be easily ingested by LLMs or other nodes that require structured data. * Transforming CSV data into a tool format for use in prompt engineering. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow CSV CSV text to convert TextArea ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow JSON The JSON data parsed from CSV JSON Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type CSV CSV text to convert TextArea # Date to Number (Timestamp) (/docs/library/nodes/processing/date_to_number) Short Description: Converts a date object or string into a numeric Unix timestamp (milliseconds since epoch). Tags: date, number, timestamp GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/date_to_number/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Date to Number node converts a date value into a numerical representation (typically a Unix timestamp). This allows dates to be used in mathematical operations, comparisons, or other processes that require numerical values. ### Common Use Cases * Calculating time differences between dates * Sorting or comparing dates in numerical form * Converting dates for use in mathematical operations * Preparing date values for storage or transmission formats that require numbers ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Date Date to convert (e.g., Date object, ISO string) Date ## Outputs The output connections this node provides: Name Description Type Number The number of milliseconds since the Unix epoch (timestamp) Number Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Date Date to convert **Value:** `Enter date here...` Date # Date to Text (Formatted) (/docs/library/nodes/processing/date_to_text) Short Description: Converts a date object or string into a localized text string. Tags: date, text, format, locale GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/date_to_text/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The **Date to Text (Formatted)** node converts a date object or string into a human-readable text string based on the specified locale. This is useful for displaying dates in a format that is familiar to users from different regions. ### Common Use Cases * Formatting dates for display in user interfaces * Localizing date representations for international audiences * Preparing date strings for reports or notifications ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Date Date to convert (e.g., Date object, ISO string) Date Locale The locale for the date (like en-US, de-DE, fr-FR) Text ## Outputs The output connections this node provides: Name Description Type Text The text representation of the date Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Date Date to convert **Value:** `Enter date here...` Date Locale The locale for the date (like en-US, de-DE, fr-FR) **Value:** `en-US` Text # Delay (/docs/library/nodes/processing/delay_node) Short Description: Pauses the workflow execution for a specified duration. Tags: delay, wait, sleep, pause GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/delay_node/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Delay node allows you to pause the execution of your workflow for a specified duration. This can be useful in various scenarios, such as waiting for an external process to complete, adding a delay between API calls to avoid rate limits, or creating timed intervals in your agent's behavior. ### Common Use Cases * **Rate Limiting**: If your workflow involves making API calls to a service with rate limits, you can use the Delay node to space out the calls and avoid hitting those limits. * **Waiting for External Events**: If your workflow needs to wait for an external event or process to complete (e.g., waiting for a file to be uploaded, or for a user to respond), you can use the Delay node to pause execution until it's appropriate to continue. * **Creating Intervals**: If you want your agent to perform an action at regular intervals (e.g., checking for updates every hour), you can use the Delay node to create those intervals. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger after delay Flow Tool The tool version of this node Tool ## Fields The configurable fields this node provides: Name Description Type Duration Duration to wait **Value:** `5 secs` **Options:** 5 secs 10 secs 30 secs 1 min select # Extract JSON Value (/docs/library/nodes/processing/json_extract) Short Description: Gets the Value from JSON using a key (supports dot notation for nested objects). Tags: json, extract, parser GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/json_extract/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Extract JSON node allows you to retrieve a specific value from a JSON object using a key. This is useful for accessing nested data within complex JSON structures or for extracting specific pieces of information from API responses. ### Common Use Cases * Extracting specific fields from API responses * Accessing nested data in complex JSON structures * Filtering and processing only relevant information from larger datasets * Preparing data for display or further processing ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Object JSON object to parse JSON Key Key path to extract (e.g., 'user.address.city' or 'id') Text ## Outputs The output connections this node provides: Name Description Type Value The value of the key, converted to Text (JSON strings if nested object) Text Raw Value Raw value of the key (retains original type: string, number, boolean, object, array) Any Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Object JSON object to parse **Value:** `Enter JSON here...` Map Key Key path to extract (supports dot notation) **Value:** `key` Text # JSON To Array (/docs/library/nodes/processing/json_to_array) Short Description: Aggregates JSON objects into a JSON Array, supports nesting for 2D arrays. Tags: json, array, aggregator GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/json_to_array/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The JSON To Array node takes individual JSON objects or arrays as input and aggregates them into a single JSON array. This is particularly useful when you have multiple pieces of data that you want to combine into a structured format for further processing or output. The node also supports nesting, allowing you to create 2D arrays if needed. ### Common Use Cases * **Data Aggregation**: When you have multiple JSON objects that represent related data (e.g., user information, product details, etc.) and you want to combine them into a single array for easier handling downstream in your workflow. * **Preparing Data for Output**: If you need to output a collection of items in a structured format (e.g., sending a list of results to an API or displaying them in a UI), you can use this node to format the data as a JSON array. * **Creating Nested Structures**: If your workflow requires a more complex data structure, such as an array of arrays (2D array), you can use this node to achieve that by feeding in arrays as inputs. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow jsons JSON object or array to wrap JSON[] ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow array The resulting array of JSON objects JSON ## Fields The configurable fields this node provides: Name Description Type jsons JSON objects **Value:** `[]` JSON[] # JSON to CSV (/docs/library/nodes/processing/json_to_csv) Short Description: Converts JSON data (array of objects) to CSV text format. Tags: csv, json, parser, data GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/json_to_csv/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The JSON to CSV node converts JSON data, specifically an array of objects, into CSV (Comma-Separated Values) text format. This is useful for exporting data in a format that can be easily read by spreadsheet applications or other data processing tools. ### Common Use Cases * Exporting data from JSON format to CSV for analysis in spreadsheet software. * Converting API response data into a more user-friendly format for reporting. * Preparing data for import into systems that require CSV format. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow JSON JSON data (should be an array of objects) to convert JSON ## Outputs The output connections this node provides: Name Description Type Text The CSV text parsed from JSON Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type JSON JSON data (array of objects) to convert Map # JSON to Text (Stringify) (/docs/library/nodes/processing/json_to_text) Short Description: Converts a JSON object or array into a standard JSON string. Tags: text, json, stringify, converter GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/json_to_text/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description Stringifies a JSON object into a text representation, useful for logging, debugging, or sending JSON data as a string. ### Common Use Cases * Logging JSON data * Sending JSON data as text messages * Displaying JSON data in a readable format ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow JSON JSON object or array to convert JSON ## Outputs The output connections this node provides: Name Description Type Text The text/string representation of the JSON data Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type JSON JSON object or array to convert Map # Math Operation (/docs/library/nodes/processing/math_operation) Short Description: Performs a mathematical operation on two numbers - addition, subtraction, multiplication, or division. Tags: math, operation, calculate GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/math_operation/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Math Operation node performs basic arithmetic operations (addition, subtraction, multiplication, division) on two numerical inputs. This allows your agent to perform calculations as part of its workflow. ### Common Use Cases * Calculating totals or averages * Performing conversions between units * Computing derived values from input data * Implementing business logic that requires numerical calculations ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Number 1 First number Number Number 2 Second number Number ## Outputs The output connections this node provides: Name Description Type Result The result of the operation Number Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Number 1 First number **Value:** `0` Number Operation Operation **Value:** `+` **Options:** + - * / select Number 2 Second number **Value:** `0` Number # Number to Text (/docs/library/nodes/processing/num_to_text) Short Description: Converts a number (integer or float) into its string representation. Tags: text, num, converter, string GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/num_to_text/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description Converts a numerical value into its string representation, allowing for text-based operations and concatenation. ### Common Use Cases * Combining numbers with text * Formatting numerical output * Preparing numbers for text-based APIs ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Number Number to convert Number ## Outputs The output connections this node provides: Name Description Type Text The number in text format Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Number Number to convert Number # Objects To Map (/docs/library/nodes/processing/obj_to_map) Short Description: Convert object to map Tags: object, map GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/obj_to_map/node.js Difficulty: medium import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Objects To Map node takes an array of objects and converts them into a single map (dictionary) structure. This is useful for consolidating multiple key-value pairs into a unified data structure that can be easily processed or sent to external services. ### Common Use Cases * Consolidating multiple Object Variable outputs into a single structure * Preparing data for API requests that require a specific format * Transforming data between different structural representations * Creating configuration objects from multiple sources ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow objects Objects to convert JSON[] ## Outputs The output connections this node provides: Name Description Type map The map of the objects JSON ## Fields The configurable fields this node provides: Name Description Type objects Objects to convert **Value:** `[]` JSON[] # Quick RAG (/docs/library/nodes/processing/quick_rag_node) Short Description: Instantly process text or a URL to answer a specific query. (Max 200k characters) Tags: rag, scraping, search, memory, ai GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/quick_rag_node/node.js Difficulty: medium Credits (Minimum amount required to execute the node): 10 import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Quick RAG node allows you to quickly retrieve relevant information from a given text source or URL based on a specific query. This node is ideal for scenarios where you need to extract insights or answers from large bodies of text without setting up a full RAG pipeline. It can handle up to 200k characters, making it suitable for processing articles, documents, or web pages. ### Common Use Cases * Extracting key information from a news article based on a specific question. * Summarizing the main points of a long document in response to a query. * Retrieving relevant sections from a web page to answer a user's question. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Source URL to scrape or Raw Text to analyze Text Query The question you want to ask about this source Text ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Context Retrieved Context (The relevant parts of the text) Text Tool The tool version of this node Tool ## Fields The configurable fields this node provides: Name Description Type Source URL or Text content **Value:** \`` TextArea Query What do you want to find? **Value:** \`` Text # Knowledge Base (/docs/library/nodes/processing/rag_node) Short Description: Load your pre-processed Knowledge Base to use it in LLMs Tags: api, llm, knowledge-base, rag GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/rag_node/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Knowledge Base node processes documents or data to create a Retrieval-Augmented Generation (RAG) database that can be used to enhance LLM responses with specific information. This allows your AI agents to access and reference custom knowledge when generating responses. ### Common Use Cases * Creating AI assistants with access to company documentation * Building chatbots that can answer questions about specific products or services * Developing agents that can reference technical manuals or guidelines * Enabling LLMs to access up-to-date or proprietary information ## Inputs The input connections this node accepts: *This node does not have any input ports.* ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Rag Database RAG Database Rag ## Fields The configurable fields this node provides: Name Description Type File The file to use as knowledge base **Value:** `null` KnowledgeBase # Terminate Agent (/docs/library/nodes/processing/terminate_node) Short Description: Terminate the flow of the agent Tags: terminate, stop, quit GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/terminate_node/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Terminate Agent node is used to stop the execution of an agent within a workflow. When this node is reached, it will immediately terminate the agent's process, preventing any further actions or nodes from being executed. This is useful for scenarios where you want to halt the workflow based on certain conditions or criteria. ### Common Use Cases * Stopping an agent when a specific condition is met (e.g., an error occurs, or a certain threshold is reached). * Ending the workflow gracefully when the desired outcome has been achieved. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Reason Reason for terminating the agent (Optional) Text ## Outputs The output connections this node provides: *This node does not have any output ports.* ## Fields The configurable fields this node provides: Name Description Type Reason Reason for terminating the agent (Optional) **Value:** `text here ...` TextArea # Text Extract (/docs/library/nodes/processing/text_extract) Short Description: Extracts specific text from a string using a Regular Expression (Regex). Tags: text, extract, regex, processing, string GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/text_extract/node.js Difficulty: medium import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Text Extract node allows you to extract specific text from a larger string using Regular Expressions (Regex). This is useful for parsing structured data from unstructured text, such as pulling out email addresses, phone numbers, or any pattern-based information. ### Common Use Cases * Extracting specific information from user input * Parsing data from web scraping results * Pulling out structured data from logs or documents ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Text The source text to extract from. Text Regex Pattern The regular expression pattern used for extraction. Text Match All Extract all occurrences matching the pattern Boolean ## Outputs The output connections this node provides: Name Description Type Flow The Flow to trigger Flow Extracted Text The extracted text. Returns a JSON stringified array if 'Match All' is true, or a single string if false. Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Text The source text to extract from. **Value:** `Enter text here...` TextArea Regex Pattern The regular expression pattern (e.g., \d+ for numbers). **Value:** `Enter regex here...` Text Match All Extract all occurrences matching the pattern **Value:** `false` CheckBox # Text Join (/docs/library/nodes/processing/text_join) Short Description: Joins multiple text strings into a single string using a specified separator. Tags: text, join, concatenate GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/text_join/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Text Join node combines multiple text strings into a single string, with an optional separator between each part. This is useful for formatting output, building complex messages, or preparing text for display or further processing. ### Common Use Cases * Formatting messages with dynamic content * Building complex strings from multiple data sources * Creating comma-separated lists or other formatted text * Combining user input with template text ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Text Array of text strings to join Text[] ## Outputs The output connections this node provides: Name Description Type Text The joined text Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Text Text to join **Value:** `Enter text here...` Text[] Separator Separator **Value:** `,` Text # Text Replace (/docs/library/nodes/processing/text_replace) Short Description: Replaces text in a string, with an option to replace all occurrences. Tags: text, replace, processing, string GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/text_replace/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Text Replace node allows you to replace specific text within a larger body of text. You can choose to replace all occurrences of the text or just the first one. ### Common Use Cases * Cleaning up text data by replacing unwanted substrings. * Formatting text by replacing placeholders with actual values. * Preparing text for further processing by standardizing certain terms. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Text The text on which replacement will be done. Text Text to replace The text/substring to search for and replace. Text Text to replace with The text to insert as the replacement. Text ## Outputs The output connections this node provides: Name Description Type Text The result text after replacement. Text Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Text The text on which replacement will be done. **Value:** `Enter text here...` Text Text to replace The text to search for. **Value:** `Enter text here...` Text Text to replace with The text to replace with. **Value:** `Enter text here...` Text Replace All Replace all occurrences of the text **Value:** `false` CheckBox # Text to Date (/docs/library/nodes/processing/text_to_date) Short Description: Converts a text string (preferably ISO Date String) to a structured Date object. Tags: text, date, converter, parser GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/text_to_date/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description Parses an ISO 8601 date string into a Date object, enabling date-based operations in your workflow. ### Common Use Cases * Converting date strings from APIs * Scheduling tasks based on date inputs * Parsing dates from user input ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Text Text to convert (e.g., ISO 8601 string) Text ## Outputs The output connections this node provides: Name Description Type Date The structured date object of the text Date Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Text Text to convert **Value:** `Enter ISO Date String here...` Text # Text to JSON (Parser) (/docs/library/nodes/processing/text_to_json) Short Description: Converts a text string, including non-standard or malformed JSON, into a structured JSON object. It uses JSON repair technology. Tags: text, json, parser, repair GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/text_to_json/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Text to JSON node parses a text string that contains JSON data and converts it into a proper JSON object. This is useful when working with API responses or other sources that provide JSON as a string rather than as a structured object. ### Common Use Cases * Parsing JSON strings from API responses * Converting LLM-generated JSON text into actual JSON objects * Processing JSON data received as text * Transforming structured text into manipulable objects ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Text Text to convert (e.g., malformed JSON string) Text ## Outputs The output connections this node provides: Name Description Type JSON The parsed JSON object JSON Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Text Text to convert **Value:** `Enter text here...` Text # Text to Number (/docs/library/nodes/processing/text_to_number) Short Description: Converts a text string representing a number (integer or float) into a numeric value. Tags: text, number, processing, converter GitHub: https://github.com/DeForge-Labs/library/blob/main/processing/text_to_number/node.js Difficulty: easy import { Badge } from '@/components/ui/badge'; import { ImageZoom } from '@/components/image-zoom'; import { getColorByType } from '@/lib/color-profile'; *** ## Description The Text to Number node converts a text string that represents a number (either integer or float) into an actual numeric value. This is useful for workflows that require numerical computations or comparisons based on user input or data retrieved as text. ### Common Use Cases * Converting user input from text fields into numbers for calculations. * Parsing numerical data received as strings from APIs or databases. * Preparing data for statistical analysis or machine learning models. ## Inputs The input connections this node accepts: Name Description Type Flow The flow of the workflow Flow Text The text to convert to number (e.g., '123.45') Text ## Outputs The output connections this node provides: Name Description Type Number The number converted from text Number Tool The tool version of this node, to be used by LLMs Tool ## Fields The configurable fields this node provides: Name Description Type Text The text to convert to number **Value:** `Enter text here...` Text