After Boolean union operation - correcting imperfections in joined mesh?
Shading artifacts is a common problem using the Boolean workflow. Using the bevel modifier with a very small width can help mitigate the problem. After that, consider marking any edges surrounding flat surfaces as sharp.

Finally, tab into Edit Mode and look for any double vertices or incorrectly shaded n-gons and fix these issues manually. Double vertices can be merged together (try selecting one, then pressing G twice to slide it along the edge into another vertex and Merge by Distance AltM). 

Incorrectly shaded n-gons can be broken up, and you can add supporting edges for the merge point in the local geometry.