     :ok
   end
 
+  @new_message_timeout 1_000
   defp deliver_message(user, %{channel: nil} = message, slack) do
     "@" <> user
     |> Slack.Lookups.lookup_user_id(slack)

      user ->
        case Slack.Web.Im.open(user) do
          %{"ok" => true, "channel" => %{"id" => dm}} when is_binary(dm) ->
            deliver_message(user, Map.put(message, :dm, dm), slack)
          error ->
            Logger.warn("Unable to open direct message to #{inspect user}! API Response: #{inspect error}")
        end

    send_message("I can't find a user named `@#{user}`, can you tell me what their slack name is?", im(slack, caretaker_id).id, slack)
    {:update, user}
  end
  defp send_message_to_slack_user(slack_user_id, user, message, _caretaker_id, slack) when is_map(message) do
    message = message |> Map.merge(%{channel: Slack.Lookups.lookup_direct_message_id(slack_user_id, slack), type: "message"})

