diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,11 @@
 
+40000.0.1
+=========
+
+API changes:
+ * Added support for the `emoji_added` websocket event type.
+ * WEData's JSON parser now permits both null and empty channel IDs.
+
 40000.0.0
 =========
 
diff --git a/mattermost-api.cabal b/mattermost-api.cabal
--- a/mattermost-api.cabal
+++ b/mattermost-api.cabal
@@ -1,5 +1,5 @@
 name:                mattermost-api
-version:             40000.0.0
+version:             40000.0.1
 synopsis:            Client API for Mattermost chat system
 description:         Client API for Mattermost chat system
 license:             BSD3
diff --git a/src/Network/Mattermost/WebSocket/Types.hs b/src/Network/Mattermost/WebSocket/Types.hs
--- a/src/Network/Mattermost/WebSocket/Types.hs
+++ b/src/Network/Mattermost/WebSocket/Types.hs
@@ -62,6 +62,7 @@
   | WMReactionRemoved
   | WMChannelViewed
   | WMChannelUpdated
+  | WMEmojiAdded
   deriving (Read, Show, Eq, Ord)
 
 instance FromJSON WebsocketEventType where
@@ -92,6 +93,7 @@
     "preferences_deleted" -> return WMPreferenceDeleted
     "channel_viewed"     -> return WMChannelViewed
     "channel_updated"    -> return WMChannelUpdated
+    "emoji_added"        -> return WMEmojiAdded
     _                    -> fail ("Unknown websocket message: " ++ show s)
 
 instance ToJSON WebsocketEventType where
@@ -121,6 +123,7 @@
   toJSON WMAuthenticationChallenge = "authentication_challenge"
   toJSON WMChannelViewed           = "channel_viewed"
   toJSON WMChannelUpdated          = "channel_updated"
+  toJSON WMEmojiAdded              = "emoji_added"
 
 --
 
@@ -184,7 +187,7 @@
 
 instance FromJSON WEData where
   parseJSON = A.withObject "WebSocketEvent Data" $ \o -> do
-    wepChannelId          <- o .:? "channel_id"
+    wepChannelId          <- nullable (o .: "channel_id")
     wepTeamId             <- maybeFail (o .: "team_id")
     wepSenderName         <- o .:? "sender_name"
     wepUserId             <- o .:? "user_id"
