HTTP Webhook Plan
A webhook you can build without sending anything — plan first, fire later
- http_plan_json
- manifest_line
- summary_json
The name is doing a lot of work here, so let's be precise: this node does not send anything. It describes an HTTP request - URL, method, headers, payload - as a JSON document you can build, inspect, and hand off. It's part of MKRShift's deliberate plan/send split: plan nodes are pure data with zero side effects, and a separate runtime node actually fires the request. If you've used the pack's host-addon lane (TouchDesigner, Nuke, Blender bridges), this is the same pattern at the HTTP level.
Why plan-first is nice
Three reasons you'd reach for this instead of just typing a URL into a generic HTTP node:
- It's reviewable. The plan is a string you can look at before anything goes anywhere.
MKRJSONDiffis right there in the same pack for exactly this - diff the plan you built against the plan a debug node received. - It's reproducible. Plans can be saved, versioned, and re-sent with
MKRHTTPWebhookSend. The request definition is data, not a side effect buried mid-graph. - It separates concerns. Your graph can build a plan based on runtime values, then a different node (or a different run) executes it. Want to fire the same webhook with three different payloads? Build the plan once, override the payload at send time.
Inputs
url- where the request goes. Defaulthttp://127.0.0.1:8188/mkrshift, i.e. a local endpoint - sensible for testing against the ComfyUI server itself or a local add-on.method-POST,PUT, orPATCH. No GET here; the pack assumes you're pushing data, not fetching it. (The webhook-send sibling also only handles these three.)payload_json- the request body, as JSON text.headers_json- optional custom headers. This is where anAuthorizationtoken or a customContent-Typegoes.
Outputs
http_plan_json- the built plan: schema, protocol, url, method, headers, payload. This is the thing you wire intoMKRHTTPWebhookSend.manifest_line- a compactMETHOD,urlline, handy for the pack's manifest/registry patterns or just for a quick text display.summary_json- URL, method, header count, and any warnings from malformed JSON (a badpayload_jsondegrades gracefully to{}plus a warning rather than erroring).
Installing it
Part of the pack:
# ComfyUI Manager: search "MKRShift Nodes", install, restart.
# or:
cd ComfyUI/custom_nodes
git clone https://github.com/criskb/MKRShift_Nodes
# restart ComfyUI
No extra dependencies, no API keys, no credentials to paste. Which is a genuinely nice property for a network node in a pack - see below.
The one thing to keep in mind
The broader network-node world carries real risk - any node that ships a key and calls out by design is the shape of the thing that got ComfyUI users compromised before. This pack's take on it is reassuring: the plan node is inert, the send node uses the standard library and defaults to localhost, and there's no credential store anywhere in it. So the honest advice is: use it, but keep your eyes open when you're wired up to anything real - a webhook to a production endpoint with a pasted token in headers_json deserves the same scrutiny as any other node that reaches the network. The plan/send split actually helps here: the plan is readable, so you can always see exactly what's about to be sent before the send node fires it.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| url | STRING | http://127.0.0.1:8188/mkrshift | — |
| method | COMBO | POST | 3 options: POST, PUT, PATCH |
| payload_json | STRING | {} | — |
| headers_jsonopt | STRING | {} | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| http_plan_json | STRING | — |
| manifest_line | STRING | — |
| summary_json | STRING | — |