I'm learning how the nRF cloud works and can't understand how the message flow is supposed to happen.
Devices send MQTT messages to nordic broker and then what?
I found the ListMessages API call, but it seams very ineffective if I should poll that call constantly to see if my devices have any data to report.
Can I use web-hooks to relay MQTT messages my app?
How have you solved this and how is it intended to work?
See https://docs.nrfcloud.com/Guides/Messages/SetupMessageBridge. That should do what you need. We currently do not support Webhooks.