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
- HTTP Request: Submit Task — queue content for human review and capture the task id in a workflow variable.
- HTTP Request: Get Task — poll a task from a Dify code node.
- Webhook Trigger — ingest a Review Completed callback into a separate Dify workflow.
- Variable Assign — use the reviewer verdict as input to the next Dify LLM or code node.
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.