Introducing Experience Notifications

@raftwarz I created a Notification String with the name Test1

I deleted it and tried to create it again under the same name.

Due to that, for some reason it doesn’t show up in the Created Strings anymore, but it exists, but I can’t view it.

It showed up after I created an entire new one.

1 Like

Can we expect to see some sort of:

publishNotificationAt(time: number, userId: number, userNotification: UserNotification)

Currently seems obnoxious to do something like notifying a user when their daily is ready without constantly checking their datastore (for obvious reasons nobody wants to do this.)

7 Likes

Hi @HealthyKarl, thanks for flagging this. We’ve since fixed that bug so it should work as expected now!

3 Likes

Are analytics for notifications currently broken? I’ve been waiting for data to roll in on friend invite prompts I added a while ago, but the analytics tab so far hasn’t reflected that I’ve added anything.

1 Like

It seems like sending notifications with JoinData through the OpenCloud API is broken.

POST request body:
image

Notification is sent as expected, but when pressing Join through the notif, the server that the player joins doesnt seem to have the launch data:
image

It’s just an empty string…

Hi Creators!

We’re excited to share that you can now mention users in Experience Notifications! Recipient and mentioned users must be friends in order for the recipient to be eligible to receive the notification. For more details, please see our post on this update.

Thank you.

1 Like

Hey raft, thank you for the amazing updates on this feature! I’m extremely excited to implement these into my game.

However, I can’t seem to find in the documentation or in this thread how I would be able to get a list/array of the roblox users who have opted in to notifications. I wouldn’t want to be sending notifications to users who aren’t opted in would I?

Is there a way to see check if a user is opted in?

Currently, to notify players about certain time-sensitive events, such as daily rewards, it seems necessary to run a background server to continuously scan the datastores which is very much a nuisance.

It would be incredibly beneficial if we could specify a ‘publish time’ within the payload to specify how long from now the notification should be published to the player.

If the player enters the experience within the ‘publish time’, the publishing of the notification should be cancelled.

Could look something like this:

local userNotification = {
	payload = {
		messageId = id,
		type = "MOMENT"
		publishTime = {
			Days = <number>,
			Minutes = <number>
		}
	}
}

local result = OCUserNotification.createUserNotification(recipientPlayerID, userNotification)
4 Likes

Hi Creators!

We’re excited to share that we will be relaxing the max limit of notifications to 1 per day per user for each experience. Previously, the frequency limit was 1 notification per 3 days per user for each experience. We hope this update provides you with more agency to engage and retain your users. For more details, please see our post on this update.

Thank you.

2 Likes

Did you ever figure this out or get an answer for this? I don’t want to write a system to handle it externally if there’s harsh limit.

I attempted to send notifications to 100 players at once and got throttled, however with a delay of 1 between each prompt, I haven’t ran into issues so far, and I sent about ~200.

[500]
UNEXPECTED_ERROR
Too many requests to Open Cloud.

It would still be nice if we could get an official statement though, the documentation is pretty lacking and I had to find some things out on my own
(like status code 429 meaning the user is on notification cooldown, and 400 meaning that they don’t have notifications enabled)

[429]
RESOURCE_EXHAUSTED
You can only send 1 notification per recipient every 3 days.
For testing, use the universe owner user id as recipient to skip the check.
[400]
FAILED_PRECONDITION
User XXXXXXXXX391 is not opted in to receive notifications
for your experience 5538027221.
1 Like

Unfortunately I have not been able to verify that there is or isn’t a limit. I did find out that there is no limit for sending notifications to yourself though.

2 Likes

How does one tell if someone joined from an out-of-experience notification, including the update ones, from JoinData?

What code are you using to send these notifications en-masse like that? I am wondering since the game I would like to do this on has quite a lot of players that I would have to send this out to, and I am wondering how you get a list of those users, if you aren’t using something like DataStores.

Hi Dapale there’s no limit on how many notifications you can send per week.

There are limits based on rules below though:

  1. Each recipient must be eligible to receive the notification from your experience. Otherwise an error (e.g. 400) will be returned
  2. Each recipient has per experience and aggregated daily limit. The notification won’t be delivered (returning 429 error) when limit is exceeded
  3. There’s a generic API requests per second (RPS) limit to prevent one single client from overloading the system. We don’t publish the limit but as long as you have very basic pacing (e.g. limit to <100 request per second) the requests should go through.

Rule 1 and 2 are documented here: Experience Notifications | Documentation - Roblox Creator Hub

1 Like

It’s possible to build your own notification scheduler using MemoryStore sorted maps with some creative thinking. My best guess is scheduling will release in a future version of notifications, and is why there has been no comment from Roblox on it.

1 Like

I think this won’t close at November 15th. do not worry about the end date. Roblox Studio will be so old at the end date. 2024-07-23T05:00:00Z9999-05-31T06:00:00Z. You should prepare for nofications that say that your experince is bugging. and prepare for elsewhere nofications!

Is there any chance for a proper server-sided way to determine whether a user has enabled notifications or is eligible to enable them for a particular experience? Relaying such checks on an error message in my opinion is very impractical therefore the ExperienceNotificationService should be extended to the server side.

is there a way to do something like this? I’m trying to make a daily reminder but I don’t see how I could make it

-- So my username is constantly filtered out meaning that any notifications that relate to me will just automatically fail to send–why does this work like this at all?? I thought the whole point of inputting userIds instead of usernames as strings was to prevent exactly this issue from occurring. It doesn’t help that the @ probably triggers some filter against social media handles.


image
image
image

2 Likes