Web Messaging SDK guestAttributes not persisting for authenticated users

Hey folks,

I’m hitting a wall with the Genesys Cloud Web Messaging widget. We’re trying to pass custom guestAttributes to identify authenticated users before they start chatting. The goal is to pre-populate the conversation so the agent knows who is calling without asking for their name again. It feels like a straightforward setup, but the attributes just aren’t sticking.

I’m using the genesys-cloud-messenger-web-sdk in a React app. Here’s how I’m initializing the widget:

import { MessengerWebSDK } from '@genesys/web-messaging-sdk';

const initMessenger = async () => {
 const sdk = new MessengerWebSDK({
 organizationId: 'our-org-id',
 deploymentId: 'our-deployment-id',
 guestAttributes: {
 userId: 'user-12345',
 email: 'user@example.com',
 tier: 'gold'
 }
 });
 
 await sdk.init();
};

The widget loads fine. I see the chat bubble. When I open the chat and send a message, the conversation starts in Genesys Cloud. I can see it in the admin UI. But when I look at the guest profile or the conversation details in the API response, those guestAttributes are completely missing. The userId is just a random UUID generated by the SDK.

I’ve checked the Network tab. The initial POST to /api/v2/conversations/messaging/ includes the guestAttributes in the payload. It looks correct there. But the subsequent PUT or PATCH requests that update the guest profile don’t seem to carry them over, or maybe they’re getting overwritten.

Is there a specific step I’m missing? Do I need to use the Guest API directly after init to merge these attributes? Or is this a known issue with the SDK version we’re using (1.2.0)?

Any help would be appreciated. I’ve been staring at this for two days.