Thanks for the feedback.
1. You have to build an endpoint and process the inbound requests, that takes a good deal more engineering time than making an api call to check for them.
2. This gets complex when you're sending messages to users in the context of groups an individuals. it's not a big problem but you'd still have to code it.
3. That sounds simple but doesn't account for things like timezones.