In order for Has Received Event to receive the event it needs to be reevaluated using conditional aborts. Here's a basic example of using conditional aborts:
Instead of the Can See Object task you'd have Has Received Event. Also, when you are sending the event it is looking for the object version of the parameters so you'll need to do :