Generic webhook
The Generic service can be used for any target that is not explicitly supported by Shoutrrr, as long as it supports receiving the message via a POST
request.
Sometimes this requires customization on the receiving end to interpret the payload, or use of an intermediate proxy to modify the payload.
URL Format
generic://example.com
Custom headers
You can add additional HTTP headers to your request by adding query variables prefixed with @
(@key=value
).
Using
generic://example.com?@acceptLanguage=tlh-Piqd
would result in the additional header being added:
Accept-Language: tlh-Piqd
JSON template
By using the built in JSON
template (template=json
) you can create a generic JSON payload.
Example
{
"title": "Foo CPU above threshold",
"message": "CPU averaged 63.53% for the previous 10 minutes."
}
Modifying default keys
The keys used for title
and message
can be overriden by supplying the params/query values titlekey
and messagekey
.
generic://example.com?template=json&titlekey=subject&messagekey=content
{
"subject": "Foo CPU above threshold",
"content": "CPU averaged 63.53% for the previous 10 minutes."
}
Custom data fields
When using the JSON template, you can add additional key/value pairs to the JSON object by adding query variables prefixed with $
($key=value
).
Example
Using generic://example.com?template=json&$projection=retroazimuthal
would yield:
{
"title": "Amazing opportunities!",
"message": "New map book available for purchase.",
"projection": "retroazimuthal"
}
Forwarded query variables
All query variables that are not listed in the Query/Param Props section will be forwarded to the target endpoint.
If you need to pass a query variable that is reserved, you can prefix it with an underscore (_
).
Example
The URL generic://example.com/api/v1/postStuff?contenttype=text/plain
would send a POST message to https://example.com/api/v1/postStuff
using the Content-Type: text/plain
header.
If instead escaped, generic://example.com/api/v1/postStuff?_contenttype=text/plain
would send a POST message to https://example.com/api/v1/postStuff?contenttype=text/plain
using the Content-Type: application/json
header (as it's the default).
Query/Param Props
Props can be either supplied using the params argument, or through the URL using?key=value&key=value
etc.
ContentType - The value of the Content-Type header
Default:application/json
DisableTLS
Default: ❌No
MessageKey - The key that will be used for the message value
Default:message
RequestMethod
Default:POST
Template - The template used for creating the request payload
Default: emptyTitleKey - The key that will be used for the title value
Default:title