- https://profilepowertools.com/ - To review FLS permissions across profiles
- https://www.ownbackup.com/ - backup tool
- Salesforce Org Doctor is a free, automated tool that will scan your Org against a set of metrics and provide you with a report detailing how well (or not) you're doing in those areas.
Monday 24 May 2021
Helpful Productivity/backup Tools
Thursday 22 April 2021
Salesforce Summer '21 Release Highlights/Interesting Features
Summer21 Release Notes - https://help.salesforce.com/articleView?id=release-notes.salesforce_release_notes.htm&type=5&release=232
Pre-Release Org Signup- https://www.salesforce.com/form/signup/prerelease-summer21/
Sandbox Preview Cutoff Date - May 6th (https://help.salesforce.com/articleView?id=000357271&type=1&mode=1)
Summer 21 Interesting Features -
- Hard limit of total custom fields per object has been increased from 800 to 900
- Use the new Active Licenses tab in the Lighting Usage App to monitor
org's active, assigned, and available licenses. Note - The Lightning
Usage App isn’t available for sandboxes. Data for the Active Licenses
tab is collected on Sunday each week
- Analyze Custom Lightning Components performance on the lightning record page
- Record Access Reason i.e. sharing hierarchy is now available in LEX, now no need to switch to classic to review the sharing reason
- Ability to share records owned by high volume users by creating guest user sharing rules
- Restriction rules is available as a Beta feature and available for custom objects, contracts, tasks, and events, can be created using Tooling/Metadata API. Without restriction rules, users with access to an account can see its contracts, tasks, and events, even when the organization-wide default is set to Private.
- Default values on dependent picklists are available on accounts, opportunities, cases, contacts, leads, and custom objects.
- Beta Feature - Ability to set an expiration dates while assigning users to a permission set or permission set group so you can control when the user's permissions would expire based on use case
- Mass actions now available in split view i.e. No need to open a separate list page—act on multiple records at once
- Aura components in the ui namespace are deprecated and are not supported. Recommended to migrate to LWC
- Quick actions can now be created with LWC, also now a new custom label and a reference to that custom label in an existing Lightning web component can be deployed in a single deployment unlike earlier.
- Legacy versions 20.0 and earlier of the Salesforce Platform API are deprecated and no longer supported by Salesforce.
- Active and Inactive picklist values usage along with max allowed can be tracked from the object detail page, Unrestricted bound picklists have a limit of 1,000 on active picklists and a limit of 4,000 on inactive picklists.
- A limit of 4,000 on inactive values for unrestricted picklists is set by default to improve the performance/user experience(https://help.salesforce.com/articleView?id=release-notes.rn_forcecom_fields_inactive_picklist.htm&type=5&release=232)
- Topics for Objects is now available in LEX with Summer 21
- For Salesforce sessions, can now redirect all expired tabs in your browser to a custom logout URL
- Salesforce Optimizer PDF report feature is no longer available after June 2021.
- Inline Editing is now available in reports as a Beta Feature, also dashboard image can now be downloaded in LEX
- With Summer21, using "Send to List", surveys can be sent to bulk participants
- Auto add new custom fields to custom report types is now GA
- Define Apex to run database operations in user mode or system mode by using AccessLevel parameter
- Using Event Monitoring, api version usage can now be tracked with the API Total Usage event type in the EventLogFile object. Also User_Type field can be used to track whether the event initiated user is authenticated or guest user
- Transfer Chat Conversation while in an active Messaging Session is available by just a click
- MFA Assistant is now available to collect early feedback on the MFA user experience
- Lightning component changes i.e. when users create,change or delete can now be tracked using audit trail
Summer21 Enforced Release Updates -
- Disable Access to Non-global Apex Controller Methods in Managed Packages (Update, Enforced)-This update corrects access controls on Apex controller methods in managed packages. When this update is enabled, only methods marked with the global access modifier are accessible by Aura components from outside the package namespace. These access controls prevent you from using unsupported API methods that the package author didn’t intend for global access.
- Enforce Access Modifiers on Apex Properties in Lightning Component Markup (Update, Enforced)-This update makes Lightning components consistent with the use of Apex properties in other contexts. For example, a markup expression can no longer access an Apex property with a private Apex getter. This release update doesn’t affect usage of Apex setters.
- Convert the Read Only Standard Profile to a Custom Profile (Update, Enforced)-This update converts the Read Only standard profile to a custom profile, which allows you to edit permissions in this profile as your business needs require. This update was first available in Spring ’21 and is enforced in Summer ’21.
- Require Verification When Experience Cloud Users, Partners, and Customers Change Their Email Address (Update, Enforced) - To protect user accounts against security threats, Salesforce now requires Experience Cloud users, partners, and customers to verify their email address changes. This update, first available in Winter ’21, was scheduled for auto-enforcement in Spring ’21, but was postponed to and is enforced in Summer ’21.
Reports&Dashboards Summer21 Features -
- Inline Editing available as a Beta feature from the Report Run Page -Enable Inline Editing in Reports (Lightning Experience Only) from the reports&dashboard settings https://help.salesforce.com/articleView?id=release-notes.rn_rd_reports_inline_editing.htm&type=5&release=232
- Ability to auto add new fields to all custom report types
- Download the dashboard image to a PNG file
Video on reports/dashboards summer21 features/inline editing in reports -
Thursday 7 January 2021
Salesforce Spring 21 Release Highlights/Interesting Features
Spring21 Release Notes -
- Aura components in the ui name space are being depracated from May 1, 2021, replace with the alternative lightning namespace
- Create a Lightning Web Component Action (Pilot), pilot feature to add LWC component as object specific quick action
- Manual sharing is now available in LEX
- Roles can now be increased to 5000 from the default 500 limit by contacting support
- Customer MetadataType Limits can now be tracked over system overview page
- Auto track the metadata changes between your local project and a sandbox by below command -
sfdx force:source:status -u username
- Lightning Flow is now called as Salesforce flow, similarly lightning flow/process builder are called as flow/process builder
- Flows debugging is made easy as now one can click a link in the error email to open flow builder to see the failed flow path
- Enhancements to the lightning page performance on desktop/mobile to review the performance breakdown by component/EPT/Page load time
- Leverage the static custom metadata type methods to retrieve information so to avoid soql queries
- Release updates will be enforced as part of spring21, please find the detailed list https://help.salesforce.com/articleView?id=release-notes.rn_ru.htm&type=5&release=230
Monday 17 August 2020
SfdcOneStop Intro
We have created sfdconestop blog/youtube channel for all those who are eager to learn Salesforce and get to know more about Salesforce. It will be beneficial for those who just started their career in Salesforce.
▶️Subscribe: https://www.youtube.com/c/sfdconestop
👉 https://sfdconestop.blogspot.com/
👀 Follow us on Linkedin : https://www.linkedin.com/company/sfdconestop
All the latest happenings will be updated in this blog.
Salesforce is one such technology which can be self learnt through trailheads and different blogs/videos, one need not be a hard core developer. If you are a fresher/experienced, do have your hands on to clear the interviews. Having at least one certification will be helpful in getting your resume screened by the recruiters.
To know how to create your own developer org, please refer this link and follow the steps mentioned after which you will have your own developer org and you can do lot of practice to become expert in salesforce.
https://sfdconestop.blogspot.com/p/how-to-create-developer-org.html
If you would like to contribute your content/video in my blog, please feel free to contact through the below link -
https://sfdconestop.blogspot.com/p/about-me.html
Hope this blog helps, wish you all the very best in your career!!
Winter21 Interesting features/sneakpeek
https://www.youtube.com/c/sfdconestop
Winter21 PreRelease org signup link -
https://www.salesforce.com/form/signup/prerelease-winter21/
Salesforce Optimizer -
Analyze your implementation to find ways to simplify customization and drive feature adoption. Consider running Salesforce Optimizer as part of your monthly maintenance, before installing a new app, before each Salesforce release
- Now you can schedule the run once a month to get the updated org health info
- Review the below newly added winter21 features as part of org health results -
Pending Release Update,Critical Permission Assignment, Profile Assignment,Insecure Default External Access Levels,Sharing Rules for All External Users,Insecure Settings for Guest Users,Public Groups and Queues with Guest Users
- Review the trends of storage limit, data storage limit, and static resource limit to track the history of your org to maintain the org health
Reports Winter 21 Updates -
Report Subscription Attachment is now GA! Upto 15,000 rows and 30 columns are now supported as part of the file attachment.
With the Winter’21 release, auto add fields to custom report types is now an Open Beta! Any admin can enable this feature in Report & Dashboard settings in Setup.
Lightning App Builder -
There is a new Analyze button on Lightning record pages in App builder, allowing admins to run a performance analysis on their Lightning record pages from within Lightning App Builder. The analysis run will give a performance rating (Good, Moderate, Poor) for the page along with recommendations for improve the performance.
Admins can give feedback on the recommendations directly in the analysis results window to let us know if the analysis and recommendations were helpful, along with anything else they’d like to share.
Performance Analysis in App Builder is available for desktop record pages only.
Dynamic Forms GA -
Dynamic Actions -
- In Winter21 Account, Contact, Lead, Case, Opportunity are available as Beta for Dynamic Forms/Actions(Migration wizard support is not included)
- You can specify action visibility based on record field, device type, and other filters, to control which actions appear for which users
https://trailblazer.salesforce.com/ideaview?id=08730000000BroxAAC
https://releasenotes.docs.salesforce.com/en-us/winter21/release-notes/rn_forcecom_lab_ui_changes.htm?edition=&impact=
Einstein Opportunity Scoring Tuner-
Fields exclusion - It allows them to exclude fields from the model. Whether because these fields contain data that can potentially hurt model performance or business considerations that requires avoiding some fields from being used by the model.
Record level filtering - Excluding a specific set of records from the model. As a result, the model won't use these records for training, and they won't get scores. It's relevant when there are records that don't represent real deals or to exclude system-generated records.
The model works great without tuning. Tuning should be used only if there’s a concrete reason.
Winter21 Release notes -
https://releasenotes.docs.salesforce.com/en-us/winter21/release-notes/salesforce_release_notes.htm
Understand Salesforce Trust/Sandbox Preview/non preview/Release lifecycle/Data Center
Please do continue to like, share and subscribe sfdconestop Youtube
channel, if you find the Salesforce tutorials(100+ Video's) to be
informative!!
▶️Subscribe: https://www.youtube.com/c/sfdconestop
👉 https://sfdconestop.blogspot.com/
👀 Follow us on Linkedin : https://www.linkedin.com/company/sfdconestop
************************************************************************************
Sandbox Preview/non preview best practices - review here
How to identify a Salesforce Instance and check the instance availability/Salesforce trust overview, review video here
Salesforce Release Non Production/Testing features -
Pilot -
Usually the first phase of public testing, Pilots normally include a
small subset of participant Organizations. These Organization’s must
request to opt in to a Pilot and then be nominated for participation.
BETA -
Features with successful Pilots will often transition to the BETA
phase. This involves rolling the feature out publicly for testing.
Features for Production Use -
Generally Available (GA) - Once a feature has passed the Pilot and BETA testing phases it will be formally included in a Salesforce release.
Sandbox Preview Overview Video -
The best resource for sandbox preview planning is the Salesforce Sandbox Preview Guide. In the guide, look up your sandbox instances and get guidance on positioning them for the next release.
https://sandbox-preview.herokuapp.com/sandbox/instances
Release Readiness Trailblazer Group -
https://trailblazers.salesforce.com/_ui/core/chatter/groups/GroupProfilePage?g=0F9300000001okuCAA
Release Readiness Strategies -
Where is my Salesforce instance located/data center -
https://help.salesforce.com/s/articleView?id=000314281&type=1
Salesforce Release/System Maintenance Window Timelines -
https://help.salesforce.com/s/articleView?id=000331027&type=1
Wednesday 15 July 2020
Trailheadx20 highlights
Code Builder available as Pilot feature
Code Builder is a new, web-based dev environment optimized for Salesforce(no software to install like VS code on desktop)
dev blog -
https://developer.salesforce.com/blogs/2020/06/introducing-code-builder.html
admin blog-
https://admin.salesforce.com/blog/2020/new-devops-center-is-awesome-for-admins
Salesforce Functions available as Pilot feature
Developers can write code in any language of their choice
Safe Navigation Operator will be GA in Winter21 release
No need to write heavy code for null check simply use the safe navigation operator( ? )
Architect Guide-
https://medium.com/salesforce-architects/introducing-architect-decision-guides-609ae5d7b5da
Recordings-
https://trailblazer.salesforce.com/sessions?eventId=a1Q3A00002Ihno1UAB#/session/a2q3A000001rVc7QAE
Trailhead in a Box -
https://trailhead.salesforce.com/en/users/strailhead/trailmixes/trailhead-in-a-box
Getting started
https://trailhead.salesforce.com/en/users/strailhead/trailmixes/get-started-with-trailhead-end-user
My Custom sfdconestop Trailmix
https://trailhead.salesforce.com/en/users/nayanakadiyala/trailmixes/sfdconestop
Friday 26 June 2020
Lightning Performance best practices
Run the “Salesforce Performance Test” to obtain a user(s) Octane score, latency, and download speed
Lightning Console Technical Requirements-
https://help.salesforce.com/articleView?id=console2_technical_requirements.htm
In Lightning Experience, page load times can be captured using Lightning Component Debug Mode, or by appending ?eptVisible=1 to your URL.
Friday 12 June 2020
Salesforce Automation Best Practices
Tuesday 19 May 2020
Interesting Salesforce Chrome Extensions/tools for Productivity
Salesforce advanced Code searcher
https://chrome.google.com/webstore/detail/salesforce-advanced-code/lnkgcmpjkkkeffambkllliefdpjdklmi?hl=en
Salesforce extentions helps to Quick Find,Login,Query,Backup,View LWC Code,Cron Expression,Record Edit-View,Exports
https://chrome.google.com/webstore/detail/salesforce-dev-essential/acpngnlieelljdlljmenkagbonaicccj
Salesforce API Fieldnames
https://chrome.google.com/webstore/detail/salesforce-api-fieldnames/oghajcjpbolpfoikoccffglngkphjgbo
Salesforce inspector to inspect data/metadata
Sandbox Favicon Extension
https://chrome.google.com/webstore/detail/salesforcecom-sandbox-fav/nkfllgjejgfgcddfccnijhndhdmjkamf
Salesforce Comparator for users/profiles/PS
https://perm-comparator.herokuapp.com/
Comparison Tool | https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcqksUAB | Analyze, compare and contrast security settings (Profiles and Permission Sets) within environments or between environments. |
https://www.platformdemos.com/s/
https://www.lucidchart.com/blog/salesforce-schema-import
https://www.lucidchart.com/blog/lucidchart-schemapuker-for-salesforce-consultants
https://schemapuker.herokuapp.com
Wednesday 13 May 2020
Top Authentication features of Salesforce Summer 20
- Delegated Authentication can be enabled from SSO settings without contacting Salesforce Support
-
Feasibility to turn off case-sensitivity of Federation IDs for your entire Salesforce org, easing integration by enabling Make Federation ID case-insensitive under SSO settings
- Feasibility to skip identity verification for highly trusted users by enabling " Skip Identity Confirmation at Login" permission for the required user profile.
- Ability to Filter Login History by Application and Login Types i.e.filter Login History reports and list views by the type of application a user logged in from, such as a mobile device. You can also filter by the type of login, such as Outlook integration logins. These filters apply to login data captured over the past 6 months.
Monday 11 May 2020
Salesforce Availability Tutorial
Salesforce Storage/Org Limits Monitoring/Apex Governor Limits
Get org wide usage/limit using System.OrgLimits.getMap() then show them with progress bar.
https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000GB0jYUAT
Run the below code from developer console -
Http http = new Http();
HttpRequest httpReq = new HttpRequest();
HttpResponse httpRes = new HttpResponse();
httpReq.setMethod('GET');
httpReq.setHeader('Authorization', 'OAuth ' + UserInfo.getSessionId());
httpReq.setEndpoint(URL.getSalesforceBaseUrl().toExternalForm()+ '/services/data/v48.0/limits/');
httpRes = http.send(httpReq);
//return httpRes.getBody();
system.debug(''+ JSON.serializePretty( JSON.deserializeUntyped(httpRes.getBody())));
Friday 1 May 2020
Summer 20 Highlights/Interesting Features
https://www.youtube.com/watch?v=tK5zwPJ-70k
To explore the summer 20 features and have hands on experience, sign up for the pre release org using below link - https://www.salesforce.com/form/signup/prerelease-summer20/
Post user creation login using login.salesforce.com url.
Few of the Summer 20 features that are interesting and beneficial are as below -
1) Split Views for lightning Salesforce application
Split view previously was available only for the console navigation style.Now with summer 20 split view is available for all the objects in the navigation bar
2) Salesforce optimizer
The Optimizer page in Setup has a refreshed look, but it still delivers the same recommendations about simplifying customizations and driving feature adoption.All the recommendations are available in lightning application and need not scroll over the pdf
3) Release Updates(Beta)
Release Updates offers a detailed view of information previously found in the Critical Updates console.
Review and activate release updates to improve org performance, security, business logic, and usability. Unified view of security updates and critical updates. This gives admin clear instructions on the due date, whats changing and how the release update will impact their org
4) From summer 20 by default with bulk api you can process 15,000 batches in a 24-hour period.
5) Dynamic Forms (Non GA) in lightning app builder
To enable Dynamic Forms in your org, from Setup, enter Record in the Quick Find box, and then click Record Page Settings. In the Dynamic Forms section, flip the switch to On.
Reduce the number of page layouts by setting component visibility rules
Summer 20 release notes will be available from 4th May.
Sandbox Preview/Non Preview-
Sandbox Instances are split up in two groups – Preview and Non-Preview. Preview Instances are instances which get upgraded to the newer version of Salesforce before Production Instances (e.g. NA2, EU1, AP0) and Non-Preview Instances are upgraded towards the end of a Major Release along with the majority of Production Instances as few customers want to delay the upgrade on one or more sandboxes due to requirements around specific projects.
sandbox preview starts approximately 4-6 weeks before the production upgrade, cut off date for preview sandbox is 29th May.
You can key in your instance name like cs87 at the instance of the below url to understand what action to be take to stay in preview/non preview mode-
Sandbox Refresh Calculator -
https://sandbox-preview.herokuapp.com/sandbox/instances
https://sandbox-preview.herokuapp.com/
Sandbox Preview Trailhead -
https://trailhead.salesforce.com/en/content/learn/modules/sf_releases/sf-releases-sandbox-preview
Sandbox preview cutoff date is May 29th
Summer20 Release notes-
https://releasenotes.docs.salesforce.com/en-us/summer20/release-notes/salesforce_release_notes.htm
Friday 27 December 2019
Test Rest Service Using Postman/Workbench
- Postman is an API collaboration platform used by over 17 million people. While Postman does much more, it’s most frequently used as an API client. Developers use Postman to send API calls and inspect what comes back.
- Review below Postman/RestService demo video -
- Postman Trailhead Module(web versio) - https://trailhead.salesforce.com/en/content/learn/modules/postman-api-client
- Download Postman(desktop agent) - https://www.postman.com/downloads/
Apex Class Code -
@RestResource(urlMapping='/api/Account/*')global class MyFirstRestAPIClass { @HttpGet global static Account doGet() { RestRequest req = RestContext.request; RestResponse res = RestContext.response; String AccNumber = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1); Account result = [SELECT Id, Name, Phone, Website FROM Account WHERE AccountNumber = '12345' ]; return result; } @HttpDelete global static void doDelete() { RestRequest req = RestContext.request; RestResponse res = RestContext.response; String AccNumber = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1); Account result = [SELECT Id, Name, Phone, Website FROM Account WHERE AccountNumber = '12345' ]; delete result; } @HttpPost global static String doPost(String name,String phone,String AccountNumber ) { Account acc = new Account(); acc.name= name; acc.AccountNumber =AccountNumber ; insert acc; return acc.id; } }
Friday 2 August 2019
Community/Experience Cloud Certification
▶️Subscribe: https://www.youtube.com/c/sfdconestop
👉 https://sfdconestop.blogspot.com/
👀 Follow us on Linkedin : https://www.linkedin.com/company/sfdconestop
Study Guide:
https://trailhead.salesforce.com/help?article=Salesforce-Certified-Community-Cloud-Consultant-Exam-Guide
-
Time allotted to complete the exam: 90 minutes
-
Passing score: 62%
-
Registration fee: USD 200, plus applicable taxes as required per local law
-
Retake fee: USD 100, plus applicable taxes as required per local law
Trailmix:
https://trailhead.salesforce.com/en/users/sfdcfan/trailmixes/community-cloud-certification
Its very important to have hands on in implementing community in developer org to avoid confusion and eliminate the wrong answers.
It is recommended to go over quizlet and proprofs to get an hold on the sample questions and to self assess.
Self Assessment -Proprofs
Go through the below blogs as well for quick revision -
http://www.salesforcechris.com/community-cloud-consultant-resource-guide/
http://www.alwaysablezard.com/salesforce/salesforce-certified-community-cloud-consultant-exam-tips/
Thursday 11 April 2019
Org Migration Readiness
Frequently Asked Questions
What actions do I need to take to prepare for an org migration? What will happen if I don’t follow Salesforce Infrastructure Best Practices?
If you are not following our best practices outlined on the Plan and Prepare for Org Maintenance and Releases site, your end users may not be able to access Salesforce after the maintenance is complete.
In order to avoid unintended service disruptions, you may need to take the following actions:
i. Enabling My Domain (NOTE: My Domain is required for customers that have requested the org migration.), and if you have any hard-coded references (for example, na1.salesforce.com) make sure that you update them to relative URLs (for example, login.salesforce.com or your My Domain subdomain) prior to the org migration.
Will an org migration impact Live Agent?
It's possible. During an org migration, your org’s instance name changes. When this happens, the URL you use to access Live Agent/SOS changes. Chat clients and deployment code supplied by Salesforce react to this change and appropriately forward HTTP requests to the new endpoint, but some third-party or custom applications, including Live Agent custom REST clients, may not. These custom applications will not be able to find your account on your previous instance and will likely fail.
To minimize impact to your Live Agent/SOS implementation, follow best practices and ensure your Live Agent custom REST client can properly redirect requests to a new instance of the Live Agent service following any maintenance involving a move for your org. The best method to avoid these issues with your custom client (which, again, will not automatically direct requests to the correct endpoint) is to handle the SwitchServer response and use the 'newUrl' property for the request that resulted in this response and all subsequent requests thereafter. For more information on updating your custom client and testing, read the, How to update your Live Agent custom client when your org instance changes article. This will ensure your custom client will not encounter issues after a site switch, and will provide you ample time to later update the endpoint used from the start of its execution.
For more information about Live Agent endpoints and what is meant by hard-coded Live Agent references, review the article, Live Agent server (endpoint URL) has changed and now Live Agent Chat is no longer working.
Site Switch Readiness
What is a Site Switch?
Each Salesforce instance is built and maintained in two geographically separate locations. An instance is actively served from one location (the active site) with transactions replicating in near real-time to the other completely redundant location (the ready site). This infrastructure model allows us to switch the location of the active site for maintenance, compliance, and disaster recovery purposes, which is referred to as a site switch.
During site switch instance would remain the same instance however will be supported from the secondary data center. During Site switch org will be in read only mode for about an hour.
Important Actions
A. Subscribe to Trust Notifications to know when site switches happen.
B. Follow Salesforce infrastructure best practices by not restricting access to Salesforce IP ranges, removing hard-coded references, and by setting your DNS timeout value to 5 minutes (default setting).
C. Customers with Live Agent/SOS custom clients should ensure those clients can properly handle redirects to the new active site, otherwise a disruption to your Live Agent service can occur. The best method to avoid these issues is to handle the SwitchServer response and use the 'newUrl' property for the request that resulted in this response and all subsequent requests thereafter.
Frequently Asked Questions
1. How does Salesforce communicate a site switch?
Planned site switches are posted to the maintenance calendar on our Trust site at status.salesforce.com. If we need to perform a site switch during an incident to bring an instance back online, the incident record on status.salesforce.com will be updated to reflect that information. Sign up for Trust Notifications regarding your instance to receive maintenance notification emails (reminders, starting, updates, and completed) as well as incident notification emails (new, updates, resolved, and root cause). See the Trust Notification User Guide for more information on how to sign-up for these emails.
2. How long does a site switch take?
Currently, site switches can take approximately one hour to complete. As we improve our operational processes through practice and reiteration, our goal is reduce this window. For planned site switches, we post the anticipated site switch activity window to Trust.
3. Can I opt out of a site switch?
Individual orgs cannot be opted out of a site switches. Due to the multi-tenant architecture of our infrastructure, all orgs on the instance must undergo a site switch at the same time.
Planned site switches are only scheduled during preferred system maintenance windows. We ask that you plan maintenance activities for your Salesforce org (software upgrades, integration changes, etc.) outside of the preferred system maintenance windows.
4. Will I be able to access my org during a site switch?
During planned site switches, your org should be available in read-only mode for the duration of the site switch activity unless otherwise stated. If, for any reason, read-only mode will not be available, the maintenance record on Trust will be updated to reflect the expected impact to availability.
5. What actions are required to prepare for a site switch?
If you already follow our infrastructure best practices by not restricting access to Salesforce IP ranges and setting your DNS timeout value to 5 minutes (default setting), a site switch should be seamless to your users.
Otherwise, if you are restricting access to certain IP ranges or data centers, then update your network settings to include the complete list of Salesforce IP ranges in order to avoid any unintended service disruptions following a site switch. And if you control your DNS timeout values set, then you may need to refresh your DNS cache and restart any integrations following the maintenance.
6. How does a site switch impact previously scheduled activities (weekly exports, Apex jobs, etc.) and Apex callouts?
Ongoing activities will be paused prior to the site switch and resumed following the site switch. Activities scheduled during the site switch will start following the site switch.
A small subset of Apex, Batch Apex, REST API, SOAP API, and Bulk API jobs started prior to the site switch may return an error following the maintenance window. If you receive an error resulting from a previously scheduled job following the maintenance window, restarting the job will return the expected results. We recommend rescheduling large or long-running jobs after the site switch completes for the most seamless experience.Apex callouts to external services will continue to execute during the maintenance, and since these frequently result in follow-up DML calls to the Salesforce application, you may experience issues with intended program flows as the application will be in read-only mode. We recommend preventing these callouts from executing in read-only mode. For more information on how to prevent these callouts, see Apex Callouts in Read-Only Mode.
7. How does a site switch impact Web-2-Lead, Web-2-Case, and Email-2-Case activities?
Web-2-Leads, Web-2-Cases, and Email-2-Cases that occur during the site switch will be queued and processed following the completion of the site switch.
8. Will a site switch impact Live Agent?
Yes. During a site switch, your org’s active site gets switched to the ready location, and the ready site gets switched to the active location. When this happens, the URL you use to access Live Agent/SOS changes. Chat clients and deployment code supplied by Salesforce react to this change and appropriately forward HTTP requests to the new endpoint, but some third-party or custom applications, including Live Agent custom REST clients, may not. These custom applications will not be able to find your account on your previous instance and will likely fail.
To minimize impact to your Live Agent/SOS implementation, follow best practices and ensure your Live Agent custom REST client can properly redirect requests to a new instance of the Live Agent service following any maintenance involving a move for your org. The best method to avoid these issues with your custom client (which, again, will not automatically direct requests to the correct endpoint) is to handle the SwitchServer response and use the 'newUrl' property for the request that resulted in this response and all subsequent requests thereafter. For more information on updating your custom client and testing, read the article, How to update your Live Agent custom client when your org instance changes. This will ensure your custom client will not encounter issues after a site switch, and will provide you ample time to later update the endpoint used from the start of its execution.
For more information about Live Agent endpoints and what is meant by hard-coded Live Agent references, review the article, Live Agent server (endpoint URL) has changed and now Live Agent Chat is no longer working.
9. How does a site switch impact ongoing sandbox refreshes?
Sandbox refreshes that are not completed prior to the site switch will be stopped. The sandbox refresh will restart (not resume) following the site switch. In addition, customers will not be able to initiate a sandbox refresh during the site switch.
Email2Case Setup/Troubleshooting
When emails are sent to the email to case address by a customer two cases being created.
Duplicate
cases being created in Salesforce by Email-to-Case can be due to a
series of reasons: a workflow rule, an error with the setup on the email
server, inaccurate forwarding to the email services address, or the
organization recently switched to On-Demand Email-to-Case but the Agent
has not been deactivated.
Try the following to narrow down the cause:
1.
Check all Process Builder/Flow to ensure that there is not an
inadvertent workflow that was created to cause the duplicate cases.
If no Process Builder/Flow are causing the duplicates then proceed with testing and replication.
2.
Check to see if you can replicate the issue with both the email address
that is customer-facing as well as the service address (the service
address is the long address that Salesforce generates when creating a
new routing address):
First, attempt to duplicate the results by
sending an email to the email address that customers are using. (This
should trigger a dup, but note that it can be intermittent.)
Next,
send an email directly to the email service address that the emails are
being forwarded to and see if this causes the creation of a duplicate.
More often than not, when emailing the service address directly you will
find that no duplicate cases have been created.
Create an Email
Snapshot to see how many emails are received in the org. If you capture
two emails, then email-to-case is working as expected, since two emails
will generate two cases. For more, please review Troubleshoot Inbound Email Errors with Snapshots
If
duplicate cases were created when sending emails to the email address
but not to the email service address, it could be that a setting on the
email server is causing the duplication. For example, the redirecting
rule on the email server is not set correctly, that the email address is
part of a cc list, etc. In this instance, the email administration team
needs to get involved and provide help by looking into the forwarding
of emails and any related settings in place on the email server.
Somewhere prior to forwarding to the service address, the email is being
duplicated and two emails are being sent to Salesforce.
3.
Finally, ensure the email-to-case agent is no longer active. If both the
agent and the on-demand version of email-to-case are enabled, and using
the same email address, this can cause both to create a new case.
4. Analyze email snapshot headers using http://mxtoolbox.com/NetworkTools.aspx
See Also:
Troubleshooting with Inbound Email Snapshots
Defining Email Service Addresses
Configuring Routing Addresses for Email-to-Case and On-Demand Email-to-Case
Deferred Sharing Rule Recalculation - Deployment Impact
Enable Deferred Sharing Rule Recalculation or Parallel Recalculation
Deferred Recalculation lets you apply sharing rule changes at a later time after you create or edit them.
Parallel recalculation takes advantage of multiple threads to speed recalculation of each object. .
To monitor your deployments done via the Metadata API:
In Classic:
1. Go to your name | Setup.
2. Click Deploy | Monitor Deployments.
In Lightning:
Go to Setup
Click on Environments under Platform Tools in the left hand pane
Click Deploy | Deployments StatusTo monitor your deployments via Change Sets:
The outbound change set page will show the results of the deployment, and an email notification will be sent out. If you notice that your deployment is successful but you are experiencing sharing access issues, you can take steps to mitigate them.
To monitor Sharing Rule recalculations running in parallel mode:
In Classic
1. Go to your name | Setup.
2. Click Monitoring | Jobs | Background Jobs.
In Lightning:
Go to Setup
Click on Environments under Platform Tools in the left hand pane
Click Jobs | Background JobsParallel recalculation jobs are listed together with other background processes, including a percentage estimate of the recalculation progress.
Good to know: Before you contact Salesforce Support to have these features enabled, check out Considerations Before Making Org Wide Sharing Changes, Deferred Sharing Rule Recalculation, and Parallel Recalculation.
Tuesday 2 April 2019
Bulk API V1/V2
▶️Subscribe: https://www.youtube.com/c/sfdconestop
👉 https://sfdconestop.blogspot.com/
👀 Follow us on Linkedin : https://www.linkedin.com/company/sfdconestop
Starting summer20 bulk api can now process 15000 batches against to earlier 10000 batches
Your organization can process 15,000 batches in a 24-hour period. If bulk jobs page doesn't load add the suffix to the url /750?job_info_only=true
Bulk API v2 lets you create, update, or delete millions of records asynchronously, just like Bulk API v1, but offers the following core improvements:
Bulk API v2 uses the same REST API framework as other Salesforce REST APIs. You can use OAuth authentication just like any other Salesforce REST API and take advantage of features like CORS (cross-origin resource sharing) support.
Bulk API v2 does away with the need to manually break up data into batches. Simply submit jobs with the full set of records, and Salesforce automatically determines the most efficient way to batch the data.
Bulk API v2 simplifies the basic daily limits. Instead of having limits based on the number of Bulk jobs and batches, you’re simply limited to a maximum number of records (100 million) per 24 hour period.
Bulk API v2 also has a number of new features that aren’t available in Bulk API v1, but more on that later.
Additional v2 Features
Bulk API v2 goes beyond Bulk API v1 and offers some additional features to make your life easier. These include:
When creating a new job, you can also include the job data in the same request, using a multi-part request. This is limited to smaller sets of records (up to 20K characters).
You can specify different column delimiters and line endings for your CSV data, including:
backquotes, carets, pipes, semi-colons, and tabs for delimiters (instead of commas)
carriage-return & linefeed line endings (instead of just linefeeds)
You can get a list of all Bulk API jobs in your org (active and completed) and use query parameters to filter this list. For example a GET request to /services/data/vXX.X/jobs/ingest?concurrencyMode=parallel will return a list of all jobs in your org using parallel concurrency mode for processing.
Note that you can’t do Bulk queries in Bulk API v2 yet.
Bulk API v2 reduces the amount of code you have to write and gives you more options on how to process your data. Plus, it simplifies data limits, so you can spend less time worrying about how much data you can work with, and spend more time actually running your integration jobs. Consider taking the time to switch over to using Bulk API v2 if you’re using v1, and your code will be slim and trim in no time!
Further resources
For more information on Bulk API v2, see:
Bulk API 2.0 Developer Guide
https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/how_requests_are_processed.htm Bulk API unit of the API Basics Trailhead module
Salesforce Governor limits
Below are the Pre transaction limits
Description Synchronous Limit Asynchronous Limit
Total number of SOQL queries issued (This limit doesn’t apply to custom metadata types. In a single Apex transaction, custom metadata records can have unlimited SOQL queries.) 100 200
Total number of records retrieved by SOQL queries 50,000
Total number of records retrieved by Database.getQueryLocator 10,000
Total number of SOSL queries issued 20
Total number of records retrieved by a single SOSL query 2,000
Total number of DML statements issued 150
Total number of records processed as a result of DML statements, Approval.process, ordatabase.emptyRecycleBin 10,000
Total stack depth for any Apex invocation that recursively fires triggers due to insert, update, or delete statements 16
Total number of callouts (HTTP requests or Web services calls) in a transaction 100
Maximum timeout for all callouts (HTTP requests or Web services calls) in a transaction 120 seconds
Maximum number of methods with the future annotation allowed per Apex invocation 50
Maximum number of Apex jobs added to the queue with System.enqueueJob 50
Total number of sendEmail methods allowed 10
Total heap size 6 MB 12 MB
Maximum CPU time on the Salesforce servers 10,000 milliseconds 60,000 milliseconds
Maximum execution time for each Apex transaction 10 minutes
Maximum number of unique namespaces referenced 10
Maximum number of push notification method calls allowed per Apex transaction 10
Maximum number of push notifications that can be sent in each push notification method call 2,000
Capture and debug network traffic with Fiddler
To do this, we will use a tool, called Fiddler (Not a Salesforce product). Fiddler is a tool for analyzing HTTP and HTTPS (must be enabled from within the app) transactions. This program is a simple-to-use version which can save logs which you can send back to the support team.
In order to install this program, you will need Administrative rights on your local machine. Please consult your IT department if you are unsure, or experience problems installing the application.
Resolution
If you're working with a Salesforce support agent , they can request a capture of network traffic to help with troubleshooting. These can be helpful for support to diagnose issues such as network performance, proxy and browser issues, Single Sign-on, or Integration troubleshooting.
1. Download Fiddler 4 on the local machine
2. Complete the installation and run the application
3. In Fiddler, from the top menu click on Tools | Options | HTTPS |Capture HTTPS CONNECTs
4. Check the box for Decrypt HTTPS traffic and agree to any prompts to install the needed certificate for https decryption
5. Select "Ignore Server Certificate errors" and click on ok to exit out of the Fiddler options.
6. Ensure Capture traffic is selected under the File menu or press F12
7. Run the application or processes that needs debugging and do regular work until the issue seems to have re-occurred.
8. In Fiddler navigate to File | Save | All sessions and save them as a .saz file
9. Close Fiddler
10. Compress and zip the file and attach to the support case along with the information the exact time the issue occurred. You can also email it directly to the support rep you are working with.
* To compress the file, locate the file in the folder after you saved it and then right click on it and click on Send to | Compressed (Zipped) folder
Lightning Component Best Practices
https://developer.salesforce.com/blogs/developer-relations/2017/04/lightning-components-performance-best-practices.html
How to Capture HAR file and Analyze
▶️Subscribe: https://www.youtube.com/c/sfdconestop
👉 https://sfdconestop.blogspot.com/
👀 Follow us on Linkedin : https://www.linkedin.com/company/sfdconestop
Chrome
1. Go to the page where you're experiencing slowness.
2. Press F12 on your keyboard.
3. Click the Network tab in the diagnostic window.
4. Click on the link/button/tab to have the problem page or action load in the main window.
5. After the page loads, you should see some information and graphs in the diagnostic window. If the slowness was seen during this page load, Right-click in the diagnostic window and Save as HAR with content.
6. If you need to preserve the logs for multiple page loads, there's a 'preserve log' checkbox below the tabs.
7. Press F12 to remove the diagnostic window.
Internet Explorer
1. Press F12 on the keyboard.
2. You should see a component appear on the bottom of the screen.
3. Go to the Network tab in this component and press the green triangle (Play button)
4. Reproduce the issue.
5. To save, click the red square (stop button.) Directly to the right you will see a disk icon with an arrow on it.
6. Click this icon and save it.
7. IE only offers options to export as an XML or CSV file. Either format is fine. CSV can be viewed via Excel and XML can be viewed by any tool that can read HTTP Archive files, such as the Chrome extension, 'HTTP Archive Viewer.'
View the HAR file log
1. Go to the HAR viewer.
2. Uncheck: Validate data before processing? (Otherwise, an error may occur.)
3. Drag the HAR file inside 'Preview' box.
Row Lock - Record currently unavailable errors
▶️Subscribe: https://www.youtube.com/c/sfdconestop
👉 https://sfdconestop.blogspot.com/
👀 Follow us on Linkedin : https://www.linkedin.com/company/sfdconestop
These locks normally last for a few seconds and when the lock is released, other operations can do whatever processing they are supposed to do on the record in question. However, a given transaction can only wait a maximum of 10 seconds for a lock to be released, otherwise it will time out.
Common Scenarios that prevent unlocking record
a. Email-To-Case
When an email is processed by email-to-case, triggers on the email message object or related objects (i.e the parent account) will attempt to lock those records for processing. If another process is holding a lock on these records and the processing of the email has to wait for more than 10 seconds, a timeout will occur and you will see this error.
b. Apex Triggers/API
Assume there is an After Insert Apex Trigger on Tasks, and it runs for about 14 seconds while doing some processing. This trigger will run when a task is created. When tasks are created and are related to an Account, we place a lock on the parent Account while the task is being created. This means that the account cannot be updated while the task creation is in progress.
Reduce using Locking Statements.
Scenario:
User A imports a task via the data loader and assigns it to an existing account record. When the task is inserted, the apex trigger is fired.
Just 2 seconds after User A starts the insert via the data loader, User B is manually editing the same account record the task is related to.
When User B clicks Save, internally we attempt to place a lock on the account, but the account is already locked so we cannot place another lock. The account had already been locked by the creation of the Task.
The 2nd transaction then waits for the lock to be removed. Because the task takes about 14 seconds to be created, the lock is held for 14 seconds. The second transaction (from User B) times out, as it can only wait for a maximum of 10 seconds.
In this case, user B would see an error on the screen similar to the ones mentioned above. Apex Tests can also incur locks if run against production data.
c. Bulk API
Inserting or updating records through the Bulk API can cause multiple updates on the same parent record at once, because the batches are processed in parallel. For example, if two batches are being processed at the same time and the two of them contain records pointing to the same parent record, one of the batches will attempt to place a lock in the parent record, which can lead to the other batch throwing a "unable to lock row" error as the batch was not able to get a lock within 10 seconds.
To prevent this, you can do either of the following:
Reduce the batch size
Process the records in Serial mode instead of parallel, that way on batch is processed at a time.
Sort main records based on their parent record, to avoid having different child records (with the same parent) in different batches when using parallel mode.
For these type of scenarios, it's also highly recommended that you become familiar with the guidelines found on the article
d. Master-detail Relationship
If a record on the master side of a master-detail relationship has too many child records (thousands) you are likely to encounter these errors as well, as every time you edit the detail record, the master record is locked. The more detail records you have, the more likely that these will be edited by users, causing the parent record to be locked.
To prevent this issue you can move some child records to another parent, as to reduce the amount of child records attached to a single parent record.
Record Level Locking is a common scenario which can be reduced.
Troubleshooting:
1. You can enable Debug logs for the user who is facing the error , to find the offending trigger/flow/ValidationRules/ causing the issue.
2. Check for any dependent background jobs that are running on the same object. If there is any, try to pause the jobs and then perform the actions to reduce row locks.
Sandbox Refresh Preview/non Preview Recommendations
You can key in your instance name like cs87 at the instance of the below url to understand what action to be take to stay in preview/non preview mode-
Sample format -
https://sandbox-preview.herokuapp.com/sandbox/cs87
For multi sandbox instances -
https://sandbox-preview.herokuapp.com/sandbox/cs87,cs88,cs89,cs90
Q: Is it possible to move my sandbox that received the release preview off the preview without a refresh?
A: No, in order to move a sandbox off of the release preview you will need to submit a refresh to direct the copy to a non-preview instance.
There are no exceptions and a refresh is always required in this circumstance because the preview upgrade is applied to the entire instance and not at the org level which is why a refresh is required to move the sandbox currently located on a preview instance to non-preview instance.
Q: Is it possible to upgrade my sandbox to the preview after the preview release date has passed?
A: No, since your production environment is still on the current release it is not possible to move an existing or refresh a new sandbox copy onto the release preview. The release version of a sandbox will always match the version of its production organization at the time of the copy.
This is why the sandbox preview window is important because it is designed to allow you to direct copies to sandbox instances that will be receiving an early upgrade or preview of the next release. The preview instances are all upgraded on a specific date. The only way to have sandbox on the release preview is for the refresh to be completed with the sandbox located on a preview instance so it can be upgraded with the instance.
If the preview upgrade date has passed it is no longer possible to direct copies or move a sandbox onto the release preview. The next opportunity to refresh a sandbox to the next major release will be after your production instance has been upgraded.
Should you need to test in a preview org, the only recommendation is to sign up for a pre-release org. The sign up link is typically posted in the Salesforce Blog entry for each major release.
Q: Is it possible to refresh my sandbox and keep it on the release preview if production hasn't been upgraded to the next release yet?
A: No, since your production instance and the sandbox copy's target preview instance are on different release versions this is not possible from an architectural and versioning standpoint.
There may be alternative means to achieve the same goal as a refresh. For example, to move application changes to the sandbox, consider using Change Sets, the Force.com IDE or the Force.com Migration Tool to migrate your metadata. If it is a matter of bringing additional information input since the refresh you should be able to do so by utilizing the API (Apex Data Loader) to extract the data you need for testing from production and then import it into your sandbox.
- Uncheck “Include Chatter Data”
- Uncheck “Include Field Tracking History Data”
- Use Sandbox template