diff --git a/CHANGELOG b/CHANGELOG
index 6faa5d267cf4094c9220a2bc20e8c816f1d9e79c..87c584200cd5fc3dfc50c8468ceaa4ddf2cf24d9 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,6 +5,8 @@ Changelog
 0.2.5 (unreleased)
 ------------------
 
+- Import: can now specify search template when querying import sources (#45)
+
 
 0.2.4 (2017-12-14)
 ------------------
diff --git a/front/src/components/library/import/ArtistImport.vue b/front/src/components/library/import/ArtistImport.vue
index 4f049f52ea2f40829c4bcb5ce6d7bc87c53226d9..870a886e1835c0d811890c9fa4e911b4f74a57a4 100644
--- a/front/src/components/library/import/ArtistImport.vue
+++ b/front/src/components/library/import/ArtistImport.vue
@@ -12,6 +12,10 @@
             <label>{{ t }}</label>
           </div>
         </div>
+        <div class="field">
+          <label>Query template</label>
+          <input v-model="customQueryTemplate" />
+        </div>
       </div>
     </form>
     <template
@@ -22,6 +26,7 @@
         :backends="backends"
         :defaultEnabled="false"
         :default-backend-id="defaultBackendId"
+        :query-template="customQueryTemplate"
         @import-data-changed="recordReleaseData"
         @enabled="recordReleaseEnabled"
       ></release-import>
diff --git a/front/src/components/library/import/ImportMixin.vue b/front/src/components/library/import/ImportMixin.vue
index f3fc6fca6a163a1f99e0387cbf75300b6bc084a8..475241f3d5b24415a6c5cecf11c59f597142d1b4 100644
--- a/front/src/components/library/import/ImportMixin.vue
+++ b/front/src/components/library/import/ImportMixin.vue
@@ -13,10 +13,12 @@ export default {
     metadata: {type: Object, required: true},
     defaultEnabled: {type: Boolean, default: true},
     backends: {type: Array},
-    defaultBackendId: {type: String}
+    defaultBackendId: {type: String},
+    queryTemplate: {type: String, default: '$artist $title'}
   },
   data () {
     return {
+      customQueryTemplate: this.queryTemplate,
       currentBackendId: this.defaultBackendId,
       isImporting: false,
       enabled: this.defaultEnabled
@@ -56,6 +58,9 @@ export default {
       return this.backends.filter(b => {
         return b.id === self.currentBackendId
       })[0]
+    },
+    realQueryTemplate () {
+
     }
   },
   watch: {
@@ -70,6 +75,14 @@ export default {
     },
     enabled (newValue) {
       this.$emit('enabled', this.importData, newValue)
+    },
+    queryTemplate (newValue, oldValue) {
+      // we inherit from the prop template unless the component changed
+      // the value
+      if (oldValue === this.customQueryTemplate) {
+        // no changed from prop, we keep the sync
+        this.customQueryTemplate = newValue
+      }
     }
   }
 }
diff --git a/front/src/components/library/import/ReleaseImport.vue b/front/src/components/library/import/ReleaseImport.vue
index 9f8c1d347a326b96470423679bdedfa50fe08b0c..51d5a2fead24a91a50eb2f31f931e93f91fe01e3 100644
--- a/front/src/components/library/import/ReleaseImport.vue
+++ b/front/src/components/library/import/ReleaseImport.vue
@@ -20,6 +20,7 @@
         :release-metadata="metadata"
         :backends="backends"
         :default-backend-id="defaultBackendId"
+        :query-template="customQueryTemplate"
         @import-data-changed="recordTrackData"
         @enabled="recordTrackEnabled"
       ></track-import>
diff --git a/front/src/components/library/import/TrackImport.vue b/front/src/components/library/import/TrackImport.vue
index 3081091c59d6f7da5d88b06cf0fb933650f70e7c..2275bcf34e6b9f3cf80e22a478d72f79a3e14dae 100644
--- a/front/src/components/library/import/TrackImport.vue
+++ b/front/src/components/library/import/TrackImport.vue
@@ -92,13 +92,7 @@ export default Vue.extend({
     releaseMetadata: {type: Object, required: true}
   },
   data () {
-    let queryParts = [
-      this.releaseMetadata['artist-credit'][0]['artist']['name'],
-      this.releaseMetadata['title'],
-      this.metadata['recording']['title']
-    ]
     return {
-      query: queryParts.join(' '),
       isLoading: false,
       results: [],
       currentResultIndex: 0,
@@ -151,6 +145,18 @@ export default Vue.extend({
         mbid: this.metadata.recording.id,
         source: this.importedUrl
       }
+    },
+    query () {
+      let queryMapping = [
+        ['artist', this.releaseMetadata['artist-credit'][0]['artist']['name']],
+        ['album', this.releaseMetadata['title']],
+        ['title', this.metadata['recording']['title']]
+      ]
+      let query = this.customQueryTemplate
+      queryMapping.forEach(e => {
+        query = query.split('$' + e[0]).join(e[1])
+      })
+      return query
     }
   },
   watch: {