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. Unread items have a badge count on the bell. Tapping a notification marks it read and navigates to the relevant task list if one is attached.
- Push notifications — device-level alerts delivered via OneSignal (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. There is currently no per-user opt-out for individual event types.
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 |
|---|---|---|
Stripe payment fails (invoice.payment_failed) | 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 notification services to be configured on the server. If not configured, 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).
- 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 OneSignal to be configured in the server environment.
- 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.