Create 1:1 chat with non-chat user

Hi!

We’re using the SendBird trail to prototype chat in an existing app. One of the features we need is to allow 1:1 chat between users. Not all users have used chat.

The problem we’re facing is that if a user tries to create a chat with another user that hasn’t been created in chat first, the latter user will not appear in the channel.

We could work around this by creating a chat account for every user, but want to make sure this won’t be included as MAU - otherwise we may exhaust our quota.

Q’s:

What is the recommended way to handle creating a channel with a user that’s not yet created in chat?
If pre-creating all users is the appropriate move, will that cause us to exhaust our MAU quota?

Thanks in advance!

@N_A,

First off, welcome to the SendBird community. I hope you’ll be able to find the answers you’re looking for.

In regards to your question, it think its important to understand first how MAU is calculated.
https://help.sendbird.com/s/article/How-is-MAU-calculated-How-are-Peak-Connections-calculated

Essentially, a user is only calculated as part of the MAU when they connect to the SendBird server during a given month. Simply “existing”, or having an ID does not require the connect event and thus does not count against your MAU.

I take this to mean that you should be creating an ID for every user, and then allowing those users to connect at a later time, if they choose. Creating the ID preemptively would allow you to create the chatrooms without concern.

I should note that in order for the user to know they’ve been added to a chat room or receive any messages, you’ll need to connect to the server which WILL cause the user to be calculated in your MAU.

To elaborate on Tyler’s response - if they are enabled for Push Notifications in your mobile application, they would know they’ve received message without needing to actually connect. Obviously, they can disable notifications, so that is not guaranteed to work.

The other technique is to set your own ‘chat user’ flag in your application. When your flag is set, you can connect to Sendbird chat in your app and get and display unread message counts, etc. You could use a webhook to capture when they are added to a channel and set your internal ‘chat user’ flag.

This would work well for a scenario where only a small percentage of users engage in chat. Until they are pulled into chat by another user, or initiate sending their own messages, they don’t connect to chat in your application. But if another user messages them, they are now considered a chat user by your system.

If a significant percentage engage in chat, it is probably better to just always connect them.

1 Like

Thanks @Tyler and @Doug_Exner

Just confirming that it looks like creating users via api does not seem to impact MAU. I was able to pre-populate tens of thousands of users this way.

Of course, once those users connect we expect to see that impact MAU… but that’s anticipated to be a fraction of the account number - and more importantly actual usage we are happy to pay for :slight_smile: