diff --git a/packages/component-manuscript-manager/src/routes/fragments/post.js b/packages/component-manuscript-manager/src/routes/fragments/post.js
index 6150932b318d711b2eed23d7db81b6588e2a0799..2ec4ab94af0427c9014609b1927f0db01e40a498 100644
--- a/packages/component-manuscript-manager/src/routes/fragments/post.js
+++ b/packages/component-manuscript-manager/src/routes/fragments/post.js
@@ -52,7 +52,7 @@ module.exports = models => async (req, res) => {
       },
     }
 
-    await MTS.sendPackage(packageFragment)
+    await MTS.sendPackage({ fragment: packageFragment })
 
     notifications.sendNotifications({
       fragment,
diff --git a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js
index 37677984272615861c98b4d2b2b7f341078933f6..69135f088fdff18442320398441a8db3f40562d5 100644
--- a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js
+++ b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js
@@ -1,5 +1,6 @@
 const uuid = require('uuid')
-const { pick } = require('lodash')
+const { pick, get } = require('lodash')
+const config = require('config')
 
 const {
   services,
@@ -7,6 +8,10 @@ const {
   Collection,
 } = require('pubsweet-component-helper-service')
 
+const s3Config = get(config, 'pubsweet-component-aws-s3', {})
+const mtsConfig = get(config, 'mts-service', {})
+const MTSService = require('pubsweet-component-mts-package')
+
 const notifications = require('./notifications/notifications')
 
 module.exports = models => async (req, res) => {
@@ -70,6 +75,20 @@ module.exports = models => async (req, res) => {
       fragment.revision = pick(fragment, ['authors', 'files', 'metadata'])
     }
 
+    if (isEditorInChief && recommendation === 'publish') {
+      const { journal, xmlParser, ftp } = mtsConfig
+      const MTS = new MTSService(journal, xmlParser, s3Config, ftp)
+      const packageFragment = {
+        ...fragment,
+        metadata: {
+          ...fragment.metadata,
+          customId: collection.customId,
+        },
+      }
+
+      await MTS.sendPackage({ fragment: packageFragment, isEQA: true })
+    }
+
     notifications.sendNotifications({
       fragment,
       collection,
diff --git a/packages/component-mts-package/src/MTS.js b/packages/component-mts-package/src/MTS.js
index 0d52a235a9d63630cadd9b88cf5e036aced1e11c..a8a9421139c0beafbf844b974658b8e602822b17 100644
--- a/packages/component-mts-package/src/MTS.js
+++ b/packages/component-mts-package/src/MTS.js
@@ -216,15 +216,19 @@ class MTS {
     return this.convertToXML(this.composeJson(fragment))
   }
 
-  sendPackage(fragment = {}) {
+  sendPackage({ fragment = {}, isEQA = false }) {
     const xmlFile = this.convertFragmentToXML(fragment)
 
     return PackageManager.createFilesPackage(this.s3Config)({
       fragment,
       xmlFile,
+      isEQA,
     }).then(() => {
-      const manuscriptName = get(xmlFile, 'name', '').replace('.xml', '')
-      const filename = `${manuscriptName}.zip`
+      const packageName = get(xmlFile, 'name', '').replace('.xml', '')
+      const filename = isEQA
+        ? `ACCEPTED_${packageName}.zip`
+        : `${packageName}.zip`
+
       return PackageManager.uploadFiles({
         filename,
         s3Config: this.s3Config,
diff --git a/packages/component-mts-package/src/PackageManager.js b/packages/component-mts-package/src/PackageManager.js
index 43d9386c5037e78176ee3a41116fdaf071dfe366..2bbed4fbd45321d05fa6f07d437e36aad552d7fd 100644
--- a/packages/component-mts-package/src/PackageManager.js
+++ b/packages/component-mts-package/src/PackageManager.js
@@ -19,9 +19,12 @@ const createFilesPackage = (s3Config, archiver = nodeArchiver) => {
   const asyncGetObject = promisify(s3.getObject.bind(s3))
   const asyncListObjects = promisify(s3.listObjects.bind(s3))
 
-  return async ({ fragment, fileTypes, xmlFile }) => {
+  return async ({ fragment, fileTypes, xmlFile, isEQA = false }) => {
     const { id } = fragment
-    const manuscriptName = get(xmlFile, 'name', '').replace('.xml', '')
+    let packageName = get(xmlFile, 'name', '').replace('.xml', '')
+    if (isEQA) {
+      packageName = `ACCEPTED_${packageName}`
+    }
     try {
       const params = {
         Bucket: s3Config.bucket,
@@ -39,7 +42,7 @@ const createFilesPackage = (s3Config, archiver = nodeArchiver) => {
         )
 
         if (s3Files) {
-          const packageOutput = fs.createWriteStream(`${manuscriptName}.zip`)
+          const packageOutput = fs.createWriteStream(`${packageName}.zip`)
           const archive = archiver('zip')
 
           archive.pipe(packageOutput)