diff --git a/src/service/notification.rs b/src/service/notification.rs
index 0e747e3d84a6b0ad0dc1673fb6a8ea94314fcd9f..3d54d338702e7037db085b4369d47f2f73caf7ac 100644
--- a/src/service/notification.rs
+++ b/src/service/notification.rs
@@ -16,7 +16,7 @@ impl NotificationService {
         return Ok(subscriber_result);
     }
 
-    
+
     pub fn unsubscribe(product_type: &str, url: &str) -> Result<Subscriber> {
         let product_type_upper: String = product_type.to_uppercase();
         let product_type_str: &str = product_type_upper.as_str();
@@ -29,5 +29,24 @@ impl NotificationService {
         }
         return Ok(result.unwrap());
     }
+
+    pub fn notify(&self, product_type: &str, status: &str, product: Product) {
+        let mut payload: Notification = Notification {
+            product_title: product.clone().title,
+            product_type: String::from(product_type),
+            product_url: product.clone().get_url(),
+            subscriber_name: String::from(""),
+            status: String::from(status)
+        };
+    
+        let subscribers: Vec<Subscriber> = SubscriberRepository::list_all(product_type);
+        for subscriber in subscribers {
+            payload.subscriber_name = subscriber.clone().name;
+            let subscriber_clone = subscriber.clone();
+            let payload_clone = payload.clone();
+            thread::spawn(move || subscriber_clone.update(payload_clone));
+        }
+    }
+    
     
 }