How we compare

Different approaches to webhooks: tunnels, queue-push services, and self-hosted proxies. Here's how the agent-based pull model compares.

AgentWebhook (pull) ngrok (tunnel) Hookdeck (queue-push) Self-hosted proxy
ModelStore-and-forward; you pullReal-time tunnel; pushQueue then push to your URLReal-time proxy; push
Local server required?NoYesYesYes
Public IP / open port?NoNoYesYes
Handles endpoint downtime?Yes — queuedNo — events lostYesNo (unless you build queueing)
Connection directionOutbound-onlyInboundInboundInbound
Replay / historyYesNoYesNo (build it)
SetupSimpleVery simpleSimpleComplex
Production-readyYesNoYes (but inbound)Depends on you

AgentWebhook (pull)

ModelStore-and-forward; you pull
Local server?No
Public IP?No
Downtime?Queued
DirectionOutbound-only
ReplayYes
SetupSimple
Production-readyYes

ngrok (tunnel)

ModelReal-time tunnel; push
Local server?Yes
Public IP?No
Downtime?Events lost
DirectionInbound
ReplayNo
SetupVery simple
Production-readyNo

Hookdeck (queue-push)

ModelQueue then push to your URL
Local server?Yes
Public IP?Yes
Downtime?Yes
DirectionInbound
ReplayYes
SetupSimple
Production-readyYes (but inbound)

Self-hosted proxy

ModelReal-time proxy; push
Local server?Yes
Public IP?Yes
Downtime?No (unless you build it)
DirectionInbound
ReplayNo (build it)
SetupComplex
Production-readyDepends on you

The trade-off

Tunnels are for development. Queue-push services improve reliability but still require a public endpoint. Self-hosting shifts the burden to you. The agent-based pull model gives you a persistent queue, outbound-only security, and no requirement for a listening server—all in one managed platform.

Get started