diff --git a/.github/workflows/aca-upstream.yml b/.github/workflows/aca-upstream.yml
new file mode 100644
index 000000000..ce9ab2260
--- /dev/null
+++ b/.github/workflows/aca-upstream.yml
@@ -0,0 +1,39 @@
+name: "ACA upstream"
+
+on:
+  workflow_call:
+  workflow_dispatch:
+    inputs:
+      repo_to_update:
+        description: Repository to update
+        type: choice
+        required: true
+        options:
+          - alfresco-applications
+          - alfresco-apps
+        default: alfresco-applications
+env:
+  GH_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }}
+  TRAVIS_COMMIT: ${{ github.sha }}
+  TRAVIS_BUILD_NUMBER: ${{ github.run_id }}
+  NODE_OPTIONS: "--max-old-space-size=5120"
+
+jobs:
+  trigger_aca_upstream:
+    name: Trigger ACA upstream
+    runs-on: ubuntu-latest
+    steps:
+        - name: Checkout repository
+          uses: actions/checkout@v3
+          with:
+            fetch-depth: 0
+        - name: install NPM
+          uses: actions/setup-node@v3
+          with:
+            node-version: 16
+            cache: 'npm'
+        - name: Trigger upstream
+          shell: bash
+          run: |
+            npm install github-api
+            ./scripts/travis/update/update-project.sh -p $TRAVIS_BUILD_NUMBER -t $GH_TOKEN -v alpha -c $TRAVIS_COMMIT -r ${{ inputs.repo_to_update }}
diff --git a/.travis.yml b/.travis.yml
index f907fe867..357c39e38 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -206,8 +206,8 @@ jobs:
 
     - stage: Trigger DW
       script:
-        - ./scripts/trigger-travis.sh --branch $TRAVIS_BRANCH Alfresco alfresco-apps $TRAVIS_API_TOKEN
-        - ./scripts/travis/update/update-project.sh -p $TRAVIS_BUILD_NUMBER -t $GITHUB_TOKEN -v alpha -c $TRAVIS_COMMIT
+        - ./scripts/trigger-travis.sh --branch $TRAVIS_BRANCH Alfresco alfresco-applications $TRAVIS_API_TOKEN
+        - ./scripts/travis/update/update-project.sh -p $TRAVIS_BUILD_NUMBER -t $GITHUB_TOKEN -v alpha -c $TRAVIS_COMMIT -r alfresco-applications
 
 
 notifications:
diff --git a/scripts/travis/update/update-project.sh b/scripts/travis/update/update-project.sh
index 1d79216e3..6e0cb972d 100755
--- a/scripts/travis/update/update-project.sh
+++ b/scripts/travis/update/update-project.sh
@@ -17,8 +17,10 @@ show_help() {
     echo ""
     echo "-t or --token: Github ouath token"
     echo "-p or --pr: Originating ACA PR number"
-    echo "-v or --version version to update"
+    echo "-v or --version: version to update"
+    echo "-c or --commit: commit"
     echo "-d or --dry-run: The script won't execute critical operation, just simulate them"
+    echo "-r or --repo: Repository to update"
 }
 
 set_token() {
@@ -38,15 +40,18 @@ set_commit() {
 }
 
 set_dryrun() {
-
     DRY_RUN="true"
-
 }
 
+set_repo() {
+    REPO=$1
+}
+
+
 update_dependency() {
     PKG=$1
     PKG_VERSION=$(npm view $PKG@$VERSION version)
-    echo "Update $PKG to $PKG_VERSION in $NAME_REPO"
+    echo "Update $PKG to $PKG_VERSION in $REPO"
 
     for i in $(find . ! -path "*/node_modules/*" -name "package-lock.json" | xargs grep -l $PKG); do
         directory=$(dirname $i)
@@ -59,11 +64,10 @@ update_dependency() {
 }
 
 update() {
-    NAME_REPO=$1
     PKG_VERSION=$(npm view $PKG@$VERSION version)
-    echo "Update dependencies $NAME_REPO"
+    echo "Update dependencies $REPO"
 
-    git clone https://$TOKEN@github.com/Alfresco/$NAME_REPO.git $TEMP_GENERATOR_DIR
+    git clone https://$TOKEN@github.com/Alfresco/$REPO.git $TEMP_GENERATOR_DIR
     cd $TEMP_GENERATOR_DIR
 
     git fetch
@@ -91,7 +95,7 @@ update() {
         git push --force origin $BRANCH_TO_CREATE
     fi
 
-    node $BUILD_PIPELINE_DIR/pr-creator.js --token=$TOKEN --title="Update branch for ACA ${PKG_VERSION} [ci:force]" --head=$BRANCH_TO_CREATE --repo=$NAME_REPO --commit=$COMMIT
+    node $BUILD_PIPELINE_DIR/pr-creator.js --token=$TOKEN --title="Update branch for ACA ${PKG_VERSION} [ci:force]" --head=$BRANCH_TO_CREATE --repo=$REPO --commit=$COMMIT
 
     cd ..
     rm -rf $TEMP_GENERATOR_DIR
@@ -105,6 +109,7 @@ while [[ $1 == -* ]]; do
       -v|--version)  version $2; shift 2;;
       -c|--commit) set_commit $2; shift 2;;
       -d|--dry-run) set_dryrun $2; shift; shift;;
+      -r|--repo) set_repo $2; shift; shift;;
       -*) echo "invalid option: $1" 1>&2; show_help; exit 1;;
     esac
 done
@@ -113,20 +118,20 @@ cd "$REPO_DIR"
 
 if [[ (-z "$TOKEN") || (-z "$VERSION") ]]
   then
-    echo "Each of 'branch name' (-b)  token (-t) and pr number (-p) have to be set. See -help."
+    echo "Each of 'branch name' (-b)  token (-t) pr number (-p) and repo (-r) have to be set. See -help."
     exit 1;
 fi
 
 rm -rf $TEMP_GENERATOR_DIR
 
-isSameACASha=$(node $BUILD_PIPELINE_DIR/aca-same-commit-verify.js --token=$TOKEN --head=$BRANCH_TO_CREATE --repo=$NAME_REPO --commit=$COMMIT )
+isSameACASha=$(node $BUILD_PIPELINE_DIR/aca-same-commit-verify.js --token=$TOKEN --head=$BRANCH_TO_CREATE --repo=$REPO --commit=$COMMIT )
 if [ "$isSameACASha" = 'true' ]; then
         echo 'ACA sha is the same. No need to create another pr'
     else
         if [ "$DRY_RUN" = "false" ]; then
-            update "alfresco-apps"
+            update $REPO
         else
-            echo "[dry-run] it would have update repos: 'alfresco-apps'"
+            echo "[dry-run] it would have update $REPO repo"
         fi
 fi