Heat a Dutch oven over medium heat. Add the olive oil and heat through then add the shallots to the pot. Sauté the shallots until golden brown, about 6 to 8 minutes. Add garlic and sauté just until fragrant.
Add the beans, broth and red pepper flakes and bring to a boil over medium heat. Lower heat to medium-low and simmer, stirring occasionally, until the beans start to fall apart, about 15 to 20 minutes. Season with salt and let the soup cool slightly.
Either add the soup to a blender or use an immersion blender to puree the soup until completely smooth.
Make the gremolata
In a small bowl stir together the garlic, lemon zest, parsley and olive oil until combined. Set aside until ready to use.
Assemble and serve
Ladle the soup into serving bowls and serve drizzled with the gremolata. Serve hot.