diff --git a/djblets/integrations/models.py b/djblets/integrations/models.py
index e698bd0731495856b0d2afc580ee2bb54392fda4..7aa0143e31e6a77e570548142cf6dc39317ad931 100644
--- a/djblets/integrations/models.py
+++ b/djblets/integrations/models.py
@@ -76,7 +76,21 @@ class BaseIntegrationConfig(NeedsIntegrationManagerMixin, models.Model):
         self.settings[key] = value
 
     def __str__(self):
-        return _('Integration config for %s') % self.integration_id
+        """Return a string representation of this configuration.
+
+        Returns:
+            unicode:
+            The string representation.
+        """
+        try:
+            integration_name = self.integration.name
+        except Exception:
+            integration_name = self.integration_id
+
+        return _('%(config_name)s (%(integration_name)s)') % {
+            'config_name': self.name,
+            'integration_name': integration_name,
+        }
 
     class Meta:
         abstract = True
diff --git a/djblets/integrations/tests/test_models.py b/djblets/integrations/tests/test_models.py
index 538da56fdbeb40296335f48ae03621253a7455c3..14284d6937b4ee90ba3b29d972fccc6a1a8cc4b1 100644
--- a/djblets/integrations/tests/test_models.py
+++ b/djblets/integrations/tests/test_models.py
@@ -1,5 +1,7 @@
 from __future__ import unicode_literals
 
+from django.utils import six
+
 from djblets.integrations.integration import Integration
 from djblets.integrations.manager import IntegrationManager
 from djblets.integrations.tests.models import IntegrationConfig
@@ -7,6 +9,8 @@ from djblets.integrations.tests.testcases import IntegrationsTestCase
 
 
 class DummyIntegration1(Integration):
+    name = 'Dummy'
+
     default_settings = {
         'foo': 'default-foo',
     }
@@ -24,7 +28,7 @@ class IntegrationConfigTests(IntegrationsTestCase):
         self.manager = IntegrationManager(IntegrationConfig)
         self.integration = \
             self.manager.register_integration_class(DummyIntegration1)
-        self.config = self.integration.create_config()
+        self.config = self.integration.create_config(name='Test Config')
         self.config.manager = self.manager
 
     def test_integration(self):
@@ -49,3 +53,15 @@ class IntegrationConfigTests(IntegrationsTestCase):
         """Testing BaseIntegrationConfig.set"""
         self.config.set('my-key', 'my-value')
         self.assertEqual(self.config.settings.get('my-key'), 'my-value')
+
+    def test_str_with_available_integration(self):
+        """Testing BaseIntegrationConfig.__str__ with available integration"""
+        self.assertEqual(six.text_type(self.config), 'Test Config (Dummy)')
+
+    def test_str_without_available_integration(self):
+        """Testing BaseIntegrationConfig.__str__ without available integration
+        """
+        self.config.integration_id = 'foo.bar.BadIntegration'
+
+        self.assertEqual(six.text_type(self.config),
+                         'Test Config (foo.bar.BadIntegration)')
