diff --git a/src/store/modules/normalizers.js b/src/store/modules/normalizers.js
index c52d5c81df64c537618b18721b608fcbab7956b7..f051b1639232fa0c872376cef65b10c774771d96 100644
--- a/src/store/modules/normalizers.js
+++ b/src/store/modules/normalizers.js
@@ -56,12 +56,6 @@ const parseObject = (object) => {
   }, {})
 }
 
-export const parseValue = (input, value, type) => {
-  if (type === 'string' || type === 'boolean' || type === 'integer') {
-    return [{ tuple: [input, value] }]
-  }
-}
-
 export const valueHasTuples = (key, value) => {
   const valueIsArrayOfNonObjects = Array.isArray(value) && value.length > 0 && typeof value[0] !== 'object'
   return key === ':meta' ||
@@ -75,6 +69,24 @@ export const valueHasTuples = (key, value) => {
     valueIsArrayOfNonObjects
 }
 
+export const wrapUpdatedSettings = (group, settings) => {
+  return Object.keys(settings).map((key) => {
+    const value = wrapValues(settings[key])
+    return { group, key, value }
+  })
+}
+
+const wrapValues = settings => {
+  return Object.keys(settings).map(setting => {
+    const [type, value] = settings[setting]
+    if (type === 'keyword') {
+      return { 'tuple': [setting, wrapValues(setting, value)] }
+    } else {
+      return { 'tuple': [setting, value] }
+    }
+  })
+}
+
 const wrapNestedTuples = setting => {
   return Object.keys(setting).reduce((acc, settingName) => {
     const data = setting[settingName]
diff --git a/src/store/modules/settings.js b/src/store/modules/settings.js
index 838bf1fd7b8cc438ee198cab907e474e9c1313a8..0c42d8074ee452eabfe042b4ead14e7f58f03e10 100644
--- a/src/store/modules/settings.js
+++ b/src/store/modules/settings.js
@@ -1,5 +1,5 @@
 import { fetchDescription, fetchSettings, migrateToDB, updateSettings, uploadMedia } from '@/api/settings'
-import { parseTuples, valueHasTuples } from './normalizers'
+import { parseTuples, valueHasTuples, wrapUpdatedSettings } from './normalizers'
 
 const settings = {
   state: {
@@ -72,7 +72,9 @@ const settings = {
       commit('REWRITE_CONFIG', { tab, data })
     },
     async SubmitChanges({ getters, commit, state }) {
-      const configs = state.updatedSettings
+      const configs = Object.keys(state.updatedSettings).reduce((acc, group) => {
+        return [...acc, ...wrapUpdatedSettings(group, state.updatedSettings[group])]
+      }, [])
       const response = await updateSettings(configs, getters.authHost, getters.token)
       commit('SET_SETTINGS', response.data.configs)
     },