Notifications¶
GTIN1's notification system keeps consumers informed about the products they own and the brands they follow. Whether it is a safety recall, a firmware update, or an expiration reminder, notifications reach the right people through the right channels.
Notification Channels¶
GTIN1 supports three delivery channels:
| Channel | Description | Use Cases |
|---|---|---|
| Messages delivered to a verified email address | Recalls, safety alerts, brand news, marketing | |
| SMS | Text messages delivered to a verified phone number | Recalls, safety alerts (critical notifications only) |
| In-App | Messages displayed in the GTIN1 notification center | All notification types |
Each user can configure multiple channels of the same type (e.g., work and personal email addresses). Channels must be verified before notifications are sent to them.
Subscription Types¶
Notifications are organized around three subscription levels that give users granular control over what they receive.
Product Subscriptions¶
When a consumer scans a product and subscribes to it, they can choose which event types they want to hear about and through which channels:
| Event Type | SMS | In-App | Default | |
|---|---|---|---|---|
| Product Recall | Yes | Yes | Yes | All enabled |
| Safety Alert | Yes | Yes | Yes | All enabled |
| Firmware Update | Yes | -- | Yes | All enabled |
| Warranty Expiry | Yes | -- | Yes | All enabled |
| Expiration Reminder | Yes | -- | Yes | All enabled |
Product subscriptions are tied to a specific trade item (GTIN). If a recall is issued for a product you have subscribed to, you will receive a notification through all of your enabled channels.
Brand Subscriptions¶
Users can follow brands to receive updates about new products and brand news:
| Event Type | In-App | Default | |
|---|---|---|---|
| New Product Announcement | Yes | Yes | Opt-in (disabled) |
| Brand News | Yes | Yes | Opt-in (disabled) |
Brand subscriptions are opt-in by default -- users must explicitly enable them.
Account Subscriptions¶
Account-level preferences control platform-wide notifications:
| Event Type | In-App | Default | |
|---|---|---|---|
| Marketing | Yes | Yes | Opt-in (disabled) |
| Tips | Yes | Yes | Opt-in (disabled) |
| Review Notifications (brand owners) | Yes | Yes | Opt-out (enabled) |
Marketing and tips are opt-in. Review notifications (for brand owners who receive alerts when consumers leave product reviews) are enabled by default but can be disabled.
Event Types¶
Each notification is triggered by a specific event type:
| Event Type | Priority | Description |
|---|---|---|
| Product Recall | HIGH | A product you own has been recalled by the manufacturer or a regulatory agency |
| Safety Alert | HIGH | A safety-related issue has been identified with a product you own |
| Firmware Update | MEDIUM | A firmware or software update is available for a connected product |
| Warranty Expiry | MEDIUM | Your product's warranty is approaching its expiration date |
| Expiration Reminder | MEDIUM | A perishable product is approaching its expiration date |
| New Product Announcement | LOW | A brand you follow has released a new product |
| Brand News | LOW | A brand you follow has published an update |
| Review Received | MEDIUM | A consumer has left a review on one of your products (brand owners only) |
| Marketing | LOW | Promotional content from GTIN1 |
| Tips | LOW | Product care tips and best practices |
Priority Levels¶
Every notification event carries a priority that influences delivery behavior:
| Priority | Behavior |
|---|---|
| HIGH | Delivered immediately through all subscribed channels, including SMS. Cannot be suppressed by rate limiting. |
| MEDIUM | Delivered through subscribed channels. Subject to standard rate limiting. |
| LOW | Delivered through subscribed channels. Subject to rate limiting and may be batched. |
Warning
HIGH priority notifications (recalls and safety alerts) are always delivered to all subscribed channels. This ensures critical safety information reaches consumers without delay.
Expiration Reminders¶
GTIN1 can remind consumers when perishable products are approaching their expiration date. The reminder system offers:
- Per-product reminders -- set a reminder for a specific product you own, with a configurable number of days before expiration
- Category defaults -- set default reminder offsets by product category (e.g., "remind me 5 days before expiration for all dairy products")
- Status tracking -- reminders progress through
Active,Sent,Dismissed, andExpiredstates
The default reminder offset is 7 days before expiration. You can customize this per product or per category.
Notification Preferences¶
Users have full control over their notification preferences at every level:
- Channel level -- enable or disable an entire channel (e.g., turn off all SMS notifications)
- Subscription level -- choose which event types to receive per product, brand, or account
- Channel per event type -- enable email but not SMS for firmware updates on a specific product
Preferences are granular. For example, you can receive product recall notifications by email and SMS, but firmware updates only by email and in-app.
Unsubscribe Flow¶
GTIN1 supports multiple unsubscribe mechanisms to comply with email regulations and provide a good user experience:
| Method | How It Works |
|---|---|
| Email link | Every notification email includes a one-click unsubscribe link in the footer |
| Gmail one-click | Supports the Gmail/RFC 8058 List-Unsubscribe-Post header for instant unsubscribe |
| SMS STOP | Reply STOP to any SMS notification to unsubscribe from SMS delivery |
| Web UI | Manage all preferences from the notification settings page in your GTIN1 dashboard |
Each unsubscribe action is logged with the source, event type, and channel for audit purposes.
Note
Unsubscribing from a notification type on one channel does not affect other channels. If you unsubscribe from marketing emails, you will still receive marketing notifications in-app if that channel is enabled.
Delivery Guarantees¶
GTIN1's notification system is designed for reliability:
- Exactly-once delivery -- each notification is delivered at most once per user per channel per event, enforced by database-level uniqueness constraints
- Idempotent processing -- if a delivery attempt is retried due to a transient failure, it will not create duplicate notifications
- Optimistic locking -- concurrent delivery attempts are handled safely using version-based locking
- Dead letter handling -- notifications that fail after multiple retries are moved to a dead letter state for investigation rather than being lost
Each delivery attempt records the external provider's message ID (e.g., from Amazon SES for email) to enable cross-referencing with delivery logs.
In-App Notifications¶
In-app notifications appear in the notification center within the GTIN1 dashboard and mobile experience. Each notification includes:
- A title and message body
- The event type and priority for visual styling
- An optional action button with a link (e.g., "View Recall Details")
- Read/unread state with timestamp tracking
In-app notifications are ordered by creation time, with the most recent appearing first.