What does "cannot access" exactly mean? Do you get an error message? How do you address the payload inside your custom code?
The common way of implementation looks like this:
1. Event Type "Direct Call", Identifier "Hello_World"
2. Action "Set Variables", Custom Code, access payload via event.detail
Call the rule by issuing:
_satellite.track("Hello_World", {foo: bar});