diff --git a/slack-web.cabal b/slack-web.cabal
--- a/slack-web.cabal
+++ b/slack-web.cabal
@@ -1,5 +1,5 @@
 name: slack-web
-version: 0.2.0.11
+version: 0.2.0.12
 
 build-type: Simple
 cabal-version: 1.20
@@ -45,7 +45,7 @@
       Web.Slack.Util
   build-depends:
       aeson >= 1.0 && < 1.5
-    , base >= 4.11 && < 4.13
+    , base >= 4.11 && < 4.14
     , containers
     , http-api-data >= 0.3 && < 0.5
     , http-client >= 0.5 && < 0.7
@@ -58,7 +58,7 @@
     , mtl
     , time
     , errors
-    , megaparsec >= 5.0 && < 7.1
+    , megaparsec >= 5.0 && < 9
   default-language:
       Haskell2010
   ghc-options:
@@ -79,7 +79,7 @@
       Web.Slack.MessageParserSpec
       Web.Slack.Types
   build-depends:
-      base >= 4.11 && < 4.13
+      base >= 4.11 && < 4.14
     , containers
     , aeson
     , errors
@@ -87,7 +87,7 @@
     , http-api-data
     , text
     , time
-    , megaparsec >= 5.0 && < 7.1
+    , megaparsec >= 5.0 && < 9
   default-language:
     Haskell2010
   ghc-options:
diff --git a/src/Web/Slack.hs b/src/Web/Slack.hs
--- a/src/Web/Slack.hs
+++ b/src/Web/Slack.hs
@@ -31,6 +31,7 @@
   , mpimHistory
   , getUserDesc
   , usersList
+  , userLookupByEmail
   , authenticateReq
   , Response
   , HasManager(..)
@@ -196,6 +197,11 @@
     "users.list"
       :> AuthProtect "token"
       :> Post '[JSON] (ResponseJSON User.ListRsp)
+  :<|>
+    "users.lookupByEmail"
+      :> AuthProtect "token"
+      :> ReqBody '[FormUrlEncoded] User.Email
+      :> Post '[JSON] (ResponseJSON User.UserRsp)
 
 
 -- |
@@ -442,6 +448,27 @@
   :: AuthenticatedRequest (AuthProtect "token")
   -> ClientM (ResponseJSON User.ListRsp)
 
+-- |
+--
+-- This method returns a list of all users in the team.
+-- This includes deleted/deactivated users.
+--
+-- <https://api.slack.com/methods/users.lookupByEmail>
+
+userLookupByEmail
+  :: (MonadReader env m, HasManager env, HasToken env, MonadIO m)
+  => User.Email 
+  -> m (Response User.UserRsp)
+userLookupByEmail email = do
+  authR <- mkSlackAuthenticateReq
+  run (userLookupByEmail_ authR email)
+
+userLookupByEmail_
+  :: AuthenticatedRequest (AuthProtect "token")
+  -> User.Email
+  -> ClientM (ResponseJSON User.UserRsp)
+
+
 -- | Returns a function to get a username from a 'Common.UserId'.
 -- Comes in handy to use 'Web.Slack.MessageParser.messageToHtml'
 getUserDesc
@@ -521,6 +548,7 @@
   :<|> mpimList_
   :<|> mpimHistory_
   :<|> usersList_
+  :<|> userLookupByEmail_
   =
   client (Proxy :: Proxy Api)
 
diff --git a/src/Web/Slack/Chat.hs b/src/Web/Slack/Chat.hs
--- a/src/Web/Slack/Chat.hs
+++ b/src/Web/Slack/Chat.hs
@@ -71,6 +71,7 @@
     , postMsgReqParse :: Maybe Text
     , postMsgReqLinkNames :: Maybe Bool
     , postMsgReqAttachments :: Maybe Text
+    , postMsgReqBlocks :: Maybe Text
     , postMsgReqUnfurlLinks :: Maybe Bool
     , postMsgReqUnfurlMedia :: Maybe Bool
     , postMsgReqUsername :: Maybe Text
@@ -114,6 +115,7 @@
     , postMsgReqParse = Nothing
     , postMsgReqLinkNames = Nothing
     , postMsgReqAttachments = Nothing
+    , postMsgReqBlocks = Nothing
     , postMsgReqUnfurlLinks = Nothing
     , postMsgReqUnfurlMedia = Nothing
     , postMsgReqUsername = Nothing
diff --git a/src/Web/Slack/User.hs b/src/Web/Slack/User.hs
--- a/src/Web/Slack/User.hs
+++ b/src/Web/Slack/User.hs
@@ -1,6 +1,7 @@
 {-# LANGUAGE DeriveGeneric #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE OverloadedLists #-}
 
 ----------------------------------------------------------------------
 -- |
@@ -12,8 +13,11 @@
 ----------------------------------------------------------------------
 
 module Web.Slack.User
-  ( User(..)
+  ( Profile(..)
+  , User(..)
   , ListRsp(..)
+  , Email(..)
+  , UserRsp(..)
   )
   where
 
@@ -33,12 +37,41 @@
 -- time
 import Data.Time.Clock.POSIX
 
+-- http-api-data
+import Web.HttpApiData
+import Web.FormUrlEncoded
+
+-- See https://api.slack.com/types/user
+
+data Profile = 
+  Profile 
+    { profileAvatarHash :: Maybe Text
+    , profileStatusText :: Maybe Text
+    , profileStatusEmoji :: Maybe Text 
+    , profileRealName :: Maybe Text 
+    , profileDisplayName :: Maybe Text 
+    , profileRealNameNormalized :: Maybe Text 
+    , profileDisplayNameNormalized :: Maybe Text 
+    , profileEmail :: Maybe Text 
+    , profileImage_24 :: Text 
+    , profileImage_32 :: Text 
+    , profileImage_48 :: Text 
+    , profileImage_72 :: Text 
+    , profileImage_192 :: Text 
+    , profileImage_512 :: Text 
+    , profileTeam :: Maybe Text 
+    }
+  deriving (Eq, Generic, Show)
+
+$(deriveFromJSON (jsonOpts "profile") ''Profile)
+
 data User =
   User
     { userId :: UserId
     , userName :: Text
     , userDeleted :: Bool
     , userColor :: Maybe Color
+    , userProfile :: Maybe Profile
     , userIsAdmin :: Maybe Bool
     , userIsOwner :: Maybe Bool
     , userIsPrimaryOwner :: Maybe Bool
@@ -57,3 +90,17 @@
   deriving (Eq, Generic, Show)
 
 $(deriveFromJSON (jsonOpts "listRsp") ''ListRsp)
+
+
+data UserRsp =
+  UserRsp
+    { userRspUser :: User
+    }
+  deriving (Eq, Generic, Show)
+
+$(deriveFromJSON (jsonOpts "UserRsp") ''UserRsp)
+
+newtype Email = Email Text deriving (Eq, Generic, Show)
+instance ToForm Email where 
+  toForm (Email txt) = [("email", toQueryParam txt)]
+
