Skip to main content
Create your own
Lesson illustration

Using the Manual Trigger Node

Hello! Welcome to the third lesson in our module on n8n's core concepts.

In our previous lessons, you learned how to use the Schedule Trigger for time-based automation and the Webhook Trigger for real-time, event-driven workflows. Both are essential for creating "production-ready" automations that run without human intervention.

However, before a workflow is ready for production, it needs to be built, tested, and debugged. This development phase requires a different kind of trigger—one that gives you complete control. This lesson focuses on that fundamental tool: the Manual Trigger. By the end of our session, you'll be able to use the Manual Trigger node effectively for all your development and testing needs.

While it might seem like the simplest trigger, it is arguably the one you will use most frequently as you build and refine your n8n workflows.

1. The Role of the Manual Trigger

Every new n8n workflow starts with a choice of trigger. The Manual Trigger, often labeled "On 'Execute workflow'", is the default for a reason: it's designed specifically for the development process.

  • What is it? It allows you to start a workflow by simply clicking the "Execute workflow" or "Test workflow" button in the n8n user interface.
  • Why use it? It provides an instant, on-demand way to run your workflow, letting you see how data flows and how each node behaves without needing to set up an external service or wait for a schedule.

Let's watch a short video that introduces the Manual Trigger in the context of building a new workflow.

n8n tutorial for developers - Every Dev Should Know This

In this clip from the 'n8n tutorial for developers' by ByteGrad, you'll see how a workflow is started with a Manual Trigger for ease of testing before a Schedule Trigger is considered for production.

Watch from 02:20 to 02:50. Notice how the Manual Trigger is the first node added, specifically because the developer is 'just trying something out'.

This leads to a crucial concept: the separation of development and production triggers. It's a common and highly effective pattern to build your workflow's logic using a Manual Trigger and then, once it's working perfectly, replace or supplement it with a Webhook or Schedule Trigger for live execution.

n8n Workflow with Manual and Webhook Triggers
This workflow for a 'Pokémon Team Analyzer' can be initiated in two ways: via a Manual Trigger for testing or a Webhook for live API requests. Both triggers feed into the same core logic.

2. Executing Workflows Manually

When your workflow starts with a Manual Trigger, the Execute workflow button at the bottom of the canvas becomes your primary tool. Clicking it will run the entire workflow from start to finish.

As the workflow runs, you'll see the data flowing from one node to the next. This visual feedback is invaluable for debugging.

Let's see this in action.

n8n tutorial for developers - Every Dev Should Know This

This segment from the ByteGrad tutorial shows the execution of a complete workflow that was initiated manually. It also highlights the distinction between this 'development mode' and an activated, production workflow.

Watch from 09:32 to 10:18. Pay attention to the visual confirmation as each node completes its task and the explanation that saving a workflow doesn't mean it's 'published' or live yet.

Hands-On Practice

Let's apply this.

  1. Create a new workflow. It will start with a Manual Trigger by default.
  2. Add a Set node after the trigger.
  3. In the Set node, create a new value. Name it message and set its value to the string "Hello, Manual Trigger!".
  4. Click Execute workflow.
  5. Click on the Set node and go to the Output tab. You should see the JSON object you created.

This simple exercise demonstrates the core function of the Manual Trigger: initiating a workflow on command.

3. Simulating Input Data for Testing

A key challenge in development is testing how your workflow handles different inputs. The Manual Trigger, by default, produces an empty item—it doesn't generate data. So how can you test a workflow that expects data, like a user's email or a product ID, without setting up a full webhook?

The answer is to pin test data directly to the Manual Trigger. You can manually define a JSON object that the trigger will use as its output, effectively simulating the data you would get from a webhook or another service.

This is a non-obvious but incredibly powerful feature. The following resource from the n8n community explains exactly how to do it.

Adding parameters to manual trigger

This forum post provides a direct answer to how you can add starting parameters or 'dummy data' to a Manual Trigger for testing purposes.

Read the post by the user 'Liam_McAllister'. Focus on the key instruction: 'Double click the manual trigger and click the pencil edit button in the top right to set data'. Notice the screenshots that show where to click and how the node turns purple to indicate it has pinned data.

By pinning data, you can test every possible scenario—valid data, invalid data, missing fields—all without leaving the n8n canvas.

Test your understanding!

Let's modify the workflow from our previous hands-on exercise.

  1. Open the Manual Trigger node and pin the following JSON data to it:
    {
      "user": {
        "name": "Alex",
        "level": 15
      }
    }
    
  2. Now, open the Set node. Modify the message value to use an expression that accesses the user's name from the trigger's output. The final message should be "Hello, Alex!".
  3. Execute the workflow and verify the output of the Set node.
Show answer
  1. Double-click the Manual Trigger, click the pencil icon in the top-right, paste the JSON into the editor, and click "Apply & Close". The node should turn purple.
  2. In the Set node, set the value of message to the following expression: Hello, {{$json.user.name}}!
  3. After executing, the output of the Set node should be:
    {
      "message": "Hello, Alex!"
    }
    

An alternative, developer-friendly approach is to use a Set node immediately after the Manual Trigger to define your test data. This keeps the trigger clean and makes it easier to swap out for a production trigger (like a Webhook) later, as your data-defining logic is already separate.

4. A Note on Development Efficiency: Pinning Node Outputs

While testing, you might have nodes that are slow or costly to run repeatedly, like an API call to an LLM or a database query that returns thousands of records. Manually triggering the workflow over and over would be inefficient.

To solve this, n8n allows you to pin the output of any node. When an output is pinned, n8n will use that static, cached data for all downstream nodes in subsequent executions, without re-running the pinned node.

This is different from pinning data on the trigger.

  • Pin on Trigger: Injects initial data into the workflow.
  • Pin on Node: Caches the result of that node to speed up development of later nodes.

This video demonstrates the concept perfectly.

n8n tutorial for developers - Every Dev Should Know This

In this final clip from ByteGrad, see how you can pin the output from an API call node to avoid making costly and time-consuming requests every time you test the rest of your workflow.

Watch from 20:19 to 21:12. Note the reasoning for pinning both the OpenWeather API output and the AI agent's poem generation output: to save time and cost while prototyping.

Mastering the use of the Manual Trigger and the "Pin" feature will dramatically speed up your n8n development cycle.

Conclusion

In this lesson, you've learned how the simplest trigger is one of the most critical tools for a workflow developer. It provides the control and flexibility needed to build and test logic efficiently before deploying it into a live environment.

Key Takeaways:

  • The Manual Trigger is your primary tool for development and testing, allowing you to execute workflows on demand from the n8n canvas.
  • It's a best practice to build your core logic with a Manual Trigger before switching to a production trigger like a Schedule or Webhook.
  • You can pin JSON data to a Manual Trigger to simulate different input scenarios for testing downstream nodes.
  • You can pin the output of any node to cache its results, which is invaluable for speeding up development and avoiding unnecessary API calls or database queries.

In our next lesson, we will explore the difference between active and inactive workflow states. This will formalize the concept of "development mode" versus "production mode" and clarify how activating a workflow impacts how its triggers behave.

Can't find a good explanation? Sign up and we'll make it for you

Sign up