Beta Test Plan — Node Matrix

Step-by-step guide for beta testers to test n8n workflow execution and AI nodes on indie.money (~1 hour).

Written By pvdyck

Last updated About 5 hours ago

Time: ~1 hour | What you'll do: Test 2 workflows (or 1 combined) on indie.money and report bugs

Before You Start

You need:

  • A MetaMask wallet (Base Sepolia testnet — but don't worry, the system is gasless, no ETH needed) or just an email address to sign in
  • Access to n8n to build and test workflows — n8n Cloud (n8n.io), n8n self-hosted (local or VPS) all work. You'll use n8n's original executor to verify your workflow runs correctly before publishing it on indie.money.
  • You can use ChatGPT/Claude to generate your workflow JSON — just give it the constraints below

Need Help?

There's a messenger chat in the bottom-right corner of the app. I'm on the other end. If you're stuck or blocked, send a message — expect ~10 minutes for a reply.

For bugs and feedback that don't need an immediate answer, use FeatureBase (see below).

Step 1: Sign In & Get Funds (3 min)

  1. Go to app-staging.indie.money.
  2. Sign in with MetaMask or email. You'll see your inUSD balance in the header.
  3. If your balance is low, a faucet button (banknotes icon) glows in the header. Click it — you get 1,000 free test USDC.
  4. Click your balance → the "Add Funds" modal opens.
  5. Enter an amount, click "Add Funds". This converts USDC → inUSD (1:1, no fee).
  6. You should now have $100+ inUSD. You're funded.

💡 Note: Withdrawals: Same modal, click "Need to withdraw instead?" at the bottom. Converts inUSD → USDC with a 10% fee.

Important: Bug reporting: Once logged into the marketplace, you're automatically logged into FeatureBase. All bugs and feedback go to feedback.indie.money. When posting, always select the right board:

  • Report a Bug — something is broken or behaves unexpectedly
  • Feature Requests — UX/UI improvements and suggestions
  • Help & Questions — if you're unsure about intended behavior

In every bug report, include: which step failed, a screenshot, and the Service Address or Execution ID if you have one.

Step 2: Build Your Workflows in n8n (20 min)

You'll create 2 workflows (or 1 combined). Feel free to use AI to generate them — just paste the constraints below into ChatGPT/Claude and ask it to generate n8n workflow JSON.

Constraints

Every workflow must start with a Webhook node and contain 10 to 30 nodes with a wide variety of node types (don't just chain 10 Set nodes — use as many different nodes as possible).

Nodes you CAN use (no API keys needed):

CategoryNodes
TriggerWebhook (required as first node)
DataSet, IF, Switch, Filter, Merge, Aggregate, Limit, Split Out, Split In Batches, Rename Keys, Compare Datasets, Crypto, HTML, Sort, Item Lists, Remove Duplicates, Date & Time
CodeCode node (sync JS only — no async, no fetch, no require)
AILLM Chain, Agent, OpenRouter Chat Model, Information Extractor, Text Classifier, Sentiment Analysis, Output Parser Structured, Memory Buffer Window, Tool Calculator
ResponseRespond to Webhook

Nodes you must NOT use: HTTP Request, and anything requiring an API key (Google Sheets, Slack, Gmail, Discord, Telegram, etc.) — except OpenRouter which the platform provides for free.

Workflow 1: Data Processing

Build a workflow that processes data without AI. The goal is to test the data/code nodes.

Example idea (or ask AI to generate something similar):

Webhook  → Set node (create sample data: array of 5 objects with name, age, score)  → Filter (keep only score > 50)  → Sort (by age descending)  → Code node (add a "grade" field: A if score > 80, B if > 60, else C)  → Respond to Webhook (return the result)

Tips for the Code node: Only sync JavaScript works. No await, no fetch(), no require(). Just pure data transformation. Example:

for (const item of $input.all()) {  const score = item.json.score;  item.json.grade = score > 80 ? 'A' : score > 60 ? 'B' : 'C';}return $input.all();

Workflow 2: AI Workflow

Build a workflow that uses an AI node. The platform provides an OpenRouter API key — you don't need your own.

The AI model node to use is OpenRouter Chat Model. It defaults to openai/gpt-oss-120b (~$0.00001 per call — essentially free).

If you have an OpenRouter API key, you can and should use it. You can get one for free at openrouter.ai. The platform also provides a fallback key, but using your own helps us test the credential system.

Example idea:

Webhook (receives a "topic" in the body)  → LLM Chain (connected to OpenRouter Chat Model)      Prompt: "Write 3 bullet points about: {topic}"  → Respond to Webhook (return the AI response)

Or combine both into a single workflow:

Webhook  → Set (create sample product data)  → Code (calculate totals)  → LLM Chain (summarize the data in plain English)  → Respond to Webhook

Test Locally First

  1. Run each workflow in n8n with the "Test workflow" button.
  2. For the AI workflow, you'll need your own OpenRouter key locally (free at openrouter.ai). On indie.money the platform key handles it.
  3. Save a screenshot of the successful result and copy the output. You'll compare later.
  4. Export each workflow as JSON.

Step 3: Publish on indie.money (5 min per workflow)

  1. Go to /builder and click the deploy button (e.g., "Deploy Your First Agent" or "Deploy Another Agent").
  2. Upload your workflow JSON by dropping it on the n8n tile (or click it).
  3. Walk through the steps: sub-workflows (if any) → schema → metadata.
  4. Fill in a name and description.
  5. Under Agent Pricing, set One-time Purchase: $0.01 and Per Run: $0.01.
  6. Add tag beta-test, press Enter so the badge appears.
  7. Click "Publish to Marketplace" → sign when prompted (the system is gasless — we pay for gas, you don't need any ETH).
  8. Credential step: If you have an OpenRouter API key, click "Configure My Credentials" and enter it. If not, click "Skip - Producers Will Provide" — the platform key will be used automatically. For the data workflow, there are no credentials to configure.
  9. Buy a Listing Pass: Click "Buy Listing Pass ($2.99)" — this is paid with your inUSD balance. You need one pass per service.
  10. Once the pass is purchased, click "List on Marketplace" to make your service visible. (You can also skip and list later from the /builder dashboard.)

Repeat for your second workflow.

Step 4: Purchase & Run Your Services (5 min per workflow)

  1. Go to the marketplace (/), find your service.
  2. Click "Deploy Agent" → sign when prompted.
  3. Go to /producer. Find the service card.
  4. If you see a "Configure" button, click it to set up credentials. If you see "Turn On", click it to activate the service. If you see "Go Live", click it.
  5. Billing mode: Use Budget mode (the default) or x402 (caller-pays via USDC). Both are fully supported.
  6. Once ready, click "Run".
  7. The Run Agent modal opens:
    • If your workflow expects input (like {"topic": "blockchain"}), type it in the JSON text area. Click "Load example" if the button is there.
    • Try typing broken JSON first — you should see a validation error.
    • Click "Pay with inUSD".
  8. Wait for the result.
  9. Click "View Full Details" to see the full execution output.

Step 5: Compare & Report (10 min)

Compare the indie.money output with your local n8n screenshot/output from Step 2.

  • Are the results identical?
  • Did any node produce different output?
  • Did any node fail that worked locally?

If the workflow fails: Try to identify which node caused the failure. Remove that node from the workflow in n8n, re-export, publish a new version, and run again. This helps us pinpoint exactly which node is the problem. Report the failing node on FeatureBase.

Report differences on feedback.indie.money under Report a Bug.

Step 6: UX/UI Feedback (5 min)

Post your impressions on feedback.indie.money under Feature Requests or Help & Questions.

Think about:

  • Was anything confusing or hard to find?
  • Did error messages make sense when things went wrong?
  • Was the Builder → Marketplace → Producer flow intuitive?
  • Was the Run Agent modal clear (JSON input, payment, results)?
  • Was funding (faucet → Add Funds) straightforward?
  • Anything that felt slow, broken, or ugly?

Quick Reference

Live helpMessenger chat (bottom-right in the app) — ~10 min response
Bug reportsfeedback.indie.money
Sign inMetaMask or email
Faucet1,000 USDC (header button, appears when balance < $100)
Add FundsUSDC → inUSD, 1:1
WithdrawinUSD → USDC, 10% fee
Listing pass$2.99 inUSD per service (required before listing)
Billing modeBudget (default) or x402 (caller-pays)
Min price$0.01
Builder/builder
Producer/producer
AI model (default)openai/gpt-oss-120b via OpenRouter
AI credentialsPlatform provides them — skip credential setup
Code nodeSync JS only (no async, no fetch, no require)