Verified Workflows in Dify workflows

Add human review to Dify workflows via the HTTP Request node. Submit tasks, react to webhooks, and post results back into Dify variables.

Dify workflowLLM node
HTTP RequestPOST /v1/tasks
Certified reviewerhuman review
Webhooksigned callback
Variable Assignnext Dify node

Install

Install the integration and add it to your Dify workspace.

terminal
curl -X POST https://api.verifiedworkflows.com/v1/tasks \
  -H "Authorization: Bearer vw_..."
config.yaml
kind: workflow
nodes:
  - type: http-request
    method: POST
    url: https://api.verifiedworkflows.com/v1/tasks

Submit a task

In a Dify workflow, add an HTTP Request node after your LLM step. Set the method to POST and the URL to https://api.verifiedworkflows.com/v1/tasks.

submit_task.sh
# Submit any AI output for human review
curl -X POST https://api.verifiedworkflows.com/v1/tasks \
  -H "Authorization: Bearer vw_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Body of the generated support reply",
    "content_type": "text",
    "callback_url": "https://your-app.example.com/webhook/vw"
  }'
review.py
from verifiedworkflows import VerifiedWorkflows

client = VerifiedWorkflows(api_key="vw_live_xxx")

task = client.tasks.create(
    content="Body of the generated support reply",
    content_type="text",
    callback_url="https://your-app.example.com/webhook/vw",
)

print(task["id"])  # tsk_live_f8a29
review.js
import { VerifiedWorkflows } from "verifiedworkflows";

const client = new VerifiedWorkflows({ apiKey: "vw_live_xxx" });

const task = await client.tasks.create({
  content: "Body of the generated support reply",
  contentType: "text",
  callbackUrl: "https://your-app.example.com/webhook/vw",
});

console.log(task.id);  // tsk_live_f8a29

Operations

Authentication

Set the Authorization header on the HTTP Request node. Dify stores the key with the workflow and never logs it.

Webhooks back into Dify

Configure a callback URL in your Verified Workflows dashboard pointing to a Dify external webhook trigger. The payload is signed with X-VW-Signature — verify it in a Code node before trusting.

Does Dify need a paid plan?
No. HTTP Request and webhook triggers are available on the free community edition.
Can I use the Code node instead of HTTP Request?
Yes. The Code node can call the same API and gives you more control over retries and error handling.
What about Dify Agents?
The same HTTP Request pattern works as a tool inside Dify Agents. Wrap the call in a tool definition to expose it to the agent.