diff --git a/gracedb/alerts/fields.py b/gracedb/alerts/fields.py
index 57cac85ed51bbaad084439fc9802b5dc1e1a8c83..434f68ff867c0f04da4a19d42b3aa25b7e741aba 100644
--- a/gracedb/alerts/fields.py
+++ b/gracedb/alerts/fields.py
@@ -1,6 +1,7 @@
 import phonenumbers
 
 from django.db import models
+from django import forms
 
 from .validators import validate_phone
 
@@ -32,3 +33,8 @@ class PhoneNumberField(models.CharField):
         phone = phonenumbers.parse(value, 'US')
         return phonenumbers.format_number(phone,
             getattr(phonenumbers.PhoneNumberFormat, self.format))
+
+
+class ContactMultipleChoiceField(forms.ModelMultipleChoiceField):
+    def label_from_instance(self, obj):
+        return obj.display()
diff --git a/gracedb/alerts/forms.py b/gracedb/alerts/forms.py
index 7b501d2a53ecb61e0f17dfed899151e4763c097a..ef05d2d606240114f1a190b5e09f80aab7bcbe28 100644
--- a/gracedb/alerts/forms.py
+++ b/gracedb/alerts/forms.py
@@ -16,6 +16,7 @@ from django.utils.translation import ugettext_lazy as _
 
 from core.forms import MultipleForm
 from events.models import Group, Search, Label
+from .fields import ContactMultipleChoiceField
 from .models import Notification, Contact
 from .utils import parse_label_query
 
@@ -31,6 +32,8 @@ class BaseNotificationForm(forms.ModelForm):
     Base model for Notification forms. Should not be used on its own
     (essentially an abstract model)
     """
+    contacts = ContactMultipleChoiceField(queryset=Contact.objects.all(),
+        required=False, widget=forms.widgets.SelectMultiple(attrs={'size': 6}))
     class Meta:
         model = Notification
         fields = ['description'] # dummy placeholder
@@ -63,7 +66,6 @@ class BaseNotificationForm(forms.ModelForm):
                 '< 3.0 M<sub>sun</sub>.'),
         }
         widgets = {
-            'contacts': forms.widgets.SelectMultiple(attrs={'size': 5}),
             'far_threshold': forms.widgets.TextInput(),
             'labels': forms.widgets.SelectMultiple(attrs={'size': 8}),
         }
diff --git a/gracedb/alerts/models.py b/gracedb/alerts/models.py
index 95f8b258663b33dad053adb0a568dd1a96b783b2..3d992fb5d1761bdb3ed3ddc570b04ac9ad44af72 100644
--- a/gracedb/alerts/models.py
+++ b/gracedb/alerts/models.py
@@ -52,8 +52,8 @@ class Contact(CleanSaveModel):
     verification_expiration = models.DateTimeField(null=True, editable=False)
 
 
-    def __unicode__(self):
-        return u"{0}: {1}".format(self.user.username, self.description)
+    def __str__(self):
+        return "{0}: {1}".format(self.user.username, self.description)
 
     def clean(self):
         # Mostly used for preventing creation of bad Contact
@@ -251,6 +251,6 @@ class Notification(models.Model):
         # Add contacts
         output += ' -> {contacts}'
         kwargs['contacts'] = \
-            ", ".join([c.description for c in self.contacts.all()])
+            ", ".join([c.display() for c in self.contacts.all()])
 
         return output.format(**kwargs)