diff --git a/app/assets/javascripts/api.js.coffee b/app/assets/javascripts/api.js.coffee
index fafa5cdfaa4c83d329af632c1269a605568c2c1d..27d04e7cac669f49ab7f98c7dd30071745db8336 100644
--- a/app/assets/javascripts/api.js.coffee
+++ b/app/assets/javascripts/api.js.coffee
@@ -1,4 +1,6 @@
 @Api =
+  groups_path: "/api/:version/groups.json"
+  group_path: "/api/:version/groups/:id.json"
   users_path: "/api/:version/users.json"
   user_path: "/api/:version/users/:id.json"
   notes_path: "/api/:version/projects/:id/notes.json"
@@ -51,6 +53,33 @@
     ).done (users) ->
       callback(users)
 
+  group: (group_id, callback) ->
+    url = Api.buildUrl(Api.group_path)
+    url = url.replace(':id', group_id)
+
+    $.ajax(
+      url: url
+      data:
+        private_token: gon.api_token
+      dataType: "json"
+    ).done (group) ->
+      callback(group)
+
+  # Return groups list. Filtered by query
+  # Only active groups retrieved
+  groups: (query, skip_ldap, callback) ->
+    url = Api.buildUrl(Api.groups_path)
+
+    $.ajax(
+      url: url
+      data:
+        private_token: gon.api_token
+        search: query
+        per_page: 20
+      dataType: "json"
+    ).done (groups) ->
+      callback(groups)
+
   # Return project users list. Filtered by query
   # Only active users retrieved
   projectUsers: (project_id, query, callback) ->
diff --git a/app/assets/stylesheets/generic/selects.scss b/app/assets/stylesheets/generic/selects.scss
index e0f508d26953a466b31d7fd48e41dc6dfe0ebba3..d85e80a512b0805ec74c4fc83442db1519c42fcd 100644
--- a/app/assets/stylesheets/generic/selects.scss
+++ b/app/assets/stylesheets/generic/selects.scss
@@ -116,6 +116,18 @@ select {
   }
 }
 
+.group-result {
+  .group-image {
+    float: left;
+  }
+  .group-name {
+    font-weight: bold;
+  }
+  .group-path {
+    color: #999;
+  }
+}
+
 .user-result {
   .user-image {
     float: left;
diff --git a/app/helpers/selects_helper.rb b/app/helpers/selects_helper.rb
index ab24367c45521eccacd14ef5a34b310c277c3d21..796d805f2192998106ada6010c0917223396acbc 100644
--- a/app/helpers/selects_helper.rb
+++ b/app/helpers/selects_helper.rb
@@ -17,4 +17,13 @@ module SelectsHelper
     project_id = opts[:project_id] || @project.id
     hidden_field_tag(id, value, class: css_class, 'data-placeholder' => placeholder, 'data-project-id' => project_id)
   end
+
+  def groups_select_tag(id, opts = {})
+    css_class = "ajax-groups-select "
+    css_class << "multiselect " if opts[:multiple]
+    css_class << (opts[:class] || '')
+    value = opts[:selected] || ''
+
+    hidden_field_tag(id, value, class: css_class)
+  end
 end