diff --git a/core/src/main/java/org/futo/circles/core/room/CoreSpacesTreeBuilder.kt b/core/src/main/java/org/futo/circles/core/room/CoreSpacesTreeBuilder.kt
index 1cb6b3b4109f3e65e463049c0c74e0d502fa10cf..b20e24c077214eea90f3e36cee81a3be1c9b19fc 100644
--- a/core/src/main/java/org/futo/circles/core/room/CoreSpacesTreeBuilder.kt
+++ b/core/src/main/java/org/futo/circles/core/room/CoreSpacesTreeBuilder.kt
@@ -21,7 +21,8 @@ import javax.inject.Inject
 
 class CoreSpacesTreeBuilder @Inject constructor(
     @ApplicationContext private val context: Context,
-    private val createRoomDataSource: CreateRoomDataSource
+    private val createRoomDataSource: CreateRoomDataSource,
+    private val userAccountDataDataSource: UserAccountDataDataSource
 ) {
 
     val loadingLiveData = MutableLiveData<LoadingData>()
@@ -37,10 +38,13 @@ class CoreSpacesTreeBuilder @Inject constructor(
 
     suspend fun createCoreSpacesTree() {
         loadingLiveData.postValue(LoadingData(messageId = R.string.configuring_workspace))
-        coreSpaces.forEach {
-            createRoomDataSource.createRoom(it)
+        val configMap = mutableMapOf<String, String>()
+        coreSpaces.forEach { room ->
+            val roomId = createRoomDataSource.createRoom(room)
+            room.accountDataKey?.let { configMap.put(it, roomId) }
             delay(CREATE_ROOM_DELAY)
         }
+        userAccountDataDataSource.saveSpacesTreeConfig(configMap)
         createRoomDataSource.createRoom(Gallery(), context.getString(R.string.photos))
         loadingLiveData.postValue(LoadingData(isLoading = false))
     }