diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,10 @@
 
+50200.7.0
+=========
+
+ * Added `mmUpdateChannelNotifications` and fixed the JSON encoding of
+   the `ChannelNotifyProps` type.
+
 50200.6.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:             50200.6.0
+version:             50200.7.0
 synopsis:            Client API for Mattermost chat system
 
 description:         Client API for Mattermost chat system.  Mattermost is a
diff --git a/src/Network/Mattermost/Endpoints.hs b/src/Network/Mattermost/Endpoints.hs
--- a/src/Network/Mattermost/Endpoints.hs
+++ b/src/Network/Mattermost/Endpoints.hs
@@ -166,14 +166,13 @@
 mmGetChannelStatistics channelId =
   inGet (printf "/channels/%s/stats" channelId) noBody jsonResponse
 
--- -- | Update a user's notification properties for a channel. Only the
--- --   provided fields are updated.
--- --
--- --   /Permissions/: Must be logged in as the user or have
--- --   @edit_other_users@ permission.
--- mmUpdateChannelNotifications :: ChannelId -> UserId -> XX17 -> Session -> IO ()
--- mmUpdateChannelNotifications channelId userId body =
---   inPut (printf "/channels/%s/members/%s/notify_props" channelId userId) (jsonBody body) jsonResponse
+-- | Update a user's notification properties for a channel.
+--
+--   /Permissions/: Must be logged in as the user or have
+--   @edit_other_users@ permission.
+mmUpdateChannelNotifications :: ChannelId -> UserId -> ChannelNotifyProps -> Session -> IO ()
+mmUpdateChannelNotifications channelId userId body =
+  inPut (printf "/channels/%s/members/%s/notify_props" channelId userId) (jsonBody body) noResponse
 
 -- | Add a user to the channel.
 mmAddUser :: ChannelId -> MinChannelMember -> Session -> IO ChannelMember
@@ -3304,28 +3303,6 @@
     [ "client_ids" A..= uploadResponseClientIds
     , "file_infos" A..= uploadResponseFileInfos
     ]
-
--- --
-
--- --
-
--- data XX17 = XX17
---   { xx17MarkUnread :: Text
---   , xx17Desktop :: Text
---     -- ^ Controls when to send desktop notifications. The possible options are `default`, `all`, `mention`, `none`
---   } deriving (Read, Show, Eq)
-
--- instance A.FromJSON XX17 where
---   parseJSON = A.withObject "xx17" $ \v -> do
---     xx17MarkUnread <- v A..: "mark_unread"
---     xx17Desktop <- v A..: "desktop"
---     return XX17 { .. }
-
--- instance A.ToJSON XX17 where
---   toJSON XX17 { .. } = A.object
---     [ "mark_unread" A..= xx17MarkUnread
---     , "desktop" A..= xx17Desktop
---     ]
 
 -- --
 
diff --git a/src/Network/Mattermost/Types.hs b/src/Network/Mattermost/Types.hs
--- a/src/Network/Mattermost/Types.hs
+++ b/src/Network/Mattermost/Types.hs
@@ -408,7 +408,7 @@
     , "push"                    .= channelNotifyPropsPush
     , "desktop"                 .= channelNotifyPropsDesktop
     , "mark_unread"             .= channelNotifyPropsMarkUnread
-    , "ignore_channel_mentions" .= channelNotifyPropsIgnoreChannelMentions
+    , "ignore_channel_mentions" .= fmap OnOffString channelNotifyPropsIgnoreChannelMentions
     ]
 
 --
