Can we transfer token once user funds into my busd wallet

Hello, I'm working on a crowdsale. and just one query comes into my mind, like I've seen people provide their busd wallet address to deposit fund in presale, and once the fund gets deposited they transfer the token.
For example:
User A transfers into Owner BUSD account through a metamask or any wallet.
Owner transfers token directly to User account.

Now if I use the solidity I've a platform to emit an event which transfers the token but it needs to be emitted by some input.

What I'm looking after is Once the user transfers fund from any wallet the token gets transferred.

Is there any way we can get the address of users who are transferring directly through the wallet rather than coming to my react app?

This can be done by listening to the deposit events in your wallet and executing a function that transfers the tokens, an oracle would be the solution to your problem. that problem has several solutions but for what you ask the one I gave you is the right one

an event listening service like that of moralis, it would be good for you

How can i listen the deposit event in my wallet? Like is there any guide to follow? Will be grateful if any resource shared