Authenticating end users in messaging for the Web Widget and mobile SDK

Return to top

74 Comments

  • Justin DoCanto

    Having an issue implementing authentication with this.

    First, I embedded the script (actual key substituted with SECRETKEY)

    <script id="ze-snippet" src="https://static.zdassets.com/ekr/snippet.js?key=SECRETKEY"></script>

    Next, I generated the JWT with the user scope, external_id, etc., and verified the payload and encryption type using JWT.io. No problem there.

    However, now that I look at it, I'm getting this error regardless of whether I'm trying to authenticate users or not. No matter what, the widget loads, but i get this.

    Error: Method webWidget:on.open does not exist.

    Check out the Developer API docs to make sure you're implementing it correctly, https://developer.zendesk.com/embeddables/docs/zendesk-sdk-for-web/getting_started

    Despite this error, the widget still loads, just without any sign of authentication working. So, I can't tell if that's what's stopping my JWT authorization from working or if it's something else.

    Also, Here's the code I found to authenticate. I've created a function that matches the callback to deliver the JWT token.

    zE('messenger', 'loginUser', function (callback) {  callback('new-jwt-for-user');});
     
    It feels like I'm somehow missing something or using the wrong combinations of widgets and authentication? Would love some insight or better samples as the helpdesk info on authenticating users is incredibly segmented amongst 10+ articles with no all-in-one code sample
     
     
    3
  • Ovidiu Varo

    Hi,

    We seen another issue happening on some Samsung devices.

    We integrated Zendesk SDK (the new one) and using multiple features from the SDK: initialize, loginUser, logoutUser, unreadMessageCount and the ZendeskEventListener for unreadMessageCountChanged.

    So, basically we saw a white screen when opening the chat on some Android (Samsung) devices. Clearing the cache fixes this issue, but when logging out and logging in again the issue persists.

     

    How can we solve this?

     

    Regards,

    Ovidiu

    0
  • Mick O'Donnell
    Zendesk Product Manager

    Hi Justin,

    This is likely to be an issue with your integration, as I don't believe we've any known issues of this nature on the Web Widget. Do you mind opening a Support ticket at support.zendesk.com please (Messaging icon in the lower right corner), and we'll assist you with this issue.

    -2
  • Justin DoCanto

    Hi Mick

    Considering the console error I mentioned shows up even when there is nothing but the code I'm provided by Zendesk to install the messaging widget, and the console error is provided by Zendesk code, I completely disagree.

    That said, I submitted a ticket. Hopefully, they can be more helpful. Thanks

    0
  • Joshua Lam

    Hi,

    Will subsequent calls to loginUser update the end user profile name?

    Ex.
    If we call loginUser when we have an external_id, but no name/email, will another call to loginUser (once we have those details) update the end user profile on Zendesk with that name and email? Or will the user still be something like "iOS User {external_id}"?

    0
  • moment long

    Zendesk messaging I see doesn't have as many callbacks for us to use as the classic version does.
    How do I know when the exp is about to expire and re-call the loginUser APi?
    Using a timer to keep track and then calling loginUser is a bad solution

    1
  • Santiago Gandolfo
    Community Moderator

    Hi Prakruti Hindia,

    Has the new fix that you mentioned made it so that when the user sends a message from the widget and their external_id is set in the JWT, if there already existed a user with that same external_id then it wouldn't create a new one and instead asign that ticket to that "old" user?

    Cheers,

    Santiago

    4
  • Lucas Silva

    Hi Prakruti Hindia
    When a user sends a widget message and its external_id is set by a JWT authentication, if there is already a user with the same external_id in the base (in the case of a base import, for example), will the application create a new user instead of linking it to the existing one?

    3
  • Piotr Jaworski

    So I've implemented the backend functionality to provide a signed JWT to the client part of the application, then I use the Web Widget API (https://developer.zendesk.com/documentation/zendesk-web-widget-sdks/sdks/web/sdk_api_reference/?_ga=2.111275911.280573301.1649945109-889103865.1649945109#authentication) to log the user in, after which in the response I can see that the JWT was successfully decoded. Yet, the `name` and `email` don't get pre-filled in the chat - should I somehow retrieve the users' Zendesk ID in our client application and add it to the JWT? I'd assume that this is the role of the Web Widget API... What might I be doing wrong there?

    0
  • Don Pham

    Hi Zendesk team,

    I using widget classic and facing this issue when I called API: https://id.zopim.com/authenticated/web/jwt and I got this error: "error fetching shared secret"

    I generated SHARED_KEY  in https://textback.zendesk.com/admin/account/security/end_users#messaging . Its right?

     

    0
  • Danny Larsen

    Did anyone solve the issue with not linking users?

    We are also trying to create users via the APi with email and external_id and then identify them via a JWT token. But that just creates a new user without the external_id.

    Pretty useless without this.

    1
  • Ken Millar

    Danny Larsen we haven't, and since then also moved on to a different solution.

    For us being able to link users in live support use cases to our customer base is absolutely crucial. Neither this thread nor Zendesk Support had yet provided a satisfactory answer to even whether the fact Zendesk Messaging creates duplicate users with not even the external ID but also the same email address is known behaviour, a bug of Zendesk, or should not happen and we were doing something wrong.

    The only feedback so far is that users will be "merged" as soon as the improvement goes live, with no further information on what this means in terms of data conflict resolution, etc.

    It's disappointing there is such a lack of transparency for what probably comes down to the main use case of this feature for most people.

    1
  • Prakruti Hindia
    Zendesk Product Manager

    Has the new fix that you mentioned made it so that when the user sends a message from the widget and their external_id is set in the JWT, if there already existed a user with that same external_id then it wouldn't create a new one and instead asign that ticket to that "old" user?

    Hi Santiago, this will be rolled out in early May. 

    - Prakruti

    1
  • Prakruti Hindia
    Zendesk Product Manager

    Hi all, 

    Wanted to drop an update and provide more information on the upcoming fix (early May). Currently, the external id is surfaced on hover over the authentication badge. With the fix, the external id will be surfaced against the external id field in the user profile. If there is an existing user with the same external id as provided via API, the messaging ticket will reference the existing user. 

    We will be adding details on conflict resolution to this article once it is rolled out. 

    - Prakruti

    2
  • Zakhar

    Hello, Prakruti Hindia
    Just wanted to inquire about `external_id` `JWT` issue.
    Upcoming fix planned to early May - was it rolled out? 
    Or, when can we expect it?

    2
  • Santiago Gandolfo
    Community Moderator

    Hi Prakruti Hindia, has the external_id fix been postponed?

    Cheers!

    1
  • Amy Spagnolo

    +1 on the above, any news? It is causing a very bad experience for our customers and we're getting complaints because we don't auto auth through the widget. 

    0
  • Prakruti Hindia
    Zendesk Product Manager

    Hi everyone, 

    Apologies for the late response. I was hoping my next update would be a positive one. Unfortunately, it is taking longer than expected to roll out external id in user profile. I will update this thread in a few days with target rollout timeline. 

    Currently, external id is displayed on hover over the authenticated badge - https://support.zendesk.com/hc/en-us/articles/4411666638746/comments/4433112143130. (For new followers / readers of this post)

    - Prakruti

    0
  • Ahmed Ur Rehman

    https://support.zendesk.com/hc/en-us/community/posts/4640250446362-401-Unauthorized-Login-via-Messaging-SDK

    Receiving 401 Unauthorised error when attempting \

    Zendesk.loginUser(JWT, callback, failure)
    0
  • Mick O'Donnell
    Zendesk Product Manager

    Hi Ahmed,

    Thanks for writing in! I've replied on the post that you have linked to.

    0
  • Shayan Moussawi

    Hello Prakruti Hindia

    Do you have a target rollout timeline for associating authenticated end users with already created end users via the external ID?

    This is really a key feature, without it, authentication kind of seems pointless, as all Tickets created with authentication will not be properly linked to the end-user with contextual information etc. 

     

     

    3
  • Zakhar

    Hello,

    Prakruti Hindia, is there any update on the fix rollout time? 

    We ve prepared a feature within our App, that is blocked by the fix - we are waiting for it.

     

    1
  • anna.kalinichenko

    Hi Prakruti Hindia

    I'm joining all the previous inquiries on the date of the fix. I would appreciate knowing at least if this isn't something that's going to happen this month, so that we wouldn't wait in vain and move to another solution.

    Thanks

    0
  • Francis Morissette

    Prakruti Hindia

    It seems that the email is not carried over from the JWT to the created profile when Messaging with authentication is enabled. The external_id does show, but the email is not added to contacts, AND it creates a duplicate user instead of using the user with the same email that already exists. See ticket ID #10490436

    1
  • Prakruti Hindia
    Zendesk Product Manager

    Hi folks,

    Wanted to drop a general update for associating external id with user profile and connecting messaging conversations to users based on it.  This is our top priority and we are working on it. It is taking longer than expected. We understand it is critical to your workflows. I will drop an update soon with our new timelines. 

    - Prakruti

    1
  • Ran Geller

    After implementing end-user authentication, we experience the same situation - the end-user email is not captured.

    It is annoying as it is impossible to switch from messaging to email and have unread messages automatically emailed when the end-user leaves the messaging session.

    To overcome this, we configured the external_id to have the email, and the agent must copy it when hovering over the authentication badge and then update it in the end-user profile. 

    What is the ETA for removing this limitation?

     

     

     

     

     

    1
  • Zakhar

    Hello Prakruti Hindia,
    Could you please share us with updates if they are since latest news at June 15.


    2
  • Zakhar

    Hello, Prakruti Hindia

    Could you please share any news about the issue and it's resolution? 
    It's already 3 weeks passed since latest updated. 
    We are blocked waiting for the fix.

    4
  • Prakruti Hindia
    Zendesk Product Manager

    Hi everyone,

    Thank you for your patience. As I mentioned earlier, we have prioritised support for external id, which will associate external id with user profile and connecting messaging conversations to users based on it.  We are targeting early Aug for the rollout. This will not include support for email. I will provide an update on email at later date. 

    - Prakruti

    2
  • Carlton Jester

    We're not even seeing the badge. Login is returning success with a correct externalId value on the swift object, but I don't see the badge in the dashboard anywhere.

    0

Please sign in to leave a comment.

Powered by Zendesk