Notifications
Overview
Ziptask sends notifications through two channels:
- In-app drawer — the bell icon in the top-right toolbar. Shows the 30 most recent notifications, grouped by Today / Yesterday / Earlier with relative timestamps (“40m”, “2h”, “3d”). Each has a colour-coded icon by area (tasks, approvals, points, billing); unread items are tinted with a dot, and the bell shows a true unread count (accurate even past 30). Tapping a notification marks it read and navigates to the related list/project.
- Push notifications — device-level alerts on iOS, Android, and web where supported. Fires alongside the in-app notification for the same events. Requires the app to have notification permission granted on the device.
Both channels fire for the same events by default. Each member can turn individual events off per channel — see Notification preferences below.
Managing the drawer: the ⋯ menu in the drawer header has Mark all read and Clear all (deletes all of that member’s notifications immediately). Notifications also auto-expire after 90 days — a nightly job prunes older ones, so the drawer never becomes an unbounded backlog. There’s no per-notification delete; use Clear all, or let old ones age out.
Notification preferences
Every member controls which events notify them, and on which channel, from Profile → Notifications (their own profile only — one member can’t change another’s preferences). Preferences are per account: a member who belongs to more than one account sets them separately for each.
The tab has two parts:
- Delivery — two master switches, Push and In-app bell, each turning that whole channel on or off across every event at once. The line under each switch reads back the current state (“On for all 16 events”, “On for 9 of 16 events”, or “Muted”), so a member can see at a glance how much is on.
- What notifies you — the individual events, grouped into sections (Tasks & lists, Approvals, Points & store, Projects, and Reminders). Each event has its own Push and In-app toggle, and each group header shows how many of its events are still on.
Other things to know:
- Everything is on by default. A member only ever turns things off; a brand-new member (or one who has never opened the tab) receives every event on both channels, exactly as before.
- Turning Push off for an event still leaves the in-app bell notification (and vice-versa). Turning both off silences that event entirely for that member.
- Billing and plan alerts are always on and are not shown in the list — payment failed, payment recovered, plan upgraded, and plan downgraded can’t be turned off, because the account owner needs to see them.
Preferences take effect on the next matching event; there’s no need to sign out and back in.
Permissions
| Action | All members | | ---------------------------- | ------------ | --- | --- | | Receive in-app notifications | ✓ | | Receive push notifications | ✓ | | Mark a notification read | ✓ (own only) | | Mark all notifications read | ✓ | ✓ | ✓ |
No one receives notifications for actions they performed themselves.
In-app notification events
Task list assignment
| Event | Recipient | Message |
|---|---|---|
| Member added to a list | The added member | ”You’ve been added to ‘[list title]‘“ |
| Member removed from a list | The removed member | ”You’ve been removed from ‘[list title]‘“ |
Task items
| Event | Recipient | Message |
|---|---|---|
| Comment posted on an item | The item’s assignee (if not the commenter) | “Someone commented on ‘[item title]‘“ |
| Comment posted on an item | The list creator (if not the commenter and not the assignee) | “Someone commented on ‘[item title]‘“ |
| Item submitted for approval | All Admin and Root members (except the submitter) | ”‘[item title]’ has been submitted for approval” |
| Item approved | The assignee (if not the approver) | ”‘[item title]’ was approved” |
| Item rejected back to in-progress | The assignee (if not the rejecter) | ”‘[item title]’ was sent back for revision” |
| Item completed | The list creator (if not the one completing it) | ”‘[item title]’ was marked complete” |
| Item completed by an admin on behalf of a member | The assignee (if not the one completing it, and not already the list creator) | ”‘[item title]’ was marked complete” |
Points (requires points_system flag)
| Event | Recipient | Message |
|---|---|---|
| Points awarded on direct item completion | The assignee | ”You earned [n] pts for completing ‘[item title]‘“ |
| Points awarded on item approval | The assignee | ”You earned [n] pts for completing ‘[item title]’” |
Points notifications only fire when the item has a point value greater than zero.
Points store (requires store_enabled flag)
| Event | Recipient | Message |
|---|---|---|
| Member submits a redemption request | All Admin and Root members (except the redeemer) | “[Member name] requested a redemption for ‘[reward title]‘“ |
| Redemption approved | The member who redeemed | ”Your redemption for ‘[reward title]’ has been approved!” |
| Redemption rejected | The member who redeemed | ”Your redemption for ‘[reward title]’ was rejected. [n] pts have been refunded.” |
| Redemption fulfilled | The member who redeemed | ”Your reward ‘[reward title]’ has been fulfilled. Enjoy!” |
Billing
| Event | Recipient | Message |
|---|---|---|
| A payment fails | Root user | ”Your last payment failed. Please update your payment method to avoid losing access.” |
Billing notifications are sent to Root only, as they are the account billing owner.
Push notification events
Push notifications fire for the same events as in-app notifications. The message copy is slightly condensed for mobile display.
| Event | Push title | Push body |
|---|---|---|
| Member added to a list | New list shared | ”You’ve been added to ‘[list title]‘“ |
| Member removed from a list | Removed from list | ”You were removed from ‘[list title]‘“ |
| Comment posted | New comment | ”New comment on ‘[item title]‘“ |
| Item completed | Item completed | ”‘[item title]’ was marked complete” |
| Item submitted for approval | Approval requested | ”‘[item title]’ has been submitted for approval” |
| Item approved | Item approved | ”‘[item title]’ was approved” |
| Item rejected | Submission rejected | ”‘[item title]’ was sent back for revision” |
| Points earned | Points earned | ”You earned [n] pts for completing ‘[item title]‘“ |
| Redemption requested | New redemption request | ”[Member name] requested a redemption for ‘[reward title]‘“ |
| Redemption approved | Redemption approved | ”Your store redemption was approved” |
| Redemption rejected | Redemption rejected | ”Your store redemption was rejected” |
| Redemption fulfilled | Redemption fulfilled | ”Your store redemption has been fulfilled” |
| Payment failed | Payment failed | ”Update your payment method to keep your plan active” |
Push notifications require push delivery to be enabled for the account. If it isn’t, in-app notifications still fire normally — only the push delivery is skipped.
Support notes
- No notification received: Confirm the recipient is not the same person who performed the action — self-notifications are never sent. Also confirm the relevant feature flag is enabled if the event is flag-gated (points, store). Then check the member hasn’t turned that event off under Profile → Notifications — a member who silenced an event on both channels won’t receive it.
- Getting push but not the in-app bell (or vice-versa): The member turned off just that one channel for that event under Profile → Notifications. This is expected — the other channel keeps working.
- Push not arriving but in-app works: The user may have denied notification permission on their device. Ask them to check Settings → Notifications for the Ziptask app. Push also requires push delivery to be enabled for the account.
- Bell badge not clearing: Tapping a notification marks it read individually. The “Mark all read” button at the top of the drawer clears all unread at once.
- Payment failed notification: Only Root receives this. If an Admin reports they didn’t see a payment warning, that is expected — direct them to Root to handle the billing update.
- Notification tapped but didn’t navigate: Notifications for billing events (payment failed) have no associated task list and will not navigate anywhere on tap — this is expected.