diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java
index f1b2915..cea53e5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java
@@ -21,6 +21,8 @@
 import com.google.gerrit.extensions.common.AccountInfo;
 import com.google.gerrit.extensions.common.ApprovalInfo;
 import com.google.gerrit.extensions.common.ChangeInfo;
+import com.google.gerrit.reviewdb.client.Account;
+import com.google.gerrit.server.IdentifiedUser;
 import com.google.gerrit.server.config.SitePaths;
 import com.google.gerrit.server.git.GitRepositoryManager;
 import com.google.inject.Provider;
@@ -29,7 +31,7 @@
 import java.util.Map;
 
 class HookArgs {
-  final String anonymousCowardName;
+  final IdentifiedUser.GenericFactory identifiedUserFactory;
   final Provider<String> urlProvider;
   final HookMetrics metrics;
   final GitRepositoryManager gitManager;
@@ -38,12 +40,12 @@
   private final List<String> args;
 
   HookArgs(
-      String anonymousCowardName,
+      IdentifiedUser.GenericFactory identifiedUserFactory,
       Provider<String> urlProvider,
       HookMetrics metrics,
       GitRepositoryManager gitManager,
       SitePaths sitePaths) {
-    this.anonymousCowardName = anonymousCowardName;
+    this.identifiedUserFactory = identifiedUserFactory;
     this.urlProvider = urlProvider;
     this.metrics = metrics;
     this.gitManager = gitManager;
@@ -113,10 +115,6 @@
   }
 
   private String format(AccountInfo account) {
-    StringBuilder who = new StringBuilder(firstNonNull(account.name, anonymousCowardName));
-    if (account.email != null) {
-      who.append(" (").append(account.email).append(")");
-    }
-    return who.toString();
+    return identifiedUserFactory.create(new Account.Id(account._accountId)).getNameEmail();
   }
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java
index be08977..2969358 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java
@@ -17,7 +17,7 @@
 import static com.google.common.base.MoreObjects.firstNonNull;
 
 import com.google.gerrit.common.Nullable;
-import com.google.gerrit.server.config.AnonymousCowardName;
+import com.google.gerrit.server.IdentifiedUser;
 import com.google.gerrit.server.config.CanonicalWebUrl;
 import com.google.gerrit.server.config.GerritServerConfig;
 import com.google.gerrit.server.config.SitePaths;
@@ -34,7 +34,7 @@
   private final HookQueue queue;
   private final HookExecutor syncHookExecutor;
   private final Config config;
-  private final String anonymousCowardName;
+  private final IdentifiedUser.GenericFactory identifiedUserFactory;
   private final HookMetrics metrics;
   private final Provider<String> urlProvider;
   private final Path hooksPath;
@@ -46,7 +46,7 @@
       HookQueue queue,
       HookExecutor syncHookExecutor,
       @GerritServerConfig Config config,
-      @AnonymousCowardName String anonymousCowardName,
+      IdentifiedUser.GenericFactory identifiedUserFactory,
       @CanonicalWebUrl @Nullable Provider<String> urlProvider,
       HookMetrics metrics,
       SitePaths sitePaths,
@@ -54,7 +54,7 @@
     this.queue = queue;
     this.syncHookExecutor = syncHookExecutor;
     this.config = config;
-    this.anonymousCowardName = anonymousCowardName;
+    this.identifiedUserFactory = identifiedUserFactory;
     this.metrics = metrics;
     this.urlProvider = urlProvider;
     this.gitManager = gitManager;
@@ -82,6 +82,6 @@
   }
 
   public HookArgs createArgs() {
-    return new HookArgs(anonymousCowardName, urlProvider, metrics, gitManager, sitePaths);
+    return new HookArgs(identifiedUserFactory, urlProvider, metrics, gitManager, sitePaths);
   }
 }
