Make the avocado crema by adding all the ingredients to a food processor. Blend until smooth and creamy then set aside in the fridge while you make the flautas.
For the flautas, heat the olive oil and butter in a medium pan over medium heat. Add the onions and cook until translucent.
Add the black beans, chipotle peppers, chili powder, cumin, salt, and water. Stir to combine then let it come to a boil.
Reduce to medium-low heat and use a potato masher or a fork to mash the black beans, leaving some chunks for texture. Let it simmer for 2-3 minutes until thickened. Stir and remove from the heat. It will thicken more as it cools.
Wrap the corn tortillas in damp paper towels and heat in the microwave for 1-2 minutes, flipping halfway through. They should be hot and pliable.
Working quickly, add 2 tbsp of black bean filling to the center of each tortilla, spreading it out in a line while leaving a bit of open space on the edges. Roll the tortilla over the bean filling, tucking it in so it's snug but not too tight. Place seam side down on a large plate or a baking sheet. While you're doing this, keep your other tortillas wrapped and covered. Once you're done rolling, place the same damp paper towels, or a new set, over the flautas to prevent them from cracking.
Heat a very thin layer of neutral oil in a large pan, just enough to cover the bottom of the pan*(see notes). Heat over medium-high heat until shimmering.
Working in batches, place the flautas seam side down in the hot oil. Cook for 2-3 minutes on both sides or until golden brown. Place them on a paper towel lined baking sheet to drain any excess oil.
Place the flautas on a serving plate and top with the avocado crema, pickled red onions, cilantro, and queso fresco.