Webhook Listener (Dummy) (WebAPI)
This webhook listener is a lie — and it's fine that it is
- payload_json
- raw_body
- headers
- new_data
Let's get the honest part out first: this node does not work, and the pack's own README says so. Webhook Listener (Dummy) is a stub - its description claims it "starts a local HTTP server to receive webhooks," but the code never binds a port and never starts anything. Its port, endpoint, and auth_token inputs have no effect whatsoever. It reads a class-level _last_payload variable that nothing in the entire pack ever sets, so it returns new_data = False on every single run. That's not a bug you can fix from your side. It's a placeholder for a future implementation.
So why write about a node that does nothing? Because if you google this and land here, you're probably a beginner wiring an inbound-webhook workflow and wondering why nothing ever arrives. This is the answer: it was never going to. Save yourself the evening.
What it was supposed to be
The design intent is visible in the outputs: payload_json (JSON), raw_body (STRING), headers (JSON), and a new_data BOOLEAN that flips when a fresh webhook lands. In a working version, you'd point some external service at http://yourmachine:8080/webhook, and each incoming POST would drop its parsed body onto those outputs so the rest of the graph could react. That's a genuinely useful pattern - it's how you'd let a queue, a render farm, or a phone notification kick off a workflow without polling.
But there's a reason the README tags it a "dummy/stub" and tells you not to build around it. Node code runs only when ComfyUI executes it, inside a queue cycle - a real always-listening HTTP server in a node is architecturally awkward, and the author apparently shipped the scaffolding and left the hard part for later.
What to use instead
If you need inbound triggers today, two real options:
- Poll instead of listen. The same pack's HTTP Request and Endpoint Poller nodes are real, and polling a "jobs" endpoint until it returns your result is the pattern the pack actually supports. A webhook listener is the thing that's missing.
- Listen outside ComfyUI. Run your own tiny webhook server, and have it drop a file into a watched folder - the pack's Folder Watcher then picks up "the next unprocessed file" on the next queue run. Clunkier, but real and it works.
And one genuine bright side: a node that silently opens a network port is exactly the shape of thing you should be wary of in custom-node-land (see the KB's notes on the one node pack that shipped credential-stealing malware). This dummy can't do that, because it does nothing. It's useless in the safest possible way.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/TensorVizion/OmniNodes
Restart, and it appears under TensorVizion/Web API. Notably, this node doesn't even need the pack's requests dependency - the pip install -r requirements.txt step the README mentions for the Web API category covers nodes like HTTP Request and Discord Notify, but a node that never touches the network needs no libraries.
The take
If you landed here hoping for a working receiver: don't build your workflow around it. Treat it as a placeholder, use Endpoint Poller or Folder Watcher, and check back when the pack updates. The README is refreshingly upfront that this one is a stub - which is more than most packs manage.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| port | INT | 80801024–65535 | — |
| endpoint | STRING | /webhook | — |
| auth_token | STRING | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| payload_json | JSON | — |
| raw_body | STRING | — |
| headers | JSON | — |
| new_data | BOOLEAN | — |