diff --git a/app/Database/Migrations/2022-07-26-091451_AddNotifications.php b/app/Database/Migrations/2022-07-26-091451_add_notifications.php
similarity index 100%
rename from app/Database/Migrations/2022-07-26-091451_AddNotifications.php
rename to app/Database/Migrations/2022-07-26-091451_add_notifications.php
diff --git a/app/Database/Migrations/2022-07-28-143030_add_activities_trigger_after_insert.php b/app/Database/Migrations/2022-07-28-143030_add_activities_trigger_after_insert.php
new file mode 100644
index 0000000000000000000000000000000000000000..1325c1b03d1e8800993b4954ab87e6e3088dc34c
--- /dev/null
+++ b/app/Database/Migrations/2022-07-28-143030_add_activities_trigger_after_insert.php
@@ -0,0 +1,50 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * Class AddActivitiesTriggerAfterInsert Creates activities trigger in database
+ *
+ * @copyright  2020 Ad Aures
+ * @license    https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
+ * @link       https://castopod.org/
+ */
+
+namespace App\Database\Migrations;
+
+use CodeIgniter\Database\Migration;
+
+class AddActivitiesTriggerAfterInsert extends Migration
+{
+    public function up(): void
+    {
+        $activitiesTable = $this->db->prefixTable(config('Fediverse')->tablesPrefix . 'activities');
+        $notificationsTable = $this->db->prefixTable('notifications');
+        $createQuery = <<<CODE_SAMPLE
+        CREATE TRIGGER `{$activitiesTable}_after_insert`
+        AFTER INSERT ON `{$activitiesTable}`
+        FOR EACH ROW
+        BEGIN
+        -- only create notification if new incoming activity with NULL status is created
+        IF NEW.target_actor_id AND NEW.target_actor_id != NEW.actor_id AND NEW.status IS NULL THEN
+            IF NEW.type = 'Follow' THEN
+                INSERT INTO `{$notificationsTable}` (`actor_id`, `target_actor_id`, `activity_id`, `type`, `created_at`, `updated_at`)
+                VALUES (NEW.actor_id, NEW.target_actor_id, NEW.id, 'follow', NEW.created_at, NEW.created_at);
+            ELSEIF NEW.type = 'Undo_Follow' THEN
+                DELETE FROM `{$notificationsTable}`
+                WHERE `actor_id` = NEW.actor_id
+                AND `target_actor_id` = NEW.target_actor_id
+                AND `type` = 'follow';
+            END IF;
+        END IF;
+        END
+        CODE_SAMPLE;
+        $this->db->query($createQuery);
+    }
+
+    public function down(): void
+    {
+        $activitiesTable = $this->db->prefixTable(config('Fediverse')->tablesPrefix . 'activities');
+        $this->db->query("DROP TRIGGER IF EXISTS `{$activitiesTable}_after_insert`");
+    }
+}
diff --git a/app/Database/Migrations/2022-07-28-143030_AddActivitiesTrigger.php b/app/Database/Migrations/2022-08-14-141726_add_activities_trigger_after_update.php
similarity index 66%
rename from app/Database/Migrations/2022-07-28-143030_AddActivitiesTrigger.php
rename to app/Database/Migrations/2022-08-14-141726_add_activities_trigger_after_update.php
index 1024ad7b7ffae6ef10ff647e16b765db31d308b3..882566f4ce0ade38d1b9a52bbb899292596645b0 100644
--- a/app/Database/Migrations/2022-07-28-143030_AddActivitiesTrigger.php
+++ b/app/Database/Migrations/2022-08-14-141726_add_activities_trigger_after_update.php
@@ -3,7 +3,7 @@
 declare(strict_types=1);
 
 /**
- * Class AddActivitiesTrigger Creates activities trigger in database
+ * Class AddActivitiesTriggerAfterUpdate Creates activities trigger in database
  *
  * @copyright  2020 Ad Aures
  * @license    https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
@@ -14,39 +14,36 @@ namespace App\Database\Migrations;
 
 use CodeIgniter\Database\Migration;
 
-class AddNotificationsTrigger extends Migration
+class AddActivitiesTriggerAfterUpdate extends Migration
 {
     public function up(): void
     {
         $activitiesTable = $this->db->prefixTable(config('Fediverse')->tablesPrefix . 'activities');
         $notificationsTable = $this->db->prefixTable('notifications');
         $createQuery = <<<CODE_SAMPLE
-        CREATE TRIGGER `{$activitiesTable}_after_insert`
-        AFTER INSERT ON `{$activitiesTable}`
+        CREATE TRIGGER `{$activitiesTable}_after_update`
+        AFTER UPDATE ON `{$activitiesTable}`
         FOR EACH ROW
         BEGIN
         -- only create notification if new incoming activity with NULL status is created
         IF NEW.target_actor_id AND NEW.target_actor_id != NEW.actor_id AND NEW.status IS NULL THEN
-            IF NEW.type IN ( 'Create', 'Like', 'Announce', 'Follow' ) THEN
+            IF NEW.type IN ('Create', 'Like', 'Announce') AND OLD.post_id IS NULL AND NEW.post_id IS NOT NULL THEN
                 SET @type = (CASE
                                 WHEN NEW.type = 'Create' THEN 'reply'
                                 WHEN NEW.type = 'Like' THEN 'like'
                                 WHEN NEW.type = 'Announce' THEN 'share'
-                                WHEN NEW.type = 'Follow' THEN 'follow'
                             END);
-                INSERT INTO `{$notificationsTable}` (`actor_id`, `target_actor_id`, `post_id`, `activity_id`, `type`, `created_at`, `updated_at`)
-                    VALUES (NEW.actor_id, NEW.target_actor_id, NEW.post_id, NEW.id, @type, NEW.created_at, NEW.created_at);
-            ELSE
+                INSERT INTO `{$notificationsTable}` (`actor_id`, `target_actor_id`,`post_id`, `activity_id`, `type`, `created_at`, `updated_at`)
+                VALUES (NEW.actor_id, NEW.target_actor_id,NEW.post_id, NEW.id, @type, NEW.created_at, NEW.created_at);
+            ELSEIF NEW.type IN ('Undo_Like', 'Undo_Announce') THEN
                 DELETE FROM `{$notificationsTable}`
                 WHERE `actor_id` = NEW.actor_id
                 AND `target_actor_id` = NEW.target_actor_id
-                AND ((`type` = (CASE WHEN NEW.type = 'Undo_Follow' THEN 'follow' END) AND `post_id` IS NULL)
-                    OR (`type` = (CASE
-                                    WHEN NEW.type = 'Delete' THEN 'reply'
+                AND `type` = (CASE
                                     WHEN NEW.type = 'Undo_Like' THEN 'like'
                                     WHEN NEW.type = 'Undo_Announce' THEN 'share'
                                 END)
-                        AND `post_id` = NEW.post_id));
+                AND `post_id` = NEW.post_id;
             END IF;
         END IF;
         END
@@ -57,6 +54,6 @@ class AddNotificationsTrigger extends Migration
     public function down(): void
     {
         $activitiesTable = $this->db->prefixTable(config('Fediverse')->tablesPrefix . 'activities');
-        $this->db->query("DROP TRIGGER IF EXISTS `{$activitiesTable}_after_insert`");
+        $this->db->query("DROP TRIGGER IF EXISTS `{$activitiesTable}_after_update`");
     }
 }