Loading
Upcoming Mandatory Changes to Public Key Infrastructure (PKI)Read More
Salesforce Enforces New Security Requirements in Summer 2026Read More
Agentforce and Einstein Generative AI
Table of Contents
Select Filters

          No results
          No results
          Here are some search tips

          Check the spelling of your keywords.
          Use more general search terms.
          Select fewer filters to broaden your search.

          Search all of Salesforce Help
          Example Implementation of a Secure Agentforce Service Agent

          Example Implementation of a Secure Agentforce Service Agent

          The details of implementing secure Agentforce Service agents vary depending on where the agent is deployed and the surrounding user authentication policies. To get a feel for the underlying patterns, let’s look at an example.

          Required Editions

          Available in: Lightning Experience
          Available in: Enterprise, Performance, Unlimited, and Developer Editions. Required add-on licenses vary by agent type.

          When your Agentforce Service agent is deployed to an Experience site, it’s sometimes necessary to reauthenticate the users interacting with your agent. In such cases, authentication within the session can be invoked.

          Users can be authenticated by providing them with a parameterized URL within the conversation. The parameterized URL should reference a secure method on the Experience Cloud portal. To prepare for external authentication before sending the parameterized URL, the MessagingSession object is configured with these custom fields.

          Field Initial Value Definition
          AuthSessionId NULL Identifies if there’s an AuthSession currently linked to this MessagingSession. This indicates whether the messaging session is authenticated.
          AuthRequestTime DateTime.Now() Stores when authentication was requested, limiting the MessagingSession from being assigned identities outside of the directed window and allowing control of the timeframe during which external authentication is allowed.
          AccountId NULL Ensures that the Account linked to the authenticated session is assigned relative to the Contact authenticated in the ExperienceCloud portal.
          ContactId NULL Ensures that the Contact linked to the authenticated session is assigned relative to the Contact authenticated in the ExperienceCloud portal.

          The Apex Method handling the parameterized URL accepts the MessagingSession.SessionKey field. This Globally Unique Identifier (GUID) is unique to MessagingSession records where Status = “Active”. This method looks up the related MessagingSession records with this query.

          SELECT Id, Conversation.ConversationIdentifier, Status, FROM MessagingSession 
          WHERE SessionKey = '1db8a0ab-aae4-4ed9-b6d5-3e7fe85b9574' AND Status = 'Active' 
          AND AuthSessionId__c = NULL 
          

          If this query returns a record, that record represents a conversation with an Agentforce Service agent where the user has been authenticated. The returned record can then be updated to represent the relationship to the current AuthSession of the Experience Cloud portal. For instance, if the MessagingSession is defined as ms.

          ms.AuthSessionId__c = SessionManagment.GetCurrentSession().get('SessionId');
          User authUser = [SELECT Id, ContactId, AccountId from User WHERE Id = :UserInfo.getUserId()];
          ms.AccountId__c = authUser.AccountId;
          ms.ContactId__c = authUser.ContactId;
          ms.commit();
          

          The Agentforce Service agent now has the information it needs to confirm the user’s identity when taking private actions. It also has the ID of the AuthSession, which can be terminated as soon as the conversation in the corresponding portal session ends.

          In this example the user is directed to a portal page where they will authenticate to the side. This will update the MessagingSession record for the AgentForce session with the user's identity. It will not however generate an event in the AgentForce session so is dependent on the user continuing the conversation in AgentForce, once authentication is complete.

          This flow chart summarizes this example of how to manage authentication in the context of Agentforce Service agents and private actions.
           
          Loading
          Salesforce Help | Article