Using restricted Help Center content with the Web Widget

Have more questions? Submit a request


  • Sean O'Hara

    This is amazing! Extremely helpful!!!

  • Atif Ehsan

    This is very helpful. Thanks!!

    However, we have a couple of questions and it would be great to get some clarity. We have a restricted Help Center (requires sign-in) and have followed all of the above instructions. The help content shows up in the web widget window in our platform.  However, when we click on "view original content" button, it opens a new page and still asks the user to sign-in.

    1. Are we missing something? Wasn't the updated widget with the shared secret snippet supposed to take care of this by authenticating the user from web widget, to see the content online?

    2. Will "Whitelisted Domains" setting help? We tried but it seemed not to.

    (apologies for the novice questions but what we are trying to do is not have a public Help Center but have our platform users access the help center from within the system via web widget)

  • Atif Ehsan

    Hi - any help regarding above comment? Thanks!

  • Eric Nelson

    Hey Atif, 

    I'm going to move this into a ticket for you since we have to go through some account specific info with you to troubleshoot. I'll see you in the ticket shortly! 

  • Michael Thomas


     I have this implemented nicely on our companies platform however I seem to have an issue. I am working on re-authenticating a user on our platform while they stay logged in but your widget seems to not support this? The advice for removing the restricted article access authentication is to call zE.logout() but there is not the relevent zE.login() function to enable access. I am wondering if it is intended to only reset the window.zESettings with a new JWT token to reauthenticate? Note that this is only for a repeat authentication and not the initial one while also not logging out of our platform.

    Thank you.

  • Erica Wass

    Michael: I see you have a ticket for this so I'll reach out there for some additional details on what you are seeing. 

  • Edgar Cruzado

    Hi Erica, I am working on the same functionality as Michael, what was the final answer?

  • Erica Wass

    @Edgar, please contact and our advocacy team should be able to assist you. Thanks!

  • Hoff Ho

    I have the following piece of code which works perfectly in Chrome but not IE 11:

    <script type="text/javaScript">window.zESettings = {webWidget: {authenticate: {jwt: <?php echo json_encode($wsstoken); ?>}, helpCenter: {suppress: false, filter: {category: '200322819-Practice'}}}};</script>

    I have a valid $wsstoken, and the category '200322819-Practice' has restricted access hence the JWT required. The behaviour in IE as if the JWT authentication does not work. FYI I have also tested the filter of a category which does not have restricted access and that worked as expected.

    Do you have any suggestion on how to get this to work in IE 11?

  • 黄明就


    var payload = {
    iat: new Date().getTime(),
    jti: uuid.v4(),
    name: username,
    email: username + ''
    var token = jwt.sign(payload, config.zendesk_end_user_login_share_key)


    window.zESettings = {
    webWidget: {
    authenticate: { jwt: getCookie('zendesk_jwt') },
    offset: { horizontal: '0px', vertical: '0px' },
    contactOptions: {
    enabled: true,
    contactButton: {'zh': '聯繫我們'}

    browser result:

    Invalid message(s): * Could not be verified



    About this jwt, i can login about this

  • Garrick Rohm

    Hi 黄明就,

    My name is Garrick - I'm a member of our Tier 3 Support Architect team and I'm here to help! Since this appears to be an issue with your specific implementation, I'm going to reach out to you via a Ticket for us to troubleshoot the issue. I'll be in touch shortly.

  • Vahid Kowsari

    We seem to have the same problem as 黄明就. I always get could not be verified. Can this token be the same JWT token as we generate for the Guide authentication?

  • Alexander Popa

    Hi Vahid!

    The JWT token would need to be different compared to the one used to authenticate against  Guide via the SSO integration. I hope this helps!

  • Vahid Kowsari

    Hi Alexander,

    So we do generate a different token each time for SSO and for the guide, what I meant was that it is the same algorithm and the same parameters. We are using the same algorithm and get Could not be verified. Is there anyway to debug this?

  • Vahid Kowsari

    Actually I realized that the shared secret was different between the SSO token and the web widget token. You must use the appropriate shared secret for each.

  • Javier Abadía

    We show help center content in the web widget, but the images are not shown if the user is not logged in the zendesk site (we have SSO configured).

    If end-user clicks on "view original article" then SSO happens, the user is logged in and from that moment on, all images part of help content are correctly displayed.

    What is the correct way to SSO authenticate the user with help center so that images are correctly displayed IN the widget?


  • Jessie Schutz

    Hi Javier! Welcome to the Community!

    I'm going to check on this for you, because I'm not totally sure of the answer. Stand by!

  • Diogo Maciel

    Hi Javier!


    Please send an email to with more details about your scenario, as we will need to investigate your account to understand better the desired outcome. Thank you!

  • Javier Abadía

    just did... thanks!

  • Zach Boone


    I am trying to configure a web widget for a restricted help center.  Ideally I need to be able to test the web widget while running my application from localhost.  I added localhost to this list of whitelisted domains, but while running the application from localhost I only see the contact form and not the articles from the help center.  However, when running the application from our dev url that is also whitelisted I get the articles to appear.  Any help would be appreciated.

  • Krassmann, Konstantin - COREDINATE DE-UFF

    I want the widget to be loaded on demand, not just everytime the user enters the page. 

    There are two cents: 
    - Trying to load the script with $.getScript (for example) throws

    Error: Key is missing from snippet
    at new e (asset_composer.fb4a55c4f794453a91d7.js:1)
    at asset_composer.fb4a55c4f794453a91d7.js:1
    at f (asset_composer.fb4a55c4f794453a91d7.js:1)

    Solution: Dont forget to set the ID of the inserted script Tag ("ze-snippet")

    var s,
    r = false;
    s = document.createElement('script');"ze-snippet";
    var head = document.getElementsByTagName("head")[0];
    s.type = 'text/javascript';
    s.src = <your url with key>;

  • Ross Tollefson

    There's something in here that may be confusing people.

    The shared secret generated at Settings -> Widget -> Security Settings -> Configure looks like a hexadecimal number but it isn't. It's just a regular string that should be parsed into bytes as UTF-8 before being passed to the SHA256 algorithm.

    The fact that it only uses hexadecimal characters makes it look like it should be parsed as a hexadecimal number. I spent a day doing that and getting the "* Could not be verified" 400 error before figuring out what the issue was. The documentation above really should clarify this.

  • Debbie Guskin

    We have "anybody can submit tickets" disabled in our Support->Customers settings, which means people need to login in order to submit a ticket. Can we use this Shared Secret + JWT option to allow ticket submission from the Web Widget? We had to disable this feature in our widget because it did not work with our closed Zendesk.

  • Brett - Community Manager

    Hi Debbie,

    I reached out to our team internally and it looks like authenticated ticket submission is not yet supported but it's on the roadmap. That being said, it may be possible to still set this up, however, unauthenticated users would still see the contact form within the widget. They just wouldn't be able to actually submit the ticket unless they were authenticated.

    Hope this information helps!

  • Matthew King

    Is it possible to use a wildcard for the subdomain? for example a typical SaaS (including zendesk) might use, so id like to whitelist *

  • Devan La Spisa

    Hello Mathew,

    This is something that isn't within the capabilities of the base program. I've gone ahead and linked an article below that going into further detail on renaming you subdomain in case you have any other question on the topic.  

    Renaming Your Subdomain 


Please sign in to leave a comment.

Powered by Zendesk