docs: def rtm_handler(self, ws_message):
          """
          Handle a message, processing it internally if required. If it's a message that should go outside the bot,
          this function will return True
  
          :param message:
          :return: Boolean if message should be yielded
          """
          message = json.loads(ws_message.data)
          if 'reply_to' in message:
              reply_to = message['reply_to']
              future = self.response_futures.pop(reply_to, None)
              if future is None:
                  logger.error(f'This should not happen, received reply to unknown message! {message}')
                  return None
              future.set_result(message)
              return None
          if 'type' not in message:
              logger.error(f'No idea what this could be {message}')
              return
          message_type = message['type']
  
          if hasattr(self, f'handle_{message_type}'):
              function = getattr(self, f'handle_{message_type}')
              return function(message)
  
          if message_type in self.SLACK_RTM_EVENTS:
              logger.debug(f'Unhandled {message_type}. {message}')
          else:
              logger.warning(f'Unknown {message_type}. {message}')
          return message