There are two ways of doing this (may be more but these are the two I know off):
Using the messaging service API which is part of the OpenCloud
Long Polling
Messaging Service API
The messaging service API is an API which is part of the OpenCloud which Roblox has. The messaging service has one endpoint at the moment that allows you to do what :PublishAsync allows you to do in the normal messaging service in an experience but allows you to do it externally. You would just then simply just use the :SubscribeAsync like you normally do in the messaging service.
I have both created a DevFourm tutorial but also a YouTube video explaining how to use it which I will link below if you wish to see how to use them.
Long Polling
Long polling is a method which works like sending normal requests but rather then the normal way of sending a request and then getting a response right away, it keeps the request open which allows you to return when you want somthing to happen in-game. I personally do not recommend this method because it can cause the action to be slower and also in general is not the best compared to the OpenCloud.
Below I will leave a DevFourm post which was made explaining a bit about Long Polling and a module/code which someone made (again I don’t super recommend long polling much compared to the OpenCloud messaging service API).