Add external user ID to OneSignal

In order to be able to send transactional, or user-specific notifications to your users, you will need a way to identify which device belongs to each which user.

The nativeFunctions.onesignalSetExternalUserId() function allows you to assign a custom ID to the device in OneSignal, which can be the same ID used on your website to identify users, making it very easy for you to know to whom a specific device belongs, and allowing you to send user-specific notifications to that user.

We recommend triggering this function whenever you perform a check to see if the user is logged-in, so you can assign his user ID to OneSignal accordingly, here is an example of how to implement the Javascript code:

<script type="text/javascript">
    // Listen to events
    window.addEventListener("message", (event) => {
        runNativeFunctions(event);
    }, false);

    // Get the user ID
    var userId = "1";

    // Function that runs when the event is triggered
    function runNativeFunctions(event) {
        try {

            // Check if the native functions are ready to be used
            if (event.data && event.data == 'nativeFunctionsLoaded') {
                // Native function can be called here
                nativeFunctions.onesignalSetExternalUserId($userId);
            }

        } catch (ex) {
            // Log any error messages for easier debugging
            console.log(ex.message;);
        }
    }
</script>

OneSignal has a nice guide with more details on how to send those push notifications using the OneSignal REST API, you can find it here: https://documentation.onesignal.com/docs/transactional-messages

Did this answer your question?
😞
😐
🤩