Bucket is what holds the incoming and outgoing webhook configuration. To start webhook forwarding, you will need to create at least one bucket.
Inputs are your public endpoints. This is where your applications or 3rd party services such as GitHub, Zapier, etc. need to send their webhooks.
There can be many inputs in a single bucket.
Each output specifies a destination where webhooks can be forwarded to. Outputs can be either:
public - which are forwarded directly by Webhook Relay servers to the destination.
internal - which are forwarded through the agent (that you need to start in your environment).
There can be many outputs in a single bucket. Each received webhook will be forwarded to each output.
Functions are used to modify, filter or react to webhooks. They can be attached either to inputs, outputs or both.
You can use functions for:
Creating a dynamic response when Webhook Relay endpoint is hit (for example generating some code)
Transforming payload (received webhook from IFTTT can be sent to Zapier to trigger some flow)