diff --git a/src/bot.ts b/src/bot.ts
index 6cfa859835da50a54d4799575a18ff6d1635a58b..287e3b1a984eb4cfde4c7142e6057edb10269929 100644
--- a/src/bot.ts
+++ b/src/bot.ts
@@ -178,8 +178,6 @@ export class DiscordBot {
 
     public GetIntentFromDiscordMember(member: Discord.GuildMember | Discord.PartialUser | Discord.User,
                                       webhookID: string|null = null): Intent {
-        let intent: Intent;
-
         if (webhookID) {
             // webhookID and user IDs are the same, they are unique, so no need to prefix _webhook_
             const name = member instanceof Discord.GuildMember ? member.user.username : member.username;
@@ -188,13 +186,9 @@ export class DiscordBot {
                 throw Error("Couldn't get intent for Discord member, name was null");
             }
             // TODO: We need to sanitize name
-            intent = this.bridge.getIntentForSuffix(`${webhookID}_${Util.EscapeStringForUserId(name)}`);
-        } else {
-            intent = this.bridge.getIntentForSuffix(member.id);
+            return this.bridge.getIntentForSuffix(`${webhookID}_${Util.EscapeStringForUserId(name)}`);
         }
-
-        this.userActivity.updateUserActivity(intent.userId);
-        return intent;
+        return this.bridge.getIntentForSuffix(member.id);
     }
 
     public async init(): Promise<void> {
@@ -912,6 +906,7 @@ export class DiscordBot {
                                     msgID: string): Promise<boolean> {
         const rooms = await this.channelSync.GetRoomIdsFromChannel(chan);
         const intent = this.GetIntentFromDiscordMember(author);
+        this.userActivity.updateUserActivity(intent.userId);
 
         await Util.AsyncForEach(rooms, async (roomId) => {
             const eventId = await intent.sendEvent(roomId, {
@@ -938,6 +933,7 @@ export class DiscordBot {
         try {
             const intent = this.GetIntentFromDiscordMember(user);
             await intent.ensureRegistered();
+            this.userActivity.updateUserActivity(intent.userId);
             await Promise.all(rooms.map( async (roomId) => {
                 return intent.underlyingClient.setTyping(roomId, isTyping);
             }));
@@ -1008,6 +1004,7 @@ export class DiscordBot {
         }
         try {
             const intent = this.GetIntentFromDiscordMember(msg.author, msg.webhookID);
+            this.userActivity.updateUserActivity(intent.userId);
             // Check Attachements
             if (!editEventId) {
                 // on discord you can't edit in images, you can only edit text
@@ -1153,6 +1150,7 @@ export class DiscordBot {
             log.info(`Deleting discord msg ${storeEvent.DiscordId}`);
             const intent = this.GetIntentFromDiscordMember(msg.author, msg.webhookID);
             await intent.ensureRegistered();
+            this.userActivity.updateUserActivity(intent.userId);
             const matrixIds = storeEvent.MatrixId.split(";");
             try {
                 await intent.underlyingClient.redactEvent(matrixIds[1], matrixIds[0]);