diff --git a/packages/components-faraday/src/components/Admin/AddEditUser.js b/packages/components-faraday/src/components/Admin/AddEditUser.js
index 45454fbd8e06f202d4776d3ad3f6c51c68cad6d7..74e235305cf16a343bb2871a0352536d8bd3aa7d 100644
--- a/packages/components-faraday/src/components/Admin/AddEditUser.js
+++ b/packages/components-faraday/src/components/Admin/AddEditUser.js
@@ -18,8 +18,15 @@ import { getRoleOptions, setAdmin, parseUpdateUser } from './utils'
 const onSubmit = (values, dispatch, { isEdit, history }) => {
   if (!isEdit) {
     const newValues = setAdmin(values)
-    return create('/users/invite', newValues)
-      .then(() => history.push('/admin/users'))
+    return create('/users', newValues)
+      .then(r => {
+        history.push('/admin/users')
+        create(`/emails`, {
+          email: r.email,
+          type: 'invite',
+          role: values.role,
+        })
+      })
       .catch(error => {
         const err = get(error, 'response')
         if (err) {
diff --git a/packages/components-faraday/src/components/Admin/utils.js b/packages/components-faraday/src/components/Admin/utils.js
index eb9b5cec9493be46809ba4bddafabf961eba5db9..ee33093e2176bcb429d904f8d4d5637aaa4eaeed 100644
--- a/packages/components-faraday/src/components/Admin/utils.js
+++ b/packages/components-faraday/src/components/Admin/utils.js
@@ -1,4 +1,11 @@
-import { pick, map } from 'lodash'
+import { pick, map, omit } from 'lodash'
+
+const generatePasswordHash = () =>
+  Array.from({ length: 4 }, () =>
+    Math.random()
+      .toString(36)
+      .slice(4),
+  ).join('')
 
 export const getRoleOptions = journal =>
   map(journal.roles, (value, key) => ({ label: value, value: key }))
@@ -11,7 +18,14 @@ export const setAdmin = values => {
     newValues.admin = false
   }
 
-  return newValues
+  return {
+    ...omit(newValues, ['role']),
+    isConfirmed: false,
+    passwordResetToken: generatePasswordHash(),
+    password: 'defaultpass',
+    editorInChief: newValues.role === 'editorInChief',
+    handlingEditor: newValues.role === 'handlingEditor',
+  }
 }
 
 export const parseUpdateUser = values => {
@@ -22,7 +36,6 @@ export const parseUpdateUser = values => {
     'affiliation',
     'title',
     'roles',
-    'rev',
     'editorInChief',
     'handlingEditor',
   ]
diff --git a/packages/xpub-faraday/config/components.json b/packages/xpub-faraday/config/components.json
index 6c86d7cf0af6dbf4cd7697cb324da72a0865af46..7b325481ccfefa823809c0e259b84dd436c2f965 100644
--- a/packages/xpub-faraday/config/components.json
+++ b/packages/xpub-faraday/config/components.json
@@ -7,5 +7,6 @@
   "pubsweet-components-faraday",
   "@pubsweet/component-aws-s3",
   "pubsweet-component-invite",
-  "pubsweet-component-user-manager"
+  "pubsweet-component-user-manager",
+  "pubsweet-component-email"
 ]