diff --git a/src/api/core/public.rs b/src/api/core/public.rs
index 1056f4bb8a35be07f55e6687dbc386250965e46a..19cd0de8b22f369116cd115df5e0fc5eb92504d7 100644
--- a/src/api/core/public.rs
+++ b/src/api/core/public.rs
@@ -137,7 +137,8 @@ async fn ldap_import(data: JsonUpcase<OrgImportData>, token: PublicToken, mut co
 
     if CONFIG.org_groups_enabled() {
         for group_data in &data.Groups {
-            let group_uuid = match Group::find_by_external_id(&group_data.ExternalId, &mut conn).await {
+            let group_uuid = match Group::find_by_external_id_and_org(&group_data.ExternalId, &org_id, &mut conn).await
+            {
                 Some(group) => group.uuid,
                 None => {
                     let mut group =
diff --git a/src/db/models/group.rs b/src/db/models/group.rs
index e50853e245305bec3dea69d27fc90dfa8086266c..7faf7566acc2200fc17ccfc80a345c50443e79e1 100644
--- a/src/db/models/group.rs
+++ b/src/db/models/group.rs
@@ -203,10 +203,11 @@ impl Group {
         }}
     }
 
-    pub async fn find_by_external_id(id: &str, conn: &mut DbConn) -> Option<Self> {
+    pub async fn find_by_external_id_and_org(external_id: &str, org_uuid: &str, conn: &mut DbConn) -> Option<Self> {
         db_run! { conn: {
             groups::table
-                .filter(groups::external_id.eq(id))
+                .filter(groups::external_id.eq(external_id))
+                .filter(groups::organizations_uuid.eq(org_uuid))
                 .first::<GroupDb>(conn)
                 .ok()
                 .from_db()