diff --git a/organizations/templates/organizations/contact_detail.html b/organizations/templates/organizations/contact_detail.html
new file mode 100644
index 0000000000000000000000000000000000000000..a52811e18246fd8acd395f55a7c6ba06c5710227
--- /dev/null
+++ b/organizations/templates/organizations/contact_detail.html
@@ -0,0 +1,70 @@
+{% extends 'organizations/base.html' %}
+
+{% load bootstrap %}
+
+{% block pagetitle %}: Contact details{% endblock pagetitle %}
+
+{% block breadcrumb_items %}
+{{ block.super }}
+<span class="breadcrumb-item">Contacts</span>
+<span class="breadcrumb-item">{{ contact }}</span>
+{% endblock %}
+
+{% block content %}
+
+<div class="row">
+  <div class="col-12">
+    <h3 class="highlight">Contact details</h3>
+    <table class="table">
+      <tr>
+	<td>Name</td>
+	<td>{{ contact.user.last_name }}, {{ contact.get_title_display }} {{ contact.user.first_name }}</td>
+      </tr>
+      <tr>
+	<td>Email</td>
+	<td>{{ contact.user.email }}</td>
+      </tr>
+      <tr>
+	<td>Account active?</td>
+	<td>{% if contact.user.is_active %}<i class="fa fa-check-circle text-success"></i>{% else %}<i class="fa fa-times-circle text-danger"></i>{% endif %}</td>
+      </tr>
+      <tr>
+	<td>Account created</td>
+	<td>{{ contact.user.date_joined }}</td>
+      </tr>
+      <tr>
+	<td>Last login</td>
+	<td>{{ contact.user.last_login }}</td>
+      </tr>
+    </table>
+
+    <h4>Roles:</h4>
+    <table class="table">
+      <tr>
+	<th>Organization</th>
+	<th>Kind</th>
+	<th>Date from</th>
+	<th>Date until</th>
+	<th>Actions</th>
+      </tr>
+      {% for contactrole in contact.roles.all %}
+      <tr>
+	<td><a href="{{ contactrole.organization.get_absolute_url }}">{{ contactrole.organization }}</a></td>
+	<td>{{ contactrole.get_kind_display }}</td>
+	<td>{{ contactrole.date_from|date:"Y-m-d" }}</td>
+	<td>{{ contactrole.date_until|date:"Y-m-d" }}</td>
+	<td>
+	  <ul class="list-unstyled">
+	    {% if perms.scipost.can_manage_organizations %}
+	    <li><a href="{% url 'organizations:contactrole_update' pk=contactrole.id %}"><span class="text-warning">Update</span></a></li>
+	    <li><a href="{% url 'organizations:contactrole_delete' pk=contactrole.id %}"><span class="text-danger">Delete</span></a></li>
+	    {% endif %}
+	  </ul>
+	</td>
+      </tr>
+      {% endfor %}
+    </table>
+  </div>
+</div>
+
+{% endblock content %}
diff --git a/organizations/templates/organizations/dashboard.html b/organizations/templates/organizations/dashboard.html
index 002c8ce725edf1d1fe8eeb64d1448139fae3c40b..50201f2bc1a5cbdd2a222a361ad23c5bb0a98507 100644
--- a/organizations/templates/organizations/dashboard.html
+++ b/organizations/templates/organizations/dashboard.html
@@ -189,7 +189,7 @@ $(document).ready(function($) {
 	  <tbody>
 	    {% for contact in contacts %}
 	    <tr>
-	      <td>{{ contact }}</td>
+	      <td><a href="{% url 'organizations:contact_details' pk=contact.id %}">{{ contact }}</a></td>
 	      <td>
 		<ul class="list-group list-group-flush">
 		  {% for role in contact.roles.all %}
diff --git a/organizations/urls.py b/organizations/urls.py
index d12d9d3a45c4f3f508735df89831908fad52c0ab..b3f5802083ecca92580f3d4c363ed24ec6a6a73e 100644
--- a/organizations/urls.py
+++ b/organizations/urls.py
@@ -98,6 +98,10 @@ urlpatterns = [
         views.dashboard,
         name='dashboard'
     ),
+    url(r'^contact/(?P<pk>[0-9]+)/$',
+        views.ContactDetailView.as_view(),
+        name='contact_details'
+    ),
     url(
         r'^contactrole/(?P<pk>[0-9]+)/update/$',
         views.ContactRoleUpdateView.as_view(),
diff --git a/organizations/views.py b/organizations/views.py
index d9508050768f7dbbe10cb571a367ae66bce03a72..6c42297b809218358504dfdd9f794cc9238f6109 100644
--- a/organizations/views.py
+++ b/organizations/views.py
@@ -330,6 +330,14 @@ def dashboard(request):
     return render(request, 'organizations/dashboard.html', context)
 
 
+class ContactDetailView(PermissionsMixin, DetailView):
+    """
+    View details of a Contact. Accessible to Admin.
+    """
+    permission_required = 'scipost.can_manage_organizations'
+    model = Contact
+
+
 class ContactRoleUpdateView(UserPassesTestMixin,  UpdateView):
     """
     Update a ContactRole.