diff --git a/packages/component-faraday-ui/src/PublonsTable.js b/packages/component-faraday-ui/src/PublonsTable.js
index d11c7d479ecb15cc49cbfe9d7ef2938335e444ce..7a6e9d3081ce9516f048c621bfe731e3042c85ae 100644
--- a/packages/component-faraday-ui/src/PublonsTable.js
+++ b/packages/component-faraday-ui/src/PublonsTable.js
@@ -1,8 +1,8 @@
 import React, { Fragment } from 'react'
+import { get, last } from 'lodash'
 import styled from 'styled-components'
 import { th } from '@pubsweet/ui-toolkit'
 import { Button, Spinner } from '@pubsweet/ui'
-import { get } from 'lodash'
 import { compose, withHandlers, withProps } from 'recompose'
 
 import { Label, OpenModal, Text, withFetching } from '../'
@@ -83,11 +83,12 @@ export default compose(
   })),
   withHandlers({
     onInviteReviewer: ({ onInvite }) => (reviewer, modalProps) => {
+      const names = reviewer.name.split(' ')
       const newReviewer = {
         email: reviewer.email,
         role: 'reviewer',
-        firstName: reviewer.name,
-        lastName: '',
+        firstName: names[0],
+        lastName: last(names),
       }
       onInvite(newReviewer, modalProps)
     },
diff --git a/packages/component-invite/src/routes/fragmentsInvitations/post.js b/packages/component-invite/src/routes/fragmentsInvitations/post.js
index b921af96de1f0df4029615d9a7922685c8c5353c..823d25ac9409535ff4c28d7f3227bc216fdbe4e4 100644
--- a/packages/component-invite/src/routes/fragmentsInvitations/post.js
+++ b/packages/component-invite/src/routes/fragmentsInvitations/post.js
@@ -124,7 +124,7 @@ module.exports = models => async (req, res) => {
     const userHelper = new User({ UserModel })
 
     const userData = req.body
-    const { firstName, lastName, isPublons } = userData
+    const { firstName = '', lastName = '', isPublons } = userData
     if (!services.checkForUndefinedParams(firstName, lastName)) {
       return res
         .status(400)
@@ -133,7 +133,10 @@ module.exports = models => async (req, res) => {
 
     if (isPublons && process.env.PUBLONS_MOCK_EMAIL) {
       const mockEmail = process.env.PUBLONS_MOCK_EMAIL
-      userData.email = mockEmail.replace('__NAME__', `${firstName}.${lastName}`)
+      userData.email = mockEmail.replace(
+        '__NAME__',
+        `${firstName.trim()}.${lastName.trim()}`,
+      )
     }
 
     const newUser = await userHelper.createUser({
diff --git a/packages/component-manuscript/src/components/ManuscriptPage.js b/packages/component-manuscript/src/components/ManuscriptPage.js
index e40b6a0a6e26b4bb427b7fcd4ba824231b90fd71..04c7522838e9b4ca51a1a3ab5d9f9ece8c0e5b01 100644
--- a/packages/component-manuscript/src/components/ManuscriptPage.js
+++ b/packages/component-manuscript/src/components/ManuscriptPage.js
@@ -209,6 +209,22 @@ export default compose(
       getFragment(collection, fragment)
       getUsers()
     },
+    getPublonsReviewers: ({ clearError, setFetching, setPublonsReviewers }) => (
+      fragmentId,
+      errorFn,
+    ) => {
+      clearError()
+      setFetching(true)
+      getPublonsReviewers(fragmentId)
+        .then(res => {
+          setFetching(false)
+          setPublonsReviewers(res)
+        })
+        .catch(e => {
+          setFetching(false)
+          handleError(errorFn)(e)
+        })
+    },
   }),
   withHandlers({
     updateManuscript: ({ updateVersion, collection, fragment }) => data =>
@@ -418,27 +434,26 @@ export default compose(
   }),
   withHandlers({
     onInvitePublonReviewer: ({
-      collection,
+      setError,
       fragment,
+      collection,
+      clearError,
+      getPublonsReviewers,
       fetchUpdatedCollection,
       setFetching: setListFetching,
-      setError,
-      clearError,
-    }) => (values, { hideModal, setModalError, setFetching }) => {
+    }) => (reviewerData, { hideModal, setModalError, setFetching }) => {
       setFetching(true)
       inviteReviewer({
-        reviewerData: values,
+        reviewerData,
+        isPublons: true,
         fragmentId: fragment.id,
         collectionId: collection.id,
-        isPublon: true,
       })
         .then(() => {
           setFetching(false)
           hideModal()
           fetchUpdatedCollection()
-          getPublonsReviewers('plm') // fragment.id)
-            .then(r => console.log('dupa publons', r))
-            .catch(handleError(setError))
+          getPublonsReviewers('plm', setModalError) // fragment.id)
         })
         .catch(err => {
           setFetching(false)
@@ -477,12 +492,13 @@ export default compose(
       const {
         match,
         history,
+        setError,
         location,
         shouldReview,
         reviewerReports,
         setEditorInChief,
         clearCustomError,
-        setPublonsReviewers,
+        getPublonsReviewers,
         hasManuscriptFailure,
         fetchUpdatedCollection,
         currentUser: {
@@ -491,9 +507,6 @@ export default compose(
           isHEToManuscript,
           permissions: { canInviteReviewers },
         },
-        setFetching,
-        setError,
-        clearError,
       } = this.props
 
       if (hasManuscriptFailure) {
@@ -516,26 +529,7 @@ export default compose(
       )
 
       if (canInviteReviewers) {
-        clearError()
-        setFetching(true)
-        getPublonsReviewers(fragmentId)
-          .then(res => {
-            setFetching(false)
-            setPublonsReviewers(
-              res.map(r => {
-                const names = r.name.split(' ')
-                return {
-                  ...r,
-                  firstName: names[0],
-                  lastName: last(names),
-                }
-              }),
-            )
-          })
-          .catch(e => {
-            setFetching(false)
-            handleError(setError)(e)
-          })
+        getPublonsReviewers(fragmentId, setError)
       }
 
       if (isInvitedHE) {
diff --git a/packages/components-faraday/src/redux/reviewers.js b/packages/components-faraday/src/redux/reviewers.js
index 9d2ee9b6333822535652d83f30b1802a21a879df..4cb9dd209e6d8d922a0e3ca394698743754b61c2 100644
--- a/packages/components-faraday/src/redux/reviewers.js
+++ b/packages/components-faraday/src/redux/reviewers.js
@@ -60,9 +60,9 @@ export const getCollectionReviewers = (collectionId, fragmentId) => dispatch =>
 // #endregion
 
 export const inviteReviewer = ({
+  fragmentId,
   reviewerData,
   collectionId,
-  fragmentId,
   isPublons = false,
 }) =>
   create(`/collections/${collectionId}/fragments/${fragmentId}/invitations`, {