Honestly, just bot smart and DON'T be greedy.
I've been botting for over 2 years already and I haven't been caught once. Try to be online for the same amount of time everyday. I would highly recommend to not be fully AFK either as responding to whispers can actually seem as if you're playing. I like to occasionally talk in my guild while the bot is playing for me, so it seems that I'm actually playing the game.
Also, try to do the same things everyday, Blizzard researches what you do before they ban you, but your worst enemies are other WoW players, they are quick to report without asking questions.
And by "not being greedy" I mean that if you're getting away with honor farming or any other type of farming, stick with that, don't start branching off into different areas with different bots as that raises red flags.
Botting is all about being smart nowadays since so many people began to bot.