diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index cbaf83d68599cb67cdf44c53c4fc15a2cf02c604..bae988e2a6ce0fb6d11901f636f778e960005f9c 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -18,6 +18,7 @@ Changed
 ~~~~~~~
 
 * Allow disabling query caching with cachalot
+* Add invitation key to success message when a person without e-mail address is invited by id
 
 Fixed
 ~~~~~
diff --git a/aleksis/core/views.py b/aleksis/core/views.py
index fc32d75982a26e9fafbcd0f4a98e2b0569e585c4..5913f17cb139b88fe69f828bf4bcce9b5a2f5dc4 100644
--- a/aleksis/core/views.py
+++ b/aleksis/core/views.py
@@ -1458,7 +1458,21 @@ class InvitePersonByID(PermissionRequiredMixin, SingleObjectMixin, View):
             invite.save()
 
             invite.send_invitation(self.request)
-            messages.success(self.request, _("Person was invited successfully."))
+
+            if person.email:
+                messages.success(
+                    self.request,
+                    _(
+                        "Person was invited successfully and an email "
+                        "with further instructions has been send to them."
+                    ),
+                )
+            else:
+                readable_key = "-".join(wrap(key, packet_size))
+                messages.success(
+                    self.request,
+                    f"{_('Person was invited successfully. Their key is')} {readable_key}.",
+                )
         else:
             messages.success(self.request, _("Person was already invited."))