Skip to main content

#Appexchage Apps23 diskutieren mit

Lightning File Explorer from Salesforce Labs 

 

Was excited to use this app however noticed strange behavior when using Outlook Integration.  

 

After installing the package, when logging an email from Outlook, images found in email signatures became attachments and were logged on the emailmessage record. This then related as a file on the related Asset record. Our users had to remove about 20 attachments (logos) to clean the files up because of logged email threads. Had to uninstall as a result. A shame as the teams were excited to bring this functionality into our records.  

 

 

 

 

 

#Appexchage Apps  #Lightning File Explorer

0/9000

We have a package installed https://github.com/SalesforceLabs/ActionPlansV4/blob/main/README.md

 

After creating ActionPlans (which are linked with internally with our custom objects ), when independently trying to delete the action plans, we are getting error:  

 

"There's a problem saving this record. You might not have permission to edit it, or it might have been deleted or archived. Contact your administrator for help." 

 

I am sys admin and I have provided myself with FULL access to the LabActionPlan object, also associated objects, but still cannot delete the action plan. 

 

While checking on the "Developer Console" log, there is no sign of error seen, but the action plan doesn't get delete with the error message as shown above. 

 

While discussing this with the Salesforce support team, they suggested, they don't have access to third party code/log, so I landed here for the help.  

 

Can anyone help here or suggest ? 

 

Thanks, 

AnkitS.

1 Antwort
  1. 10. Okt., 11:56

    @Ankit Shrestha full access on LabsActionPlans__ActionPlan__c is not the check that failed. That message is Lightning hiding an access or deleted-record error inside the delete.

    Action Plans V4 does not only delete its own row. The delete trigger also removes the Tasks the plan created. If one of those tasks, or the record the task hangs off, blocks the delete, the whole save fails and you get this generic line. A validation rule or a trigger on Task is enough. Sys admin on the plan object does not bypass that.

    No line in the log usually means the trace flag was not on for your user when you clicked delete. Set a flag for yourself, Apex at finer, delete one plan, and read the DmlException. The real object is in there.

    A lookup set to restrict deletion throws a different message, the one that names the related record. If you only see the permission text, start with the tasks, not with another perm set on the plan.

    Support is right that they do not own this package. The delete path is in the public Salesforce Labs repo you already linked. Once the log names the task or the parent record, that is the fix, not more access on Action Plan.

0/9000

Our org is looking to upgrade any installed packages that still have components on an API version below 45.0. One of the last ones we have is Dashboard Pal, which is a Salesforce Labs app. 

 

The latest version v2.6.0 (last updated on the appexchange on 01/09/2023) still has some components on API versions below 45.0. 

 

Is there anyone I can contact about these Salesforce Labs apps? I can't see any support email on the appexchange listing. Failing that, does anyone happen to have an alternative app to Dashboard Pal that offers similar functionality? 

 

#Dashboard Pal  #Appexchage Apps

4 Antworten
  1. 5. Okt., 10:08

    @Josh Wiseman

     

     

    I’d treat this as a package-maintenance issue first rather than just looking for a replacement.

    If Dashboard Pal is unmanaged/older Labs code with components below the required API version, I’d check whether the package is still actively maintained before investing time in an alternative. If it isn’t, a small custom Lightning solution may actually be easier to maintain long term.

0/9000

Similar to this post....some employees at our company use Salesforce, but all use Outlook. And therefore a shared company-wide Outlook calendar is used to track events.

 

I'm looking for the group that uses Salesforce to stay in Salesforce and not have to swivel-chair to Outlook. We want to create events on a Salesforce public or resource calendar and have them sync to the shared Outlook calendar. The Outlook calendar will contain events that are not initiated from Salesforce.

 

Syncing all events between the two calendars (so that the Salesforce team can see all events in the Salesforce calendar) is a nice to have, but not a must have requirement. I want the Salesforce events to sync one way to the shared Outlook calendar. If an update is made on the Salesforce side, it updates the Outlook calendar event. 

 

Has anyone done this?

Einstein Activity Capture seems to only work with personal email and calendars.

Thank you.

2 Antworten
0/9000

Hello. I'll be using UTAM for our Automation Framework.     For the setup, I did install the following:      1. Install UTAM  npm i utam      2/ INSTALL WDIO  npm init wdio    3. INSTALL UTAM WDIO SERVICE  npm i wdio-utam-service --save-dev    4. INSTALL DOTENV  npm install dotenv    4. INSTALL SALESFORCE PAGE OBJECTS  npm i salesforce-pageobjects    5. ADD UTAM AS DEV-DEPENDENCY  npm add --dev utam    6. ADD BUILD to package.json      "test:ui:compile": "utam -c utam.config.js",      "test:ui:generate:login": "node scripts/generate-login-url.js",      8. Add UTAM in wdio.config.js  require('dotenv').config();  const { UtamWdioService } = require('wdio-utam-service');    services: [          [              UtamWdioService,              {                  implicitTimeout: 0,                  injectionConfigs: ['salesforce-pageobjects/ui-global-components.config.json'],              },          ],      ]    -----------  However, whenever I run the test, it's still giving me either a reference error of "utam is not defined" or the import modules (e.g. import {DesktopLayoutContainer} from '/salesforce-pageobjects/dist/navex/pageObjects/desktopLayoutContainer' cannot be found'    I tried uninstalling and installing the node_modules and tried everything in https://www.geeksforgeeks.org/node-js/how-to-resolve-a-cannot-find-module-error-using-node-js/ and     What am I missing?   

2 Antworten
  1. 5. Okt., 10:09

    @Aira Gutierrez

     

     

    I’d separate the two errors first rather than troubleshooting them as one issue.

    For utam is not defined, I’d verify the UTAM compile step is actually generating the page objects before running WDIO. Then check the generated output and package path for salesforce-pageobjects. If the generated JS isn’t there, changing the import path won’t fix the underlying problem.

0/9000

Looking for an AppExchange Security Review specialist consultant. Have pen-test commissioned, full SR docs drafted, targeting June 9 submission. Need questionnaire support + reviewer liaison. Budget confirmed, need to start this week. DM me.   

1 Antwort
  1. 29. Sept., 07:10

    Hi Anuj!

    For an AppExchange Security Review, having the pen-test and documentation already prepared should give you a good starting point. For the remaining work, I’d look for someone who has hands-on experience with Salesforce’s security review questionnaire, code/security remediation, and the reviewer communication process. 

     

    It may also be worth having the consultant do a pre-submission review of the package and security documentation before the June 9 submission, so any gaps can be addressed beforehand. 

     

    If anyone here has recently supported an AppExchange Security Review end-to-end, their experience with the questionnaire and review process would be especially useful for Anuj.

0/9000

We are in security review for our AppExchange solution. Our app is an external SaaS that uses a single partner-owned OAuth app; subscribers authorize it via the OAuth 2.0 web-server flow (Authorization Code + PKCE), and the app is NOT installed into subscriber orgs.   

The reviewer asked us to either package an External Client App (ECA) within the managed package or justify not doing so, and to enable four controls: PKCE, Refresh Token Rotation, IP allowlist for refresh token redemption, and Refresh Token Rotation Idle Timeout.   

Could you please confirm:   

  1. For a partner-owned app that is not installed in subscriber orgs, is it acceptable to NOT package it and instead provide a justification?
  2. Can the four mandated OAuth controls be applied on our existing **Connected App**, or is migration to an **External Client App** required?

 

Thank you.   

1 Antwort
  1. 28. Sept., 17:36

    Hi Aron!

    Based on Salesforce’s current AppExchange security-review guidance, your use case appears to fall under the packaging requirement.

    For an Authorization Code/Web Server flow where the callback URL is controlled by the ISV partner, Salesforce currently lists the integration as requiring packaging. The fact that the SaaS application itself isn’t installed in subscriber orgs doesn’t by itself remove that requirement. 

     

    Also, Salesforce is moving new integrations toward External Client Apps (ECA). Existing Connected Apps can continue to operate, but Salesforce recommends ECAs for new integrations. 

     

    So I would clarify with the reviewer whether they specifically require the existing Connected App to be migrated to an ECA, rather than assuming the four requested controls can all be enabled on the existing Connected App. Salesforce documents ECA-specific OAuth security controls such as refresh-token rotation and IP restrictions.

    For the security-review response, I’d also explicitly describe your OAuth flow, who owns the callback URL, where refresh tokens are stored, and how PKCE/refresh-token protection is implemented. That should make it easier for the reviewer to confirm the expected configuration.

0/9000

Summary  A 2GP managed-package External Client App (ECA) installs successfully in a subscriber org, but the OAuth 2.0 web-server flow from that subscriber org fails at authorization with:  error=OAUTH_AUTHORIZATION_BLOCKED  error_description=Cross-org OAuth flows are not supported for this external client app  We are migrating from a Connected App (which worked cross-org) to a packaged ECA due to the Connected App deprecation. We need to know what configuration allows subscriber orgs to complete OAuth authorization against our packaged ECA.    Environment  - Packaging / Dev Hub org: jeff.qiu.c0c4028cfddb@agentforce.com — Org Id 00Dg500000CfSJBEA3  - Managed package (2GP): coachpilot-sf-eca, package Id 0Hog50000000piTCAQ, namespace cpsftest  - Package version: 04tg50000009p05AAA (0.1.0.1) — Released = true  - External Client App CoachPilotSF: distributionState=Packaged, Status Enabled, scopes Api, RefreshToken, callback https://staging-api.coachpilot.com/api/v1/crm/salesforce/callback, PKCE (S256), oauthLink → 00Dg500000CfSJB:888g5000000Z6k5  - Consumer key (unchanged after packaging): 3MVG9QJ.PEcC...  - Model: external SaaS backend runs the OAuth web-server flow using the single Dev Hub consumer key across all subscriber orgs.    Steps to reproduce  1. Subscriber installs released package 04tg50000009p05AAA — succeeds (ECA present, DistributionState=Packaged).  2. Subscriber ECA policy set to "All users may self-authorize".  3. OAuth web-server authorize from the subscriber's own My Domain: https://.my.salesforce.com/services/oauth2/authorize?response_type=code&client_id=<Dev Hub consumer key>&redirect_uri=<callback>&scope=api%20refresh_token&code_challenge=<...>&code_challenge_method=S256  4. Result: redirected with OAUTH_AUTHORIZATION_BLOCKED — Cross-org OAuth flows are not supported.    Already confirmed (no need to re-check)  - Package version Released (not beta); subscriber install succeeds; ECA DistributionState=Packaged.  - Subscriber policy = "All users may self-authorize".  - Consumer key = Dev Hub ECA's, unchanged.  - Authorize attempted from the subscriber's own My Domain AND from login.salesforce.com — both blocked; the flow reaches the consent page, block is at grant.    Cannot inspect (suspected cause)  - The Dev Hub ExtlClntAppGlobalOauthSettings (global OAuth settings) — not retrievable via Metadata API source, describe empty via Tooling API, not editable in UI. Suspect a required cross-org/distribution "trust" setting on the global OAuth settings.    Questions  1. For a packaged ECA (2GP), what config on the packaging org's global OAuth settings (ExtlClntAppGlobalOauthSettings) lets subscriber orgs complete the web-server OAuth flow using the packaging org's consumer key?  2. Is Cross-org OAuth flows are not supported expected when a subscriber (with the package installed) authorizes using the packaging org's consumer key? What is the supported ISV pattern?  3. Must each subscriber generate their own global OAuth settings (per-subscriber consumer key)? If so, how does the external backend obtain each org's consumer key programmatically?  4. Any limitation with the packaging org being an @agentforce.com (trial/dev) org type for cross-org ECA OAuth distribution?    Desired outcome  Customer installs the managed package, authorizes via OAuth web-server flow, and our backend receives that org's access/refresh tokens — the Connected App experience, via ECA.    

1 Antwort
  1. 28. Sept., 12:31

    Hi Jeff!

    Your setup looks close to the supported packaged-ECA model. Salesforce documents that a packaged External Client App can either generate its own OAuth global settings in the subscriber org or reference the global OAuth settings from the source/packaging org. In the latter model, the subscriber ECA’s OAuth link should reference the source org and its consumer ID. 

     

    So I wouldn’t expect the subscriber to automatically need a separate consumer key just because the package is installed. Salesforce specifically documents the source-org global-settings association for OAuth. 

     

    One thing I’d verify is the actual ExtlClntAppOauthSettings OAuth link in the installed subscriber app and confirm it points to the source org/global OAuth settings exactly as documented. If the subscriber instead has its own global settings, then it will have its own OAuth consumer credentials. 

     

    Also, the source org needs to remain available because subscriber ECAs that reference its global OAuth settings depend on that source configuration. 

     

    Given that your OAuth request is reaching the consent page and then specifically fails with OAUTH_AUTHORIZATION_BLOCKED, I’d focus on the ECA association/global OAuth configuration rather than the subscriber policy alone. 

     

    If you can share the ExtlClntAppOauthSettings OAuth link value from the packaged ECA/subscriber, that would be the next thing I’d check.

0/9000

Hi everyone,

We are preparing an external API / web application integration for our AppExchange Security Review. The review team will need to test our API endpoints from their automated scanning suites and dynamic networks.

Our main operational blocker right now is MFA and Device Activation (OTP). Because our team does not have personnel available on standby 24/7 to instantly provide multi-factor authentication access codes or email OTP tokens to the reviewers, we need an entirely hands-off authentication architecture for our test environment.

Given Salesforce’s strict platform enforcements restricting traditional UI MFA bypass permissions, what is the current accepted practice for API apps?

My Questions:

  • If we provision a dedicated Salesforce Integration User license (which uses API-only tokens/OAuth instead of interactive UI login), does the Security Review team's automated testing suite natively support this without triggering an MFA or Device Activation challenge?
  • If the review suite requires standard user credentials that trigger an unexpected email OTP, how are partners managing this asynchronously without a 24/7 live operations team to hand over codes?

We want to make sure we architect our authentication flow correctly so that the submission doesn't fail pre-queue validation due to a missed MFA prompt. Any advice from recent submitters would be huge. 

 

#Appexchage Apps

 

 

#Security Review  #Agentforce

1 Antwort
  1. 22. Sept., 05:44

    For an AppExchange Security Review, I’d avoid designing around the assumption that an API-only user automatically bypasses every authentication control. The safer approach is to confirm the current review-team requirements for integration credentials and test the exact OAuth/API flow in the submitted environment beforehand. If automated scanners require interactive authentication, Salesforce Partner Support or the Security Review team should clarify the supported testing arrangement rather than relying on manual OTP handling.  Visit here for more information.

0/9000

   

Subject: Link Namespace fails: invalid_request "missing required code challenge" 

    

   Dev Hub org ID: <xyz>. Namespace org ID: <abc>. Namespace: Nativesign. 

   Namespace Registries > Link Namespace popup returns error=invalid_request&error_description=missing required code challenge. 

   The connected app "SalesforceDX Namespace Registry" has PKCE checked and locked ("contact Support"). Org-level PKCE is OFF. How can I link my namespace? 

 

#Package Manager  #Appexchage Apps  #Generation Managed Package  #Installed Packages

1 Antwort
  1. 21. Sept., 13:54

    This looks like a mismatch created by Salesforce's own PKCE enforcement rollout rather than something wrong in your org's configuration. The SalesforceDX Namespace Registry connected app is a Salesforce-owned system connected app used by the Namespace Registries Link Namespace flow, and its PKCE requirement is locked because Salesforce has been moving connected apps and External Client Apps toward mandatory PKCE, with no admin opt-out on system apps like this one. Your org-level Require PKCE toggle being off is not relevant here, since that setting only affects apps that inherit the org default, and this one has its own requirement baked in. 

     

    The "invalid_request / missing required code challenge" error means the client side of this OAuth exchange, the Link Namespace popup itself, is not sending a code_challenge parameter even though the connected app now demands one. Since that popup is Salesforce's own UI and not something you control from Setup, you cannot fix this from your Dev Hub or Namespace org settings. Other admins have hit the same "missing required code challenge" wall on various Salesforce-owned OAuth flows since PKCE enforcement tightened, so this is worth logging as a Salesforce Support case, quoting the exact error and the Dev Hub and Namespace org IDs, so they can confirm whether it is a tracked regression tied to the PKCE rollout on that specific connected app. 

     

    Background on PKCE enforcement:

    https://help.salesforce.com/s/articleView?id=005316703&language=en_US&type=1

     

     

    Assumption: I cannot reproduce your Dev Hub, so I cannot fully confirm this is a Salesforce-side defect versus something specific to your org's Namespace Registry setup. This is inferred from the well-documented PKCE enforcement pattern and other reports of the same error on Salesforce-managed connected apps once PKCE became mandatory without an opt-out.

0/9000