Think of the AI controller as the brain of the AI. The behaviour tree is the decision making component of the AI controller. So they need to feed information back and forth via the blackboard, decorators and tasks.
The blackboard is where you set data that both need to know about. Such as who is your target. The blackboard value can be updated by the AI controller, a task such as the EQS or a service (“hey brain, update this information every once in a while while I’m in this part of the tree”).
A decorator can be based on a blackboard - such as do I have a target. It can also be a call to the AI controller of “hey brain, can I do this thing?”
A task is an action. It can be action that does a thing like running the EQS to find a target or to move to the target. Or it can be telling the AI controller to attack this target - you can send the task the blackboard key with the target. It’s basically “hey brain, I’ve decided we should do this action.”
Epic has a good guide in how to create these things and communication back and forth: https://docs.unrealengine.com/latest/INT/Engine/AI/BehaviorTrees/QuickStart/index.html