Tips > Reliability & Performance

Use Manual Trigger with Hardcoded Test Data

The Manual Trigger node fires when you click "Test workflow" in the editor.

TipIntermediate2 min read

The Manual Trigger node fires when you click "Test workflow" in the editor. On its own it produces empty output, but you can follow it with a Code node or Set node that provides hardcoded test data. This creates a self-contained, repeatable test that does not depend on external systems, webhooks, or scheduled events.

Real-world example: Your production workflow is triggered by a Stripe webhook, but during development you want to test without sending real payments. Create a Manual Trigger path with representative test data.

{
  "event_type": "invoice.payment_succeeded",
  "customer_email": "test@example.com",
  "customer_name": "Test User",
  "amount_paid": 9900,
  "currency": "usd",
  "invoice_id": "in_test_123456",
  "subscription_id": "sub_test_789",
  "items": [
    {
      "description": "Pro Plan - Monthly",
      "quantity": 1,
      "unit_amount": 9900
    }
  ]
}
```text
```text title="Workflow Structure for Testing"
Production path:
  Webhook Trigger -> [processing nodes...]

Test path (same workflow):
  Manual Trigger -> Set Node (test data) -> [same processing nodes...]

Both paths converge at the first processing node using a
Merge node or by connecting both to the same downstream node.
```text
> **Tip: Multiple Test Cases**
>
> Create multiple Set nodes with different test scenarios -- successful payment, failed payment, subscription cancellation -- and connect each to the Manual Trigger through a Switch node controlled by a workflow variable. This gives you a basic test suite within the workflow itself.

This pattern lets you develop and test the entire workflow without any external dependencies, which is especially valuable when the trigger only fires on real business events.

**Related:** [Always Set an Error Workflow on Every Production Workflow](../error-handling-and-reliability/01-always-set-an-error-workflow-on-every-production-workflow.md) | [Break Large Workflows into Sub-Workflows](../workflow-architecture/01-break-large-workflows-into-sub-workflows.md)

Want this running in your stack?

I build production n8n and Cloudflare automation for teams — the same engineering behind HarperFlow. Fixed-price, escrow-protected, US-based.