I have created a Rest Service which accepts incoming Webhooks from Concur to notify Salesforce an Expense Report is ready. I am then using a Callout Class to fetch the Expense Report details from Concur and insert them in Salesforce I cannot include authentication details in the Webhook so the incoming requests are orginating from from the Site's Guest user.

Initially I built the Callout Class using hardcoded values for the credentials - Password & Client Secret. I was able to send a Webhook, fetch the details and create the records.

I wanted to harden the process so I moved the sensitive information to a Named Credential with the Keys and Password assigned to Principals in the External Credential. This works when I execute it locally with my user, but not when I submit a Webhook. In the debug log i receive the error "You might not have the required permissions, or the named credential "ConcurNC"" I confirmed the Guest User Profile is assigned to External Credential, has API access and Access to all of the Apex Classes.
Based on the documentation this should be all that is required.

Is there a way to Change Default Guest User on the site? Is there a permission I am missing?

  • 1
    does guest user permissions include CRUD access to object UserExternalCredentials ?
    – cropredy
    Commented Apr 12 at 3:46
  • THANK YOU! I did not even realize that was an Object. I enabled Create and Read and now the Guest User has access! Commented Apr 12 at 11:42

1 Answer 1


Based on the response from @cropredy I enabled Create and Read Permissons for the User External Credentials Object and the Guest User can now access the Named Credential!

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .