Skip to main content

#Salesforce Admin373 debatiendo

Hi everyone,

I would appreciate some architectural guidance on a Salesforce security requirement.

We need to restrict Sales users from exporting or extracting company-wide financial/reporting data, while they must continue using Salesforce normally, including the Salesforce Mobile App.

Our initial approach was to remove the API Enabled

permission from their corresponding Permission Set Group to prevent API-based extraction tools such as Data Loader or spreadsheet connectors. 

Howeever, I would like to confirm with you, if API Enabled is also required for the Salesforce Mobile App, which Sales users need to use.

Therefore, my questions are:

  1. Is removing API Enabled an appropriate approach for preventing data extraction in this scenario, or would this have unintended consequences beyond the intended restriction?
  2. What would be the recommended Salesforce architecture to restrict API-based data extraction for Inside Sales while keeping access to the Salesforce Mobile App?
  3. Would API Access Control / Connected App allowlisting be a better approach, for example allowing Salesforce Mobile while restricting other API clients?
  4. Are there other Salesforce permissions or security controls that should be considered specifically for preventing report/data export without disabling API access entirely?

The business requirement is specifically to restrict data extraction

, not to prevent Sales users from using Salesforce Mobile or other approved Salesforce functionality. 

 

The focus is on:

  • Reports: No creating, editing, cloning, or exporting.
  • Dashboards: No access to restricted Turnover dashboards.
  • Subscriptions: Prevent receiving Reports/Dashboards via email.
  • List Views: Prevent export/print as an extraction method.
  • Folder Sharing: Prevent indirect access to restricted Reports/Dashboards.

Any guidance or documentation from Salesforce would be greatly appreciated. 

 

@Salesforce Administrators & Developers, @Salesforce Administrators and Developers, @APAC Architects, @Data Quality & Management

 

 

#Trailhead Challenges  #Trailhead  #Salesforce Developer  #Salesforce Admin  #Reports & Dashboards

1 respuesta
  1. 25 sept, 17:08

    Hi Lena, 

    Yes, removing API Enabled would impact the Salesforce Mobile App, since the mobile app requires API access. So I wouldn’t use that permission alone as the control for this requirement.  

     

    A better approach is to keep API access for the users who need Salesforce Mobile and use API Access Control to restrict API access to only approved/allowlisted connected apps. Salesforce supports this model specifically for limiting API access while allowing approved apps.  

     

    For report extraction, also control the Export Reports permission separately. Removing that permission prevents users from exporting report data, while folder sharing and report/dashboard permissions can be used to restrict access to sensitive content. 

    I’d therefore treat this as multiple layers: API Access Control + Report/Folder permissions + Export Reports + subscription/access controls, rather than disabling API access entirely. 

0/9000

 I need to automatically create a Chatter post on a Case whenever its pending approval request is reassigned to another user using the standard Reassign action. Since triggers and record-triggered flows aren't supported on ProcessInstanceWorkitem, and the Case itself doesn't change, I'm not sure how to capture this event. Has anyone solved this, whether with scheduled polling, a custom reassign component, or another approach? Any suggestions or sample code would be appreciated.  

 

#Trailhead  #Salesforce Developer  #Salesforce Admin  #Salesforce  #TrailblazerCommunity  #Sales Cloud  #Apex  #Salesforcecommunity  #Salesforce_developer

2 respuestas
  1. Ayer, 8:00

    You’re correct that there isn’t a direct trigger point here. ProcessInstanceWorkitem doesn’t support Apex triggers or record-triggered flows, and reassigning the approval doesn’t update the Case itself. 

     

    If you need to keep the standard Reassign action, I’d handle it with scheduled Apex:

    1.  Run a scheduled job every few minutes. 
    2.  Query new ProcessInstanceStep records where StepStatus = 'Reassigned'. 
    3.  Use ProcessInstance.TargetObjectId to identify the related Case. 
    4.  Query the pending ProcessInstanceWorkitem for that process instance to get the newly assigned ActorId. 
    5.  Insert a FeedItem with the Case ID as ParentId. 
    6.  Store the processed ProcessInstanceStep.Id in a small custom log object with a unique/external-ID field. 
    7.  Skip any step already in that log so rerunning the job can’t create duplicate Chatter posts. 

    I’d also test it by reassigning the same approval twice and then running the job twice. The expected result should be two Chatter posts total, with no additional posts from the second job run. 

     

    If real-time posting is absolutely required, the other option is to replace the standard Reassign experience with a custom Flow/LWC backed by Apex. That custom action would update ProcessInstanceWorkitem.ActorId and create the Case FeedItem in the same transaction. But the existing standard Reassign action can’t be intercepted directly.

0/9000

Hi all,

I'm sorry to report I just failed my first attempt at the Admin certification. I scored well across the board except in two areas: Productivity and Collaboration, and Agentforce, which brought me down. I went in feeling confident, so it was a bit of a surprise. 

 

I'm now looking for additional study material focused on Productivity and Collaboration. A Trailhead search turns up 138 results, which is a lot to sift through on my own. Has anyone taken this exam recently who could point me toward the courses or modules that are most relevant to what's actually tested? Note that I have already taken the Admin beginner and intermediate, as well as the exam prep.

Thanks in advance! 

 

#Salesforce Admin  #Certifications

1 respuesta
  1. 25 sept, 10:21

    Hi Jim, sorry to hear about the near-miss — sounds like it was close. 

     

    Good news: Productivity and Collaboration is officially only 7% of the exam (per the Salesforce Admin Exam Guide), so it's a small, well-defined target, not something you need 138 modules for. It covers exactly four learning objectives: 

    - Activity Management (Tasks, Events, activity reminders/reports) 

    - Chatter (feed, groups — public/private/unlisted, following, security) 

    - Salesforce Mobile App capabilities 

    - AgentExchange/Agentforce use cases 

     

    That last bullet explains why Agentforce and Productivity/Collaboration are both weak spots for you at once — Salesforce folded AgentExchange/Agentforce use-case questions into this same exam section on the current version of the guide, so it's really one combined content area, not two separate ones. 

     

    Best single resource: the official Trailhead module "Study Up on Activity Management and Collaboration" — it's built specifically to prep this exact exam section (not general Trailhead content), and includes scenario questions and flashcards on Chatter, activities, and mobile app capabilities: 

    https://trailhead.salesforce.com/content/learn/modules/administrator-certification-prep-applications-activities-and-mobile/study-up-on-activity-management-and-collaboration

     

     

    Since you've already done beginner/intermediate + general exam prep, this targeted module (30–45 min) plus the flashcards should be enough without re-covering ground you already know — focus your remaining study time on Configuration & Setup and Security & Access instead, since those carry roughly double the exam weight of Productivity and Collaboration and are worth more of your remaining prep time per point.

0/9000

Hi everyone,

I'm working on a Revenue Cloud implementation with two sandboxes (both refreshed from the same production org, at different times). In Sandbox A, activating an Order correctly creates Asset records from the OrderItems. In Sandbox B, the exact same flow (Quote → Contract → Order → Activate) leaves the Order in Status = 'Activated' with zero errors, but no Asset is ever created — and querying Asset in that sandbox returns 0 records, period, in its entire history.

What I've already ruled out (identical between both sandboxes):

  • RevenueManagementSettings, OrderSettings (all flags match, including enableEnhancedCommerceOrders=true, enableAutoAddDerivedAsset=true)
  • PermissionSetLicense for Revenue Cloud User / Fulfillment User / Billing / Business Rules Engine — all Active
  • Extended ContextDefinition mapping for Order/OrderItem vs Quote/QuoteLineItem — byte-for-byte identical counts
  • No custom Apex triggers or Flows on Order in either org — it's the pure standard "Activate" action
  • No AsyncApexJob/BackgroundOperation errors around the activation — nothing seems to even attempt the asset generation step
  • TransactionProcessingType: the broken sandbox had zero records while the working one had one marked default (Business Rules Engine). I created a matching record via Tooling API, but the issue persists.

Has anyone run into a case where Asset-Based Order Management (or whatever gates Order→Asset generation) is silently disabled at the org level in a way that doesn't show up in any Settings metadata, Tooling API object, or PermissionSetLicense? Is there a one-time, irreversible enablement step (like "Enable Contract, Asset, and Subscription Management") that a sandbox refresh could leave off even when everything else looks provisioned?

Any pointers on where else to look (or whether this needs a Support case) would be hugely appreciated — this is blocking QA testing for a client go-live. 

 

#Revenue Cloud #Salesforce #Salesforce Admin #Salesforce Revenue Cloud

0/9000

Hi 

I have just completed foundation certificate and now willing to progress more.  

Any recommendations on next trailmix ? Or subjuct area ? 

 

#Salesforce Admin

1 respuesta
  1. 25 sept, 10:08

    Hi Shezeen, congrats on Platform Foundations! 

     

    Official next step, straight from Salesforce's own credential map: Platform Foundations is designed to lead into Salesforce Certified Administrator. That's the natural next milestone since Foundations covers reporting, user admin, data management, customization, and sharing at a conceptual level — Admin builds on exactly that with hands-on configuration depth. 

     

    Trailhead has a purpose-built trailmix for this: search "Prepare for Your Salesforce Administrator Credential" in Trailhead — it's the official study path Salesforce curates for this exact transition. 

     

    Two other paths worth knowing about depending on where you want to go: 

    - If you're more drawn to app/UI building than admin config: Platform App Builder has no prerequisites and can be taken instead of or alongside Admin. 

    - If you want to lean into where Salesforce is investing most right now: the AI Associate certification is free through 2026 and a natural add-on after Admin — it's positioned as the entry point before Agentforce Specialist if you want to move toward AI/Agentforce work later. 

     

    Realistic default if you're unsure: Admin next, then decide between App Builder (declarative/builder track) or AI Associate → Agentforce Specialist (AI track) based on what you enjoyed more in Foundations.

0/9000

For an integration between two Salesforce systems we have been using a dedicated user with System Admin profile, but we maxed out our 10 free NPSP users, so I changed that user to Minimum Access - API Only Integrations profile. 

Now I'm seeing these errors in my Login History: "Failed: API security token required" 

I think there's supposed to be a way to exempt a user from having to provide a security token, but I'm not sure. 

Any advice is appreciated. 

 

#Salesforce Admin  #Salesforce Developer

6 respuestas
0/9000

Hello Trailblazers,

I am facing a login loop issue with a System Administrator profile when trying to access the Salesforce Mobile App on an iOS device (iPhone), and I would appreciate your insights.

 

  1. I can log in into the desktop version perfectly using Windows Hello PIN as a registered Built-In Authenticator (Passkey).
  2. When trying to log into the Salesforce Mobile App on iOS, after entering the Username and Password, the app forces a Passkey verification.
  3. The native iOS is still prompting me to use a passkey and there is no chance to choose another verification option. Since the passkey was created locally via Windows Hello, the iPhone cannot resolve it, leading to a dead-end with no option to bypass or cancel.

What I tried so far:

  • I disconnected the Built-In Authenticator from the User's Advanced Details via desktop Setup.
  • Upon trying to log in again on the mobile app, it bypasses the old key but immediately demands the creation of a new Passkey.
  • If I attempt to use a Temporary Verification Code, the login attempt is blocked beforehand by the following error message: 

    "Problem Verifying Your Identity. To log in, you need both a higher access level and an identity verification method. Contact your administrator to gain login access."

Context & Constraints:

  • This is a production environment, so I cannot modify global organization settings (such as changing Session Security Levels or altering My Domain mobile browser behaviors) without a formal change control process. I need a solution targeted either at the user level or understanding why the Mobile API triggers this specific high-assurance restriction for this profile.

 

Has anyone encountered this specific behavior where the Mobile App demands a High Assurance MFA method that blocks the login completely before allowing alternative verification? Any workarounds at the user/permission set level would be highly appreciated.

Thank you in advance! 

 

@Salesforce Administrators & Developers, @Salesforce Administrators and Developers, @APAC Architects, @Data Quality & Management, @SecurityForce

 

 

#Trailhead Challenges  #Salesforce Developer  #Salesforce Admin

3 respuestas
0/9000

Hi everyone,

I need an architectural sanity check on a security requirement. I want to avoid hitting platform limits down the road and would appreciate some feedback on whether this can be safely achieved using Schedule-Triggered Flows or whether Scheduled Batch Apex would be required.

Context

  • We are changing the Organization-Wide Defaults (OWD) of the standard Quote object from Controlled by Parent to Private.
  • We receive an integration feed from an external system that creates or updates up to approximately 80 Quotes per Account per day. Quotes can also be created manually in Salesforce.
  • Quotes contain two custom Account lookups: Sold-To and Bill-To.
  • We have both Quotes with and without Opportunities.

Requirement

  • The Account Owner of the Sold-To Account and the Account Owner of the Bill-To Account must have Read-Only access to the related Quote.
  • When the Account Owner changes, access to the related Quotes must be updated accordingly, including removing the previous owner's access and granting access to the new owner.
  • The required access is managed through QuoteShare records with RowCause = Manual.

Architectural Question

Given the expected Quote volume and the need to automate the insertion and cleanup of QuoteShare records following Account ownership changes:

  • Is this approach feasible using a standard Schedule-Triggered Flow, or would Scheduled Batch Apex be required to ensure scalability and avoid governor limits?
  • What would be the cleanest architectural pattern for handling the cleanup and creation of Manual QuoteShare records when Account ownership changes?

Thanks for your guidance!

 

 

@Salesforce Administrators & Developers, @Salesforce Administrators and Developers, @APAC Architects, @Data Quality & Management

 

 

#Trailhead Challenges  #Salesforce Developer  #Salesforce Admin  #Salesforce  #Flow  #Apex

2 respuestas
  1. Ayer, 18:14

    Thank you for the explanation, @sakshi nagpal. I reviewed with my colleagues and the current information I got is that the sales reps won't impossibly generate to 80 quotes a day per account even as an approx. . So, then do you still see a risk by using a scheduled flow than APEX?. I would appreciate your guidance.

0/9000

Hi everyone,

I have a question regarding the “Create Quotes without Opportunities” feature and a potential future requirement involving Orders.

 

After enabling the “Create Quotes without Opportunities” feature, Salesforce automatically provides the QuoteAccountId field on the Quote object. For Quotes created without an Opportunity, the Account relationship is stored in QuoteAccountId, while the standard AccountId is not populated.

 

Would it be technically possible to populate the standard AccountId field with the value from QuoteAccountId

for Quotes created without an Opportunity?. 

 

The reason for considering this is that Orders will be used in the future, and the standard Account relationship may be required for the Order process.

Would populating AccountId = QuoteAccountId be a supported and recommended approach, or are there any Salesforce limitations or implications we should consider when working with Quotes without Opportunities? or any workaround?.

Thanks for your guidance! 

 

@Salesforce Administrators & Developers, @Salesforce Administrators and Developers, @APAC Architects, @Data Quality & Management

 

 

#Trailhead Challenges  #Trailhead  #Salesforce Developer  #Salesforce Admin  #Salesforce  #Flow  #Data Management  #Apex  #Sales Cloud

2 respuestas
  1. Ayer, 15:17

     

    Short answer: you generally cannot (and do not need to) write QuoteAccountId into the standard Quote.AccountId field. On the Quote object, AccountId is a system-derived, read-only reference that Salesforce fills from the related Opportunity's Account. It is not createable/updateable through the UI, Flow, Apex or the API, so an update like AccountId = QuoteAccountId will be rejected or ignored. For quotes created without an Opportunity, QuoteAccountId (label "Account for Quote") is the field Salesforce intends you to use as the account relationship. 

     

    For your future Order process this is already covered: Salesforce's documentation for quotes without opportunities says associating the quote to an account is optional but recommended, because an account is required to convert the quote to an order. When you create an Order from such a quote, the account comes from the quote's account (QuoteAccountId), so you don't need Quote.AccountId populated. 

     

    Practical recommendations: 

    1. Make QuoteAccountId required (validation rule, e.g. ISBLANK(OpportunityId) && ISBLANK(QuoteAccountId)) so every quote can be turned into an Order. 

    2. After enabling the feature, open Object Manager > Quote > Fields > Account for Quote and grant field-level security to your profiles/permission sets. It is hidden by default, which is why it often looks unavailable in Flow, reports and Apex. 

    3. In reports, flows, sharing logic and Apex, use one source of truth, for example a formula field BLANKVALUE(QuoteAccountId, Opportunity.AccountId), so logic works for quotes with and without an Opportunity. 

    4. If you create Orders yourself via Flow/Apex (rather than the standard Create Order action), set Order.AccountId = Quote.QuoteAccountId and Order.QuoteId = Quote.Id. 

     

    References: 

    Enable Quote Creation Without a Related Opportunity:

    https://help.salesforce.com/s/articleView?id=sales.cpq_quotes_without_opportunities.htm&type=5

     

    Release note, Create Quotes Without a Related Opportunity:

    https://help.salesforce.com/s/articleView?id=release-notes.rn_sales_quotes_without_opportunities.htm&release=244&type=5

     

    Quote object reference:

    https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_quote.htm

     

     

    Assumption: the statement that Quote.AccountId is read-only is based on the Quote object reference field properties and commonly reported org behaviour; please confirm in a sandbox (e.g. attempt the update in a Flow or Developer Console) before designing around it.

0/9000

Hi, we recently identified two challenges related to email attachments sent from Salesforce and would like to understand how others are handling similar situations.

 

     When an employee sends an email to a customer with an attachment, the file is also automatically uploaded to our Experience Cloud site. However, attachments larger than 35 MB are processed through Content Delivery, which generates a

public link to the file. This creates a security concern, as anyone with access to the link can potentially view and download the document.

 

     We also face email delivery issues with large attachments. Many email providers, including Outlook, enforce attachment size limits of around 25 MB. As a result, emails containing attachments between 25 MB and 35 MB may

fail to be delivered to the recipient, even though they appear to have been sent successfully from Salesforce. In many cases, employees are unaware that the customer never received the email.

 

How do you manage large file sharing with customers while maintaining security and ensuring reliable delivery?

  • Do you use alternative file-sharing solutions?
  • How do you prevent users from sending attachments that may exceed recipient limits?
  • Do you have mechanisms to notify users when an email fails due to attachment size?

We'd be interested to hear about your best practices and any Salesforce-native or third-party solutions you've implemented. 

 

#Email Deliverbility  #Email Attachment  #Salesforce Admin

2 respuestas
  1. 18 sept, 15:37

    @Vincent Laplanche This is a common challenge for businesses working with large files, especially when those files need to be shared through a public-facing Experience Cloud site. 

     

    One approach is to offload the files to a system built specifically for document storage and security. Instead of storing and delivering the files through Salesforce, you can keep them in SharePoint while Salesforce continues to manage the customer and business data. 

     

    Customers can log in to Experience Cloud and access the appropriate SharePoint files through secure links and controlled permissions. These links can be locked down, so only the required permissions are given to those who need it, instead of the public links you are experiencing currently. 

     

    sFiles connects Salesforce and SharePoint for exactly this type of use case. It supports file uploads, links, and access directly within Experience Cloud, so the files remain available to both your internal Salesforce users and external customers without being stored in Salesforce. 

     

    An additional benefit is reduced Salesforce file-storage usage, which can become very expensive when large files are uploaded regularly. 

0/9000