diff --git a/docs/features/deduplication.md b/docs/features/deduplication.md new file mode 100644 index 00000000..bb49c432 --- /dev/null +++ b/docs/features/deduplication.md @@ -0,0 +1,36 @@ +# 👥 Deduplication + +Deduplication is the process of detecting duplicates in a system and removing them. + +In NotificationAPI, this refers to the process of detecting duplicate notifications (same user, same channel, same content) and preventing them from being sent. + +## What constitutes a duplicate? + +A notification is duplicate if it is: + +- The same notification type, e.g. `order_tracking` +- Being sent to the same user ID +- Using the same channels as before, e.g. email & in-app +- With the same exact content (same subject, same message, same attachments, ...) + +## How does it work? + +import img from '@site/static/NotificationAPI notification as a service deduplication feature.png'; + + + +When setting up deduplication, you are asked to select a deduplication duration. This is the window of time during which we will consider a notification a duplicate of another. + +Example: duplication window of 1 hour + +- A notification is sent to user at 10:00:00AM (successful) +- Same notification to user at 10:59:59AM (ignored) +- Same notification to user at 11:02:00AM (successful) + +Ignored requests are properly logged in our logs and insights features + +## How to use the deduplication feature? + +Deduplication is a feature that can be enabled on a per-notification basis in the notification configuration page. + +It is disabled by default. diff --git a/docs/features/mergetags.md b/docs/features/mergetags.md index 54c032e2..24e4b976 100644 --- a/docs/features/mergetags.md +++ b/docs/features/mergetags.md @@ -1,4 +1,4 @@ -# 🎁 Dynamic Parameters (Merge Tags) +# 📦 Parameters (Merge Tags) **Merge tags** are values that cannot be hard-coded into notification designs and must be passed in programmatically from your code. For examples: diff --git a/docs/features/throttling.md b/docs/features/throttling.md new file mode 100644 index 00000000..ea889c09 --- /dev/null +++ b/docs/features/throttling.md @@ -0,0 +1,24 @@ +# ✋ Notification Throttling + +Throttiling allows you to prevent software bugs or UX flaws from flooding your end-users with too many notifications. + +## How does it work? + +You can pick how many of the same notification you want to allow to be sent to a user within a given time window. + +import img from '@site/static/NotificationAPI - Notifications as a service - throttling detection 6.png'; + + + +For example, if you configure throttling to allow 5 `delivery_tracking` notifications within one hour, it means that: + +- You can still send 10 `delivery_tracking` notifications to 10 different users within one hour +- The same user can only receive 5 within one hour +- The 6th `delivery_tracking` notification to the same user within one hour will be ignored +- Ignored requests are properly logged in our logs and insights features + +## How to use the throttling feature? + +Throttling can be configured on a per-notification basis in the notification configuration page. + +It is disabled by default. diff --git a/static/NotificationAPI - Notifications as a service - throttling detection 6.png b/static/NotificationAPI - Notifications as a service - throttling detection 6.png new file mode 100644 index 00000000..c0741ebb Binary files /dev/null and b/static/NotificationAPI - Notifications as a service - throttling detection 6.png differ diff --git a/static/NotificationAPI notification as a service deduplication feature.png b/static/NotificationAPI notification as a service deduplication feature.png new file mode 100644 index 00000000..2868561a Binary files /dev/null and b/static/NotificationAPI notification as a service deduplication feature.png differ