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..5c761760feaff1b80d4096055dbc4121ef310b9a 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,15 @@ export const setAdmin = values => {
     newValues.admin = false
   }
 
-  return newValues
+  return {
+    ...omit(newValues, ['role']),
+    username: newValues.email,
+    isConfirmed: false,
+    passwordResetToken: generatePasswordHash(),
+    password: 'defaultpass',
+    editorInChief: newValues.role === 'editorInChief',
+    handlingEditor: newValues.role === 'handlingEditor',
+  }
 }
 
 export const parseUpdateUser = values => {
@@ -22,7 +37,6 @@ export const parseUpdateUser = values => {
     'affiliation',
     'title',
     'roles',
-    'rev',
     'editorInChief',
     'handlingEditor',
   ]
diff --git a/packages/components-faraday/src/components/SignUp/SignUpInvitationPage.js b/packages/components-faraday/src/components/SignUp/SignUpInvitationPage.js
index 5699888919716ae1dca12dc72f1984ac073be373..c78509321c5dc27f5fbd051e4406537c65a84fe6 100644
--- a/packages/components-faraday/src/components/SignUp/SignUpInvitationPage.js
+++ b/packages/components-faraday/src/components/SignUp/SignUpInvitationPage.js
@@ -31,7 +31,7 @@ const login = (dispatch, values, history) =>
 const confirmUser = (email, token, history) => (values, dispatch) => {
   const request = { ...values, email, token }
   if (values) {
-    return create('/users/invite/password/reset', request)
+    return create('/users/reset-password', request)
       .then(r => {
         const { username } = r
         const { password } = values
@@ -52,6 +52,7 @@ const confirmUser = (email, token, history) => (values, dispatch) => {
 export default compose(
   withJournal,
   withState('step', 'changeStep', 0),
+  withState('initialValues', 'setInitialValues', {}),
   withProps(({ location }) => {
     const params = new URLSearchParams(location.search)
     const email = params.get('email')
@@ -66,11 +67,11 @@ export default compose(
   }),
   lifecycle({
     componentDidMount() {
-      const { email, token } = this.props
-      const encodedUri = `?email=${encodeURIComponent(email)}&token=${token}`
-      request(`/users/invite${encodedUri}`)
+      const { setInitialValues, token } = this.props
+      const encodedUri = `?passwordResetToken=${token}`
+      request(`/users/${encodedUri}`)
         .then(res => {
-          this.setState({ initialValues: res })
+          setInitialValues(v => res.users[0])
         })
         .catch(err => {
           this.setState({ error: err.response })