Quick Start Tutorial

Build your first DeepChain workflow in under 5 minutes

Build Your First Workflow (5 Minutes)

Let's build a real workflow that fetches GitHub user data and logs it. You'll learn the fundamentals and see DeepChain in action.

Prerequisites

  • DeepChain installed and running (Installation Guide)
  • Web browser (Chrome, Firefox, Safari, or Edge)

Tip: This tutorial takes about 5 minutes if you follow along step-by-step.


Step 1: Open DeepChain

Go to http://localhost:3000 in your browser. You should see the dashboard with a "Create Workflow" button.


Step 2: Create a New Workflow

  1. Click "Create Workflow"
  2. Enter name: GitHub User Lookup
  3. Click "Create"

You're now in the Workflow Editor. It looks like this:

┌─────────────────────────────────────────────────────────────┐
│ Toolbar: Save | Run | Debug | Execution History            │
├──────────────────────────────────────────────────────────────┤
│  Node Palette  │                                │ Properties  │
│  (Left)Canvas (Center)Panel       │
│                │                                │ (Right)     │
│  - Start       │  ┌──────────┐                 │             │
│  - HTTP Req    │  │ Start    │                 │             │
│  - Transform   │  └──────────┘                 │             │
│  - Log         │                                │             │
│  - ...         │                                │             │
└──────────────────────────────────────────────────────────────┘

Step 3: Add an HTTP Request Node

The Start node is already on the canvas (every workflow has one).

Now let's add an HTTP Request node:

  1. In the left sidebar, find "HTTP Request" under the "Integration" section
  2. Drag it onto the canvas
  3. Connect Start node's output port (the dot on the right) to the HTTP Request node's input port (the dot on the left)

You should see a line connecting them.


Step 4: Configure the HTTP Request

Click on the HTTP Request node. The Properties panel on the right updates to show its settings.

Fill in these fields:

URL: https://api.github.com/users/octocat
Method: GET
Headers:
  Accept: application/json

You can leave everything else as default. This node will fetch public data about a GitHub user.

Expected Output:

{
  "login": "octocat",
  "name": "The Octocat",
  "followers": 3938,
  "repos": 27
}

Step 5: Add a Transform Node

Let's extract the fields we care about:

  1. Drag a "Transform" node from the palette
  2. Connect HTTP Request's output to Transform's input

Click on the Transform node and enter this configuration:

{
  "username": "{{ http_request_1.response.body.login }}",
  "name": "{{ http_request_1.response.body.name }}",
  "followers": "{{ http_request_1.response.body.followers }}"
}

Notice the {{ }} syntax—this references data from the previous node. When the workflow runs, it will extract these three fields from the GitHub API response.

What this does:

  • Takes the HTTP response
  • Extracts just the fields we want
  • Creates a clean object: { username, name, followers }

Step 6: Add a Log Node

Finally, let's output the result:

  1. Drag a "Log" node from the palette
  2. Connect Transform's output to Log's input

Click on the Log node and enter:

Message: {{ transform_1.output.username }} has {{ transform_1.output.followers }} followers
Level: info

When you run the workflow, this will print: octocat has 3938 followers


Your Complete Workflow

It should look like this:

┌─────────┐       ┌──────────────┐       ┌───────────┐       ┌─────┐
│  Start  │ ─────▶│ HTTP Request │ ─────▶│ Transform │ ─────▶│ Log │
└─────────┘       └──────────────┘       └───────────┘       └─────┘
   (trigger)      (fetch data)          (reshape data)   (output result)

Step 7: Save the Workflow

Click "Save" in the toolbar.

You should see a confirmation message. If you get validation errors (red indicators on nodes), check that all required fields are filled in.


Step 8: Run Your Workflow

Click "Run" in the toolbar.

Watch the nodes light up as they execute:

  1. Start node runs first (always)
  2. HTTP Request fetches from GitHub
  3. Transform reshapes the data
  4. Log prints the result

Within a few seconds, all nodes should turn green (success).


View Your Results

After execution completes:

  1. Click on any node to see what it output. Click on the Transform node and you'll see something like:

    {
      "username": "octocat",
      "name": "The Octocat",
      "followers": 3938
    }
  2. Check the Execution History by clicking the "Execution History" tab in the toolbar. You'll see a log of every run.

  3. Click on a run to see detailed logs and timing information for each node.


What You Just Built

You created a data pipeline workflow that:

  1. Fetches data from an external API
  2. Transforms and cleans the data
  3. Logs the result

This is the foundation for real-world automations. In production, instead of logging, you might:

  • Send a Slack message
  • Write to a database
  • Trigger another workflow
  • Send an email

Understanding Expressions

You used expressions like {{ http_request_1.response.body.login }}. Here's how they work:

Expression What It Does
{{ http_request_1.response.body }} Gets the entire response body
{{ http_request_1.response.body.login }} Gets just the login field
{{ transform_1.output }} Gets the Transform node's output
{{ transform_1.output.username }} Gets the username field from Transform

Think of expressions as: reference previous node outputs by name and dig into their fields.

Note: Node IDs are auto-generated based on the node type and order (e.g., http_request_1, transform_1). Check the Properties panel to see a node's ID.


Next Steps

You've mastered the basics. Here's what to explore:

Learn Core Concepts

Core Concepts Guide → — Deep dive into workflows, nodes, and execution.

Explore More Nodes

Node Reference → — 50+ nodes for HTTP, databases, AI, approvals, and more.

Connect External Services

Connectors Guide → — Integrate with Slack, Salesforce, Shopify, AWS, and 10+ others.

Build Advanced Workflows

Deploy to Production

Deployment Guide → — Deploy to AWS, GCP, Azure, or self-hosted.


Quick Reference: Common Expressions

// HTTP response data
{{ http_request_1.response.body }}

// Nested fields
{{ http_request_1.response.body.user.email }}

// Combine text and data
Hello {{ transform_1.output.name }}!

// Array access
{{ loop_1.current.id }}

// Current loop index
{{ loop_1.index }}

// String functions
{{ upper(username) }}
{{ lower(email) }}
{{ trim(name) }}

// Math functions
{{ sum(prices) }}
{{ round(amount, 2) }}

// Conditional logic
{{ if(count > 5, "yes", "no") }}

Troubleshooting

"Expression not working"

  • ✓ Check the node ID is correct (hover over the node—it shows the ID)
  • ✓ Verify the node actually ran (it should have a green checkmark)
  • ✓ Click the Properties panel and look for an expression preview

"Workflow won't save"

  • ✓ Check for red validation indicators on nodes
  • ✓ Hover over red indicators to see what's missing
  • ✓ Make sure all required fields are filled

"Node execution failed"

  • ✓ Click the failed node to see the error message
  • ✓ Check the Execution History for detailed logs
  • ✓ Verify the URL or configuration is correct

What's Next?

You're ready to build real workflows. Check out Core Concepts to understand everything at a deeper level, then explore the Node Reference to see all the possibilities.