> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hitl.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Creating Your First Workflow

> Step-by-step guide to build, activate, and trigger your first HITL.sh workflow

# Creating Your First Workflow

This guide walks you through creating a workflow that receives content via a webhook, sends it to a human reviewer for approval, and returns the decision. You will have a working workflow in under 10 minutes.

> [!NOTE]
>
> By the end of this guide, you will have an active workflow with a webhook URL that you can trigger from any application, integration, or cURL command.

## Prerequisites

Before you begin, ensure you have:

* A HITL.sh account ([sign up at my.hitl.sh](https://my.hitl.sh))
* At least one person added to your Humans directory (you can add yourself)
* The HITL.sh mobile app installed ([App Store](https://apps.apple.com/us/app/hitl-human-in-the-loop/id6752878072) | [Google Play](https://play.google.com/store/apps/details?id=hitl.sh.app))

> [card] [Generate API Key](https://docs.hitl.sh/api-keys.md)
>
> If you plan to trigger the workflow programmatically, generate an API key first.

## Step 1: Create the Workflow

**1. Open the Dashboard**

Navigate to [my.hitl.sh](https://my.hitl.sh) and sign in.

**2. Click New Workflow**

In the sidebar, click **Workflows**, then click the **New Workflow** button. Give it a name like "Content Moderation" and an optional description.

**3. Open the Designer**

You are now in the workflow designer. The canvas shows a **Trigger** node already placed -- this is the entry point for your workflow.

## Step 2: Add a Human Review Node

**1. Open the Node Palette**

Click the **+** button on the canvas or drag from the node palette on the left.

**2. Select Human Review**

Choose **Human Review** from the node list. A new node appears on the canvas connected to the trigger.

**3. Configure the Node**

Click the human review node to open its settings panel:

* **Response type**: Select "Single Select"
* **Options**: Add "Approve", "Reject", and "Escalate"
* **Reviewers**: Select a group from your Humans directory (or choose Universe for all reviewers)
* **Timeout**: Set to 3600 seconds (1 hour)
* **Default response**: Set to "Reject" as a safe fallback

## Step 3: Save and Activate

**1. Save the Workflow**

Click **Save** in the top-right corner. Your workflow is saved as a draft.

**2. Activate**

Click the **Activate** toggle. The workflow is now live and listening for webhook triggers. You will see the webhook URL displayed at the top of the designer.

**3. Copy the Webhook URL**

Copy the webhook URL. It looks like this:

```
https://api.hitl.sh/v1/workflows/wf_abc123/trigger
```

## Step 4: Trigger the Workflow

Send a POST request to your webhook URL to create an execution:

```bash cURL theme={null}
curl -X POST https://api.hitl.sh/v1/workflows/wf_abc123/trigger \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Please review this user comment: Great product, highly recommend!",
    "user_id": "user_123",
    "category": "comment"
  }'
```

```python Python theme={null}
import requests

webhook_url = "https://api.hitl.sh/v1/workflows/wf_abc123/trigger"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}
payload = {
    "content": "Please review this user comment: Great product, highly recommend!",
    "user_id": "user_123",
    "category": "comment"
}

response = requests.post(webhook_url, headers=headers, json=payload)
execution = response.json()

print(f"Execution started: {execution['data']['execution_id']}")
```

```javascript Node.js theme={null}
const axios = require('axios');

const response = await axios.post(
  'https://api.hitl.sh/v1/workflows/wf_abc123/trigger',
  {
    content: 'Please review this user comment: Great product, highly recommend!',
    user_id: 'user_123',
    category: 'comment'
  },
  {
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log('Execution started:', response.data.data.execution_id);
```

## Step 5: Respond to the Review

Once the workflow is triggered:

1. The assigned reviewers receive a push notification on the HITL.sh mobile app
2. Open the app and tap on the pending review
3. Select one of the options (Approve, Reject, or Escalate)
4. Submit the response

The workflow execution completes and the response is recorded.

## Step 6: View the Execution

Go back to the workflow designer and click the **Executions** tab. You will see your execution with:

* The trigger payload
* The human review response
* The total execution time
* The reviewer who responded

## What's Next

> [card] [Workflow Designer Guide](https://docs.hitl.sh/guides/workflow-designer.md)
>
> Learn about all node types, canvas controls, and advanced configuration

> [card] [Response Types](https://docs.hitl.sh/responses/types.md)
>
> Explore all seven response types and their configurations

> [card] [Humans](https://docs.hitl.sh/concepts/humans.md)
>
> Set up groups and people for reviewer assignment

> [card] [Integrations](https://docs.hitl.sh/integrations/overview.md)
>
> Connect your workflow to n8n, Zapier, Make, and more


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.