Skip to main content
Groupe

Salesforce Administrators & Developers

Community of Salesforce Enthusiasts! Join the Supergroup of Salesforce Administrators, Developers, Recruiters, Consultants, Trainers, Students and all Salesforce Professionals. Join us for News, Jobs, Tips and Tricks, Training, Resources, Guides, Networking, and Certifications

Hi Experts,

I want to do a mass exporting files or attachments specifically related to Salesforce objects such as Accounts, Contacts, Opportunities, etc. 

 

Could you please provide guidance and suggestions on the potential methods to accomplish this?

@Nonprofit Hub @Nonprofit User Group, Atlanta, US @Salesforce.org System Administrators @Salesforce Administrators & Developers 

8 réponses
  1. 11 févr. 2024, 14:56

    Hi Manjula Rajaram, 

     

    Recently I worked on the Data Migration- Attachements Of Contacts (Export:10,000 and Import:7,000 Attachments) by using Data loader  and also I used third party tool both were working fine. 

     

    Please fallow the below steps for Export:   

    1.Prepare the Soql and apply the export operation.

     

    Select  FieldsALL()  FROM Attachment where Parent.Type = 'Contact' order by createddate limit 1000

0/9000
Lena Wong a posé une question dans #Trailhead Challenges

Hi Trailblazers,

I am facing an inconsistency between what the Lightning App Builder shows in its mobile preview (Phone Form Factor) and what is actually rendered inside the official Salesforce Mobile App on a real iOS/Android device. I would appreciate some architectural insights to clarify this behavior.

The Scenario:

  1. I am customizing an Account Record Page using the Lightning App Builder.
  2. Inside a Tab component, I configured two custom tabs: Activity (placed first) and Chatter (placed second).
  3. When switching the Lightning App Builder preview to "Phone", the desktop Activities (Activity Timeline) component displays the classic "Unsupported form factor: Activities supports only the desktop form factor" warning.
  4. To test mobile visibility, I left that desktop component there but controlled its visibility via a component filter: Device > Form Factor Equal Phone.

The Inconsistency / Questions:

  • Question 1: Preview vs. Real Device Behavior 

    In the Lightning App Builder (Phone view), the

    Activity tab is strictly displayed above the Chatter tab, respecting the structural order of the Tabs component metadata. However, on the real Salesforce Mobile App device, I only see the Chatter tab and not the Activity tab. 
  • Question 2: Fallback Mechanism & Smart Rendering 

    Since the desktop

    Activities Timeline component explicitly throws an "Unsupported form factor" error for mobile, what is the exact mechanism the Salesforce Mobile App uses on a real device? Does the native app container automatically suppress/ignore unsupported desktop components even if they are forced via Device = Phone filters, or does it trigger an internal fallback to the native mobile global activity card (Recent Activity)?

I want to understand if this layout discrepancy is a known limitation of the App Builder preview simulator or if there is a specific mobile rendering logic that changes the component hierarchy on real devices and hence I can't also see the tab Activity on Salesforce app in the mobile phone.

Thanks in advance for your help! 

 

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

 

 

#Trailhead Challenges  #Trailhead  #Salesforce Developer

2 réponses
0/9000
Lena Wong a posé une question dans #Trailhead Challenges

Hi Trailblazers, 

 

I am a Sys Admin, and I’m facing a very frustrating behavior in Salesforce Lightning I am not used to. 

 

I miss the old Salesforce Classic way where you could simply click on the Accounts tab and find the "All Accounts" list view right there in the dropdown to select it. 

 

Currently, in my org, when I click on the Accounts tab, "All Accounts" does not appear anywhere in the List View dropdown. The only way I can actually see all accounts is by literally typing "all accounts" in the Global Search bar. When I do that and press enter, Salesforce shows me then All Accounts as one of the list views to select. 

 

Why does Salesforce hide the standard "All Accounts" view from the dropdown by default in newer orgs, forcing us to use Global Search?.

Is there a hidden global setting to restore the classic behavior so "All Accounts" is natively available in the dropdown without having to build a custom list view for every single object? 

 

Looking forward to your insights! 

 

@Salesforce Administrators & Developers,@Salesforce Administrators and Developers, @APAC Architects

 

Why is

 

 

 

#Trailhead Challenges  #Trailhead  #Salesforce Developer  #Salesforce Admin

8 réponses
0/9000
Lena Wong a posé une question dans #Trailhead

Hi Trailblazers,

I am facing a very specific behavior regarding Salesforce Duplicate Management combined with Before-Save Flows (Fast Field Updates) for cross-object matching, and I would love to get the perspective of senior architects here. 

 

My setup:

  1. Since Salesforce native Matching Rules don't support Picklists for cross-object matching (Lead vs Contact), I implemented a standard workaround. I created a custom text field called Company_Match_Text__c on both Lead and Contact.
  2. A Before-Save Flow on both objects copies the value of a standard Company_Picklist__c into this custom text field upon creation/update to act as a text-normalized bridge.
  3. It uses an Exact Match criteria on Contact: 

    (Contact: Email EXACT MatchBlank = FALSE) AND (Contact: Company_Match_Text__c EXACT MatchBlank = FALSE)

  4. The Duplicate Rule is set to Alert and Report on both Create and Edit.

 

I have been analyzing two records with the exact same Email and the exact same Company text value:

  • Record A: Historical record (created months ago before this Flow/Rule deployment).
  • Record B: Newly created record (created today with the Flow active).

The Strange Behavior:

  • When opening the new record B, the native "Potential Duplicates" Lightning Component correctly shows: "We found 1 potential duplicate" (pointing to Record A).
  • However, when opening the historical Record A, the component says: "We found no potential duplicates".

For Troubleshooting I did the following:

  1. I clicked Edit on Record A, changed nothing, and clicked Save. The record saved cleanly. No duplicate pop-up modal appeared, even though B exists with identical data. (However, behind the scenes, the Before-Save Flow ran and populated the custom text field for the first time).
  2. I clicked Edit on Record A again, changed the company field to a completely different value, and clicked Save. It saved without alerts (Expected behavior).
  3. I clicked Edit on Record A a third time, and reverted the company back to the original value to match Record B. Upon clicking Save, the Duplicate Rule instantly triggered the yellow "Similar Records Exist" pop-up window.

Mi Before Save flow works when a Contact record is created o updated.  

To give you more context on the Flow logic, the Decision Node evaluating the change is structured as follows:

  • Condition Logic: (1 OR 2) AND 3

  1. {!$Record.Id

} Is Null = True (New Record) 

  2. {!$Record.Company_Picklist__c} Is Changed = True (Field Updated) 

  3. {!$Record.Company_Picklist__c} Is Null = False (Ensures field contains data) 

 

Because of Condition #2 (Is Changed), when we perform a "no-change" Edit -> Save on the historical Record A, this decision path evaluates to FALSE on the client/payload trigger level. However, since the record is technically hitting the database transaction, the Before-Save Assignment element still executes downstream or forces an update, which is why the field gets populated in the database but completely bypasses the Duplicate Rule UI engine. 

 

Is it a known behavior that Salesforce completely skips the duplicate rule evaluation UI modal on an Edit -> Save transaction if the client-side payload detects no changes in the specific fields participating in the Matching Rule even if a Before-Save Flow alters database values during that same transaction?

 

Would you consider this standard behavior of the Salesforce optimization/indexing engine for duplicate management, or an edge-case bug with Before-Save updates on historical data?

Thanks in advance for your insights! 

 

@Salesforce Administrators & Developers, @Salesforce Administrators and Developers, @APAC Architects

 

#Trailhead

4 réponses
  1. 16 juil., 14:17

    Hi @Lena Wong

     

    What you're seeing is generally expected behavior rather than a bug. Duplicate Rules are evaluated based on the values Salesforce considers to have changed during the DML operation. A

    Before-Save Flow can update field values before commit, but a no-change Edit → Save may not cause the duplicate evaluation/UI to reprocess the record in the same way as an actual field change.

    For historical records, a common approach is to perform a one-time backfill (Batch Apex or Data Loader update) to populate the helper field, then run a real update on the affected records so the duplicate engine re-evaluates them consistently. After all legacy records have been normalized, the duplicate behavior is typically consistent for both new and existing records.

    So I'd consider this more of a platform optimization/edge case with legacy data than a defect in Duplicate Management itself.

0/9000

Based on the SF announcement that come June, System Administrator users need to adopt Phishing-Resistant MFA for login, we will move to using a Yubikey for me.   We are a relatively small non-profit,  totally virtual/no physical location. Thus, all workers are remote.  We have 20 SF users. I appreciate any guidance. Question is, what is the justification or real world need for use making it required for all our users to use a physical key?

56 réponses
  1. 7 juil., 12:56

    I wanted to share with everyone some quick updates on this.  The enhanced MFA requirements have gone live in my Sandbox and just so everyone knows the UI has changed a bit. I am posting a couple of screen shots, as an fyi. 

    I wanted to share with everyone some quick updates on this. The enhanced MFA requirements have gone live in my Sandbox and just so everyone knows the UI has changed a bit.

    Also, if you now hit "Use a Different Verification Method", it takes you to this screen. 

     

    New Verify Identiy Screen 2.png

     

    Not a huge deal, but if you have created any training documents around this, you may need to update them. 

     

0/9000
Lena Wong a posé une question dans #Experience Cloud

Hi Trailblazers,

I am currently evaluating the architecture for a B2B customer portal using Experience Cloud. I would like to get a clear technical understanding of how Salesforce handles duplicates during user self-registration, and whether utilizing Screen Flows or LWC is truly necessary for this specific validation.   

My questions are:   

  • When enabling the native Configurable Self-Registration under the Login & Registration settings, what exactly happens behind the scenes if a potential user tries to register with an email address or any data that already exists in the system? Does Salesforce natively block the registration and throw an error message, or does it require manual implementation of Duplicate/Matching Rules? 
  • Does the standard self-registration mechanism only check for existing User records (login credentials), or does it also prevent creating duplicate Contact records if the email already exists in the CRM as a prospect or sales contact?
  • Would you suggest using a custom Screen Flow on the public site to handle the registration intake and manually query for duplicates?. From a security and architecture perspective (especially running under the Guest User context), is a Flow recommended for this? Or is it better to stick to the native self-registration backend, perhaps customizing only the UI layer via a Lightning Web Component (LWC)?

I want to avoid reinventing the wheel if Salesforce already handles these validations natively, but I also need to ensure a clean user experience (UX) without data duplication. 

Looking forward to your architectural insights and best practices!

Thanks in advance!    @Salesforce Administrators & Developers, @Salesforce Administrators and Developers, @APAC Architects    

2 réponses
  1. 18 juin, 15:15

    @Lena Wong

     

    Good architectural questions, Lena, and you're right to dig into this before building, because the default behavior surprises a lot of teams. Let me take your three questions in order. 

     

    On what native Configurable Self-Registration does when duplicate data comes in. This is the part that catches people out. Out of the box, the handler does a fairly narrow check. It can match an existing record and update it rather than create a new one, but it does not natively enforce your org's Duplicate Rules and Matching Rules the way a normal record save through the UI would. The self-registration path runs through the registration Apex handler and is not guaranteed to honor your declarative duplicate rules. So the honest answer is it does not robustly block duplicates for you. Treating native self-registration as a complete duplicate prevention layer is a mistake.

     

    On whether it checks only User records or also Contacts. This is the crux of your concern. The native mechanism is primarily concerned with the User and login identity. When someone registers, Salesforce creates or matches a Contact and then provisions a User tied to it. The handler can be configured to look for an existing Contact by email and link to it, but that's configuration dependent, not automatic. So if an email already exists in the CRM as a sales prospect or Contact, native self-registration does not reliably prevent a second Contact unless you've built the matching logic to catch it. The duplicate-Contact scenario you're worried about is a real risk with the pure native setup, especially in B2B where the same person often already exists from sales activity.

     

    On the architecture question. Here I'd push back gently on one part of your framing. A Screen Flow running under Guest User context on a public page is something I'd be cautious about for registration intake. Guest User has been progressively locked down for good security reasons, and giving it the query and create access needed to check for and provision users widens your attack surface in ways that are hard to control. You can do it, but you're taking on the security ownership.

     

    The pattern I'd recommend for a B2B portal: keep the native self-registration backend as your foundation, because it handles User provisioning, license assignment, and the security-sensitive parts you don't want to hand-roll. Then customize the registration handler Apex class, which is where the real control lives. Inside that handler you can run explicit SOQL to check for existing Contacts and Users by email, apply your matching logic, and decide whether to link or create. This runs in a controlled system context rather than relying on Guest User permissions, which is the security advantage. For the UI, a custom LWC gives you the clean UX and inline validation you want while still posting into that controlled backend.

     

    So the layering is: custom LWC for the front-end experience, native self-registration as the provisioning backbone, and a customized Apex handler as the place where you enforce duplicate prevention with real query logic. Clean UX, avoids reinventing the hard parts, keeps duplicate logic in a secure context.

     

    Two things to decide deliberately as you design this. First, your matching key. Email is obvious, but in B2B you often have the same person across multiple accounts or shared inboxes, so decide whether email alone is your uniqueness rule or whether you need email plus account context. Second, plan for the "Contact already exists from sales" case explicitly, because it's the most common real-world collision in B2B. Linking the new portal User to the existing Contact is usually the right call so the portal and sales relationship stay unified, but it has ownership and sharing implications worth thinking through.

     

    To directly answer your "avoid reinventing the wheel" goal: there is no robust duplicate prevention for self-registration natively, so you can't skip that logic. But you also shouldn't rebuild the whole provisioning stack. The sweet spot is native backend plus customized handler plus LWC, which reuses the wheel where it's solid and only adds custom code where Salesforce genuinely leaves a gap.

    -SP

0/9000
Lena Wong a posé une question dans #Sales Cloud

Hi all,

I am on my search of a good data quality tool which should not be expensive.

Which data quality tool would you recommend from your experience?.

 

#Sales Cloud  #Integration  #Data Management

5 réponses
0/9000
Lena Wong a posé une question dans #Outlook/Teams/Gmail

Hi everyone,

 I need some architectural advice regarding Email Threading for following scenario:

 

  • When a Case is created, a Lightning Email Template is sent via Flow.
  • The business wants a 'mailto' hyperlink in the email body so the customer can click it to send a follow-up email.
  • This mailto link is configured to pre-fill the recipient (support@company.com) and the Subject line with the Case Number (e.g., Re: Case 00123456).

The Problem:  My assumption is that if a customer uses this mailto link, it creates a brand new email in their client (Outlook/Gmail). Since this new email lacks the original Message-ID headers (In-Reply-To / References) and the Thread ID (if using the old string-based threading), Salesforce will not be able to associate this incoming email with the existing Case, resulting in a duplicate Case.

My Questions:

  1. Is my assumption correct that a standard mailto link breaks the threading logic in Salesforce Service Cloud?
  2. Is there any declarative way (Flow/Standard Config) to ensure these replies attach to the original Case based solely on the Subject line containing the Case Number?
  3. Or does this require Custom Development (e.g., an Apex Inbound Email Handler) to manually parse the Subject and link the email to the correct Case?

The sent of such emails should be considered for the channels email-to-case, manual and portal.

 

Thanks in advance for your help!    @Salesforce Administrators & Developers @Salesforce Administrators and Developers  @* Outlook/Teams, Gmail, and Inbox * @* Service Cloud * 

1 réponse
0/9000

Anytime we extract data that includes an HTML field, the data from the HTML field splits across multiple rows because of line breaks within the HTML code.  

 

Does anyone have a strategy for extracting this data cleanly? It's making data migrations extremely challenging.

3 réponses
0/9000
Lena Wong a posé une question dans #Experience Cloud

Hi Trailblazers,

 

I am looking for comprehensive guides (not just scattered articles) that cover:

  1. Front-end Design Standards: What are the out-of-the-box UI/UX limitations of SLDS in Experience Cloud? How much "maneuverability" do we realistically have with standard layouts vs. custom LWC for interactions?
  2. Technical Tracking & Analytics: Beyond the basic Google Analytics integration, what are the best practices, tools for tracking detailed user interactions (clicks, flow completions, searches) within Experience Cloud? Are there specific manuals for implementing advanced tracking?
  3. LWR vs. Aura: A comparison guide focused on design flexibility and performance for the front-end.

Since I am not a developer, I would like to know what is "technically possible and sensible," any recommendation for books, whitepapers, or structured PDF guides would be greatly appreciated.

Thanks in advance!    @Salesforce Administrators & Developers @Salesforce Administrators and Developers  

1 réponse
0/9000