Privacy Policy & Data Handling
Last updated: June 2026
NotifyHook is a local utility. It forwards the notifications you select to the webhook endpoints you configure, and does nothing else with your data.
The short version
- No cloud backend. No developer-owned servers. NotifyHook has no server-side component. Nothing is sent to the developer, ever.
- No analytics, no tracking, no third-party SDKs.
- No account, no sign-up, no identifiers.
- No location. No telephony identifiers.
- Your data is sent only to the webhook URLs you enter.
What permissions NotifyHook uses, and why
| Permission | Type | Why |
|---|---|---|
BIND_NOTIFICATION_LISTENER_SERVICE | Special access, user-granted in system settings | Read posted notifications so matching ones can be forwarded. NotifyHook only reads; it never dismisses or alters notifications. |
INTERNET | Normal | POST payloads to your webhook URLs. |
ACCESS_NETWORK_STATE | Normal (no prompt) | Connectivity variables and the Wi-Fi-only delivery toggle / retry constraints. |
ACCESS_WIFI_STATE | Normal (no prompt) | Wi-Fi connectivity variables. |
POST_NOTIFICATIONS | Runtime (Android 13+) | Only so NotifyHook can show its own status/error notifications. |
RECEIVE_BOOT_COMPLETED | Normal | Refresh the access indicator after a reboot. |
The in-app source-app picker is populated without the broad QUERY_ALL_PACKAGES permission: it lists apps that have a launcher icon (via a manifest <queries> intent) plus any app the notification listener has actually seen post a notification. No package data leaves the device.
What NotifyHook deliberately does not request or collect
QUERY_ALL_PACKAGES / broad installed-app visibility, SMS, contacts, call log, location of any kind, microphone, camera, READ_PHONE_STATE / phone number / IMEI / hardware IDs, BLUETOOTH_CONNECT, usage access / foreground-app data, Wi-Fi SSID / BSSID, and accessibility services.
Payload variables are limited to values readable with no runtime/dangerous permission. The following are intentionally excluded because they would require permissions or expose sensitive data: GPS/location, Wi-Fi SSID/BSSID, phone numbers and device identifiers, Bluetooth device names, running/foreground apps, and anything from SMS, contacts, call log, microphone, or camera.
How your data is stored
- Rules and the event log are stored locally in a Room database. These contain non-sensitive metadata and sanitized event records.
- Secrets — authorization headers, API keys, bearer tokens, webhook secrets, and HMAC signing secrets — are stored only in
EncryptedSharedPreferences(AES-256, key in the Android Keystore). They are never written to the Room database and are resolved into memory only immediately before a request is sent. - Event logs are scrubbed: values associated with sensitive keys (
Authorization,Bearer,token,api_key,apikey,secret,password, …) are replaced with[REDACTED]before being written. Resolved secrets are never logged. - Backups are disabled (
allowBackup="false"), and the encrypted secret store + its keyset are additionally excluded from cloud backup and device transfer.
Notification content can be sensitive
Notifications may contain private information (messages, codes, account details). NotifyHook makes forwarding explicit and opt-in:
- You choose which apps each rule matches.
- The payload is opt-in: no field beyond a minimal safe set is included unless you enable it.
- There is an explicit warning before you rely on body-text forwarding.
https:// endpoints (NotifyHook warns about http://) and enable HMAC signing so your receiver can verify authenticity.Sending data to your endpoints
When a notification matches a rule, NotifyHook POSTs the JSON body you defined to your webhook URL. That transmission goes directly from your device to your endpoint. NotifyHook is not involved beyond making the request.
Contact
NotifyHook collects no data and has no backend, so there is nothing for the developer to access, export, or delete on your behalf. To remove all local data, clear the app's storage or uninstall it.
Questions about this policy: notifyhook@marsave.la