diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index d4d812c..7443661 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -535,6 +535,5 @@
     <string name="importing_sim_failed_title" msgid="39706901030537985">"Uvoz nije uspeo"</string>
     <string name="importing_sim_failed_message" msgid="3345258302998021066">"Uvoz kontakata sa SIM kartice nije uspeo"</string>
     <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Uvozi se sa SIM-a"</string>
-    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
-    <skip />
+    <string name="contacts_default_notification_channel" msgid="4754058700611188581">"Obaveštenja"</string>
 </resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index c4f6730..fc70b1f 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -542,6 +542,5 @@
     <string name="importing_sim_failed_title" msgid="39706901030537985">"Не ўдалося імпартаваць"</string>
     <string name="importing_sim_failed_message" msgid="3345258302998021066">"Не ўдалося імпартаваць кантакты з SIM-карты"</string>
     <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Імпартаванне SIM"</string>
-    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
-    <skip />
+    <string name="contacts_default_notification_channel" msgid="4754058700611188581">"Апавяшчэнні"</string>
 </resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index ea786b7..ef4cdbd 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -535,6 +535,5 @@
     <string name="importing_sim_failed_title" msgid="39706901030537985">"Uvoz nije uspio"</string>
     <string name="importing_sim_failed_message" msgid="3345258302998021066">"Nije moguće uvesti kontakte sa SIM kartice"</string>
     <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Uvoz sa SIM kartice"</string>
-    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
-    <skip />
+    <string name="contacts_default_notification_channel" msgid="4754058700611188581">"Obavještenja"</string>
 </resources>
diff --git a/src/com/android/contacts/util/ContactsNotificationChannelsUtil.java b/src/com/android/contacts/util/ContactsNotificationChannelsUtil.java
index 3aa75c9..fec3bda 100644
--- a/src/com/android/contacts/util/ContactsNotificationChannelsUtil.java
+++ b/src/com/android/contacts/util/ContactsNotificationChannelsUtil.java
@@ -38,7 +38,7 @@
         final NotificationManager nm = context.getSystemService(NotificationManager.class);
         final NotificationChannel channel = new NotificationChannel(DEFAULT_CHANNEL,
                 context.getString(R.string.contacts_default_notification_channel),
-                NotificationManager.IMPORTANCE_DEFAULT);
+                NotificationManager.IMPORTANCE_LOW);
         nm.createNotificationChannel(channel);
     }
 }
diff --git a/src/com/android/contacts/vcard/NotificationImportExportListener.java b/src/com/android/contacts/vcard/NotificationImportExportListener.java
index daac5cb..cec96d4 100644
--- a/src/com/android/contacts/vcard/NotificationImportExportListener.java
+++ b/src/com/android/contacts/vcard/NotificationImportExportListener.java
@@ -89,6 +89,7 @@
             mHandler.obtainMessage(0, message).sendToTarget();
         }
 
+        ContactsNotificationChannelsUtil.createDefaultChannel(mContext);
         final Notification notification = constructProgressNotification(mContext,
                 VCardService.TYPE_IMPORT, message, message, jobId, displayName, -1, 0);
         mNotificationManager.notify(DEFAULT_NOTIFICATION_TAG, jobId, notification);
@@ -164,6 +165,7 @@
         final String message = mContext.getString(R.string.contacts_export_will_start_message);
 
         mHandler.obtainMessage(0, message).sendToTarget();
+        ContactsNotificationChannelsUtil.createDefaultChannel(mContext);
         final Notification notification =
                 NotificationImportExportListener.constructProgressNotification(mContext,
                         VCardService.TYPE_EXPORT, message, message, jobId, displayName, -1, 0);
@@ -220,10 +222,10 @@
                 .appendQueryParameter(CancelActivity.TYPE, String.valueOf(type)).build();
         intent.setData(uri);
 
-        ContactsNotificationChannelsUtil.createDefaultChannel(context);
         final NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
         builder.setOngoing(true)
                 .setChannel(ContactsNotificationChannelsUtil.DEFAULT_CHANNEL)
+                .setOnlyAlertOnce(true)
                 .setProgress(totalCount, currentCount, totalCount == - 1)
                 .setTicker(tickerText)
                 .setContentTitle(description)
