Jellyseerr webhook notification handler

Make your Hubitat hub the central notifier for all your Jellyseerr requests! This custom app exposes a secure cloud webhook endpoint that accepts Jellyseerr “Media Available” notifications, extracts key details, and delivers fully customizable alerts to any notification-capable device on your hub.

Key Features

  • Cloud-Accessible Webhook
    Enables Jellyseerr to notify Hubitat without any port forwarding. OAuth secures the endpoint.
  • Multiple Notification Devices
    Send alerts to one or more devices—Hubitat Mobile App, Push Over, SMS gateways, speech synthesizers, and more.
  • Customizable Message Templates
    Build your alert exactly how you like using simple placeholders:
  • %mediaName% – Title of the movie or show
  • %mediaType% – “movie” or “tv”
  • %description% – Media synopsis
  • %notificationType% – Notification event type (e.g., MEDIA_AVAILABLE)
  • %requestedBy% – Username of the requester
  • Easy Installation & Configuration
    Copy-and-paste Groovy code, enable OAuth, select your devices, define your message, then point Jellyseerr at the provided URL.

How It Works

  1. Install & Enable OAuth
  • Paste the Groovy code into Apps CodeSaveOAuthUpdate.
  1. Add User App
  • Go to AppsAdd User AppJellyseerr Webhook Handler.
  1. Configure
  • Copy the Cloud Webhook URL from the app page.
  • Select one or multiple notification devices.
  • Craft your message using any combination of the five placeholders.
  1. Jellyseerr Setup
  • In Jellyseerr’s Notifications → Webhook, paste the URL and use the JSON payload:

json

{
  "mediaName": "{{subject}}",
  "mediaType": "{{media_type}}",
  "description": "{{message}}",
  "notificationType": "{{notification_type}}",
  "requestedBy": "{{requestedBy_username}}"
}
  1. Enjoy Instant Alerts
  • When your movie or show finishes downloading and is ready, Jellyseerr fires the webhook. Hubitat receives the data, replaces your placeholders, and your devices notify you instantly.

Example Usage

  • Simple alert:
    Your media "%mediaName%" is ready to stream!
  • Detailed alert:
    Hey %requestedBy%, your %mediaType% "%mediaName%" is available now. Synopsis: %description%

download from my github page.