---
title: "Start"
description: "Entry point for workflow and chatflow applications"
icon: "play"
---

The Start node is the entry point of every workflow and chatflow application. It defines what inputs your application accepts from end users and provides system variables that you can reference throughout your workflow.

## Input Variables

You can configure custom input fields in the Start node to collect information from users. Each input field becomes a variable that flows through your workflow. For example, if you create an input field called `user_name`, you can reference it anywhere in your workflow as `{{user_name}}`.

### Input Types

The Start node supports six input types to handle different kinds of user data:

<Tabs>
  <Tab title="Text Inputs">
    **Text** accepts short responses up to 256 characters. Use this for names, email addresses, titles, or any brief text input that fits on a single line.

    **Paragraph** accepts long-form text without character restrictions. This gives users a multi-line text area for detailed responses, descriptions, or any content that needs more space.
  </Tab>
  
  <Tab title="Structured Inputs">
    **Select** presents users with a dropdown menu of predefined options. Users can only choose from the options you specify, ensuring data consistency and preventing unexpected inputs.
    
    **Number** restricts input to numerical values only. This is essential for quantities, ratings, IDs, or any data you need to process mathematically in your workflow.
  </Tab>
  
  <Tab title="File Inputs">
    **Single File** allows users to upload one file of any supported type. Users can either upload from their device or provide a URL to the file. The file becomes available as a file variable in your workflow.
    
    **File List** works like single file but supports multiple file uploads at once. This is useful when processing batches of documents, images, or other files together.
  </Tab>
</Tabs>

<Info>
  When users upload files, Dify's document extractor can automatically process PDFs, Word documents, and most text formats. For images, audio, or video files, you'll need to connect appropriate processing nodes in your workflow.
</Info>

## System Variables

Beyond your custom inputs, the Start node provides system variables that give you access to workflow metadata and context. These variables are automatically available and cannot be modified.

<Frame caption="System variables available in workflow and chatflow applications">
  <img src="/images/2bc13695bb7c41fe54b7362d4b7237a480524aa7c05b42c80649fd1e1209f091.png" alt="System variables comparison" />
</Frame>

The available system variables depend on your application type. Workflow applications provide basic metadata like `sys.app_id` and `sys.workflow_id`, while chatflow applications include additional conversation-specific variables like `sys.conversation_id` and `sys.dialogue_count`.

System variables are particularly useful for tracking execution context, implementing user-specific logic, or maintaining conversation state in chatflow applications.

## Variable Referencing

Variables from the Start node can be referenced in any downstream node. When configuring a node's input fields, you can select variables from a dropdown menu or type `/` in text fields to insert variable values.

<Frame caption="Inserting variables into text inputs using the slash command">
  <img src="/images/image.png" alt="Variable insertion interface" />
</Frame>

Variables maintain their type throughout the workflow. A number input remains a number, a file upload remains a file object, and text inputs remain strings. This type consistency ensures that downstream nodes can process the data correctly.

## File Processing

Files uploaded through the Start node need appropriate processing in your workflow. The Start node itself only collects the files and makes them available as variables. You'll need to connect specific nodes to extract and process the content:

Document files should be routed to a Document Extractor node to extract text content. Images can be sent to LLM nodes with vision capabilities or specialized image processing tools. Structured data files like CSV or JSON can be processed with Code nodes to parse and transform the data.

<Note>
  File variables contain metadata about the uploaded file including its name, size, and type. The actual file content needs to be extracted or processed by downstream nodes.
</Note>

## Hidden Variables

You can mark any input variable as "hidden" to exclude it from the user interface while still making it available in your workflow.

## Configuration Best Practices

When designing your Start node inputs, consider what information is essential at the beginning versus what can be derived or collected later in the workflow. Requiring too many inputs upfront creates friction for users, while too few might limit your workflow's capabilities.

Choose descriptive variable names that clearly indicate what data they contain. Variable names should use underscores or camelCase consistently and avoid special characters that might cause parsing issues. Remember that variable names are case-sensitive, so `userName` and `username` are different variables.

For file uploads, consider setting appropriate file type restrictions and size limits. This prevents processing errors downstream and ensures your workflow receives the expected input formats.

## What's Next

After configuring your Start node, you'll typically connect it to nodes that process the collected input. Common patterns include sending user input to an LLM node for processing, using Knowledge Retrieval to find relevant information based on the input, or routing to different workflow branches with conditional logic based on input values.