diff --git a/app/src/main/java/org/futo/circles/feature/circles/CirclesFragment.kt b/app/src/main/java/org/futo/circles/feature/circles/CirclesFragment.kt
index 1e547b01aa431972d5c25b2410e1fa3169d8a49f..5a5d4ce44d5d0d12e9f6e757e142471f3fa570ca 100644
--- a/app/src/main/java/org/futo/circles/feature/circles/CirclesFragment.kt
+++ b/app/src/main/java/org/futo/circles/feature/circles/CirclesFragment.kt
@@ -1,14 +1,27 @@
 package org.futo.circles.feature.circles
 
+import android.os.Bundle
+import android.view.View
 import androidx.navigation.fragment.findNavController
 import org.futo.circles.core.rooms.HasInvites
 import org.futo.circles.core.rooms.RoomsFragment
+import org.futo.circles.extensions.observeData
+import org.futo.circles.feature.groups.GroupsFragmentDirections
+import org.futo.circles.feature.home.HomeViewModel
 import org.futo.circles.model.RoomListItem
+import org.koin.androidx.viewmodel.ext.android.activityViewModel
 import org.koin.androidx.viewmodel.ext.android.viewModel
 
 class CirclesFragment : RoomsFragment(), HasInvites {
 
     override val viewModel by viewModel<CirclesViewModel>()
+    private val homeViewModel by activityViewModel<HomeViewModel>()
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+        homeViewModel.notificationLiveData.observeData(this) {
+            findNavController().navigate(GroupsFragmentDirections.toTimeline(it))
+        }
+    }
 
     override fun onRoomListItemClicked(room: RoomListItem) {
         findNavController().navigate(CirclesFragmentDirections.toTimeline(room.id))
diff --git a/app/src/main/java/org/futo/circles/feature/groups/GroupsFragment.kt b/app/src/main/java/org/futo/circles/feature/groups/GroupsFragment.kt
index 9bf12dd18e73c387fce6b7aeba457422eee3346f..a75d85f6d0c5ed482791109e74448cd980ef803a 100644
--- a/app/src/main/java/org/futo/circles/feature/groups/GroupsFragment.kt
+++ b/app/src/main/java/org/futo/circles/feature/groups/GroupsFragment.kt
@@ -1,15 +1,27 @@
 package org.futo.circles.feature.groups
 
+import android.os.Bundle
+import android.view.View
 import androidx.navigation.fragment.findNavController
+import androidx.navigation.fragment.navArgs
 import org.futo.circles.core.rooms.HasInvites
 import org.futo.circles.core.rooms.RoomsFragment
+import org.futo.circles.extensions.observeData
+import org.futo.circles.feature.home.HomeViewModel
 import org.futo.circles.model.RoomListItem
+import org.koin.androidx.viewmodel.ext.android.activityViewModel
 import org.koin.androidx.viewmodel.ext.android.viewModel
 
 class GroupsFragment : RoomsFragment(), HasInvites {
 
     override val viewModel by viewModel<GroupsViewModel>()
-
+    private val homeViewModel by activityViewModel<HomeViewModel>()
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+        homeViewModel.notificationLiveData.observeData(this){
+            findNavController().navigate(GroupsFragmentDirections.toTimeline(it))
+        }
+    }
     override fun onRoomListItemClicked(room: RoomListItem) {
         findNavController().navigate(GroupsFragmentDirections.toTimeline(room.id))
     }
diff --git a/app/src/main/java/org/futo/circles/feature/home/HomeFragment.kt b/app/src/main/java/org/futo/circles/feature/home/HomeFragment.kt
index 3da8e61ce271a9f5c1d6b7f4b5be62073407429b..4273a1299121b7c19c847fa9aadb00dd5c2e8abe 100644
--- a/app/src/main/java/org/futo/circles/feature/home/HomeFragment.kt
+++ b/app/src/main/java/org/futo/circles/feature/home/HomeFragment.kt
@@ -9,6 +9,7 @@ import androidx.annotation.RequiresApi
 import androidx.fragment.app.Fragment
 import androidx.navigation.NavController
 import androidx.navigation.fragment.NavHostFragment
+import androidx.navigation.fragment.navArgs
 import androidx.navigation.ui.AppBarConfiguration
 import androidx.navigation.ui.setupWithNavController
 import by.kirich1409.viewbindingdelegate.viewBinding
@@ -17,18 +18,22 @@ import org.futo.circles.core.picker.RuntimePermissionHelper
 import org.futo.circles.databinding.FragmentBottomNavigationBinding
 import org.futo.circles.extensions.observeData
 import org.futo.circles.extensions.setSupportActionBar
+import org.futo.circles.model.GROUP_TYPE
+import org.futo.circles.provider.MatrixSessionProvider
 import org.koin.androidx.viewmodel.ext.android.activityViewModel
-import org.koin.androidx.viewmodel.ext.android.viewModel
+import org.matrix.android.sdk.api.session.getRoomSummary
 
 class HomeFragment : Fragment(R.layout.fragment_bottom_navigation) {
 
     private val binding by viewBinding(FragmentBottomNavigationBinding::bind)
 
+    private val args: HomeFragmentArgs by navArgs()
+
     @RequiresApi(Build.VERSION_CODES.TIRAMISU)
     private val notificationPermissionHelper =
         RuntimePermissionHelper(this, Manifest.permission.POST_NOTIFICATIONS)
 
-    private val viewModel by viewModel<HomeViewModel>()
+    private val viewModel by activityViewModel<HomeViewModel>()
     private val systemNoticesCountViewModel by activityViewModel<SystemNoticesCountSharedViewModel>()
 
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -39,6 +44,17 @@ class HomeFragment : Fragment(R.layout.fragment_bottom_navigation) {
         }
         setupObservers()
         registerPushNotifications()
+        handleOpenFromNotification()
+    }
+
+    private fun handleOpenFromNotification() {
+        val roomId = args.roomId ?: return
+        val summary = MatrixSessionProvider.currentSession?.getRoomSummary(roomId) ?: return
+        binding.bottomNavigationView.selectedItemId =
+            if (summary.roomType == GROUP_TYPE) R.id.groups_nav_graph
+            else R.id.circles_nav_graph
+        viewModel.postNotificationData(summary)
+        arguments?.clear()
     }
 
     private fun setupObservers() {
diff --git a/app/src/main/java/org/futo/circles/feature/home/HomeViewModel.kt b/app/src/main/java/org/futo/circles/feature/home/HomeViewModel.kt
index b016a6c3ba0eb4d6de8d9c0de3ce7b65ad30c6e8..5cdd5867dca3161c401f215fbf83a1edf2fe9e8a 100644
--- a/app/src/main/java/org/futo/circles/feature/home/HomeViewModel.kt
+++ b/app/src/main/java/org/futo/circles/feature/home/HomeViewModel.kt
@@ -2,14 +2,30 @@ package org.futo.circles.feature.home
 
 import android.content.Context
 import androidx.lifecycle.ViewModel
-import org.futo.circles.feature.notifications.FcmHelper
+import org.futo.circles.core.SingleEventLiveData
 import org.futo.circles.feature.notifications.PushersManager
+import org.futo.circles.model.GROUP_TYPE
+import org.matrix.android.sdk.api.session.room.model.Membership
+import org.matrix.android.sdk.api.session.room.model.RoomSummary
 
 class HomeViewModel(
     private val pushersManager: PushersManager
 ) : ViewModel() {
 
+    val notificationLiveData = SingleEventLiveData<String>()
+
     fun registerPushNotifications(context: Context) {
         pushersManager.registerPushNotifications(context)
     }
+
+    fun postNotificationData(summary: RoomSummary) {
+        if (summary.roomType == GROUP_TYPE) {
+            if (summary.membership == Membership.JOIN) notificationLiveData.postValue(summary.roomId)
+        } else {
+            if (summary.membership == Membership.JOIN) {
+                val circleId = summary.spaceParents?.firstOrNull()?.roomSummary?.roomId ?: return
+                notificationLiveData.postValue(circleId)
+            }
+        }
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/res/navigation/nav_graph_start_host.xml b/app/src/main/res/navigation/nav_graph_start_host.xml
index f9176264377eeae6506d9395c95401a11f3c30d5..9d61ae83c0d07e20fd3886d8366f15370eadc938 100644
--- a/app/src/main/res/navigation/nav_graph_start_host.xml
+++ b/app/src/main/res/navigation/nav_graph_start_host.xml
@@ -56,8 +56,15 @@
     <fragment
         android:id="@+id/bottomNavigationFragment"
         android:name="org.futo.circles.feature.home.HomeFragment"
-        android:label="Bottom Navigation"
-        tools:layout="@layout/fragment_bottom_navigation" />
+        tools:layout="@layout/fragment_bottom_navigation">
+
+        <argument
+            android:name="roomId"
+            android:defaultValue="@null"
+            app:argType="string"
+            app:nullable="true" />
+
+    </fragment>
     <fragment
         android:id="@+id/setupProfileFragment"
         android:name="org.futo.circles.feature.sign_up.setup_profile.SetupProfileFragment"
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5baeef1879b28721c6f80526f8c52e8206b1ceff..d1b26846af1d7b36b03ead1b30472010914084b9 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -353,10 +353,6 @@
     <string name="encrypted_message">Encrypted message</string>
 
     <string name="notice_room_third_party_invite">%1$s sent an invitation to join the room</string>
-    <string name="notice_room_third_party_invite_by_you">You sent an invitation to %1$s to join the room</string>
-    <string name="notice_room_third_party_revoked_invite">%1$s revoked the invitation for %2$s to join the room</string>
-    <string name="notice_room_third_party_revoked_invite_by_you">You revoked the invitation for %1$s to join the room</string>
-
     <string name="event_redacted_by_user_reason_with_reason">Event deleted by user, reason: %1$s</string>
     <string name="event_redacted_by_admin_reason_with_reason">Event moderated by room admin, reason: %1$s</string>
     <string name="event_redacted_by_user_reason">Event deleted by user</string>
@@ -372,6 +368,7 @@
         <item quantity="other">%1$s: %2$d messages</item>
     </plurals>
     <string name="notification_room_notifications">Room notifications</string>
+    <string name="notification_invitations">Invitations</string>
     <string name="notification_listening_for_events">Listening for events</string>
     <string name="notification_new_messages">New Messages</string>
     <string name="action_mark_room_read">Mark as read</string>