Skip to main content

#Integration72 人正在讨论

I'm looking for guidance on the current recommended architecture for Agentforce + Experience Cloud + Embedded Messaging.

Original Architecture

I built an Experience Cloud (LWR) support portal using:

  •  Agentforce Service Agent 
  •  Embedded Messaging 
  •  Omni-Channel 
  •  Flow-based Agent Actions 
  •  Custom Topics 
  •  Salesforce Knowledge 

The solution was working during development.

What Changed

After Salesforce platform updates, the Embedded Messaging configuration changed significantly.

The setup started introducing additional messaging connectors/channels and configuration options that were not present when the project was originally built.

Since then, the previous implementation has stopped behaving as expected.

Current Situation

Authentication and Agentforce itself are working.

I have successfully:

  •  Created an External Client App (ECA) 
  •  Configured OAuth Client Credentials 
  •  Obtained valid access tokens 
  •  Retrieved my Agent information 
  •  Begun testing the Agent API directly 

Because of the Embedded Messaging changes, I'm evaluating whether continuing with Embedded Messaging is still the recommended approach.

Questions

  1.  Has the recommended architecture for Experience Cloud + Agentforce + Embedded Messaging changed recently? 
  2.  Is Embedded Messaging still the preferred integration method for an external Experience Cloud support portal? 
  3.  Should new implementations use the Agent API instead of Embedded Messaging? 
  4.  Are there migration guides explaining the transition from older Embedded Messaging configurations to the current architecture? 
  5.  If rebuilding today, would Salesforce recommend: 
    •  Embedded Messaging 
    •  Agent API 
    •  Messaging for In-App & Web 
    •  another supported approach? 

Goal

My objective is to build a production-style AI customer support portal following Salesforce best practices rather than relying on legacy configuration that may have been superseded by newer Agentforce capabilities.

Any clarification on the recommended architecture would be greatly appreciated. 

 

#Agentforce  #Salesforce Developer  #Salesforce Admin  #Flow  #Integration

1 个回答
  1. 今天,05:50

    Hi Gift,

    Previous one stopped means there can be any reason including the flex credit availability.

    Experience cloud + Agentforce + embedded messaging is best option available even now.

    There can be issues related to

    1. Trusted urls

    2. Cors issue

    3. Url not enabled

    If you use external site outside Experience cloud use MIAW api. Salesforce gives you an Agent which you can configure in experience site after branding.

    No need for Agent API.

    Preferred is MIAW or enhanced chat

0/9000

Update which I feel this will be helpful for the community, after a few rounds of Salesforce-Jira integrations, here's what's consistently saved us troubleshooting time: 

 

1. Don’t sync everything: Concentrate on business-critical fields (Case, Bug, Story, Priority, Status, Assignee, Resolution). A leaner scope will result in better performance, lower API usage and less conflicts. 

 

2. Go event-driven over scheduled polling: Keeps Support, Engineering, and Product on the same current data. 

 

3. Map fields before you build: Picklists, Statuses, Priorities, Record Types rarely map 1:1 across systems. 

 

4. Assign source of truth per field: Avoid update loops e.g. Engineering owns Resolution/Sprint, Support owns Customer Impact/Case Priority. 

 

5. Think about API limits. Bulk updates burn your allocation fast. Use batching, retries, error handling. 

 

6. Filter attachments/comments: Not everything should cross systems; filter by visibility, user type or keywords to keep internal notes internal 

 

7. Support multiple Jira projects/instances: Configurable mapping scales better than hardcoded routing logic 

 

8. Monitor failed syncs proactively: Logging + retry queues + alerts catch issues before they silently break workflows 

 

For

Salesforce native appexchange options, Sinergify,

a Salesforce Jira connector, handles bi-directional sync without middleware and covers most of this out of the box. 

 

What I have seen from my personal experience: 

 

  • Jira user-based price skyrockets as companies look to scale.
  • Organizations require a single Salesforce Case to sync with numerous Jira issues but not all connectors enable this natively in SF.
  • Parent-child Case circumstances necessitate workarounds particularly for enterprise support teams.
  • Validating skills beyond the demo - real-world workflows help to identify shortcomings.
  • Comment synchronization is an area that is often overlooked, yet it can have a significant influence on collaboration if it is not trustworthy.
  • Also, don't just ask if it's 'bi-directional'; inquire about whether it's genuinely real-time and how it handles conflicts and retries.

These are just patterns I've observed across customer conversations and implementations. 

 

#Salesforce Admin  #Integration  #Jira Integration  #Create A Case  #Case Management  #Salesforce

0/9000

Hello everyone, we have an application that utilises Salesforce as the underlying platform, we don't have a direct commercial relationship with Salesforce themselves as a result - that relationship is instead managed by the provider of this solution (TrackWise Digital).  

 

We would like to use the information in TWD / Salesforce to populate an MS Fabric Lakehouse, for the purposes of business intelligence, integration with other systems and potentially even experiment with AI technologies at some point - but what is the best way to extract the data from Salesforce given it's the underlying "storage platform" for this solution?  

 

We've looked at various API's, e.g. SObject Reads / SOQL, but is there a recommended approach from anyone who has "been there, done that" - we would like to avoid going down the wrong roads with this and finding there was a better approach.  

 

Finally, in terms of access needed - what do we need to ask our partner Honeywell for in terms of access to allow access in the recommended way, is there a particular type of account / key to request?  

 

Thanks for reading folks, we're really interested in progressing this so your assistance greatly appreciated.  

 

Best regards 

 

Chris 

 

#Salesforce Developer  #Integration  #Business Intelligence Team

0/9000

Hi Trailblazers,

I’m looking for some architectural advice on integrating a third-party GenAI search widget into our Experience Cloud / B2B Commerce site.

The Setup: We have selected a third-party AI search tool  that sits on our storefront to help users find case studies using natural language. For privacy and compliance reasons, we want this external AI to be completely "stateless."

The Goal: We want Salesforce to hold the "brain." Salesforce will retain the user’s history, past purchases (coursepacks), and role. When an authenticated user interacts with the AI widget (e.g., they ask, "Give me a refreshed version of my pack from last year"), we need Salesforce to dynamically pass that historical context (like past SKUs) to the AI widget at the exact moment of the query, without permanently storing PII on the third-party side.

My Questions:

  1. Passing the Payload: What is the best practice for injecting this dynamic user context into an external widget? Should we use a custom LWC to fetch the user’s history via Apex and pass it as a hidden payload/parameter to the widget's API? Or is it better to encode this context into a JWT?
  2. General Advice: Has anyone built a similar architecture where Salesforce acts as the memory engine for a stateless external AI? Any "gotchas" we should watch out for?

We are not looking to replace the tool with Agentforce at this time; we are strictly focused on the data integration layer between our chosen vendor and Salesforce.

Any insights, documentation, or recommended patterns would be hugely appreciated! Thanks!   

 

@* Salesforce Developers * 

2 个回答
  1. 7月9日 13:20

    A pattern I've seen work well is to keep Salesforce as the system of record and only send the minimum context needed for each request. 

     

    I'd lean toward a custom LWC that calls Apex to retrieve the user's relevant context (recent purchases, role, allowed products, etc.), then sends that to your AI vendor with the user's prompt. If the vendor supports signed requests, wrapping the context in a short-lived JWT is a good idea to verify integrity, but I wouldn't use the JWT as the primary data store since payload size can become an issue. 

     

    A few things I'd watch out for: 

     

    •  Only send the attributes required to answer the current prompt (data minimization). 
    •  Use short-lived tokens and avoid exposing sensitive IDs in the browser where possible. 
    •  Keep authorization in Salesforce so the AI only receives data the user is entitled to access. 
    •  Log the context sent for audit/debugging, but avoid logging prompts with sensitive information unless required. 

    This is similar to how integrations with platforms like LeadAngel are often designed—Salesforce remains the source of truth, while external services receive only the contextual data needed to make a decision or return a response, rather than maintaining their own persistent copy of customer data. That separation tends to make governance and compliance much easier.

0/9000

The DLRS in our instance has broken.  Attached is the picture of the error page. We were on 2.14, I upgraded the package to 2.19, but the error persists. I cannot access anything within the app.  I have the system admin profile with the Metadata permission.  Please help, the Create/update Site Settings button does not seem to work, I click it and nothing happens

Unable to connect to the Saleforce Metadata API Error

 

Screenshot 2023-11-15 at 10.06.33 AM.png@Commons Project: DLRS @WIT Group, Charlotte, US @Who owes me a beer?!?

5 个回答
  1. 2023年11月16日 00:30

    Glad that worked. DLRS is configured to use your browser session to manipulate Metadata in your org. Because that browser session, when used from Salesforce's servers, is coming from a different IP address, that setting prevents it from working.

     

    If you do need that setting you can optionally just disable it while working on configuring rollups and deploying triggers. DLRS doesn't need access to the Metadata API outside of the administrative configuration so most of the time you could keep it enabled. Just leave yourself a note so you remember to turn it off when changing configurations.

     

    (If you really get stuck you can always manipulate the Custom Metadata records via setup directly instead of using the configuration screens but that removes some of the safe guards to ensure your configuration is viable, use at your own risk)

     

    You could also deploy the triggers to the org on your own instead of having DLRS do it for you. (You can take the expected trigger and test class from the Manage Child Trigger page for a given rollup)

0/9000

I found some instructions googling "create an external client app to connect power bi to salesforce via api for community users"

I have the external app set up (i think) and I have added this code to my power bi file, but its giving an error.  It says the tokenurl is bad, I'm not sure its even correct.  Where do I find that info?   and what 

credentials am I supposed to use?  That's been another error, I have just been putting Anonymous.  And I think I need something else after "Bearer " but what? Where do I find this info.  I'm so lost and at my wits end

let    // 1. Define Salesforce API credentials    TokenUrl = "https://company.my.site.com/ConnectedWorksite/services/oauth2/token",    ClientId = "############################",    ClientSecret = "#################################",    // 2. Request the OAuth2 Access Token    RequestBody = "grant_type=client_credentials&client_id=" & ClientId & "&client_secret=" & ClientSecret,    TokenResponse = Json.Document(Web.Contents(TokenUrl, [        Content = Text.ToBinary(RequestBody),        Headers = [#"Content-Type"="application/x-www-form-urlencoded"]    ])),    AccessToken = TokenResponse[access_token],    // 3. Query the data using REST API (SOQL)    QueryUrl = "https://company.my.site.com",    SOQLQuery = "SELECT Id, Name, Email FROM User WHERE Profile.Name = 'CW Dealer Community'",    DataResponse = Json.Document(Web.Contents(QueryUrl, [Query = [q=SOQLQuery], Headers = [#"Authorization"="Bearer " & AccessToken, #"Content-Type"="application/json"]])),    // 4. Parse the results into a table    Records = DataResponse[records],    Table = Table.FromList(Records, Record.FieldValues, {"Id", "Name", "Email"})in    Table

 

@* Salesforce Developers *

 

 

#Integration

0/9000
I would like to trigger an LWC page from Apex method. I tried using PageReference as a return type but it didn't help me. If someone tries the same please add your comments. 

Here is the reason why I am trying this:

 I am trying to make an API call from Apex but it through a certification Error but If I try the same Endpoint from LWC I am getting the expected response. In this case, I am planning to write a schedule (every 30min) class and invoke the LWC component. please add your comments or what could be the alternate solution. 
2 个回答
  1. 7月7日 05:28

     I was able to resolve it. You need to generate the SSL Certificate from the trusted site and need to upload it to the Endpoint ORG(From where you are getting/sending the data. Then there will be a to and fro data transfer.or check if IP ranges are mentioned in the Endpoint Org(Gole is to make it public or whitelist the IP).Hope you get what I am trying to conway.

0/9000
when I make API call from apex I am receiving Certification Error but when trying the same endpoint from LWC It works fine what could be the reason for this.
4 个回答
  1. 2021年3月25日 09:30
    Hi @Nagarajan,

    yes, I was able to resolve it. You need to generate the SSL Certificate from the trusted site and need to upload it to the Endpoint ORG(From where you are getting/sending the data. Then there will be a to and fro data transfer.

    or check if IP ranges are mentioned in the Endpoint Org(Gole is to make it public or whitelist the IP).

    Hope you get what I am trying to conway.
0/9000

Description:

 

We are experiencing an issue with our Salesforce Named Credential TestAdobeSign and Auth Provider setup for integrating with Adobe Sign. After approximately one hour (3600 seconds), the following error is returned:

{"code":"INVALID_ACCESS_TOKEN","message":"Access token provided is invalid or has expired"}

 

Expected Behavior:

 

The access token should be automatically refreshed using the refresh token mechanism, ensuring continuous access to Adobe Sign without manual intervention.

 

Actual Behavior:

 

The access token expires after one hour, and no automatic refresh occurs, resulting in the above error.

 

Additional Information:

 

The Named Credential TestAdobeSign is set up to use OAuth 2.0.

The Auth. Provider for Adobe Sign has been configured correctly with all required endpoints and credentials.

The issue consistently occurs after one hour, indicating that the access token expiration is not being handled as expected.

 

@* Salesforce Developers * 

1 个回答
  1. 2024年5月31日 16:13

    Hi @Kunal Satghare,

     

    Ensure that TestAdobeSign and Auth provider is set up correctly in salesforce with the appropriate endpoint and credentials.

    Additionally, Please note that not all Adobe product APIs support the refresh token grant. I would suggest posting this question in the Adobe Community or reaching out to Adobe Support for further troubleshooting.

0/9000

Hi everyone.    I need to find out which integrations are actually in use in our org, along with details on whether it is inbound or outbound, method of connection, etc.    I have checked Connected apps, OAuth usage, etc. Can I get any guidance on how to get such details for sure?   

3 个回答
  1. 6月26日 04:41

    Hi @Anik Mallick, Unfortunately, there is not a single indicator in Salesforce that can definitively tell you whether an integration is still in use. However, you can gather enough evidence to make an informed decision by checking a few areas that mentioned below, 

     

    • API Usage: Review Setup → System Overview → API Usage and Login History/Event Monitoring (API Total Usage) to see if the integration user or connected app has authenticated recently. 
    • Named Credentials / Connected Apps: Check the Last Used Date (where available) or review authentication logs. 
    • Debug Logs & Event Monitoring: If you have Event Monitoring, the API Event Log can show whether the integration has made API calls recently. 
    • Scheduled Jobs & Apex: Verify whether scheduled Apex, Flows, Platform Events, or middleware jobs related to the integration are still running. 
    • External System Logs: If the integration uses MuleSoft, Boomi, Informatica, etc., check those platforms for recent executions. Sometimes Salesforce shows the configuration, but the middleware confirms whether it's actually being used. 
    • Last Modified/Created Records: If the integration updates specific objects, check for records recently created or modified by the integration user. 

    In my experience, the best approach is to combine these technical checks with business validation. If both the technical evidence (no API activity, no scheduled jobs, no recent record updates) and the business confirm it's unused, you can confidently classify it as a candidate for decommissioning. If there is any uncertainty, consider disabling it first in a lower environment or monitoring it for a few weeks before removing it from production. This approach has worked well in my projects on few years ago. Since this was done in my career starting point and I also faced the same difficulties what you are facing now exactly. 

     

    Hope it helps you.

0/9000