<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[CloudAnswers]]></title><description><![CDATA[We are a group of developers that mostly work on salesforce and technologies that integrate with it. Automation is the name of the game.]]></description><link>https://cloudanswers.com</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 23:14:28 GMT</lastBuildDate><atom:link href="https://cloudanswers.com/feeds.xml" rel="self" type="application/rss+xml"/><item><title><![CDATA[Identify, Report, and Export Duplicate Contacts in Salesforce]]></title><description><![CDATA[Duplicate Contacts are a common challenge in Salesforce. Over time, the same person may be added more than once, leading to inconsistent data, duplicate communication, wasted time, and inaccurate reporting.]]></description><link>https://cloudanswers.com/blog/identifying-and-reporting-duplicate-contacts-in-salesforce-with-potential-duplicates</link><guid isPermaLink="false">/blog/identifying-and-reporting-duplicate-contacts-in-salesforce-with-potential-duplicates</guid><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/potential-duplicates-header.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Duplicate Contacts are a common challenge in Salesforce. Over time, the same person may be added more than once, leading to inconsistent data, duplicate communication, wasted time, and inaccurate reporting.&lt;/p&gt;
&lt;p&gt;Salesforce provides Matching Rules and Duplicate Rules to help identify records that may represent the same person. The free &lt;a href=&quot;/products/merge-duplicates&quot;&gt;Potential Duplicates&lt;/a&gt; app makes it easier to find and review these records without manually searching through Contacts.&lt;/p&gt;
&lt;p&gt;In this article, we’ll walk through a simple example of identifying duplicate Contacts using &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=report_and_export_duplicates&amp;amp;utm_content=potential%20duplicates&quot;&gt;Potential Duplicates&lt;/a&gt;. We’ll also show how to make those identified duplicates available in a Salesforce report and export the results to XLSX for further review or analysis. This method works for any object where Salesforce lets you create duplicate rules: Accounts, Contacts, Leads, Individuals, or Custom Objects.&lt;/p&gt;
&lt;p&gt;Potential Duplicates is free and rated 5 stars on the AppExchange, so you can follow along in your own org as you read.&lt;/p&gt;
&lt;p&gt;&lt;a className=&quot;btn btn-primary&quot; href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&amp;utm_source=cloudanswers_website&amp;utm_medium=blog&amp;utm_campaign=report_and_export_duplicates&amp;utm_content=get_the_app_top&quot;&gt;Get Potential Duplicates Free&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;identifying-potential-duplicate-contacts&quot;&gt;Identifying Potential Duplicate Contacts&lt;/h2&gt;
&lt;p&gt;To demonstrate the duplicate detection process, we first created 10 pairs of duplicate Contacts. Each pair contains two Contacts with matching information, giving us a set of known duplicates to work with. Salesforce comes with some default duplicate rules, but if you need to adjust your duplicate rules, check out our article: &lt;a href=&quot;/blog/duplicate-records-in-salesforce&quot;&gt;Duplicate records in Salesforce&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;find-duplicate-contacts&quot;&gt;Find Duplicate Contacts&lt;/h3&gt;
&lt;p&gt;If you’ve recently changed your duplicate or matching rules, run a duplicates search first. Go to the Bulk Merge tab in the &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=report_and_export_duplicates&amp;amp;utm_content=potential%20duplicates&quot;&gt;Potential Duplicates app&lt;/a&gt; and click Run Duplicates Search. Once the job completes, you’ll get an email. Potential Duplicates groups the matching records into Duplicate Record Sets, making it easier to review Contacts that may be duplicates.&lt;/p&gt;
&lt;p&gt;From the Bulk Merge page, users can open a duplicate set and review the Contacts to determine whether they are actually duplicates and whether further action, such as merging the records, is required. But sometimes you want to review duplicates with others before merging them. For that, you might want to run a report you can export (or send on a schedule with &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=report_and_export_duplicates&amp;amp;utm_content=report%20sender&quot;&gt;Report Sender&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/run-duplicates-search-bulk-merge.png&quot; alt=&quot;Run a duplicates search from the Bulk Merge tab.&quot;&gt;&lt;/p&gt;
&lt;p&gt;Run a duplicates search from the Bulk Merge tab.&lt;/p&gt;
&lt;h2 id=&quot;reporting-on-identified-duplicates&quot;&gt;Reporting on Identified Duplicates&lt;/h2&gt;
&lt;p&gt;While &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=report_and_export_duplicates&amp;amp;utm_content=potential%20duplicates&quot;&gt;Potential Duplicates&lt;/a&gt; makes it easy to identify and review potential duplicates, you may also want to create a report containing those records. This can be useful when you need to analyze the duplicates, share the results with other users, or export the data for further review.&lt;/p&gt;
&lt;p&gt;Salesforce stores the relationship between a duplicate Contact and its duplicate set through Duplicate Record Set Items. We can use this relationship to create a Custom Report Type and make the identified duplicates available in Salesforce Reports.&lt;/p&gt;
&lt;h3 id=&quot;create-a-custom-report-type&quot;&gt;Create a Custom Report Type&lt;/h3&gt;
&lt;p&gt;Create a new Custom Report Type from Salesforce Setup with the following configuration:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;Primary Object&lt;/td&gt;
&lt;td&gt;Contacts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Related Object&lt;/td&gt;
&lt;td&gt;Duplicate Record Set Items&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Relationship&lt;/td&gt;
&lt;td&gt;Each Contact must have at least one related Duplicate Record Set Item&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Selecting “Each A record must have at least one related B record” ensures that the report only includes Contacts associated with a Duplicate Record Set Item.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/custom-report-type-duplicate-record-set-items.png&quot; alt=&quot;Custom Report Type configuration for Contacts and Duplicate Record Set Items.&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;create-the-duplicate-contact-report&quot;&gt;Create the Duplicate Contact Report&lt;/h3&gt;
&lt;p&gt;After you create the Custom Report Type, create a new report using it.&lt;/p&gt;
&lt;p&gt;Add the Contact and Duplicate Record Set fields you want to display, then group the records by Duplicate Record Set Name.&lt;/p&gt;
&lt;p&gt;Grouping by Duplicate Record Set Name keeps Contacts belonging to the same duplicate group together, making the results easier to review.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/duplicate-contact-report-grouped.png&quot; alt=&quot;Duplicate Contact report grouped by Duplicate Record Set Name.&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tip: If you include the Duplicate Record Set ID and the Duplicate Record Item ID, you can use those in any ETL tool to delete record sets or items that are not a duplicate. Note that they may get recreated after future duplicate scans if you don’t update the matching rule or the data.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&quot;export-the-results&quot;&gt;Export the Results&lt;/h3&gt;
&lt;p&gt;After reviewing the report, use Salesforce&amp;#39;s standard Export functionality to download the results.&lt;/p&gt;
&lt;p&gt;Select Excel (.xlsx) as the export format and click Export. You can use the resulting file for further analysis, share it with other users, or keep it for reference. Once you’ve decided how you want to merge the records, return to the CloudAnswers Bulk Merge tab to start the process.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/export-duplicate-report-xlsx.png&quot; alt=&quot;Exporting the duplicate Contact report to XLSX.&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;review-results-on-a-schedule&quot;&gt;Review Results on a Schedule&lt;/h3&gt;
&lt;p&gt;If you want to send this to yourself or other admins on a regular basis, you can use Salesforce report subscriptions or the &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=report_and_export_duplicates&amp;amp;utm_content=cloudanswers%20report%20sender%20app&quot;&gt;CloudAnswers Report Sender app&lt;/a&gt;. That way, the team knows when duplicates are increasing or decreasing and can discuss when to do a bulk cleanup.&lt;/p&gt;
&lt;p&gt;In Report Sender, you just set up a report schedule with your new report, choose the schedule you want, and add your admin team. It&amp;#39;s also helpful to add a link to the Bulk Merge tab so people can jump in and start merging.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/report-sender-duplicate-schedule.png&quot; alt=&quot;Scheduling the duplicate Contact report with Report Sender.&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=report_and_export_duplicates&amp;amp;utm_content=potential%20duplicates&quot;&gt;Potential Duplicates&lt;/a&gt; provides a convenient way to identify and review duplicate Contacts (or any object) in Salesforce. Once you identify duplicate records, you can use Salesforce Reports to review or export them.&lt;/p&gt;
&lt;p&gt;By creating a Custom Report Type based on Contacts and Duplicate Record Set Items, you can report specifically on Contacts that have been identified as potential duplicates. Grouping the results by Duplicate Record Set Name makes it easier to see which Contacts belong to the same duplicate group, while exporting the report to XLSX provides a convenient format for further analysis or sharing.&lt;/p&gt;
&lt;p&gt;Together, &lt;a href=&quot;/products/merge-duplicates&quot;&gt;Potential Duplicates&lt;/a&gt; and Salesforce Reports provide a practical workflow for identifying, reviewing, and reporting on duplicate Contact records.&lt;/p&gt;
&lt;p&gt;Ready to clean up your own org? Potential Duplicates is free to install and takes just a few minutes to set up.&lt;/p&gt;
&lt;p&gt;&lt;a className=&quot;btn btn-primary&quot; href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&amp;utm_source=cloudanswers_website&amp;utm_medium=blog&amp;utm_campaign=report_and_export_duplicates&amp;utm_content=get_the_app_bottom&quot;&gt;Install Potential Duplicates Free&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Questions about Potential Duplicates or your duplicate cleanup process? &lt;a href=&quot;https://cloudanswers.com/contact&quot;&gt;Let us know&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[10 Salesforce Permissions You Should Almost Never Assign to Users]]></title><description><![CDATA[If you have ever inherited a Salesforce org and opened up the…]]></description><link>https://cloudanswers.com/blog/10-salesforce-permissions-you-should-almost-never-assign-to-users</link><guid isPermaLink="false">/blog/10-salesforce-permissions-you-should-almost-never-assign-to-users</guid><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/06/10-salesforce-permissions-header.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;If you have ever inherited a Salesforce org and opened up the profile list, you know the feeling. Forty-seven custom profiles. A hundred and twenty permission sets. A role hierarchy that looks like it was drawn by a committee that never finished the meeting. And somewhere in that pile, a handful of users who can quietly read, edit, or delete every record in the org, and nobody remembers granting it.&lt;/p&gt;
&lt;p&gt;This is the part of Salesforce administration that does not show up in a demo. Permissions accumulate the same way clutter accumulates. A user needs something for a project, you grant it, the project ends, and the access stays. Multiply that across a few years and a few admins, and you get what security researchers politely call “over-privileged access.”&lt;/p&gt;
&lt;p&gt;And the stakes are higher than they used to be. Throughout 2025, a&lt;a href=&quot;https://socradar.io/blog/salesforce-data-breach-affecting-multiple-companies/&quot;&gt;coordinated wave of social engineering attacks&lt;/a&gt; hit dozens of major Salesforce customers, with confirmed victims including Google, Adidas, Chanel, Qantas, and Cisco. The attackers did not break Salesforce.&lt;/p&gt;
&lt;p&gt;They used voice phishing to trick employees into authorizing a malicious connected app, then used the access those accounts already had to export large volumes of CRM data. The platform was never compromised. The permissions were. When an account with broad data access gets phished, the blast radius is determined entirely by what that account was allowed to touch.&lt;/p&gt;
&lt;p&gt;With Salesforce enforcing MFA changes this summer, now is a great time to audit your users’ permissions, and fast. Some of the permissions mentioned in this article are considered elevated permissions and will require the user to have &lt;a href=&quot;/blog/ready-for-salesforces-phishing-resistant-mfa&quot;&gt;phishing-resistant MFA enabled&lt;/a&gt;. If they don’t need those permissions, it may be easier to remove those than train additional users on how to set this up.&lt;/p&gt;
&lt;p&gt;So this article is about restraint. We are going to walk through ten permissions that you should either never assign to standard users or grant so sparingly that each one requires a conversation. For each, we will cover what it actually does, why it is dangerous, and what to give people instead. The guiding idea throughout is the principle of least privilege: give users the minimum access they need to do their job, and nothing more. It is the single most effective security control you have, and it costs nothing but discipline.&lt;/p&gt;
&lt;p&gt;A quick note before we start. Everything here assumes you are using a permission set led model, which means your profiles stay lean and you layer extra access through permission sets and permission set groups. If you are still managing access primarily through profiles, you are in good company and also in the majority. One&lt;a href=&quot;https://www.cyera.com/research/are-your-salesforce-permissions-protecting-you---or-exposing-you&quot;&gt;analysis&lt;/a&gt; found that over 80 percent of access in the orgs studied was managed at the profile level, against Salesforce’s own recommended model. Moving the dangerous stuff off profiles and onto carefully scoped permission sets is the foundation that makes everything below manageable.&lt;/p&gt;
&lt;h2 id=&quot;1-modify-all-data&quot;&gt;&lt;strong&gt;1. Modify All Data&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This is the one everybody knows about, and it is still the one that causes the most damage. Modify All Data grants a user the ability to create, read, edit, and delete records across all objects in the org, regardless of sharing settings, role hierarchy, or record-level access. It is the master key.&lt;/p&gt;
&lt;p&gt;The problem is not that admins have it. Admins and data stewards need it for legitimate day-to-day work. The problem is how easily it spreads. A user asks for help with a one-time cleanup, someone grants Modify All Data because it is faster than figuring out the precise object access required, and now there is an account with org-wide write access for a task that ended months ago. If that account gets compromised, the attacker inherits the same reach. One stolen credential becomes a catastrophic data breach.&lt;/p&gt;
&lt;p&gt;There is also a quieter danger. Modify All Data is destructive by accident as easily as by malice. A bad import, a mistaken bulk update, a Data Loader job pointed at the wrong object, and you are spending a week restoring records instead of doing your actual job. Even with a solid&lt;a href=&quot;/blog/why-your-salesforce-org-needs-a-backup-strategy-and-why-its-your-responsibility&quot;&gt;backup and recovery solution&lt;/a&gt; in place, recovery is time you will never get back.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What to give instead:&lt;/strong&gt; If a power user genuinely needs to manage all records of one or two specific objects, use the object-level Modify All permission on just those objects. It scopes the access to exactly what the role requires instead of handing over the whole org. And be aware that enabling Modify All Data automatically switches on a long list of other permissions underneath it, so the access is broader than the single checkbox suggests.&lt;/p&gt;
&lt;h2 id=&quot;2-view-all-data&quot;&gt;&lt;strong&gt;2. View All Data&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If Modify All Data is the master key, View All Data is the all-access pass to the building. It grants read access to every record in the org, regardless of sharing rules. No edit, no delete, just the ability to see everything.&lt;/p&gt;
&lt;p&gt;People underestimate this one precisely because it is read-only. It feels harmless next to its destructive sibling. It is not. The 2025 breaches were data theft operations, not data destruction operations. The attackers were not trying to delete your pipeline. They were trying to export it. A user with API access and View All Data can programmatically extract the entire contents of an org in a way that would be completely impractical through the user interface. That combination is exactly what turns a single phished account into a million-record leak.&lt;/p&gt;
&lt;p&gt;There is a compliance dimension here too. HIPAA mandates that access be limited to the minimum necessary. GDPR requires access restrictions proportionate to data sensitivity. If you are handling regulated data and you have handed View All Data to a dozen people who only need to see their own region, you are not just carrying security risk. You are carrying audit risk.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What to give instead:&lt;/strong&gt; Build your sharing model properly so people see the records they need through roles, sharing rules, and groups. When someone needs visibility into a broader slice of data, expand their role or add a sharing rule rather than reaching for the org-wide override. View All on specific objects exists for the rare case where someone needs read access to one full object and nothing else.&lt;/p&gt;
&lt;h2 id=&quot;3-manage-profiles-and-permission-sets&quot;&gt;&lt;strong&gt;3. Manage Profiles and Permission Sets&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Here is a question worth asking yourself: Have you ever spotted a permission set in production that you do not remember creating? If the answer is no, it is probably because Manage Profiles and Permission Sets has stayed where it belongs, which is with the Salesforce team and nobody else.&lt;/p&gt;
&lt;p&gt;This permission lets a user create, edit, and delete profiles, permission sets, and permission set groups. In other words, it lets them rewrite the access model itself. A user with this permission is not just a user anymore. They are someone who can grant themselves, or anyone else, whatever access they decide they want. The access controls you carefully designed become suggestions.&lt;/p&gt;
&lt;p&gt;The danger is rarely dramatic. It is usually someone outside the admin team deciding they can solve their own problem by spinning up a new permission set, without understanding the downstream implications of what they just turned on. They are not malicious. They simply do not have the full picture, and now your access model has a change in it that no one reviewed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What to give instead:&lt;/strong&gt; Keep this permission with your core Salesforce administrators. If other people legitimately need to help manage users without touching the access architecture, look at delegated administration, which lets you hand off specific, scoped user management tasks without giving away the keys to the permission model.&lt;/p&gt;
&lt;h2 id=&quot;4-manage-users&quot;&gt;&lt;strong&gt;4. Manage Users&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Manage Users sounds administrative and benign, the kind of thing you might give to a team lead so they can help onboard new hires. It is more powerful than it looks, and it becomes genuinely dangerous in combination with other permissions.&lt;/p&gt;
&lt;p&gt;On its own, Manage Users lets someone create and edit user accounts, reset passwords, and modify user details. The risk shows up when you combine it with the ability to manage multi-factor authentication methods for other users. Paired together, those permissions open a path to disable MFA for a specific target account, reset its password, and walk straight in. In a threat landscape where the entire 2025 attack campaign was built on bypassing MFA, anything that lets one user weaken another user’s authentication deserves serious scrutiny.&lt;/p&gt;
&lt;p&gt;There is also the impersonation angle. Manage Users is often a stepping stone toward the kind of account control that lets one person operate as another, which muddies every audit trail you depend on.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What to give instead:&lt;/strong&gt; Reserve full user management for admins. For onboarding help, delegated administration again lets you scope down to exactly the user populations and tasks a team lead should handle, without the broader account-control powers riding along.&lt;/p&gt;
&lt;h2 id=&quot;5-author-apex&quot;&gt;&lt;strong&gt;5. Author Apex&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Author Apex lets a user write and save Apex classes and triggers. If you do not have a reason to give this to someone, and almost no standard business user does, it should be off.&lt;/p&gt;
&lt;p&gt;Here is why it matters more than most permission lists suggest. Apex runs on Salesforce servers with direct access to the database, the API, and external callouts. A user who can author Apex can write code that exfiltrates data through HTTP callouts to a server they control, modifies records at scale without going through any user interface, or quietly creates a persistent backdoor that survives long after the account is forgotten. This is not a data-access permission. It is a code-execution permission, and code execution is the highest form of privilege there is.&lt;/p&gt;
&lt;p&gt;The reason it flies under the radar is that it looks like a developer concern rather than a security concern. But the line between those two things does not exist when the code runs with this much reach.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What to give instead:&lt;/strong&gt; Keep Apex authoring confined to your development team and, ideally, to sandbox environments where new code goes through review before it reaches production. Production should receive deployed, reviewed code, not freshly written code from whoever happens to hold the permission.&lt;/p&gt;
&lt;h2 id=&quot;6-customize-application&quot;&gt;&lt;strong&gt;6. Customize Application&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Customize Application is one of the broadest configuration permissions in Salesforce, and it tends to get bundled into “power user” setups without much thought. It lets a user modify a huge range of org configuration, from objects and fields to page layouts to a wide swath of automation and setup.&lt;/p&gt;
&lt;p&gt;The risk is twofold. First, it is a change-control problem. Someone with Customize Application can alter the structure and behavior of the org in ways that ripple out to every user, and those changes often happen without anyone reviewing them first. A modified field here, an altered automation there, and suddenly something breaks for the whole team and nobody knows why.&lt;/p&gt;
&lt;p&gt;Second, it is one of the permissions that security tooling flags as high-risk, specifically because it grants so much surface area for misconfiguration. The more an account can reconfigure, the more an attacker can do if they take it over.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What to give instead:&lt;/strong&gt; Confine Customize Application to admins who own the org’s configuration. When a specific team needs a specific capability, grant the narrow permission that delivers it rather than the broad one that delivers everything.&lt;/p&gt;
&lt;h2 id=&quot;7-export-reports&quot;&gt;&lt;strong&gt;7. Export Reports&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This is the permission people are most surprised to see on a list like this, because exporting a report feels like the most ordinary thing in the world. And for a sales rep pulling their own pipeline into a spreadsheet, it is. But Export Reports deserves a deliberate decision rather than a default yes, and here is the reasoning.&lt;/p&gt;
&lt;p&gt;Exporting a report takes data that lives inside Salesforce, where it is governed by your security model, and writes it into an uncontrolled file on someone’s laptop, where it is governed by nothing. Once that .xlsx or .csv leaves the building, your sharing rules, your field-level security, and your audit logging no longer apply to it.&lt;/p&gt;
&lt;p&gt;For orgs handling financial records, healthcare information, or any kind of PII, that is a meaningful loss of control. Some compliance frameworks require auditing every data export precisely because the export is the moment data escapes your governance.&lt;/p&gt;
&lt;p&gt;It is worth understanding how this permission interacts with the rest of your reporting setup. Export Reports requires Run Reports, but it does not require Create and Customize Reports, meaning a user can export a report that they cannot even edit. If you want the full picture of how these interlock, we wrote a&lt;a href=&quot;/blog/salesforce-report-permissions-deep-dive-every-permission-that-affects-creating-scheduling-and-sending-reports&quot;&gt;complete breakdown of every report permission&lt;/a&gt; and how they depend on one another.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What to give instead:&lt;/strong&gt; Grant Export Reports to the roles that genuinely need offline analysis, and withhold it from everyone else. An analyst who builds reports needs the permission. A manager who reads dashboards on screen usually does not.&lt;/p&gt;
&lt;h2 id=&quot;8-manage-auth-providers&quot;&gt;&lt;strong&gt;8. Manage Auth. Providers&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This is the permission almost nobody talks about, which is exactly what makes it worth talking about. Manage Auth. Providers lets a user configure how the organization authenticates its users, including the external identity providers and authentication flows that sit at the front door of your entire org.&lt;/p&gt;
&lt;p&gt;Modify All Data is dangerous because it touches all your records. Manage Auth. Providers is arguably just as dangerous because it touches how everyone proves they are who they say they are. A user with this permission could reconfigure authentication in ways that undermine your login security across the board, and because it sits in a corner of setup that most admins rarely visit, the change might not be noticed for a long time. It is high-risk access that does not look high-risk, which is the worst combination.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What to give instead:&lt;/strong&gt; This belongs exclusively with the small group responsible for your org’s identity and security architecture. There is no standard business role that needs to reconfigure authentication providers, so the default for everyone else is a flat no.&lt;/p&gt;
&lt;h2 id=&quot;9-password-never-expires&quot;&gt;&lt;strong&gt;9. Password Never Expires&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Password Never Expires is a convenience permission, and convenience permissions are where security quietly erodes. It exempts a user from your org’s password expiration policy, so their password stays valid indefinitely.&lt;/p&gt;
&lt;p&gt;This is often applied to integration and service accounts to prevent automations from breaking when a password rotation occurs. The intent is understandable. The result is a set of accounts, frequently with broad access, whose credentials never change. The 2025 attack wave was built substantially on stolen and reused credentials and long-lived tokens that let attackers stay authenticated without ever triggering a fresh login. A password that never expires is a credential with an unlimited shelf life, and unlimited shelf life is exactly what a patient attacker is hoping to find.&lt;/p&gt;
&lt;p&gt;The accounts that tend to receive this permission are often the same accounts that carry elevated access for integrations, which compounds the problem. You end up with the highest-access, longest-lived credentials in the org, sitting in one convenient bundle.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What to give instead:&lt;/strong&gt; For integration and service accounts, move toward modern authentication patterns built on OAuth and short-lived tokens rather than static passwords that never rotate. Short-lived credentials shrink the window an attacker can exploit, and rotation means a leaked secret has an expiration date instead of a lifetime.&lt;/p&gt;
&lt;h2 id=&quot;10-view-all-users&quot;&gt;&lt;strong&gt;10. View All Users&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;We end with a subtle one. View All Users does not touch your business data at all. It grants a user visibility into every user record in the org, which, in a tightly controlled environment, is more than you might want to expose.&lt;/p&gt;
&lt;p&gt;The reason this matters is reconnaissance. The 2025 social engineering campaigns did not begin with a technical exploit. They began with research. Attackers studied org structures, identified who worked where, and used that knowledge to make their impersonation calls convincing enough that employees authorized malicious apps.&lt;/p&gt;
&lt;p&gt;A full directory of every user, their roles, and their reporting relationships is a head start for exactly that kind of targeting. In an org with restricted user visibility, View All Users hands over a map that you might prefer an attacker have to build from scratch.&lt;/p&gt;
&lt;p&gt;To be clear, this is the lowest-severity item on the list, and plenty of orgs run perfectly well with broad user visibility. The point is simply that it is a decision, not a default. In environments handling sensitive data or facing elevated threats, restricting who can enumerate the full user base is one more small way to make an attacker’s job harder.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What to give instead:&lt;/strong&gt; Lean on your org’s user visibility settings to scope who can see whom, and grant broader visibility only where a role actually requires it.&lt;/p&gt;
&lt;h2 id=&quot;how-to-find-the-dangerous-permissions-you-already-have&quot;&gt;&lt;strong&gt;How to Find the Dangerous Permissions You Already Have&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Reading a list like this naturally raises the question of how many of these are already loose in your own org. The honest answer is that you cannot know until you look, and most orgs have more than their admins expect.&lt;/p&gt;
&lt;p&gt;The fastest place to start is the View Summary button on a user’s detail page, which gives you a quick read on the high-risk permissions a given user holds without clicking through every permission set assigned to them. It will not always tell you which specific permission set granted a given permission, so some cross-checking remains, but it dramatically cuts the time to answer “why on earth can this person delete records?”&lt;/p&gt;
&lt;p&gt;For a more systematic pass, Salesforce offers a free app on the AppExchange called the User Access and Permissions Assistant, which lets you report by user, permission set, or permission set group and surfaces who holds the genuinely dangerous permissions like Modify All Data. If you want to go straight to the source, both the ObjectPermissions and PermissionSetAssignment objects are queryable with SOQL through the Developer Console or the API, which gives you direct access to the underlying permission metadata.&lt;/p&gt;
&lt;p&gt;Whatever tool you use, the exercise is the same. Map every high-risk permission against the roles that actually need it, find the gaps, and close them. The permissions that matter most to audit first are the org-wide overrides at the top of this list, because those are the ones that turn a single compromised account into an org-wide incident.&lt;/p&gt;
&lt;h2 id=&quot;a-few-principles-to-carry-forward&quot;&gt;&lt;strong&gt;A Few Principles to Carry Forward&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If you take nothing else from this, take the habit of treating every permission grant as a deliberate decision rather than a convenience. The clutter that builds up in a Salesforce org is never the result of one bad call. It is the result of a hundred small “just this once” grants that nobody ever revisited.&lt;/p&gt;
&lt;p&gt;Start from the Minimum Access profile and add capability through permission sets, so your baseline is restrictive and every elevation is intentional and visible. Build permission set groups around real job functions so access maps to roles instead of accumulating per person. Run a permission audit on a schedule, not just when a compliance officer asks, because access drifts continuously as people change teams and projects end. And document why each elevated grant exists, so the next admin who inherits the org understands the reasoning instead of being afraid to touch anything.&lt;/p&gt;
&lt;p&gt;The underlying truth is that Salesforce security is not a configuration you set once. It is a discipline you practice. The orgs that stay secure are the ones where someone keeps asking the only question that really matters: does this person actually need this access to do their job? If the answer is no, or even “I am not sure,” that is your answer.&lt;/p&gt;
&lt;p&gt;If you are staring at a tangle of profiles and permission sets and you are not sure where to begin, or you want a second set of eyes on a permission audit before an upcoming compliance review,&lt;a href=&quot;/contact&quot;&gt;reach out to the CloudAnswers team&lt;/a&gt;. We have been helping Salesforce teams get access and security right for over 15 years, and we are happy to help you sort out who should have the keys.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Ready for Salesforce’s Phishing-Resistant MFA?]]></title><description><![CDATA[Starting July 1st, Salesforce will require phishing-resistant MFA for all admins and MFA for all users. Admins must enable security keys or built-in authenticators. Users without MFA may be locked out, requiring assistance. Phishing-resistant MFA prevents unauthorized access by using secure verification methods.]]></description><link>https://cloudanswers.com/blog/ready-for-salesforces-phishing-resistant-mfa</link><guid isPermaLink="false">/blog/ready-for-salesforces-phishing-resistant-mfa</guid><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/06/phishing-resistant-MFA.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;&lt;strong&gt;July 1st Update: Salesforce has put enforcement on hold! Salesforce is &lt;a href=&quot;https://help.salesforce.com/s/articleView?id=005321563&amp;amp;type=1&quot;&gt;supposed to communicate a new timeline in the future&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;del&gt;Starting July 1st, and staggered throughout July,&lt;/del&gt; Salesforce will enforce phishing-resistant MFA for admins and MFA for all users. MFA for all users has been widely covered since Salesforce began recommending it, so we’re going to focus on the new phishing-resistant requirement. But if some of your users don’t have MFA enabled, you also want to make sure that’s set up.&lt;/p&gt;
&lt;p&gt;If you’re not prepared, you may get locked out of your Salesforce org and require Salesforce or another admin to assist you with logging in.&lt;/p&gt;
&lt;h1 id=&quot;whos-affected&quot;&gt;Who’s Affected&lt;/h1&gt;
&lt;p&gt;All admins, which include:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Users assigned with the System Administrator profile,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Users assigned with any one of these privileged permissions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Modify All Data&lt;/li&gt;
&lt;li&gt;View All Data&lt;/li&gt;
&lt;li&gt;Customize Application&lt;/li&gt;
&lt;li&gt;Author Apex&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Salesforce has put together four questions that help you identify which configuration changes apply to your configuration. &lt;a href=&quot;https://security.salesforce.com/mfa-requirement-check&quot;&gt;Salesforce MFA Requirement Check&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you end up on Question 2 or 3 with the answer No, we recommend running &lt;a href=&quot;https://www.reddit.com/r/salesforce/comments/1u09tg2/tested_and_verified_phishing_resistant_mfa/&quot;&gt;this anonymous Apex script&lt;/a&gt;, kindly shared on Reddit, to identify which users need to configure their MFA.&lt;/p&gt;
&lt;p&gt;If you’re using SSO, we recommend checking with your SSO provider first to see whether they meet &lt;a href=&quot;https://help.salesforce.com/s/articleView?id=005321563&amp;amp;type=1&quot;&gt;the requirements&lt;/a&gt;. If not, you will need a separate, strong verification method for any users with elevated permissions (see the script in the previous paragraph to identify them).&lt;/p&gt;
&lt;h1 id=&quot;what-is-phishing-resistant-mfa&quot;&gt;What is Phishing-Resistant MFA&lt;/h1&gt;
&lt;p&gt;Phishing-resistant MFA is designed to prevent a bad actor from getting your MFA token. It excludes anything where a code could be shared with a fake website or someone who’s convinced you to share it.&lt;/p&gt;
&lt;p&gt;Phishing-Resistant Options:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Security Keys (WebAuthn)&lt;/li&gt;
&lt;li&gt;Built-in Authenticators (Touch ID, Windows Hello)&lt;/li&gt;
&lt;li&gt;Admin-Generated Temporary Verification Codes (Only for locked-out users who haven’t set up phishing-resistant MFA yet, or to help users add a new device).&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id=&quot;how-to-set-it-up&quot;&gt;How to Set it Up&lt;/h1&gt;
&lt;h2 id=&quot;first-enable-security-keys-andor-built-in-authenticators&quot;&gt;First: Enable Security Keys and/or Built-In Authenticators.&lt;/h2&gt;
&lt;p&gt;First, at the Salesforce org level, an admin needs to enable the new types of identity verification options.&lt;/p&gt;
&lt;p&gt;From Identity Verification in Setup, enable one or both of these options:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2026/06/2026-07-02_06-10-33-1024x410.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Salesforce also recommends enabling this setting to make logins a little less annoying:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2026/06/image-1024x320.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;second-configure-a-passkey-or-built-in-authenticator-for-a-user&quot;&gt;Second: Configure a Passkey or Built-in Authenticator for a User&lt;/h2&gt;
&lt;p&gt;If you want to use passkeys:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click on your user picture in the top right (or Codey if you don’t have a picture)&lt;/li&gt;
&lt;li&gt;Click on Settings&lt;/li&gt;
&lt;li&gt;Click Advanced User Details on the left panel&lt;/li&gt;
&lt;li&gt;Look for the Security Key (U2F or WebAuthn) field&lt;/li&gt;
&lt;li&gt;Click Connect&lt;/li&gt;
&lt;li&gt;Complete the MFA verification with your current MFA setup.&lt;/li&gt;
&lt;li&gt;Click Register Passkey&lt;/li&gt;
&lt;li&gt;Complete Passkey setup with your Passkey of choice.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here’s an example using 1Password Passkeys:&lt;/p&gt;
&lt;p&gt;&lt;video controls preload=&quot;metadata&quot; className=&quot;w-100&quot; aria-label=&quot;mfa-passkeys-mp4&quot; poster=&quot;/uploads/wordpress/video/2vJDYTcL/mfa-passkeys_mp4_hd_1080p.original.jpg&quot; src=&quot;/uploads/wordpress/video/2vJDYTcL/mfa-passkeys.mp4&quot;&gt;&lt;track kind=&quot;captions&quot; srcLang=&quot;en&quot; label=&quot;Auto-Generated&quot; src=&quot;/uploads/wordpress/video/2vJDYTcL/mfa-passkeys_subtitles_auto_en.vtt&quot; /&gt;&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;If you want to use built-in authenticators:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click on your user picture in the top right (or Codey if you don’t have a picture)&lt;/li&gt;
&lt;li&gt;Click on Settings&lt;/li&gt;
&lt;li&gt;Click Advanced User Details on the left panel&lt;/li&gt;
&lt;li&gt;Scroll down to the Built-in Authenticators list and click Add&lt;/li&gt;
&lt;li&gt;Complete your verification using your current MFA method&lt;/li&gt;
&lt;li&gt;Click Register Passkey&lt;/li&gt;
&lt;li&gt;Use your built-in authenticator to complete the setup&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here’s an example using Touch ID:&lt;/p&gt;
&lt;p&gt;&lt;video controls preload=&quot;metadata&quot; className=&quot;w-100&quot; aria-label=&quot;mfa-touch-id-mp4&quot; poster=&quot;/uploads/wordpress/video/4c8mXsyG/mfa-touch-id_mp4_hd_1080p.original.jpg&quot; src=&quot;/uploads/wordpress/video/4c8mXsyG/mfa-touch-id.mp4&quot;&gt;&lt;track kind=&quot;captions&quot; srcLang=&quot;en&quot; label=&quot;Auto-Generated&quot; src=&quot;/uploads/wordpress/video/4c8mXsyG/mfa-touch-id_subtitles_auto_en.vtt&quot; /&gt;&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;If a user plans to add multiple built-in authenticators (which is recommended in case a device is broken), we recommend renaming them so it’s easy to see which one they’re trying to log in with. You can rename them from the built-in authenticators list for the user.&lt;/p&gt;
&lt;p&gt;&lt;video controls preload=&quot;metadata&quot; className=&quot;w-100&quot; aria-label=&quot;mfa-rename-auth-mp4&quot; poster=&quot;/uploads/wordpress/video/T6RMd7fI/mfa-rename-auth_mp4_hd_1080p.original.jpg&quot; src=&quot;/uploads/wordpress/video/T6RMd7fI/mfa-rename-auth.mp4&quot;&gt;&lt;track kind=&quot;captions&quot; srcLang=&quot;en&quot; label=&quot;Auto-Generated&quot; src=&quot;/uploads/wordpress/video/T6RMd7fI/mfa-rename-auth_subtitles_auto_en.vtt&quot; /&gt;&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;After setting this all up, we recommend logging out and logging back in to make sure it’s working. If there are multiple admins in your org, we recommend coordinating with another admin in case you run into a problem; they can send you a temporary passcode.&lt;/p&gt;
&lt;h2 id=&quot;backup-admin-generated-passcodes&quot;&gt;Backup: Admin-generated Passcodes&lt;/h2&gt;
&lt;p&gt;If a user with elevated permissions gets locked out, another admin can generate a passcode for them. Those passcodes can be generated from the user record.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2026/06/image-1-1024x951.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Good luck! If you need help, feel free to &lt;a href=&quot;/contact&quot;&gt;contact us&lt;/a&gt;.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[7 Popular Reporting Apps for Salesforce]]></title><description><![CDATA[The profit of your entire Salesforce investment depends a lot on the…]]></description><link>https://cloudanswers.com/blog/7-popular-reporting-apps-for-salesforce-2</link><guid isPermaLink="false">/blog/7-popular-reporting-apps-for-salesforce-2</guid><pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/05/Reporting_Apps_Blog_Header.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;The profit of your entire Salesforce investment depends a lot on the business insights that you get. Proper reporting has always been a source of confusion among sales and marketing reps, as long as customer relationship management software has been in use. Many teams that use the software to track their sales opportunities and activities have struggled with the numerous difficulties in producing reports from their Salesforce sales and marketing data.&lt;/p&gt;
&lt;p&gt;In short, the challenges of Salesforce reporting within Salesforce are as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Building reports is manual and repetitive&lt;/li&gt;
&lt;li&gt;For the average user, finding the right Salesforce data is difficult&lt;/li&gt;
&lt;li&gt;Reports are often difficult to share, leading to them being unused (and often recreated)&lt;/li&gt;
&lt;li&gt;Visualization options are limited and cross-object reporting is brittle&lt;/li&gt;
&lt;li&gt;Often you don’t know what data you’re missing until it’s time to report on it&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Those constraints are why the AppExchange has a thriving market for reporting tools. Below are seven worth knowing about, with honest notes on where each one fits and where it does not.&lt;/p&gt;
&lt;h1 id=&quot;quick-comparison&quot;&gt;Quick Comparison&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Tool&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Best for&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Pricing tier&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;Tableau&lt;/td&gt;
&lt;td&gt;Analyst-heavy teams needing cross-source blending&lt;/td&gt;
&lt;td&gt;$$$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Klipfolio&lt;/td&gt;
&lt;td&gt;Agencies and ops teams building shared dashboards&lt;/td&gt;
&lt;td&gt;$$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Report Sender&lt;/td&gt;
&lt;td&gt;Scheduled report delivery to non-SF users&lt;/td&gt;
&lt;td&gt;$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Conga Composer&lt;/td&gt;
&lt;td&gt;Document generation from SF data&lt;/td&gt;
&lt;td&gt;$$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unaric Reports&lt;/td&gt;
&lt;td&gt;No-code custom reports beyond SF native limits&lt;/td&gt;
&lt;td&gt;$$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Smartsheet&lt;/td&gt;
&lt;td&gt;Project teams that want light reporting alongside PM&lt;/td&gt;
&lt;td&gt;$$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Coefficient&lt;/td&gt;
&lt;td&gt;Finance and ops teams that live in Excel or Sheets&lt;/td&gt;
&lt;td&gt;$$&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h1 id=&quot;1-tableau&quot;&gt;1. Tableau&lt;/h1&gt;
&lt;p&gt;**Best for:**Analyst-heavy teams that need to blend Salesforce with warehouse, ad, or product data.&lt;/p&gt;
&lt;p&gt;Now owned by Salesforce, Tableau offers tight Salesforce integration and is one of the most capable visualization platforms on the market. It is overkill if all you need is a scheduled pipeline report, but unmatched if you have a real analytics function.&lt;/p&gt;
&lt;p&gt;It offers multiple business benefits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Easy to use.&lt;/strong&gt; Tableau’s drag-and-drop interface makes it accessible for both analysts and business users.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Full information availability.&lt;/strong&gt; Tableau has built-in integration with Salesforce, allowing reports and dashboards to be embedded within Salesforce. It can pull in data from virtually any source, it is not limited to only the data stored in Salesforce.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rich visualization library.&lt;/strong&gt; Many types of charts can be created, including Sankey, Doughnut, Maps, and more.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data blending and extraction.&lt;/strong&gt; Salesforce reporting cannot combine data across Salesforce modules. For instance, it cannot display marketing engagements and pipeline growth on the same chart. Tableau does this type of data blending natively.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-device support.&lt;/strong&gt; Dashboards can be viewed on tablets, mobiles, and laptops.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Watch out: performance and licensing are real considerations at scale. Tableau has documented row and extract limits depending on edition (source: &lt;a href=&quot;https://help.tableau.com/current/pro/desktop/en-us/performance_tips.htm&quot;&gt;Tableau performance docs&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.tableau.com/&quot;&gt;Tableau Site&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Klipfolio&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;**Best for:**Agencies, consultancies, and ops teams that want shared client dashboards without a full BI stack.&lt;/p&gt;
&lt;p&gt;Klipfolio is a real-time data analytics tool for basic to intermediate data visualization and dashboards. It enables users to connect to any data source, create visualizations, and share them. It is best used for live display of data from various sources in a consistent interface, but can also be used for exploratory, self-service business intelligence.&lt;/p&gt;
&lt;p&gt;Key benefits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;White label solution&lt;/strong&gt;: great for agencies and consultancies&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy to add data from different remote sources&lt;/strong&gt; like Dropbox, Excel files, or CSV exports&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dynamic variables&lt;/strong&gt; for flexible reporting&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Simple and user-friendly data visualization&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hundreds of built-in integrations&lt;/strong&gt; with numerous data sources&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hover effects&lt;/strong&gt; showing the details of a particular data point for closer inspection&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiple data source formats&lt;/strong&gt;: you can build data sources in JSON, Summarized View, and Detailed View&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shared/permalink dashboards&lt;/strong&gt; for private access without requiring login&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dashboards can be shared&lt;/strong&gt; in PDF, JPG, and CSV formats&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unlimited users&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Auto-resizing dashboards&lt;/strong&gt; based on the device used&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3000000B3e6EEAR&quot;&gt;Klipfolio on AppExchange&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;3-report-sender-by-cloudanswers&quot;&gt;&lt;strong&gt;3. Report Sender by CloudAnswers&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;**Best for:**Admins who need to deliver Salesforce reports on a schedule to anyone, including employees without a Salesforce license, partners, and customers.&lt;/p&gt;
&lt;p&gt;Report Sender is an application that allows you to schedule and send reports to any email address, in an Excel-friendly format. There are no restrictions on objects or fields, and all Salesforce sharing rules and field-level security for users are obeyed.&lt;/p&gt;
&lt;p&gt;How Report Sender can help you in daily reporting duties:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Easily schedule and customize reports&lt;/strong&gt; with flexible frequency options, daily, weekly, hourly, monthly, quarterly, annually, and based on custom fiscal periods&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Send reports to all email addresses,&lt;/strong&gt; including non-Salesforce users&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reports can be sent as CSV, XLS, or formatted XLSX file&lt;/strong&gt;, or embedded directly in the email&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unlimited number of reports&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy email body customization&lt;/strong&gt; with support for rich text, letterheads, and merge fields&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiple schedule options,&lt;/strong&gt; including one-time sends&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Plus and Premium subscribers&lt;/strong&gt; can skip sending blank reports, send lightning dashboards as embedded images, choose the From address, and send joined reports&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Premium tier&lt;/strong&gt; adds dynamic filtering (one report filtered differently per recipient) and secure file sharing with email verification&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Report Sender helps you in your daily business. It can, for example, automatically send leads to co-marketing partners from Salesforce campaigns and lead reports, or send the sales pipeline to the executive team. It keeps all interested parties up to date with business performance indicators, not just those with access to Salesforce.&lt;/p&gt;
&lt;p&gt;Full disclosure: We built this app!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=7_popular_reporting_apps&quot;&gt;Report Sender on AppExchange&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;4-conga-composer&quot;&gt;&lt;strong&gt;4. Conga Composer&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;**Best for:**Teams generating documents (proposals, contracts, quote packets) from Salesforce data, not analytical reporting.&lt;/p&gt;
&lt;p&gt;Conga is built for sales and marketing professionals who need to generate and send presentations, proposals, reports, or contracts. Conga allows users to combine and merge data from external databases. Users can collaborate by setting up document templates and workflows, and can access and sign documents remotely. The platform provides the tools to easily negotiate with key stakeholders and sign contracts on the go. Conga also allows multiple people to work on a contract together and redline the document.&lt;/p&gt;
&lt;p&gt;Conga Composer benefits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Salesforce template integration&lt;/strong&gt;: build templates in Word, Excel, PowerPoint, or HTML&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Complex pages pulling multiple objects&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Template-based for reusability&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multistep processes&lt;/strong&gt; that save time through batch and triggered document generation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flexible design&lt;/strong&gt; that handles complex data merges&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Works well with other software&lt;/strong&gt; like Adobe Sign, DocuSign, and more&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PDFs are completely customizable&lt;/strong&gt; to meet branding requirements&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automatically stores details&lt;/strong&gt; in the contact’s activity history so you can see who has received what documents&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N300000016b7FEAQ&quot;&gt;Conga Composer on AppExchange&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;5-unaric-reports-formerly-report-builder-by-cloud4j&quot;&gt;&lt;strong&gt;5. Unaric Reports (formerly Report Builder by Cloud4J)&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;**Best for:**Admins who have hit the limits of Salesforce native reports and want a no-code builder without leaving the platform.&lt;/p&gt;
&lt;p&gt;Unaric Reports is an app that enables users to build, download, and schedule Salesforce reports and dashboards in a variety of formats. Following Unaric’s acquisition of Cloud4J in December 2024, the product has been rebranded and expanded as part of Unaric’s growing suite of Salesforce-native applications. It includes charts, conditional formatting, and can query more than 2,000 records, including formula fields. There is no installation necessary, and it works with existing Salesforce reports.&lt;/p&gt;
&lt;p&gt;Key features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Advanced report builder&lt;/strong&gt;: create reports from any Salesforce object using a no-code, point-and-click interface&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiple schedules&lt;/strong&gt; can be set on a single report or dashboard&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flexible delivery&lt;/strong&gt;: send to Salesforce and non-Salesforce users via email, Slack, Microsoft Teams, or FTP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI-powered analysis&lt;/strong&gt;: surface trends, anomalies, and executive summaries from your data&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-source integration&lt;/strong&gt;: combine Salesforce data with other business systems&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Brand customization&lt;/strong&gt;: adjust colors, fonts, and layouts to match your corporate identity&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiple output formats&lt;/strong&gt;: PDF, Excel, Word, PowerPoint, and HTML&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Monitor delivery&lt;/strong&gt; and open rates for sent reports&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N4V00000G7MeoUAF&quot;&gt;Unaric Reports on AppExchange&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;6-smartsheet&quot;&gt;&lt;strong&gt;6. Smartsheet&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;**Best for:**Project and PMO teams that want a spreadsheet-style work platform with light reporting bolted on. Not a true BI tool.&lt;/p&gt;
&lt;p&gt;Every successful business already uses spreadsheets, and Smartsheet turns those familiar rows and columns of cells into a powerful app. The result is a tool that can handle workflow automation, content collaboration, forms management, project management, activity logging, scheduling, and real-time data tracking. This cloud-based app makes spreadsheets smarter, and for certain kinds of work, it might be preferable to a more traditional project management platform.&lt;/p&gt;
&lt;p&gt;Smartsheet key features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multiple views&lt;/strong&gt;: Gantt charts, board views, calendar views, and table views&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unlimited possibilities&lt;/strong&gt; for adding custom fields to tasks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automatic reminders and notifications&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Customizable templates&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Milestone tracking and portfolio management&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time and expense tracking&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Salesforce integration&lt;/strong&gt; for connecting project data with CRM workflows&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automation builder&lt;/strong&gt; with flexible trigger/action options&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://www.smartsheet.com/&quot;&gt;Smartsheet&lt;/a&gt; | &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=2d5dd1d6-6d0f-4bb6-9bfd-556859b830a9&quot;&gt;Smartsheet Salesforce Connector on AppExchange&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;7-coefficient&quot;&gt;&lt;strong&gt;7. Coefficient&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;**Best for:**Finance, ops, and rev ops teams who already build their reports in Google Sheets or Excel and want live Salesforce data in them.&lt;/p&gt;
&lt;p&gt;Coefficient is a modern reporting tool that bridges the gap between Salesforce and the spreadsheets your team already knows. Available as a Google Sheets add-on and Excel integration, Coefficient syncs live Salesforce data directly into your spreadsheet — giving you real-time reporting without leaving the tools you already use every day.&lt;/p&gt;
&lt;p&gt;Key features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Live data sync&lt;/strong&gt;: pull real-time Salesforce data into Google Sheets or Excel with automatic refresh schedules&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Two-way sync&lt;/strong&gt;: push changes from your spreadsheet back into Salesforce to update records, insert new data, or delete entries&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No-code setup&lt;/strong&gt;: connect to Salesforce and start importing data without writing code or SOQL queries (though custom SOQL is supported for power users)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pre-built templates&lt;/strong&gt;: get started quickly with report templates for pipeline reviews, forecast tracking, and more&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI-powered automation&lt;/strong&gt;: set alerts when data changes and auto-distribute reports via Slack or email&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flexible imports&lt;/strong&gt;: pull from existing Salesforce reports, query individual objects and fields, or write custom SOQL&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Combine multiple data sources&lt;/strong&gt;: merge Salesforce data with information from HubSpot, databases, and other systems in a single spreadsheet&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Collaborative reporting&lt;/strong&gt;: share live-updating spreadsheets with your team for real-time alignment&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N4V00000GYgWXUA1&quot;&gt;Coefficient on AppExchange&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;improve-your-salesforce-reporting&quot;&gt;&lt;strong&gt;Improve Your Salesforce Reporting&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Improving your Salesforce reporting can help you make more informed decisions about your sales and marketing strategies, your internal operations, and your customer service. The right metrics can help you identify weaknesses — but more importantly, proper reports can help you find what’s working and resonating with your customers. So improve your reporting results with one of the many great plug-ins available on the AppExchange.&lt;/p&gt;
&lt;p&gt;Still stuck? &lt;a href=&quot;/contact&quot;&gt;Send us a message&lt;/a&gt;, and we’d be happy to talk about your reporting needs.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[How to Build a Salesforce Backup Strategy: What to Back Up, How Often, and Where to Store It]]></title><description><![CDATA[If you’ve ever read a blog post about Salesforce backup that left…]]></description><link>https://cloudanswers.com/blog/how-to-build-a-salesforce-backup-strategy-what-to-back-up-how-often-and-where-to-store-it</link><guid isPermaLink="false">/blog/how-to-build-a-salesforce-backup-strategy-what-to-back-up-how-often-and-where-to-store-it</guid><pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/04/Backup_Strategy_Blog_Header.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;If you’ve ever read a blog post about Salesforce backup that left you thinking “okay, but what do I actually &lt;em&gt;do&lt;/em&gt;?,” here is your answer. We’re going to skip past the usual “you really should back up your data” pitch (you’re reading this, so you already know) and get straight into the practical decisions: what gets backed up, how frequently, where it lives, and how you’ll actually restore it when the time comes.&lt;/p&gt;
&lt;p&gt;Building a backup strategy isn’t about buying a tool and turning it on. It’s about answering a set of specific questions that determine what “adequate protection” means for your specific org. Let’s work through them.&lt;/p&gt;
&lt;h2 id=&quot;start-with-two-numbers-rpo-and-rto&quot;&gt;&lt;strong&gt;Start With Two Numbers: RPO and RTO&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Every backup strategy starts with two acronyms that sound more intimidating than they are.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RPO (Recovery Point Objective)&lt;/strong&gt; is how much data you can afford to lose, measured in time. If your RPO is 24 hours, that means in a worst-case scenario, you’re okay with losing up to a day’s worth of data. If your RPO is 1 hour, you need backups to run at least once an hour.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RTO (Recovery Time Objective)&lt;/strong&gt; is how quickly you need to be back up and running after a data loss event. An RTO of 4 hours means the clock starts when the disaster happens, and you have 4 hours to detect it, pull the backup, restore the data, verify it, and get users working again.&lt;/p&gt;
&lt;p&gt;These two numbers drive every other decision. A 4-hour RPO and a 1-hour RTO mean you need frequent backups &lt;em&gt;and&lt;/em&gt; a fast restore process. A 24-hour RPO with a 24-hour RTO means a daily backup with manual restore is probably fine. The cost of your backup strategy scales directly with how aggressive these numbers are, tighter RPO and RTO mean more infrastructure, more tooling, and more operational overhead.&lt;/p&gt;
&lt;p&gt;How do you pick the right numbers? Think about what happens when things go wrong. If your sales team loses a full day of Opportunity updates, how bad is that? If your service team loses 8 hours of Case history, can they piece it back together? If you lose a week of metadata changes from your last release, how long does it take to rebuild? Have this conversation with the business, not just IT. The answer usually lands somewhere around:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Low-risk orgs&lt;/strong&gt; (small teams, infrequent changes, non-critical data): RPO 24 hours, RTO 24-48 hours. A daily backup with a manual restore process is sufficient.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Standard production orgs&lt;/strong&gt; (active sales/service teams, moderate change velocity): RPO 12 hours, RTO 4-8 hours. Daily backups with some critical objects backed up more frequently.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;High-risk orgs&lt;/strong&gt; (heavy transactional use, financial data, compliance requirements): RPO 1-4 hours, RTO 1-2 hours. Frequent incremental backups, automated restore tooling, and tested recovery procedures.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Write these numbers down before you start evaluating tools. Without them, you can’t tell whether any given backup solution actually meets your needs.&lt;/p&gt;
&lt;h2 id=&quot;what-to-actually-back-up&quot;&gt;&lt;strong&gt;What to Actually Back Up&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This is the question most admins don’t think hard enough about until they’re in the middle of a restore. “All of it” sounds like the right answer, but it’s more expensive and more operationally complex than most orgs need. Here’s a better way to think about it.&lt;/p&gt;
&lt;h3 id=&quot;data&quot;&gt;&lt;strong&gt;Data&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Start with your standard objects and custom objects. These are the records your business runs on. The core list usually includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Accounts, Contacts, Leads&lt;/strong&gt;: customer and prospect data&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Opportunities, OpportunityLineItems, Products, Pricebooks&lt;/strong&gt;: sales data&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cases, Case Comments, Solutions&lt;/strong&gt;: service data&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tasks and Events&lt;/strong&gt;: activity history (often the highest-volume object)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Campaign, CampaignMember&lt;/strong&gt;: marketing data&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom objects&lt;/strong&gt;: whatever your org uses to run its business&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some objects are harder to back up than others. Activity objects (Tasks and Events) grow fast and accumulate millions of records in mature orgs. History objects (AccountHistory, OpportunityHistory, etc.) contain change tracking data that’s easy to overlook but hard to reconstruct.&lt;a href=&quot;/blog/effective-data-storage-in-salesforce-for-every-business-size&quot;&gt;Large data volumes&lt;/a&gt; make these objects expensive to back up frequently, which is why many orgs back up high-volume objects less often than core business objects.&lt;/p&gt;
&lt;h3 id=&quot;files-and-attachments&quot;&gt;&lt;strong&gt;Files and Attachments&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Here’s a gotcha that catches many teams off guard: files and attachments in Salesforce are a completely separate storage category from data, and they often represent the largest volume of content in an org. Contracts, signed proposals, customer documents, scanned forms, email attachments, all of this lives in ContentDocument, ContentVersion, and (in older orgs) Attachment objects.&lt;/p&gt;
&lt;p&gt;A lot of backup tools treat file backup as an optional add-on, or they back up the metadata about the file but not the file itself. That’s not a backup. If a user accidentally deletes a Contract, you need the actual PDF back, not just a record saying it existed. Make sure your backup strategy explicitly includes file content, not just file records.&lt;/p&gt;
&lt;h3 id=&quot;metadata&quot;&gt;&lt;strong&gt;Metadata&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This is the part most orgs get wrong. Metadata is the structure of your Salesforce org, your custom fields, page layouts, validation rules, Flows, triggers, profiles, permission sets, page assignments, record types, and so on. It’s everything that makes your Salesforce org &lt;em&gt;your&lt;/em&gt; Salesforce org.&lt;/p&gt;
&lt;p&gt;Why does this matter? Because if you need to restore data, you also need the matching metadata. A backup of the Opportunity records from last month is useless if a custom field has been deleted since then, there’s nowhere to put the restored values. Worse, a bad deployment can accidentally delete a custom field and take all its data with it, and without a metadata backup you’re rebuilding it from scratch.&lt;/p&gt;
&lt;p&gt;Metadata backup is also how you protect against configuration changes you didn’t mean to make. If someone modifies a Flow and breaks a business process, you need a way to see what changed and roll it back. The native Data Export Service doesn’t include metadata at all, you need either a third-party tool or a manual process (like regularly retrieving metadata through the Metadata API or a DevOps tool) to capture it.&lt;/p&gt;
&lt;h3 id=&quot;what-you-probably-dont-need-to-back-up&quot;&gt;&lt;strong&gt;What You Probably Don’t Need to Back Up&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Not everything needs the same level of protection. System-generated objects like LoginHistory, EventLogFile, and Apex job records are typically retained by Salesforce and don’t need to be in your backup. Soft-deleted records in the Recycle Bin will be purged in 15 days anyway (or 30 days if you enable Extended Recycle Bin Retention, which is a Classic-only setting, Lightning is stuck at 15 days), so they’re not a meaningful backup target.&lt;/p&gt;
&lt;p&gt;And worth noting: the Recycle Bin also has a capacity cap of 25 times your org’s data storage allocation, which means records can be purged &lt;em&gt;before&lt;/em&gt; the 15-day mark if the bin fills up. That’s another reason the Recycle Bin isn’t a reliable safety net. Test data in sandboxes can also be re-created rather than restored.&lt;/p&gt;
&lt;p&gt;The right approach is tiered: put mission-critical objects in the highest-frequency backup tier, supporting objects in a less frequent tier, and archival or low-change data in the least frequent tier.&lt;/p&gt;
&lt;h2 id=&quot;how-often-to-back-up&quot;&gt;&lt;strong&gt;How Often to Back Up&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This question is where RPO becomes concrete. If your target RPO is 24 hours, you need at least one backup per day. If your target is 4 hours, you need backups every 4 hours or more frequently.&lt;/p&gt;
&lt;p&gt;Here’s what makes this tricky in Salesforce: native backup tools have hard limits on frequency. The built-in&lt;a href=&quot;/blog/how-to-get-salesforce-data-into-csv-or-excel-files&quot;&gt;Data Export Service&lt;/a&gt; runs weekly or monthly at most, depending on your edition. That’s fine if your RPO is a week, but most businesses can’t tolerate that level of potential loss.&lt;/p&gt;
&lt;p&gt;Third-party tools typically offer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Daily backups&lt;/strong&gt;: the standard baseline for most orgs. Meets a 24-hour RPO and is the minimum I’d recommend for any production org.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hourly or high-frequency backups&lt;/strong&gt;: for critical objects or high-velocity environments. These usually cost more because they consume more API calls and storage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Continuous/near-real-time&lt;/strong&gt;: streaming changes as they happen. Expensive and operationally complex, usually reserved for enterprise orgs with strict compliance requirements.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;On-demand backups&lt;/strong&gt;: triggered manually before risky operations like a major release, a bulk data migration, or a duplicate merge. Always take one of these before doing something that could go wrong.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A common pattern for standard production orgs is: daily full backup of all objects, plus hourly incremental backups of the most critical objects (typically Accounts, Contacts, Opportunities, and whatever drives your core revenue flow). This gives you a 24-hour safety net for everything and a 1-hour safety net for what matters most.&lt;/p&gt;
&lt;p&gt;One thing to watch out for: backup operations consume API calls, and Salesforce orgs have daily API limits that your backup schedule has to respect. Aggressive high-frequency backups on large orgs can chew through API capacity that your integrations and automations also need. Factor this in when designing your schedule, and monitor API usage to make sure backups aren’t starving other processes.&lt;/p&gt;
&lt;h2 id=&quot;where-to-store-your-backups&quot;&gt;&lt;strong&gt;Where to Store Your Backups&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This is the question that often gets the least attention and causes the most problems later. A backup stored in the same place as your production data isn’t really a backup, it’s a second copy that can fail for the same reasons.&lt;/p&gt;
&lt;p&gt;The gold standard is the &lt;strong&gt;3-2-1 rule&lt;/strong&gt;, a backup best practice that’s been around for decades: maintain at least &lt;strong&gt;3 copies&lt;/strong&gt; of your data, on &lt;strong&gt;2 different types of storage&lt;/strong&gt;, with &lt;strong&gt;1 copy off-site&lt;/strong&gt;. This is endorsed by NIST and CISA and it’s the baseline for any serious backup strategy.&lt;/p&gt;
&lt;p&gt;In a Salesforce context, the 3-2-1 rule translates to something like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Copy 1&lt;/strong&gt;: Your production Salesforce org (the original).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copy 2&lt;/strong&gt;: A backup stored by your backup provider (this is the “different storage” part, typically cloud object storage like AWS S3 or Azure Blob).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copy 3&lt;/strong&gt;: An additional off-site copy, either in a different cloud region, a different cloud provider, or exported locally.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The off-site requirement exists because a regional outage at your cloud provider, a security incident with your backup vendor, or a widespread ransomware event can all take out both your production and backup copies at once if they’re in the same place. Having a geographically or logically separate copy protects against these rare but catastrophic scenarios.&lt;/p&gt;
&lt;p&gt;There’s also an evolved version called &lt;strong&gt;3-2-1-1-0&lt;/strong&gt;: three copies, two media types, one off-site, one &lt;strong&gt;immutable&lt;/strong&gt; (meaning it can’t be modified or deleted, even by an admin, this protects against ransomware and insider threats), and &lt;strong&gt;zero&lt;/strong&gt; errors in backup verification (meaning you actually test your backups regularly).&lt;/p&gt;
&lt;p&gt;For most Salesforce orgs, “good enough” looks like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Daily automated backups stored with a third-party provider on independent cloud infrastructure&lt;/li&gt;
&lt;li&gt;A weekly or monthly export downloaded and stored somewhere separate from your primary backup (a company file share, an archive bucket in your own AWS account, whatever)&lt;/li&gt;
&lt;li&gt;Immutability enabled on your backup storage where possible&lt;/li&gt;
&lt;li&gt;Quarterly test restores to verify the backups actually work&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;should-you-store-backups-inside-salesforce&quot;&gt;&lt;strong&gt;Should You Store Backups Inside Salesforce?&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Short answer: no. Some backup tools offer to store your backups in a custom object inside the same Salesforce org. This seems convenient but it defeats the purpose of a backup. If the org is compromised, deleted, or suspended, your backup goes with it. If an admin’s credentials are compromised, they have access to both production and backup. And the storage cost inside Salesforce is much higher than cloud object storage.&lt;/p&gt;
&lt;p&gt;Backup data should always live outside your production Salesforce org, in infrastructure with independent access controls.&lt;/p&gt;
&lt;h2 id=&quot;retention-how-long-to-keep-backups&quot;&gt;&lt;strong&gt;Retention: How Long to Keep Backups&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Not every backup needs to live forever. A reasonable retention policy balances recovery flexibility against storage cost and compliance requirements.&lt;/p&gt;
&lt;p&gt;A typical tiered retention schedule looks like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Recent backups&lt;/strong&gt; (0-30 days): keep everything, every backup, for maximum granularity. This is where most restore operations happen.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Monthly snapshots&lt;/strong&gt; (1-12 months): keep one backup per month for the past year. This protects against issues that go undetected for weeks.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Annual snapshots&lt;/strong&gt; (1-7+ years): keep one backup per year for long-term compliance, audits, and edge-case recovery scenarios.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Industry and regulatory requirements may dictate specific retention periods. GDPR, HIPAA, SOX, and various financial regulations have requirements for how long certain kinds of data must be kept and (in some cases) how quickly personal data must be deleted upon request. Make sure your retention policy accommodates both “keep this for 7 years” and “delete this within 30 days of a deletion request,” these can be in tension, and your backup tooling needs to handle both.&lt;/p&gt;
&lt;h2 id=&quot;testing-the-step-everyone-skips&quot;&gt;&lt;strong&gt;Testing: The Step Everyone Skips&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;A backup that has never been tested is a hope, not a strategy.&lt;/p&gt;
&lt;p&gt;Most organizations religiously back up their data and then never once test a restore until disaster strikes. That’s the moment you discover that the backup was corrupted, or the restore tool doesn’t work the way you expected, or the restore takes 18 hours when you thought it would take 2, or the backup is missing an object you didn’t realize was excluded from the job.&lt;/p&gt;
&lt;p&gt;You should test your backups at least quarterly. A proper test isn’t just “does the backup file exist,” it’s an end-to-end recovery exercise:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Pick a small subset of records that you can safely experiment with.&lt;/li&gt;
&lt;li&gt;Restore them from the backup to a sandbox (or, if you’re brave, to a test area of production).&lt;/li&gt;
&lt;li&gt;Verify the restored data is correct, all fields populated, relationships intact, files attached.&lt;/li&gt;
&lt;li&gt;Time the whole process from start to finish.&lt;/li&gt;
&lt;li&gt;Document any issues and fix them.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;At least once a year, do a larger-scale test: restore a full object’s worth of data. Every few years, simulate a full disaster recovery scenario and measure how long it actually takes to get back to normal operations. Compare that measured RTO against your target RTO. If the gap is large, you have work to do.&lt;/p&gt;
&lt;p&gt;Testing also reveals gaps in documentation. The person who set up your backup solution three years ago might not be the person who needs to run a restore at 2 AM during a crisis. Written procedures, clear credentials, and rehearsed processes make the difference between “we got it back in an hour” and “we spent the whole morning trying to remember how this tool works.”&lt;/p&gt;
&lt;h2 id=&quot;a-note-on-the-shared-responsibility-model&quot;&gt;&lt;strong&gt;A Note on the Shared Responsibility Model&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;One thing worth explicitly calling out: &lt;strong&gt;Salesforce does not back up your data for you in a way that you can restore.&lt;/strong&gt; This is one of the most common misconceptions in the Salesforce ecosystem, and it catches new admins off guard every single time.&lt;/p&gt;
&lt;p&gt;Salesforce maintains infrastructure backups for their own disaster recovery purposes, if their data center burns down, they can bring the platform back. But those backups aren’t available to you as a customer. The old Data Recovery Service (which was $10,000 and took 6-8 weeks) was retired in 2020, brought back briefly in 2021, and then retired again. As of today, native Salesforce Backup (formerly called Backup and Restore) is a paid add-on product, and AppExchange partners are the primary source of backup tooling. This is all part of&lt;a href=&quot;/blog/why-your-salesforce-org-needs-a-backup-strategy-and-why-its-your-responsibility&quot;&gt;why your Salesforce org needs a backup strategy&lt;/a&gt;, it’s your responsibility, not Salesforce’s.&lt;/p&gt;
&lt;p&gt;This is called the &lt;strong&gt;shared responsibility model&lt;/strong&gt;: Salesforce is responsible for keeping the platform running, and you are responsible for protecting the data you put into it. The line is clearly drawn, and there’s no version of events where Salesforce magically restores your data because you forgot to back it up.&lt;/p&gt;
&lt;h2 id=&quot;putting-it-all-together-a-sample-strategy&quot;&gt;&lt;strong&gt;Putting It All Together: A Sample Strategy&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Here’s what a reasonable backup strategy looks like for a typical mid-sized Salesforce org with around 100 users running sales and service:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RPO target&lt;/strong&gt;: 24 hours for standard objects, 4 hours for critical objects (Accounts, Opportunities, Cases). &lt;strong&gt;RTO target&lt;/strong&gt;: 8 hours.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What’s backed up&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All standard objects with production data&lt;/li&gt;
&lt;li&gt;All custom objects&lt;/li&gt;
&lt;li&gt;Files and attachments (ContentVersion content)&lt;/li&gt;
&lt;li&gt;Metadata (weekly minimum, ideally on every production deployment)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Frequency&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Daily automated full backup of all objects&lt;/li&gt;
&lt;li&gt;Hourly incremental backups of Accounts, Contacts, Opportunities, Cases&lt;/li&gt;
&lt;li&gt;On-demand backup before any&lt;a href=&quot;/blog/the-hidden-costs-of-duplicates-in-salesforce&quot;&gt;major bulk operation like a duplicate merge&lt;/a&gt;, migration, or deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Where it lives&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Primary backup with a third-party provider, stored on AWS or Azure infrastructure&lt;/li&gt;
&lt;li&gt;Monthly export archived to a separate location (company S3 bucket or similar)&lt;/li&gt;
&lt;li&gt;Backup storage has immutability enabled where supported&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Retention&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;30 days of daily backups&lt;/li&gt;
&lt;li&gt;12 months of monthly snapshots&lt;/li&gt;
&lt;li&gt;3-year annual archives&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Testing&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quarterly restore test of a sample dataset&lt;/li&gt;
&lt;li&gt;Annual full-object restore test&lt;/li&gt;
&lt;li&gt;Documented runbook for disaster recovery, updated when the backup tooling changes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Monitoring&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Email alerts on backup failures&lt;/li&gt;
&lt;li&gt;Weekly review of backup status&lt;/li&gt;
&lt;li&gt;Quarterly review of backup costs vs. RPO/RTO targets&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That’s not a fancy strategy. It’s a boring, practical one, and boring is exactly what you want when it comes to backups.&lt;/p&gt;
&lt;h2 id=&quot;common-mistakes-to-avoid&quot;&gt;&lt;strong&gt;Common Mistakes to Avoid&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;A few patterns I see repeatedly that trip up otherwise well-intentioned backup strategies:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Backing up data but not metadata.&lt;/strong&gt; If your custom fields, Flows, and permissions aren’t in the backup, you can’t fully restore your org. Metadata is half the picture.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Storing backups in the same infrastructure as production.&lt;/strong&gt; If the whole point of a backup is to protect against failure, the backup needs to fail independently from production. A backup in the same Salesforce org, in the same AWS account, or behind the same admin credentials isn’t really a backup.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Never testing restores.&lt;/strong&gt; I know I keep saying this, but it’s the single most common failure mode. You have no way of knowing whether your backup works until you’ve actually restored something.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Over-backing up.&lt;/strong&gt; Backing up every object at every possible frequency sounds thorough but it’s wasteful. Tier your backup strategy to match the actual business impact of each object.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No retention policy.&lt;/strong&gt; Keeping every backup forever gets expensive, and it can create compliance problems. Define retention up front.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No one owns it.&lt;/strong&gt; Backup strategies fail because no single person is responsible for monitoring them, testing them, or updating them as the org evolves. Assign an owner, ideally someone who will notice when a backup job fails.&lt;/p&gt;
&lt;h2 id=&quot;wrapping-up&quot;&gt;&lt;strong&gt;Wrapping Up&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;A good Salesforce backup strategy isn’t complicated, but it does require thinking about the pieces deliberately. Start with your RPO and RTO numbers. Decide what data, files, and metadata need to be backed up, and at what frequency for each tier. Put the backups in storage that’s independent of production. Retain them according to a policy. Test them regularly. Assign someone to own the whole thing.&lt;/p&gt;
&lt;p&gt;The backup you set up today is the one that will save you six months from now, when a user accidentally deletes a few thousand records, or a deployment goes sideways, or a bad import overwrites fields you needed. It’s not a question of whether something will go wrong, it’s a question of whether you’ll be ready when it does.&lt;/p&gt;
&lt;p&gt;If you need a place to start, the native Data Export Service is free and takes about two minutes to enable. It’s not enough on its own, but it’s better than nothing. From there, look at&lt;a href=&quot;/products/dbsaver&quot;&gt;a dedicated tool like DBSaver&lt;/a&gt;. The best backup strategy is the one you’ll actually maintain.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Salesforce Data Recovery Without a Backup: What Your Options Actually Are After Accidental Deletion]]></title><description><![CDATA[It happens to every Salesforce admin eventually. Maybe a user ran a…]]></description><link>https://cloudanswers.com/blog/salesforce-data-recovery-without-a-backup-what-your-options-actually-are-after-accidental-deletion</link><guid isPermaLink="false">/blog/salesforce-data-recovery-without-a-backup-what-your-options-actually-are-after-accidental-deletion</guid><pubDate>Fri, 24 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/04/Data_Recovery_Blog_Header.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;It happens to every Salesforce admin eventually. Maybe a user ran a mass delete they didn’t mean to. Maybe an automation fired on the wrong set of records. Maybe someone used Data Loader with the wrong CSV file and overwrote half your Accounts. Whatever the cause, you’re now staring at missing data and the sinking realization that you don’t have a backup to fall back on.&lt;/p&gt;
&lt;p&gt;You’re not alone. Roughly &lt;a href=&quot;https://www.techtarget.com/searchdatabackup/feature/Data-protection-experts-weigh-in-on-SaaS-backup-confusion&quot;&gt;60% of Salesforce organizations&lt;/a&gt; are running without any third-party backup solution, and &lt;a href=&quot;https://crmninjas.io/salesforce-data-loss-think-again/&quot;&gt;53% of SaaS users reported data loss or corruption in the past year&lt;/a&gt;. So let’s skip the part where I tell you that you should have had a backup (you already know that), and focus on what you can actually do right now to recover your data.&lt;/p&gt;
&lt;h2 id=&quot;first-dont-panic-and-dont-touch-anything&quot;&gt;&lt;strong&gt;First: Don’t Panic, and Don’t Touch Anything&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Before you do anything else, stop making changes. Every action you take in Salesforce — including trying to “fix” things — could make recovery harder. If an automation caused the problem, disable it immediately. If a user is still actively deleting or modifying records, revoke their access. The goal right now is to freeze the situation so you can assess the damage clearly.&lt;/p&gt;
&lt;p&gt;Take a breath, grab a notepad, and document what you know: what was deleted or changed, approximately when it happened, which objects are affected, and how many records you think are involved. This information will be critical no matter which recovery path you end up taking.&lt;/p&gt;
&lt;h2 id=&quot;option-1-the-recycle-bin-your-15--to-30-day-safety-net&quot;&gt;&lt;strong&gt;Option 1: The Recycle Bin (Your 15- to 30-Day Safety Net)&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;The Recycle Bin is the first place to look, and for straightforward deletions, it might be the only tool you need. When records are deleted in Salesforce, they aren’t immediately erased — they’re soft-deleted and moved to the Recycle Bin, where they sit for 15 days by default before being permanently purged.&lt;/p&gt;
&lt;p&gt;One thing most admins don’t know: if your org still uses Salesforce Classic (or has it available), you can enable &lt;a href=&quot;https://help.salesforce.com/s/articleView?id=000387160&amp;amp;type=1&quot;&gt;&lt;strong&gt;Extended Recycle Bin Retention&lt;/strong&gt;&lt;/a&gt; to stretch that window to 30 days. You can enable it by contacting Salesforce Support to activate the feature, or in some orgs by going to Setup &amp;gt; User Interface and checking “Enable Extended Recycle Bin Retention.” This doesn’t help after records are already gone, but if you’re reading this before disaster strikes, it’s worth enabling now — doubling your recovery window costs nothing.&lt;/p&gt;
&lt;p&gt;There are actually two layers to the Recycle Bin. Individual users can access their own deleted records. Admins can access the organization-wide Recycle Bin, which shows everything deleted by any user in the org. Navigate to the App Launcher, search for “Recycle Bin,” set the view to “All Recycle Bin” if you’re an admin, and start searching for your missing records.&lt;/p&gt;
&lt;p&gt;A few things to know about the Recycle Bin that aren’t immediately obvious:&lt;/p&gt;
&lt;p&gt;The Recycle Bin has a storage cap — it can hold up to 25 times your org’s &lt;a href=&quot;/blog/effective-data-storage-in-salesforce-for-every-business-size&quot;&gt;data storage allocation&lt;/a&gt; in records. So if your org has 1 GB of data storage, the Recycle Bin can hold up to 25,000 records. If the bin fills up beyond that, the oldest records get purged first.&lt;/p&gt;
&lt;p&gt;If a parent record was deleted and it cascade-deleted its child records, you only need to restore the parent. Salesforce will automatically restore the related children along with it. So if someone deleted an Account and its Contacts disappeared, find and restore the Account first — the Contacts should come back too.&lt;/p&gt;
&lt;p&gt;And critically: if someone used the “Hard Delete” option in Data Loader, those records bypassed the Recycle Bin entirely. They won’t be there. Same thing if a user manually emptied their Recycle Bin after deleting records — once purged, the Recycle Bin can’t help you.&lt;/p&gt;
&lt;h2 id=&quot;option-2-the-recycle-bin-but-with-data-loader-for-bulk-recovery&quot;&gt;&lt;strong&gt;Option 2: The Recycle Bin, But With Data Loader (For Bulk Recovery)&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If you need to restore a handful of records, clicking “Undelete” in the Recycle Bin interface works fine. But if someone deleted 10,000 Leads, you’re not going to do that one at a time.&lt;/p&gt;
&lt;p&gt;This is where Data Loader becomes your friend. Here’s the process:&lt;/p&gt;
&lt;p&gt;Open Data Loader and log in with admin credentials (you’ll need API Enabled and Modify All Data permissions). Choose “Export All” — this is different from a regular export because it includes deleted records that are still in the Recycle Bin. Run a SOQL query against the object you want to recover, filtering for deleted records. The query looks something like: SELECT Id, Name FROM Lead WHERE IsDeleted = TRUE. Export the results to a CSV file, review it to make sure you’re restoring the right records, and then use Data Loader’s “Undelete” operation to restore them in bulk.&lt;/p&gt;
&lt;p&gt;You can also do this through Workbench if you prefer a browser-based tool — just enable the “Include Deleted and Archived Records” checkbox when running your SOQL query.&lt;/p&gt;
&lt;p&gt;The important thing to understand here is that &lt;strong&gt;the Undelete operation preserves the original record IDs&lt;/strong&gt;. The records come back exactly as they were, with their relationships intact. This is a huge advantage over re-creating records from scratch, which assigns new IDs and breaks all the existing links between objects.&lt;/p&gt;
&lt;p&gt;One more thing: even after records are purged from the individual user’s Recycle Bin, they may still be accessible through the API for a short time before Salesforce completes the permanent purge. So even if a user says they “emptied the recycle bin,” it’s worth running that Data Loader Export All query to check.&lt;/p&gt;
&lt;h2 id=&quot;option-3-check-your-data-exports&quot;&gt;&lt;strong&gt;Option 3: Check Your Data Exports&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This isn’t technically “without a backup,” but you might have a backup you’ve forgotten about. Salesforce’s built-in Data Export Service lets admins schedule weekly or monthly &lt;a href=&quot;/blog/how-to-get-salesforce-data-into-csv-or-excel-files&quot;&gt;data exports to CSV files&lt;/a&gt;. The files are available for download for 48 hours after they’re generated.&lt;/p&gt;
&lt;p&gt;Go to Setup &amp;gt; Data &amp;gt; Data Export and check if anyone in your org has been running scheduled exports. If you’re lucky, there’s a recent export sitting there that contains the records you need. Even if the export doesn’t have everything, partial data recovery is better than no data recovery.&lt;/p&gt;
&lt;p&gt;The catch: if the export was generated before the deletion happened and you downloaded it, great — you can use Data Loader to re-import the records from those CSV files. If nobody downloaded the export within 48 hours, the files are gone and can’t be recovered.&lt;/p&gt;
&lt;p&gt;Also worth checking: does anyone on the team have an old data export sitting in their Downloads folder? It sounds silly, but you’d be surprised how often this is the thing that saves the day.&lt;/p&gt;
&lt;h2 id=&quot;option-4-check-your-sandboxes&quot;&gt;&lt;strong&gt;Option 4: Check Your Sandboxes&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Here’s another source of data that people often overlook. If your org has a Full Copy Sandbox that was recently refreshed, it contains a snapshot of your production data at the time of the refresh. If the records you lost existed when the sandbox was created, they’re still in there.&lt;/p&gt;
&lt;p&gt;To recover data from a sandbox, log into the sandbox environment, use Data Loader or a report to export the records you need, then import them back into your production org. Just keep in mind that since these records will be inserted as new records, they’ll get new Salesforce IDs. You’ll need to carefully manage the relationships between parent and child records — import parents first, get their new IDs, update the child records’ lookup fields, then import the children.&lt;/p&gt;
&lt;p&gt;Partial Copy and Developer sandboxes don’t include all your data, so they’re less helpful here, but it’s still worth checking if they have any of the records you’re missing.&lt;/p&gt;
&lt;h2 id=&quot;option-5-reconstruct-from-related-records-and-field-history&quot;&gt;&lt;strong&gt;Option 5: Reconstruct From Related Records and Field History&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;When all else fails, sometimes you can piece together lost data from what’s still in Salesforce. This is tedious and imperfect, but it’s better than nothing.&lt;/p&gt;
&lt;p&gt;Field History Tracking, if it was enabled on the affected objects before the deletion, keeps a log of changes to tracked fields. While it won’t give you complete records, it can help you reconstruct field values. Check Setup &amp;gt; Object Manager &amp;gt; [Your Object] &amp;gt; Fields &amp;amp; Relationships &amp;gt; Set History Tracking to see which fields were being tracked.&lt;/p&gt;
&lt;p&gt;You can also look at related records that weren’t cascade-deleted along with the Contact. Cases are a good example. Cases have a lookup relationship to Contact rather than a cascade-delete relationship, so when a Contact is deleted, related Cases survive (the ContactId field just goes blank).&lt;/p&gt;
&lt;p&gt;Those Cases often contain the contact name, email address, phone number, and account context you need to rebuild the Contact record. Account records, Opportunities the Contact was associated with through Opportunity Contact Roles, and any custom objects with non-cascading lookups to Contact are also worth checking.&lt;/p&gt;
&lt;h2 id=&quot;option-6-salesforce-support-the-expensive-last-resort&quot;&gt;&lt;strong&gt;Option 6: Salesforce Support (The Expensive Last Resort)&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Salesforce’s Data Recovery Service has had a complicated history. It was retired in July 2020, brought back briefly in March 2021, and then re-retired in November 2021 in favor of Salesforce’s own Backup and Restore product. But even when it was available, it was never a great option — it cost $10,000 per recovery, took 6-8 weeks, didn’t guarantee 100% data recovery, and delivered data as raw CSV files that you had to manually re-import.&lt;/p&gt;
&lt;p&gt;As of today, the official guidance from Salesforce is to use either their native Backup and Restore tool (a paid add-on), a partner solution from the AppExchange, or your own data export files. If you’re in a truly desperate situation, it’s still worth opening a case with Salesforce Support and explaining what happened. Depending on your edition and contract, they may be able to help — but set realistic expectations about cost, timeline, and completeness.&lt;/p&gt;
&lt;h2 id=&quot;what-you-cant-recover&quot;&gt;&lt;strong&gt;What You Can’t Recover&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Let’s be honest about the limits. Some types of data loss in Salesforce are effectively permanent if you don’t have a backup:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Overwritten data&lt;/strong&gt; is the big one. The Recycle Bin only catches deletions. If someone ran a Data Loader update that overwrote field values across 50,000 records with incorrect data, those original values are gone unless you have field history tracking or a backup. There’s no “undo” for an update operation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Metadata changes&lt;/strong&gt; are trickier than they appear. Deleted custom fields don’t go to the Recycle Bin — instead, they move to a “Deleted Fields” section in Object Manager, where they remain recoverable for 15 days with all their data intact. After that 15-day window, the field definition and all data in that field are permanently erased. So if someone accidentally deletes a custom field, check Object Manager &amp;gt; [Object Name] &amp;gt; Fields &amp;amp; Relationships &amp;gt; Deleted Fields immediately. Other metadata like page layouts, Flows, and validation rules don’t have this grace period and generally can’t be recovered natively — you’d need to recreate them from scratch or restore from a metadata backup.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Files and Attachments&lt;/strong&gt; that were hard-deleted are typically unrecoverable. The Recycle Bin does capture deleted files, but once purged, they’re gone.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Records older than the retention window&lt;/strong&gt; are permanently purged. Once the default 15 days pass (or 30 days if you’ve enabled Extended Recycle Bin Retention) and the Recycle Bin has been cycled, there’s no native mechanism to get those records back.&lt;/p&gt;
&lt;h2 id=&quot;how-to-make-sure-this-never-happens-again&quot;&gt;&lt;strong&gt;How to Make Sure This Never Happens Again&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Now that you’ve survived (or are surviving) a data loss event, you’re probably more motivated than ever to prevent the next one. Here’s what to actually do:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Turn on the Data Export Service today.&lt;/strong&gt; Right now. Go to Setup &amp;gt; Data &amp;gt; Data Export and schedule weekly exports. It’s free, it takes two minutes, and it creates a baseline backup that could save you in a future emergency. Yes, you have to manually download the files, and yes, it’s not a perfect solution — but it’s infinitely better than nothing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enable Extended Recycle Bin Retention.&lt;/strong&gt; If your org has access to Salesforce Classic, enable the Extended Recycle Bin Retention feature to extend the retention window from 15 to 30 days. It’s a free setting that doubles your recovery window — there’s no reason not to turn it on.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enable Field History Tracking on critical objects.&lt;/strong&gt; It won’t prevent data loss, but it gives you a paper trail that makes reconstruction possible. Focus on the objects that matter most — Accounts, Contacts, Opportunities, Cases — and track the fields that would be hardest to rebuild.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Review permissions regularly.&lt;/strong&gt; Not every user needs the ability to mass-delete records. Restrict delete access through profiles and permission sets, especially for standard users. Require approval processes for bulk operations. The fewer people who can cause large-scale damage, the lower your risk. Understanding &lt;a href=&quot;/blog/sf-admin-1-year-blog-post&quot;&gt;how profiles and permissions work&lt;/a&gt; is essential for any admin managing data security.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Audit your automations.&lt;/strong&gt; Flows, triggers, and integrations are the most common sources of accidental bulk data modification. Before deploying any automation that touches records at scale, test it thoroughly in a sandbox. And document what each automation does — when things go wrong, you need to diagnose the cause fast.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Set up a real backup solution.&lt;/strong&gt; The native Data Export Service is a start, but it has real gaps — no metadata coverage, no automated restore, no incremental backups. The Salesforce ecosystem has plenty of options at every price point. Salesforce itself signaled just how critical this space is when it signed a definitive agreement to acquire Own Company for $1.9 billion in September 2024. Whether you go with an enterprise-grade platform or a &lt;a href=&quot;/products/dbsaver&quot;&gt;simpler, more affordable solution&lt;/a&gt;, the point is to have something in place before the next incident.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If you’re running bulk operations, back up first.&lt;/strong&gt; About to &lt;a href=&quot;/blog/the-hidden-costs-of-duplicates-in-salesforce&quot;&gt;merge a bunch of duplicate records&lt;/a&gt;? Running a large data migration? Doing a major cleanup? Take a manual backup of the affected objects before you start. A quick Data Loader export takes minutes and could save you days of recovery work.&lt;/p&gt;
&lt;h2 id=&quot;the-bottom-line&quot;&gt;&lt;strong&gt;The Bottom Line&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Salesforce data recovery without a backup is possible in some scenarios, but it’s never easy, it’s never complete, and it’s always stressful. The Recycle Bin covers simple deletions within a 15-day window (or 30 days with Extended Retention enabled). Data Loader can bulk-restore soft-deleted records. Old exports, sandboxes, and related records can help you reconstruct what’s been lost. But for overwrites, metadata deletions, and anything outside that retention period, you’re largely out of luck without an external backup.&lt;/p&gt;
&lt;p&gt;The best time to set up a backup was before the deletion happened. The second best time is right after you’ve finished recovering from this one.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Slow Salesforce Reports: Why Reports Slow Down and How to Fix Them]]></title><description><![CDATA[If you’ve spent any time working with Salesforce reports at scale, you’ve…]]></description><link>https://cloudanswers.com/blog/slow-salesforce-reports-why-reports-slow-down-and-how-to-fix-them</link><guid isPermaLink="false">/blog/slow-salesforce-reports-why-reports-slow-down-and-how-to-fix-them</guid><pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/04/Slow_Reports_Blog_Header-1.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;If you’ve spent any time working with Salesforce reports at scale, you’ve probably run into some slow reports. Maybe it showed up when you tried to run a report manually. Maybe you had problems exporting reports. Or maybe your dashboard just says “Error: The component can’t be displayed because the source report failed to run.” Same root cause, different messenger.&lt;/p&gt;
&lt;p&gt;The frustrating part is that the report might have worked perfectly fine six months ago. Nothing about the report itself changed. The data underneath it grew, and now it takes too long for Salesforce to process. This is one of those problems that sneaks up on you as your org matures, and it’s one of the most common performance issues admins deal with.&lt;/p&gt;
&lt;p&gt;Let’s break down exactly why this happens, what the actual limits are, and what you can do to fix it: from quick wins to the nuclear options.&lt;/p&gt;
&lt;h2 id=&quot;report-timeout-limits&quot;&gt;&lt;strong&gt;Report Timeout Limits&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;When you run a report in Salesforce, the platform executes a database query behind the scenes. That query has to scan your data, apply your filters, join related objects, compute any formulas, group the results, and return the results in a formatted output. All of that work has to happen within a fixed time window.&lt;/p&gt;
&lt;p&gt;Here’s where the limits come in:&lt;/p&gt;
&lt;p&gt;For reports run in the UI, Salesforce imposes a 10-minute timeout. If the report doesn’t finish processing within 10 minutes, it fails. You can contact Salesforce Support to extend this to 20 minutes for tabular, summary, and matrix reports, but joined reports are stuck at 10 minutes with no extension available.&lt;/p&gt;
&lt;p&gt;For our Report Sender tool and other native apps, which query the reporting API from Apex, there’s a 2-minute callout limit. Technically, there are two overlapping constraints: the maximum timeout per callout is 120 seconds, and the maximum &lt;em&gt;cumulative&lt;/em&gt; timeout across all callouts in a single Apex transaction is also 120 seconds.&lt;/p&gt;
&lt;p&gt;It’s important to note that this 2-minute limit applies specifically to native apps running inside the Salesforce platform as Apex code. External systems that call the Reporting API directly (such as a BI tool connecting from outside Salesforce) receive the standard 10-minute REST/SOAP API timeout, the same as the browser UI. So report timeout problems are most acute for native AppExchange apps and internal Apex-based automations, not for external integrations.&lt;/p&gt;
&lt;h2 id=&quot;why-your-report-is-slow-in-the-first-place&quot;&gt;&lt;strong&gt;Why Your Report Is Slow in the First Place&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Understanding what makes a report slow is the key to fixing it. It’s almost never just one thing; it’s usually a combination of factors that stack up until the report crosses a timeout threshold.&lt;/p&gt;
&lt;h3 id=&quot;the-object-has-too-many-records&quot;&gt;&lt;strong&gt;The Object Has Too Many Records&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This is the most common culprit. As a general rule of thumb, when an object grows past 100,000 records, report performance starts to become a concern, though the exact tipping point depends heavily on your query complexity, how many fields are involved, and whether your filters hit indexed fields.&lt;/p&gt;
&lt;p&gt;Past a million records, timeouts become increasingly common regardless of optimization. Even if your report only returns 50 rows, Salesforce still has to scan a much larger set of data to find those 50 rows. The bigger the haystack, the longer it takes to find the needles.&lt;/p&gt;
&lt;p&gt;Activity objects (Tasks and Events) are especially prone to this because they accumulate rapidly. Any report type that queries Tasks (including “Accounts with Activities” or “Contacts with Activities”) tends to be slower than reports on other objects, simply because of the sheer volume.&lt;/p&gt;
&lt;p&gt;Soft-deleted records sitting in the Recycle Bin also impact performance. Even though they don’t appear in your report results, they still live in the database and must be filtered out during query execution. If your org has a large volume of deleted records that haven’t been permanently purged, that’s silently adding overhead to every report.&lt;/p&gt;
&lt;h3 id=&quot;your-filters-arent-selective-enough&quot;&gt;&lt;strong&gt;Your Filters Aren’t Selective Enough&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Filters are the single most impactful lever you have for report performance. A report with no filters (or with very broad filters, such as “Created Date: All Time”) forces Salesforce to scan the entire object. A report with a selective filter, such as “Created Date = THIS MONTH,” on an indexed field narrows the scan dramatically.&lt;/p&gt;
&lt;p&gt;The keyword there is indexed. Salesforce automatically indexes certain fields: Id, Name, RecordTypeId, CreatedDate, SystemModstamp, Division, Email (on Contacts and Leads), and all foreign key relationships (lookups and master-detail fields, which include the Owner field).&lt;/p&gt;
&lt;p&gt;Custom fields marked as External ID or Unique are also automatically indexed. This is worth knowing because if you’ve set up External ID fields for integrations, you can also use them as high-performance report filters. When you filter on an indexed field, Salesforce can use the index to jump directly to the relevant records instead of scanning every row. When you filter on a non-indexed field, it has to read every record and evaluate the filter one by one.&lt;/p&gt;
&lt;p&gt;Having an index on a field doesn’t guarantee it’ll be used, though. The query optimizer uses an index only if the filter is selective enough, meaning it narrows the result set to a small fraction of the total records. If your filter matches too many records, the optimizer ignores the index and does a full scan instead.&lt;/p&gt;
&lt;p&gt;Also, filter operators matter. Using EQUALS is much faster than CONTAINS because EQUALS can leverage indexes, while CONTAINS requires character-by-character evaluation across every record. The same goes for DOES NOT CONTAIN; it’s essentially asking Salesforce to read every record and check a condition, which is as expensive as it gets.&lt;/p&gt;
&lt;h3 id=&quot;too-many-columns-formulas-and-cross-object-references&quot;&gt;&lt;strong&gt;Too Many Columns, Formulas, and Cross-Object References&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Every column you add to a report adds work. More columns mean more data to retrieve, more fields to process, and, behind the scenes, potentially more database joins to perform.&lt;/p&gt;
&lt;p&gt;Salesforce &lt;a href=&quot;https://resources.docs.salesforce.com/latest/latest/en-us/sfdc/pdf/salesforce_large_data_volumes_bp.pdf&quot;&gt;stores standard fields and custom fields in separate internal tables&lt;/a&gt;. When your report includes both standard and custom fields (which most reports do), the database has to join the tables. The more fields you include, the more joins are required, and the slower things get.&lt;/p&gt;
&lt;p&gt;Report formulas and bucket fields are evaluated at runtime when the report is generated. Object-level formula fields are also calculated dynamically (they’re not precomputed and stored like rollup summary fields), but there’s a key difference in &lt;em&gt;where&lt;/em&gt; and &lt;em&gt;how&lt;/em&gt; that calculation happens. Object formula fields are evaluated by the database engine as part of the query itself; the formula logic is embedded in the SQL that Salesforce generates.&lt;/p&gt;
&lt;p&gt;Report formulas, on the other hand, add a separate computation layer during report rendering, after the data has been retrieved. If your report returns 50,000 rows and has three report formulas, that’s 150,000 additional calculations during report generation. Moving those calculations into formula fields on the object, rather than report formulas, shifts the work to the database engine, which is generally more efficient.&lt;/p&gt;
&lt;h3 id=&quot;the-report-type-involves-multiple-objects&quot;&gt;&lt;strong&gt;The Report Type Involves Multiple Objects&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Reports that span multiple objects, such as “Accounts with Opportunities with Products”, require the database to join those objects. Each additional level of object relationship adds complexity to the underlying query. If each of those objects has a large number of records, the join operations can become extremely expensive.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/blog/salesforce-custom-report-types-what-are-they-when-are-they-useful-2&quot;&gt;Custom report types&lt;/a&gt; that include “with or without” relationships are particularly heavy because they produce outer joins, requiring the database to find matching records &lt;em&gt;and&lt;/em&gt; include records without a match, which is computationally more intensive than a simple inner join.&lt;/p&gt;
&lt;h3 id=&quot;timing-and-shared-resources&quot;&gt;&lt;strong&gt;Timing and Shared Resources&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Salesforce is a multi-tenant platform. Your org shares infrastructure with thousands of other orgs. During peak usage hours (typically between 9 AM and 5 PM in major time zones), there’s more contention for resources, and reports that run fine at midnight might timeout at 2 PM.&lt;/p&gt;
&lt;p&gt;This also explains why timeout errors can be inconsistent. The same report might take 3 minutes one day and fail after 10 minutes the next. It’s not that your data changed; it’s that server load varies throughout the day.&lt;/p&gt;
&lt;h2 id=&quot;how-to-fix-it-quick-wins&quot;&gt;&lt;strong&gt;How to Fix It: Quick Wins&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Start with these optimizations. They’re easy to implement, don’t require Salesforce Support, and often resolve the problem entirely.&lt;/p&gt;
&lt;h3 id=&quot;1-tighten-your-filters&quot;&gt;&lt;strong&gt;1. Tighten Your Filters&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This is the highest-impact change you can make. Go through every filter in your report and ask: Can I make this more specific?&lt;/p&gt;
&lt;p&gt;Switch from “All Time” to a specific date range. Use “THIS QUARTER” or “LAST 90 DAYS” instead of open-ended ranges. If you’re using CONTAINS, switch to EQUALS where possible. Remove any “DOES NOT CONTAIN” or “NOT EQUAL TO” filters that aren’t strictly necessary, as these prevent index usage.&lt;/p&gt;
&lt;p&gt;If you’re filtering on a field that isn’t indexed and you can’t change the filter, consider asking Salesforce Support to add a custom index on that field. You’ll need to open a case and provide a business justification, but for frequently filtered fields on large objects, it can make a dramatic difference.&lt;/p&gt;
&lt;h3 id=&quot;2-remove-unnecessary-columns&quot;&gt;&lt;strong&gt;2. Remove Unnecessary Columns&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Open your report in edit mode and look at every column. Do you actually need all of them? Every column you remove reduces the work Salesforce has to do. This is especially true for columns that come from related objects, since each one adds a join.&lt;/p&gt;
&lt;p&gt;If you’re using the report for a &lt;a href=&quot;/blog/getting-familiar-with-salesforce-dashboards&quot;&gt;dashboard component&lt;/a&gt;, you often need far fewer columns than you think; the chart only uses the grouping and summary fields.&lt;/p&gt;
&lt;h3 id=&quot;3-replace-report-formulas-with-object-level-formula-fields&quot;&gt;&lt;strong&gt;3. Replace Report Formulas With Object-Level Formula Fields&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;If your report has custom summary formulas or row-level formulas, try replacing them with formula fields defined directly on the object. Both are calculated dynamically, but object-level formulas are evaluated by the database engine as part of the query, while report formulas add a separate processing step during report rendering.&lt;/p&gt;
&lt;p&gt;On a report with tens of thousands of rows, this difference is significant. For even better performance, consider whether the value could be computed by a Flow or trigger and stored in a regular field. That way, the calculation happens once on save, not every time the report runs.&lt;/p&gt;
&lt;h3 id=&quot;4-switch-the-report-type&quot;&gt;&lt;strong&gt;4. Switch the Report Type&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Sometimes the same data can be retrieved through a different, lighter report type. If you’re running an “Accounts with Activities” report, consider whether a simpler “Tasks” report filtered by Account fields would give you the same information with less overhead. Fewer joined objects means fewer database joins, which means faster execution.&lt;/p&gt;
&lt;h3 id=&quot;5-hide-report-details&quot;&gt;&lt;strong&gt;5. Hide Report Details&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;If you only need summary data (totals, counts, averages), turn off “Show Details” in the report settings. When details are hidden, Salesforce can optimize the query to compute only aggregates rather than retrieve and return every individual row.&lt;/p&gt;
&lt;h3 id=&quot;6-schedule-reports-for-off-peak-hours&quot;&gt;&lt;strong&gt;6. Schedule Reports for Off-Peak Hours&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;If you’re &lt;a href=&quot;/blog/salesforce-reporting-tips-and-best-practices&quot;&gt;scheduling reports&lt;/a&gt; to be emailed to stakeholders, set them to run during off-peak hours (typically between 6 PM and 3 AM in your org’s primary time zone). Less server contention means faster processing, which means fewer timeouts.&lt;/p&gt;
&lt;h2 id=&quot;how-to-fix-it-the-heavier-solutions&quot;&gt;&lt;strong&gt;How to Fix It: The Heavier Solutions&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If the quick wins don’t get you under the timeout threshold, it’s time for the bigger interventions.&lt;/p&gt;
&lt;h3 id=&quot;custom-indexes&quot;&gt;&lt;strong&gt;Custom Indexes&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Salesforce automatically indexes standard fields, but it doesn’t index custom fields by default. If your report filters heavily on a custom field (such as a Status picklist or a Region field) and that custom field is on an object with hundreds of thousands of records, a custom index can dramatically improve performance.&lt;/p&gt;
&lt;p&gt;To get a custom index, open a case with Salesforce Support. Provide the object API name, the field API name, and explain the business use case. Salesforce will evaluate whether the field is a good candidate for indexing. Not every field qualifies; the field needs to be reasonably selective (meaning the filter narrows results to a relatively small subset of records) for an index to help.&lt;/p&gt;
&lt;h3 id=&quot;skinny-tables&quot;&gt;&lt;strong&gt;Skinny Tables&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Skinny tables are one of Salesforce’s most powerful (and least known) performance tools. Here’s the problem they solve: Salesforce internally stores standard and custom fields in separate database tables. Every report that includes both standard and custom fields requires a join between those tables, and that join gets expensive at large data volumes.&lt;/p&gt;
&lt;p&gt;A skinny table is a pre-joined, read-only copy of a specific set of fields from an object, stored in a single flat table. Because no joins are needed, queries against a skinny table are significantly faster. Skinny tables also exclude soft-deleted records (records in the Recycle Bin), which further reduces the data volume the database has to work with.&lt;/p&gt;
&lt;p&gt;The catch: you can’t create skinny tables yourself. You have to contact Salesforce Support, tell them which object and which fields you need, and they’ll set it up. If you later need to add fields, you have to contact them again. There are also hard constraints to be aware of: skinny tables can contain a maximum of 200 columns, and they can’t contain fields from other objects.&lt;/p&gt;
&lt;p&gt;That means if your report’s slow performance is caused by cross-object joins, skinny tables won’t help with that specific problem. Skinny tables are also only copied to Full sandbox environments, so for other sandbox types, you’d need to contact Support to activate them separately.&lt;/p&gt;
&lt;p&gt;For orgs with objects containing millions of records that consistently time out, skinny tables are often the thing that finally solves the problem. Ask your account rep or open a case with Support to discuss whether your org qualifies.&lt;/p&gt;
&lt;h3 id=&quot;split-the-report&quot;&gt;&lt;strong&gt;Split the Report&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Sometimes a single report is trying to do too much. If you have a report that covers all Opportunities for all time, across all regions, with 20 columns and three summary formulas. That’s a lot of work for the database.&lt;/p&gt;
&lt;p&gt;Consider splitting it into multiple reports: one per region, or one per quarter. You can then add them to a dashboard as separate components to get a combined view, or schedule them individually so each one stays within its timeout window. It’s not elegant, but it works.&lt;/p&gt;
&lt;h3 id=&quot;move-calculations-out-of-reports-entirely&quot;&gt;&lt;strong&gt;Move Calculations Out of Reports Entirely&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;If you need complex aggregations that push reports past the timeout (like year-over-year comparisons, weighted averages, or multi-level rollups), consider whether the report is really the right tool. Sometimes the better approach is to pre-calculate these values using Flows, rollup summary fields, or batch Apex, and then store the results in fields that a simple report can reference.&lt;/p&gt;
&lt;p&gt;For example, instead of a report that calculates “total revenue per Account over the last 12 months” by scanning hundreds of thousands of Opportunity records, create a scheduled Flow that computes that number nightly and stores it on the Account record. Then your report just reads a single field: no calculation, no join, no timeout.&lt;/p&gt;
&lt;h2 id=&quot;when-the-report-truly-cant-be-fixed&quot;&gt;&lt;strong&gt;When the Report Truly Can’t Be Fixed&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Sometimes, despite all optimization efforts, a report simply can’t be completed within Salesforce’s time limits. The data volume is too large, the relationships are too complex, or the business requirements demand more than the reporting engine was designed for. At that point, you have a few paths:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Einstein Analytics / Tableau CRM / CRM Analytics&lt;/strong&gt; (Salesforce keeps renaming it) is built for large-scale data analysis. It uses a separate analytics engine that pre-processes data, so queries run against an optimized dataset rather than the live transactional database. It can handle much larger data volumes without timeouts.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tableau&lt;/strong&gt; is Salesforce’s full-featured analytics platform. If your reporting needs have outgrown native Salesforce reports, Tableau provides the horsepower to perform complex analysis on massive datasets. There are several reporting tools in the ecosystem worth evaluating.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Data Warehousing&lt;/strong&gt; is the most scalable approach. Export your Salesforce data to an external data warehouse (we typically use Snowflake, but there are plenty of options, including BigQuery and Redshift) and run your reports there with no timeout constraints. This requires setup and maintenance, but it’s the definitive solution for organizations that have genuinely outgrown Salesforce’s native reporting limits.&lt;/p&gt;
&lt;h2 id=&quot;how-this-affects-report-sender-users&quot;&gt;&lt;strong&gt;How This Affects Report Sender Users&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Since we built &lt;a href=&quot;/products/report-sender&quot;&gt;Report Sender&lt;/a&gt;, we have seen this issue a lot. It’s worth explaining exactly what happens and how we handle it.&lt;/p&gt;
&lt;p&gt;Report Sender is a native Salesforce app, which means it runs as Apex code inside your org. When it generates a scheduled report, it calls the Salesforce Reporting API to retrieve the report data. That API call is subject to Salesforce’s 120-second Apex callout limit, a hard platform governor limit.&lt;/p&gt;
&lt;p&gt;If the report takes longer than 2 minutes to process, Salesforce kills the connection, and Report Sender receives a “Read Timed Out” error. When that happens, Report Sender sends you an error notification email so you know what happened, and then automatically retries the report. By default, it retries immediately, which we’ve found works well for reports that are right on the edge of the 2-minute window (server load fluctuates, and a retry that runs a few seconds faster can often succeed).&lt;/p&gt;
&lt;p&gt;You can also configure the retry behavior: set how many retries you want, and whether to retry immediately or wait. If a report consistently fails even after retries, that’s a signal that the report itself needs optimization using the techniques described above.&lt;/p&gt;
&lt;h2 id=&quot;a-quick-checklist&quot;&gt;&lt;strong&gt;A Quick Checklist&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;When you get a report timeout, work through this list:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Check the data volume.&lt;/strong&gt; How many records does the underlying object have? Large objects (100K+ records) are more likely to cause timeout issues, especially with complex queries. You can find record counts in Setup &amp;gt; Storage Usage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Review the filters.&lt;/strong&gt; Are they on indexed fields? Are they selective enough to narrow the result set? Can you use EQUALS instead of CONTAINS?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Count the columns.&lt;/strong&gt; Do you need all of them? Remove anything the report’s audience doesn’t actually use.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Look for report formulas.&lt;/strong&gt; Can any of them be replaced with formula fields on the object, or better yet, with stored fields populated by a Flow or trigger?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Simplify the report type.&lt;/strong&gt; Can you use a different report type with fewer object joins?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Check the time of day.&lt;/strong&gt; Is the report running during peak hours? Try scheduling it for early morning or evening.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Try running it manually.&lt;/strong&gt; If it completes in the browser (10-minute window) but fails via a native app (2-minute Apex callout window), the goal is to optimize it to under 2 minutes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Consider custom indexes or skinny tables.&lt;/strong&gt; If you’ve exhausted the self-service options, contact Salesforce Support.&lt;/p&gt;
&lt;h2 id=&quot;wrapping-up&quot;&gt;&lt;strong&gt;Wrapping Up&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Slow report issues aren’t mysterious once you understand the mechanics. Salesforce imposes hard time limits on report execution: 10 minutes for browser-based reports and external API calls, 2 minutes for native Apex-based apps. When your data volume grows beyond what those windows can accommodate, the report fails. Don’t wait until your reports are failing. If you notice reports are loading slowly, try and apply some of these techniques to speed it up.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Salesforce Report Permissions Deep Dive: Every Permission That Affects Creating, Scheduling, and Sending Reports]]></title><description><![CDATA[Every Salesforce report permission explained — what each controls, what it depends on, and how folder access, exports, and subscriptions actually work.]]></description><link>https://cloudanswers.com/blog/salesforce-report-permissions-deep-dive-every-permission-that-affects-creating-scheduling-and-sending-reports</link><guid isPermaLink="false">/blog/salesforce-report-permissions-deep-dive-every-permission-that-affects-creating-scheduling-and-sending-reports</guid><pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/04/image-1.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;If you’ve ever had a user come to you and say, “I can’t see the Reports tab,” or “the Export button is missing,” or “why can’t I schedule this report?” — you know that Salesforce report permissions are one of those topics that seem simple on the surface and turn out to be surprisingly layered underneath.&lt;/p&gt;
&lt;p&gt;Salesforce has over a dozen separate permissions that affect what users can do with reports. Some of them have dependencies on other permissions. Some of them interact with folder-level access in ways that aren’t obvious. And if you’re working with report subscriptions, there’s a whole additional set of permissions that control who can receive reports, how data visibility works, and what running user context applies.&lt;/p&gt;
&lt;p&gt;This is the complete reference: every permission that affects creating, running, exporting, scheduling, and sending reports — what each does, what it depends on, and where it trips people up.&lt;/p&gt;
&lt;h2 id=&quot;the-foundation-user-level-report-permissions&quot;&gt;&lt;strong&gt;The Foundation: User-Level Report Permissions&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;These are the core permissions that control what a user can do with reports across the org. They live in Profiles and Permission Sets under the “General User Permissions” or “System Permissions” section.&lt;/p&gt;
&lt;h3 id=&quot;run-reports&quot;&gt;&lt;strong&gt;Run Reports&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This is the bedrock permission. Without “Run Reports,” a user cannot open any report in Salesforce — period. Clicking the Reports tab or navigating directly to a report URL produces an “Insufficient Privileges” error.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it controls:&lt;/strong&gt; The ability to view and run existing reports.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dependencies:&lt;/strong&gt; None. This is the base permission that several other report permissions depend on.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key detail:&lt;/strong&gt; “Run” in Salesforce means “open and execute the report with current data.” There’s no concept of viewing a report without running it — every time you open a report, Salesforce queries live data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Common gotcha:&lt;/strong&gt; If a user can see the Reports tab but gets an error when clicking on a specific report, the issue is usually folder access (covered below), not the Run Reports permission. If they can’t see the Reports tab at all, check that the Reports tab is visible in their app and profile settings — that’s a separate configuration from the Run Reports permission.&lt;/p&gt;
&lt;h3 id=&quot;create-and-customize-reports&quot;&gt;&lt;strong&gt;Create and Customize Reports&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This permission controls whether a user can create new reports or modify existing ones. Without it, the “New Report” button doesn’t appear on the Reports tab, and users can’t edit report filters, columns, groupings, or chart settings.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it controls:&lt;/strong&gt; Creating new reports, editing report structure (columns, filters, groupings, charts), and saving changes to reports.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dependencies:&lt;/strong&gt; Requires “Run Reports.” If you disable Run Reports, Create and Customize Reports is automatically disabled too. Enabling Create and Customize Reports auto-enables Run Reports.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key detail:&lt;/strong&gt; This permission alone doesn’t determine &lt;em&gt;where&lt;/em&gt; a user can save reports. That’s controlled by folder access and the “Edit My Reports” permission (covered next). A user with Create and Customize Reports can always save reports to their personal “My Reports” folder, but saving to shared folders depends on additional permissions.&lt;/p&gt;
&lt;h3 id=&quot;edit-my-reports&quot;&gt;&lt;strong&gt;Edit My Reports&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This one catches people off guard. “Edit My Reports” lets a user edit, move, save, and delete reports &lt;em&gt;they created&lt;/em&gt; in shared folders — even if they only have Viewer access to that folder.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it controls:&lt;/strong&gt; Editing and managing reports the user created, regardless of folder-level access.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dependencies:&lt;/strong&gt; Requires “Create and Customize Reports” (which in turn requires “Run Reports”).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key detail:&lt;/strong&gt; The name is misleading. “My Reports” doesn’t refer to the My Reports personal folder — it refers to reports created by that user in &lt;em&gt;any&lt;/em&gt; folder. A user with this permission and Viewer access to a shared folder can still edit their own reports in that folder. Without this permission, Viewer access means truly read-only — even for reports the user created.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Common gotcha:&lt;/strong&gt; This permission is the one that causes the most confusion during &lt;a href=&quot;/blog/why-consultants-need-event-monitoring&quot;&gt;user security design&lt;/a&gt;. When an admin says “I gave them Viewer access but they can still edit reports,” it’s almost always because Edit My Reports is enabled on their profile.&lt;/p&gt;
&lt;h3 id=&quot;manage-public-reports&quot;&gt;&lt;strong&gt;Manage Public Reports&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This is the legacy admin-level permission for report management. With Enhanced Folder Sharing enabled (which is the default for all orgs created after Summer ’13), this permission translates into two things: the ability to create report folders and the ability to edit &lt;em&gt;any&lt;/em&gt; report in &lt;em&gt;any&lt;/em&gt; folder the user can access — not just reports they created.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it controls:&lt;/strong&gt; Creating report folders and editing all reports in accessible folders.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dependencies:&lt;/strong&gt; Requires “Create and Customize Reports.”&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key detail:&lt;/strong&gt; In orgs with Enhanced Folder Sharing, folder-level access (Viewer, Editor, Manager) is the primary control mechanism. But Manage Public Reports still functions as an override that grants broad editing capability. Be cautious about who gets this permission — it’s essentially Editor access to every report folder the user can see.&lt;/p&gt;
&lt;h3 id=&quot;create-report-folders&quot;&gt;&lt;strong&gt;Create Report Folders&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This permission does exactly what the name says: it lets users create new report folders. Without it, the option to create folders doesn’t appear in the Reports interface.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it controls:&lt;/strong&gt; Creating new report folders.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dependencies:&lt;/strong&gt; Requires “Create and Customize Reports.”&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key detail:&lt;/strong&gt; Creating a folder and sharing a folder are different permissions. A user can create a folder but may not be able to control who else can access it unless they also have Manager access to that folder (which they get by default as the folder creator).&lt;/p&gt;
&lt;h2 id=&quot;export-and-data-permissions&quot;&gt;&lt;strong&gt;Export and Data Permissions&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id=&quot;export-reports&quot;&gt;&lt;strong&gt;Export Reports&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This controls whether users see the “Export” option when viewing a report. When enabled, users can export report data to Excel (.xlsx) or CSV format.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it controls:&lt;/strong&gt; Exporting report data to spreadsheet files.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dependencies:&lt;/strong&gt; Requires “Run Reports.” Does &lt;em&gt;not&lt;/em&gt; require “Create and Customize Reports” — a user can export a report they can’t edit.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Security consideration:&lt;/strong&gt; This is one of the most sensitive report permissions from a data security perspective. Exporting a report extracts data from Salesforce into an uncontrolled file on the user’s device. For orgs handling sensitive data (financial records, healthcare information, PII), carefully consider who gets Export Reports access. Some compliance frameworks require auditing all data exports.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Common gotcha:&lt;/strong&gt; If a user can run a report but the Export button is missing, this permission is the one to check. It’s a common support request that’s easy to resolve.&lt;/p&gt;
&lt;h2 id=&quot;scheduling-and-subscription-permissions&quot;&gt;&lt;strong&gt;Scheduling and Subscription Permissions&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This is where Salesforce report permissions get genuinely complicated. There are five separate permissions that control different aspects of report scheduling and subscriptions, and they interact with each other in ways that matter for data security.&lt;/p&gt;
&lt;h3 id=&quot;schedule-reports-classic&quot;&gt;&lt;strong&gt;Schedule Reports (Classic)&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This permission controls the ability to schedule reports in Salesforce Classic using the “Schedule Future Runs” option. Scheduled reports run on a recurring basis and are emailed to specified recipients.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it controls:&lt;/strong&gt; Scheduling reports for recurring email delivery in Classic.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dependencies:&lt;/strong&gt; Requires “Run Reports.”&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key detail:&lt;/strong&gt; Salesforce Classic report scheduling and Lightning report subscriptions are different systems with different permissions. If your users work in Lightning (which is most people at this point), the Subscribe permissions below are what you need.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Limits to know:&lt;/strong&gt; An org is limited to 200 scheduled reports and dashboards combined (Classic). Scheduled reports run in the time zone of the user who created the schedule. The running user on the schedule determines what data recipients see — which can bypass individual users’ sharing settings. You need “View All Data” to specify a running user other than yourself.&lt;/p&gt;
&lt;h3 id=&quot;subscribe-to-reports-lightning&quot;&gt;&lt;strong&gt;Subscribe to Reports (Lightning)&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This is the Lightning equivalent of scheduling. It lets users subscribe to a report so they receive it automatically via email, either on a schedule or when data meets certain conditions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it controls:&lt;/strong&gt; Subscribing to reports for automated email delivery in Lightning Experience.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dependencies:&lt;/strong&gt; Requires “Run Reports.”&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Limits to know:&lt;/strong&gt; Subscription limits vary by Salesforce edition. The original limit was 5 per user across all editions. Salesforce subsequently raised it to 7 for most editions, and in the Spring ’23 release raised the Unlimited Edition limit from 7 to 15. Current limits: up to &lt;a href=&quot;/blog/report-sending-limitations-in-salesforce&quot;&gt;7 report subscriptions&lt;/a&gt; for most editions, up to 15 for Unlimited Edition. These numbers have changed multiple times, so verify your edition’s current limits in Salesforce Help. An org can have up to 500 report subscriptions firing in a given hour. Subscriptions don’t support joined reports or historical tracking reports.&lt;/p&gt;
&lt;h3 id=&quot;subscribe-to-reports-add-recipients&quot;&gt;&lt;strong&gt;Subscribe to Reports: Add Recipients&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;By default, when a user subscribes to a report, they can only subscribe themselves. This permission lets them add other individual users as recipients of the subscription.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it controls:&lt;/strong&gt; Adding other Salesforce users as recipients of a report subscription.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dependencies:&lt;/strong&gt; Requires “Subscribe to Reports.”&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key detail:&lt;/strong&gt; Subscription recipients aren’t listed on the report subscription emails — recipients won’t see who else received the same report. To check who’s subscribed to a given report, you need to go back to the subscription settings in Salesforce.&lt;/p&gt;
&lt;h3 id=&quot;subscribe-to-reports-send-to-groups-and-roles&quot;&gt;&lt;strong&gt;Subscribe to Reports: Send to Groups and Roles&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This extends the Add Recipients capability to include roles, roles &amp;amp; subordinates, and public groups — not just individual users. This is how you set up a report subscription that reaches an entire team or department.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it controls:&lt;/strong&gt; Adding roles, roles &amp;amp; subordinates, and public groups as report subscription recipients.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dependencies:&lt;/strong&gt; Requires “Subscribe to Reports.”&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key detail:&lt;/strong&gt; Recipient lists for roles and groups are evaluated at send time, so if someone is added to or removed from a role or group, the subscription automatically updates. Salesforce sends a maximum of 500 emails per subscription. Note that each recipient entry (a role, role &amp;amp; subordinates, or group) can contain many individual users, so a single group entry could represent hundreds of people. If the total number of individual users across all recipient entries exceeds 500, Salesforce sends emails according to this priority: individual users first, then roles, then roles &amp;amp; subordinates, then groups — and stops at 500.&lt;/p&gt;
&lt;h3 id=&quot;subscribe-to-reports-set-running-user&quot;&gt;&lt;strong&gt;Subscribe to Reports: Set Running User&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This is the permission that controls data visibility for subscription recipients. When enabled, the user setting up the subscription can specify a “running user” whose data access determines what the report shows — regardless of each recipient’s individual sharing settings.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it controls:&lt;/strong&gt; Specifying whose data access is used when generating the subscribed report.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dependencies:&lt;/strong&gt; Requires “Subscribe to Reports.”&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Security consideration:&lt;/strong&gt; This is a powerful permission. If a user with broad data access (like a VP of Sales) is set as the running user, every recipient sees the report through that VP’s lens — even if their own sharing settings would normally restrict them from seeing certain records. This is useful for giving teams visibility into aggregated data while maintaining record-level security, but it can also inadvertently expose data if misconfigured.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Common gotcha:&lt;/strong&gt; Without “View All Data,” a user can only set themselves as the running user. To set a different running user, they need View All Data — which is a very broad permission that should be granted sparingly.&lt;/p&gt;
&lt;h2 id=&quot;folder-level-access-the-other-half-of-the-equation&quot;&gt;&lt;strong&gt;Folder-Level Access: The Other Half of the Equation&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;User-level permissions determine &lt;em&gt;what actions&lt;/em&gt; a user can perform with reports. Folder-level access determines &lt;em&gt;which reports&lt;/em&gt; they can perform those actions on. Both layers must align for a user to do what they need to do.&lt;/p&gt;
&lt;p&gt;Salesforce uses Enhanced Folder Sharing with three access levels for report folders.&lt;/p&gt;
&lt;h3 id=&quot;viewer&quot;&gt;&lt;strong&gt;Viewer&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Can see the folder in the folder tree and run any report in it. Cannot edit, move, or delete reports in the folder (unless they created the report &lt;em&gt;and&lt;/em&gt; have the Edit My Reports permission — see above).&lt;/p&gt;
&lt;h3 id=&quot;editor&quot;&gt;&lt;strong&gt;Editor&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Everything a Viewer can do, plus: edit all reports in the folder, add new reports to the folder, and delete reports from the folder. This is the level you typically assign to power users, analysts, and team leads who need to maintain shared reports.&lt;/p&gt;
&lt;h3 id=&quot;manager&quot;&gt;&lt;strong&gt;Manager&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Everything an Editor can do, plus: modify the folder’s sharing settings (who has access and at what level). This is the level for admins and the report folder owners.&lt;/p&gt;
&lt;h3 id=&quot;how-folder-access-and-user-permissions-interact&quot;&gt;&lt;strong&gt;How Folder Access and User Permissions Interact&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Here’s where things get nuanced. A user’s effective capabilities with a specific report are determined by the &lt;em&gt;combination&lt;/em&gt; of their user-level permissions and their folder-level access. Some examples:&lt;/p&gt;
&lt;p&gt;A user with “Create and Customize Reports” + Viewer access to a folder can run reports in that folder and save new reports to it — but can’t edit existing reports in that folder (unless they created them and have Edit My Reports).&lt;/p&gt;
&lt;p&gt;A user with Editor access to a folder but without “Create and Customize Reports” at the user level can’t actually edit reports — the folder access alone isn’t sufficient without the corresponding user permission.&lt;/p&gt;
&lt;p&gt;A user with “Manage Public Reports” + Viewer access to a folder can effectively act as an Editor on that folder, because the user-level permission overrides the folder-level restriction.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The rule of thumb:&lt;/strong&gt; folder-level access sets the ceiling, but user-level permissions determine whether the user can actually reach it. Always check both layers when troubleshooting.&lt;/p&gt;
&lt;h2 id=&quot;the-hidden-permissions-object-and-field-level-security&quot;&gt;&lt;strong&gt;The Hidden Permissions: Object and Field-Level Security&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;There’s a third layer that affects what data appears in reports, even when the user has all the right report permissions and folder access. Object-level and field-level security determine whether specific objects and fields are available in reports.&lt;/p&gt;
&lt;p&gt;If an object is hidden from a user’s profile, reports containing that object won’t show data from it (or may not be runnable at all if it’s the primary report object). Similarly, if a field is hidden via field-level security, that field won’t appear in report results — even if the report includes it.&lt;/p&gt;
&lt;p&gt;This matters most when a report created by an admin (who can see everything) is shared with standard users who have restricted object or field visibility. The report runs, but the results may look different for different users depending on their &lt;a href=&quot;/blog/how-to-coordinate-marketing-and-sales-by-avoiding-duplicates-in-salesforce&quot;&gt;data access&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;report-type-permissions&quot;&gt;&lt;strong&gt;Report Type Permissions&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Custom report types add another layer. When you create a custom report type, you specify which profiles can use it. If a user’s profile doesn’t have access to the report type, they can’t create reports based on it — even if they have Create and Customize Reports enabled.&lt;/p&gt;
&lt;p&gt;Standard report types (Accounts, Contacts, Opportunities, etc.) are generally available to anyone with the corresponding object access, but custom report types require explicit assignment.&lt;/p&gt;
&lt;h2 id=&quot;practical-scenarios-putting-it-all-together&quot;&gt;&lt;strong&gt;Practical Scenarios: Putting It All Together&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Let’s walk through some common permission configurations and what they enable.&lt;/p&gt;
&lt;h3 id=&quot;i-just-need-to-view-reports-not-create-them&quot;&gt;&lt;strong&gt;“I just need to view reports, not create them”&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Give them:&lt;/strong&gt; Run Reports + Viewer access to the relevant report folders. That’s it. They can open and run reports but can’t create, edit, export, or subscribe.&lt;/p&gt;
&lt;h3 id=&quot;i-need-to-create-reports-and-share-them-with-my-team&quot;&gt;&lt;strong&gt;“I need to create reports and share them with my team”&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Give them:&lt;/strong&gt; Run Reports + Create and Customize Reports + Create Report Folders. Give them Editor or Manager access to the folders they’ll use for shared reports. If they should also be able to save over their own reports in shared folders, add Edit My Reports.&lt;/p&gt;
&lt;h3 id=&quot;my-sales-managers-need-a-weekly-pipeline-report-emailed-to-their-team&quot;&gt;&lt;strong&gt;“My sales managers need a weekly pipeline report emailed to their team”&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Give them:&lt;/strong&gt; Run Reports + Subscribe to Reports + Subscribe to Reports: Add Recipients. If they need to send to entire roles or groups, add Subscribe to Reports: Send to Groups and Roles. If the report needs to show data from a broader perspective than the manager’s own access, add Subscribe to Reports: Set Running User — but be aware this requires View All Data to set a running user other than themselves.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Alternative:&lt;/strong&gt; If the native subscription limits (7 per user — or 15 in Unlimited Edition — plus no external recipients and no email customization) are too restrictive, &lt;a href=&quot;/products/report-sender&quot;&gt;Report Sender&lt;/a&gt; removes those limits and adds the ability to send reports to non-Salesforce users, customize the email message, and choose from more scheduling options.&lt;/p&gt;
&lt;h3 id=&quot;i-need-to-export-data-for-analysis-in-excel&quot;&gt;&lt;strong&gt;“I need to export data for analysis in Excel”&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Give them:&lt;/strong&gt; Run Reports + Export Reports. They don’t need Create and Customize Reports unless they also need to build the reports themselves.&lt;/p&gt;
&lt;h3 id=&quot;our-admin-team-needs-full-control-over-all-reports-and-folders&quot;&gt;&lt;strong&gt;“Our admin team needs full control over all reports and folders”&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Give them:&lt;/strong&gt; All of the above, plus Manage Public Reports. This gives them the ability to create folders, edit any report in any accessible folder, and manage sharing settings on folders they have Manager access to.&lt;/p&gt;
&lt;h2 id=&quot;limits-worth-knowing&quot;&gt;&lt;strong&gt;Limits Worth Knowing&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Beyond permissions, Salesforce imposes several limits on reporting that often get confused with permission issues:&lt;/p&gt;
&lt;p&gt;Each user can subscribe to a maximum of 7 reports and 7 dashboards in Lightning, or 15 each in Unlimited Edition. These limits have increased over time (the original cap was 5), so verify your edition’s current limits in Salesforce Help if you’re unsure.&lt;/p&gt;
&lt;p&gt;An org can have up to 200 scheduled reports and dashboards combined (Classic). This is a shared pool — dashboards count against the same limit as reports.&lt;/p&gt;
&lt;p&gt;An org can have up to 500 report subscriptions and 500 dashboard subscriptions firing in a single hour.&lt;/p&gt;
&lt;p&gt;For Classic scheduled reports, emailed reports can be up to 10 MB (per Salesforce’s official limits documentation). For Lightning subscription attachments, the limits are tighter: up to 3 MB, 15,000 rows, and 30 columns — anything beyond that is clipped or not sent. Reports larger than these limits need to be filtered or narrowed.&lt;/p&gt;
&lt;p&gt;The scheduled report running user must be active — if the running user is deactivated, Salesforce notifies admins and the schedule stops.&lt;/p&gt;
&lt;p&gt;You need View All Data to specify a running user other than yourself.&lt;/p&gt;
&lt;p&gt;The report viewer displays a maximum of 2,000 rows on screen. Export limits depend on the export type: Formatted Report (XLSX) is capped at the same 2,000 rows and 100 columns as the display; Details Only (XLSX) supports up to 100,000 rows and 100 columns; and Details Only (XLS or CSV) supports unlimited rows and columns.&lt;/p&gt;
&lt;p&gt;Two important exceptions: joined reports with more than 2,000 rows cannot be exported (and can only be exported as Formatted Report, not Details Only), and historical trending reports cannot be exported at all. If your users need to export large datasets, make sure they’re selecting Details Only rather than Formatted Report — otherwise they’ll still hit the 2,000-row ceiling.&lt;/p&gt;
&lt;p&gt;For organizations that consistently hit these limits — especially the subscription-per-user cap and the inability to send reports to non-Salesforce users — tools like &lt;a href=&quot;/products/report-sender&quot;&gt;Report Sender&lt;/a&gt; exist specifically to remove these ceilings. It’s a &lt;a href=&quot;/blog/report-sending-limitations-in-salesforce&quot;&gt;common pain point&lt;/a&gt; that we’ve written about before.&lt;/p&gt;
&lt;h2 id=&quot;a-quick-reference-permission-matrix&quot;&gt;&lt;strong&gt;A Quick-Reference Permission Matrix&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Here’s a condensed view of the key report permissions and their dependencies:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Run Reports&lt;/strong&gt; — Foundational permission. Required by all other report permissions. No dependencies.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Create and Customize Reports&lt;/strong&gt; — Create new reports, edit existing ones. Requires: Run Reports.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Edit My Reports&lt;/strong&gt; — Edit your own reports in shared folders. Requires: Create and Customize Reports.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Manage Public Reports&lt;/strong&gt; — Create folders, edit any accessible report. Requires: Create and Customize Reports.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Create Report Folders&lt;/strong&gt; — Create new report folders. Requires: Create and Customize Reports.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Export Reports&lt;/strong&gt; — Export to Excel/CSV. Requires: Run Reports.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Schedule Reports (Classic)&lt;/strong&gt; — Schedule recurring email delivery. Requires: Run Reports.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Subscribe to Reports (Lightning)&lt;/strong&gt; — Subscribe for automated delivery. Requires: Run Reports.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Subscribe to Reports: Add Recipients&lt;/strong&gt; — Add individual users to subscription. Requires: Subscribe to Reports.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Subscribe to Reports: Send to Groups and Roles&lt;/strong&gt; — Add roles/groups to subscription. Requires: Subscribe to Reports.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Subscribe to Reports: Set Running User&lt;/strong&gt; — Control data visibility for recipients. Requires: Subscribe to Reports. Needs View All Data to set a running user other than yourself.&lt;/p&gt;
&lt;h2 id=&quot;troubleshooting-checklist&quot;&gt;&lt;strong&gt;Troubleshooting Checklist&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;When a user reports a problem with Salesforce reports, work through this checklist in order:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can they see the Reports tab?&lt;/strong&gt; Check tab visibility in their app assignment and profile.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can they open any report?&lt;/strong&gt; Check the Run Reports permission on their profile or permission sets.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can they open the specific report?&lt;/strong&gt; Check their folder-level access (Viewer, Editor, or Manager) on the folder containing that report.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can they see all the data they expect?&lt;/strong&gt; Check object-level security, field-level security, and sharing rules. The report shows data based on the &lt;em&gt;running user’s&lt;/em&gt; access.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can they create or edit reports?&lt;/strong&gt; Check Create and Customize Reports. For editing in shared folders, also check Edit My Reports and folder-level access.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can they export?&lt;/strong&gt; Check Export Reports permission.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can they subscribe/schedule?&lt;/strong&gt; Check Subscribe to Reports (Lightning) or Schedule Reports (Classic). For adding recipients, check the Add Recipients and Send to Groups and Roles sub-permissions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Are they hitting limits?&lt;/strong&gt; Check the subscription-per-user cap (7 for most editions, 15 for Unlimited), the 200-scheduled-reports-and-dashboards org limit (Classic), and the 500-subscriptions-per-hour org limit (Lightning).&lt;/p&gt;
&lt;p&gt;Nine times out of ten, working through this list top to bottom will identify the issue within a few minutes.&lt;/p&gt;
&lt;h2 id=&quot;final-thoughts&quot;&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Salesforce report permissions are one of those areas where a little upfront planning saves a lot of reactive troubleshooting. When you’re setting up profiles and permission sets, think about reporting access as a deliberate design decision — not just a box to check.&lt;/p&gt;
&lt;p&gt;Start with the principle of least privilege: give users the minimum permissions they need to do their job. A sales rep who needs to view weekly pipeline reports doesn’t need Create and Customize Reports. An analyst who builds reports doesn’t necessarily need Export Reports. A manager who receives scheduled reports doesn’t need Schedule Reports if someone else is setting up the schedules.&lt;/p&gt;
&lt;p&gt;Build your folder structure with sharing in mind from the start. Use roles and public groups for folder access rather than individual users — it makes maintenance much easier as people join and leave teams. And document your permission decisions so the next admin who inherits the org understands &lt;em&gt;why&lt;/em&gt; things are configured the way they are.&lt;/p&gt;
&lt;p&gt;If you have questions about configuring report permissions for your org, or if you’re running into the native scheduling and subscription limits, &lt;a href=&quot;/contact&quot;&gt;reach out to the CloudAnswers team&lt;/a&gt;. We’ve been helping Salesforce teams get reporting right for over 15 years, and we’re happy to help.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Why Your Salesforce Approval Process Is Bottlenecking Deals (And How to Fix It)]]></title><description><![CDATA[Salesforce approval processes are quietly killing deals. Here’s why approvals stall, what they’re costing your pipeline, and how to fix it.]]></description><link>https://cloudanswers.com/blog/why-your-salesforce-approval-process-is-bottlenecking-deals-and-how-to-fix-it</link><guid isPermaLink="false">/blog/why-your-salesforce-approval-process-is-bottlenecking-deals-and-how-to-fix-it</guid><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/03/pexels-pixabay-48195.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;There’s a deal in your Salesforce pipeline right now that should have closed last week. The rep ran a solid discovery, delivered a compelling demo, and got a verbal “yes.” Then they submitted a discount for approval — and now they’re waiting.&lt;/p&gt;
&lt;p&gt;The approver got the notification email three days ago. It’s buried in their inbox alongside 200 other messages. The rep has followed up twice on Slack. The buyer, meanwhile, is re-engaging with a competitor.&lt;/p&gt;
&lt;p&gt;If this sounds familiar, you’re not alone. Internal Salesforce approval processes are one of the most common — and most overlooked — bottlenecks in B2B sales. In a market where &lt;a href=&quot;https://www.outreach.io/resources/blog/sales-2025-data-analysis&quot;&gt;win rates are trending downward&lt;/a&gt;, average buying groups involve 6 to 10 stakeholders, and decision timelines have stretched roughly 60%, every day of internal delay is a day your competitor gets to make their pitch. Research from &lt;a href=&quot;https://ironcladapp.com/journal/sales/common-contract-bottlenecks&quot;&gt;Ironclad&lt;/a&gt; suggests that inefficient approval and contract management can erode up to 9% of annual revenue.&lt;/p&gt;
&lt;p&gt;Your buyer is already navigating their own approval maze — procurement reviews, security assessments, executive sign-offs. The last thing they need is to wait on yours.&lt;/p&gt;
&lt;h2 id=&quot;why-your-salesforce-approval-process-breaks-down&quot;&gt;&lt;strong&gt;Why Your Salesforce Approval Process Breaks Down&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Salesforce’s native approval process functionality is genuinely useful. It lets admins build multi-step workflows with entry criteria, approval routing, and automated field updates. For many organizations, it’s a critical part of maintaining governance over discounts, expenditures, and contract terms.&lt;/p&gt;
&lt;p&gt;The problem isn’t the Salesforce approval process itself. It’s what happens after a record gets submitted — specifically, the gap between “submitted” and “approved,” and everything that can go wrong in that gap.&lt;/p&gt;
&lt;h3 id=&quot;salesforce-approval-notifications-disappear-into-email&quot;&gt;&lt;strong&gt;Salesforce Approval Notifications Disappear into Email&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;When a record is submitted for approval in Salesforce, the platform sends one email notification to the assigned approver. That’s it. One email, one time. For busy executives who receive hundreds of emails a day, that single notification is easy to miss, easy to skim past, and easy to forget. There’s no follow-up, no reminder, no escalation. The approval request sits quietly in a queue the approver may not check for days — or ever — unless someone pings them directly.&lt;/p&gt;
&lt;p&gt;Reps know this. That’s why they end up chasing approvers through Slack, walking to their desk, or asking their manager to “just approve it from my phone.” None of that is scalable, and it turns your reps into project managers instead of sellers.&lt;/p&gt;
&lt;h3 id=&quot;no-visibility-into-the-approval-queue&quot;&gt;&lt;strong&gt;No Visibility into the Approval Queue&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Salesforce doesn’t make it easy for approvers — or anyone else — to see a consolidated view of what’s pending. Yes, there’s an Approval History related list on individual records, and you can build custom reports on ProcessInstance objects. But for the average sales manager juggling 30 other priorities, checking a custom report every morning isn’t happening.&lt;/p&gt;
&lt;p&gt;The result is that approvals accumulate silently. Nobody has a clear picture of what’s waiting, how long it’s been waiting, or which deals are being held up. By the time the bottleneck becomes visible, it’s already cost you time and possibly the deal.&lt;/p&gt;
&lt;h3 id=&quot;approval-chains-create-cascading-delays&quot;&gt;&lt;strong&gt;Approval Chains Create Cascading Delays&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Multi-step Salesforce approval processes compound the problem. If a deal requires sign-off from a sales manager, then a VP, then finance, each step introduces a new waiting period. If the first approver takes two days and the second takes three, that’s a full business week before the rep can move forward — assuming nobody rejects and sends it back for revision.&lt;/p&gt;
&lt;p&gt;For complex deals with non-standard terms or large discounts, these chains can stretch to two weeks or more. Meanwhile, the buyer is waiting, momentum is fading, and the urgency that made them ready to sign is quietly evaporating.&lt;/p&gt;
&lt;h3 id=&quot;approvers-are-out-of-office-and-nobody-knows&quot;&gt;&lt;strong&gt;Approvers Are Out of Office (And Nobody Knows)&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This is the silent killer of deal velocity. An approver goes on vacation, takes a sick day, or gets pulled into a week-long offsite. The approval request sits in their queue, untouched, with no automatic delegation to a backup. The rep doesn’t even know it’s stuck until they check the record days later.&lt;/p&gt;
&lt;p&gt;Salesforce does support delegated approvers, but setting them up requires proactive configuration — and most orgs don’t bother until after they’ve lost a deal to the problem. Salesforce recently added reassignment support in its &lt;a href=&quot;https://www.salesforceben.com/salesforce-spring-25-release-new-flow-approval-process-capabilities/&quot;&gt;Winter ’26 Flow Approval Orchestration updates&lt;/a&gt;, which helps. But it’s still a reactive fix for what is fundamentally a visibility problem.&lt;/p&gt;
&lt;h3 id=&quot;reps-stop-submitting-and-start-working-around-the-process&quot;&gt;&lt;strong&gt;Reps Stop Submitting (and Start Working Around the Process)&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Here’s the insidious long-term consequence: when Salesforce approval processes are slow and painful, reps start finding ways around them. They structure deals to avoid triggering approval thresholds. They apply discounts in creative ways that technically don’t require approval. They negotiate terms verbally and formalize them later.&lt;/p&gt;
&lt;p&gt;None of this is malicious. Reps are just trying to close deals. But it undermines the governance that approval processes are supposed to provide. If your team has started treating the approval process as an obstacle to route around rather than a checkpoint to pass through, that’s a sign the process is broken.&lt;/p&gt;
&lt;h2 id=&quot;what-salesforce-approval-process-delays-actually-cost-you&quot;&gt;&lt;strong&gt;What Salesforce Approval Process Delays Actually Cost You&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Let’s make this concrete. Say your team has 50 deals per quarter that require approval, and the average approval delay is 3 business days. That’s 150 deal-days of delay per quarter — time that reps spend waiting instead of selling.&lt;/p&gt;
&lt;p&gt;Factor in &lt;a href=&quot;https://www.everstage.com/sales-productivity/sales-productivity-statistics&quot;&gt;the data showing that reps spend only 30% of their time actually selling&lt;/a&gt;, with the rest consumed by admin work, internal meetings, and process friction. Every day a rep spends chasing an approval is a day they’re not prospecting, demoing, or closing. At scale, approval friction quietly erodes your team’s selling capacity.&lt;/p&gt;
&lt;p&gt;The buyer-side cost is even harder to recover from. When a prospect has decided to buy and is waiting on &lt;em&gt;your&lt;/em&gt; internal process, every day of delay is a day they could get cold feet, re-evaluate alternatives, or lose budget approval on their end. You’ve already done the hard work of earning the “yes.” Losing the deal because your own approval queue was slow is as painful as it gets.&lt;/p&gt;
&lt;h2 id=&quot;how-to-fix-your-salesforce-approval-process-bottleneck&quot;&gt;&lt;strong&gt;How to Fix Your Salesforce Approval Process Bottleneck&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;The good news is that Salesforce approval process bottlenecks are fixable — and you don’t need a massive overhaul or an expensive consulting project to make progress. Here are the highest-leverage changes, organized from quick wins to structural improvements to advanced architecture.&lt;/p&gt;
&lt;h3 id=&quot;quick-wins-immediate-impact-minimal-effort&quot;&gt;&lt;strong&gt;Quick Wins: Immediate Impact, Minimal Effort&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;1. Add Automated Reminders to Your Salesforce Approval Process&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The single biggest reason approvals stall is that approvers forget about them. The fix is straightforward: remind them.&lt;/p&gt;
&lt;p&gt;A daily summary email showing each approver their pending approvals — organized by age, with a direct link to each record — solves the visibility problem overnight. Instead of an approval sitting unnoticed in an inbox, the approver sees “you have 4 pending approvals, the oldest is 5 days old” every morning.&lt;/p&gt;
&lt;p&gt;You can build this yourself with a scheduled Apex batch job, or you can install a purpose-built tool like &lt;a href=&quot;/products/approval-process-reminders&quot;&gt;CloudAnswers’ Approval Process Reminders&lt;/a&gt; from the AppExchange. The tool works by scanning all active Salesforce approval processes on a schedule you define, identifying any pending approvals, and sending each approver a consolidated email summary with direct links to the records awaiting their action.&lt;/p&gt;
&lt;p&gt;Setup takes just a few minutes: install the managed package, navigate to the Approval Process Reminders tab, configure the frequency (daily is the most common), and click Schedule. No code, no custom development. Your approvers start getting actionable summaries, and approvals start moving.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Set SLAs for Approval Response Times&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A Salesforce approval process without a response-time expectation is just a suggestion. Define explicit SLAs: standard discounts should be approved within 4 business hours. Non-standard terms within 24 hours. Anything over a certain threshold within 48 hours.&lt;/p&gt;
&lt;p&gt;Publish these SLAs to both approvers and reps. When everyone knows the expectation, accountability becomes natural. Reps know when it’s reasonable to escalate. Approvers know they’re being measured. Managers can spot when SLAs are consistently missed and dig into why.&lt;/p&gt;
&lt;h3 id=&quot;structural-improvements-reduce-friction-across-the-salesforce-approval-process&quot;&gt;&lt;strong&gt;Structural Improvements: Reduce Friction Across the Salesforce Approval Process&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;3. Simplify Your Approval Chains&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Take a hard look at how many approval steps each type of request actually requires. Are all of those sign-offs adding value, or are some just legacy layers that nobody has questioned?&lt;/p&gt;
&lt;p&gt;A common pattern: discount approvals that require both a sales manager &lt;em&gt;and&lt;/em&gt; a VP for any amount over 10%. If the sales manager consistently approves and the VP just rubber-stamps, you’re adding a step that creates delay without adding governance. Consider raising the threshold for the second step, or eliminating it for standard scenarios.&lt;/p&gt;
&lt;p&gt;The principle: every approval step should earn its place by providing genuine risk mitigation. If a step doesn’t change the outcome in any meaningful percentage of cases, it’s just friction.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Configure Delegated Approvers&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Every approver in your system should have a designated delegate who can act when they’re unavailable. Salesforce supports delegated approvers natively — you just need to set them up. Go to each user’s record and assign a delegate in the Delegated Approver field.&lt;/p&gt;
&lt;p&gt;Better yet, build a process around it: when someone goes on PTO, their delegate is automatically notified. This prevents the scenario where a deal sits in a queue for a week because the approver is on vacation and nobody knows.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. Use Reports and Dashboards to Track Approval Velocity&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What gets measured gets managed. Build a &lt;a href=&quot;/products/report-sender&quot;&gt;report&lt;/a&gt; that tracks average time-to-approval by approver, by approval process type, and by deal size. Surface this data in a dashboard that’s visible to sales leadership.&lt;/p&gt;
&lt;p&gt;When you can see that one particular approver consistently takes 5 days while others take 1, you’ve identified your bottleneck. That’s a conversation, not a mystery. And when approval velocity is visible at the leadership level, the cultural expectation around responsiveness shifts.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6. Automate Where It Makes Sense&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Not every Salesforce approval process needs a human in the loop. If 95% of discount requests under 15% are approved, consider auto-approving them and only routing exceptions for review. Salesforce &lt;a href=&quot;/blog/flows-vs-workflows-vs-process-builder-process-automation-in-salesforce&quot;&gt;Flows&lt;/a&gt; make this straightforward: add a Decision element before the approval step that checks whether the request falls within pre-approved parameters.&lt;/p&gt;
&lt;p&gt;This isn’t about removing oversight. It’s about focusing human review on the cases that actually need it, and letting routine approvals flow through without unnecessary delay.&lt;/p&gt;
&lt;h3 id=&quot;advanced-architecture-flow-approval-orchestration&quot;&gt;&lt;strong&gt;Advanced Architecture: Flow Approval Orchestration&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;7. Consider Flow-Based Approval Orchestration&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you’re running complex, multi-step Salesforce approval processes and hitting the limitations of legacy approval processes, Salesforce’s Flow Approval Orchestration (introduced in Spring ’25) is worth evaluating. It lets you build approval workflows entirely in Flow Builder, with support for parallel steps, recall functionality, reassignment, and better debugging.&lt;/p&gt;
&lt;p&gt;The migration isn’t trivial for orgs with many existing approval processes, but for new implementations or for replacing particularly painful legacy processes, Flow-based approvals offer significantly more flexibility. And they don’t consume automation credits, so there’s no additional cost.&lt;/p&gt;
&lt;h2 id=&quot;start-with-the-quick-wins&quot;&gt;&lt;strong&gt;Start with the Quick Wins&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;You don’t need to redesign your entire Salesforce approval process architecture to make a difference. The fastest path to impact is a combination of automated reminders and explicit SLAs. Together, they address the two root causes of most approval delays — forgetfulness and ambiguous expectations — without requiring any changes to your actual approval process logic.&lt;/p&gt;
&lt;p&gt;From there, layer in the structural improvements: simplified chains, delegated approvers, approval velocity dashboards, and selective automation. Each one removes another source of friction from your deal cycle.&lt;/p&gt;
&lt;p&gt;The goal isn’t to make Salesforce approval processes faster at the expense of governance. It’s to make them faster &lt;em&gt;while maintaining&lt;/em&gt; governance — by eliminating the delays that don’t serve anyone: forgotten emails, invisible queues, absent approvers, and unnecessary sign-offs.&lt;/p&gt;
&lt;p&gt;Your reps are already fighting hard to win deals in a market where buyers are slower, committees are bigger, and competition is fiercer than ever. The least you can do is make sure your own internal processes aren’t making it harder.&lt;/p&gt;
&lt;h2 id=&quot;key-takeaways&quot;&gt;&lt;strong&gt;Key Takeaways&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;**Salesforce approval processes are a hidden deal killer.**Every day a deal waits for internal approval is a day the buyer’s urgency fades and competitors gain ground.&lt;/p&gt;
&lt;p&gt;**The biggest culprits are visibility and accountability.**Approvals stall because notifications get buried, queues are invisible, and there are no response-time expectations.&lt;/p&gt;
&lt;p&gt;**Start with automated reminders and SLAs.**These two changes address the root causes of most delays and take minutes to implement — tools like &lt;a href=&quot;/products/approval-process-reminders&quot;&gt;CloudAnswers’ Approval Process Reminders&lt;/a&gt; make the reminder piece effortless.&lt;/p&gt;
&lt;p&gt;**Simplify before you add complexity.**Audit your approval chains for rubber-stamp steps, set up delegated approvers, and auto-approve routine requests before investing in advanced orchestration.&lt;/p&gt;
&lt;p&gt;**Measure approval velocity like you measure deal velocity.**Dashboard your time-to-approval metrics. What gets measured gets managed — and gets faster.&lt;/p&gt;
&lt;p&gt;If you want help thinking through your Salesforce approval process design — or any other Salesforce &lt;a href=&quot;/contact&quot;&gt;automation challenge&lt;/a&gt; — the CloudAnswers team is happy to talk it through. We’ve been building Salesforce solutions since 2008, and approval processes are one of the things we see teams struggle with most often.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Why Your Salesforce Org Needs a Backup Strategy (And Why It’s Your Responsibility)]]></title><description><![CDATA[Learn why your Salesforce data is your responsibility to protect — and how to build a backup strategy before an accidental deletion, bad import, or rogue automation costs you.]]></description><link>https://cloudanswers.com/blog/why-your-salesforce-org-needs-a-backup-strategy-and-why-its-your-responsibility</link><guid isPermaLink="false">/blog/why-your-salesforce-org-needs-a-backup-strategy-and-why-its-your-responsibility</guid><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/03/wige-cloud-2946152_1920.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Let’s start with an uncomfortable question: if someone accidentally deleted 10,000 records from your Salesforce org right now, could you get them back?&lt;/p&gt;
&lt;p&gt;Not in a few weeks. Not after filing a support ticket and paying a fee. Could you get them back &lt;em&gt;today&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;For most Salesforce teams, the honest answer is no. And that’s not because admins are careless — it’s because data loss is a classic high-risk, low-probability event, and humans are notoriously bad at planning for those. It’s the same reason people skip flood insurance or drive without an emergency kit. After all, your data lives in the cloud. It’s replicated across data centers. Salesforce typically has 99.99% uptime. Surely they’re backing everything up, right?&lt;/p&gt;
&lt;p&gt;Not exactly. And understanding why is one of the most important things you can do as a Salesforce admin.&lt;/p&gt;
&lt;h2 id=&quot;the-shared-responsibility-model-what-salesforce-does-and-doesnt-protect&quot;&gt;The Shared Responsibility Model: What Salesforce Does (and Doesn’t) Protect&lt;/h2&gt;
&lt;p&gt;Every major cloud platform — AWS, Microsoft, Google, Salesforce — operates under something called the shared responsibility model. It’s a framework that defines what the platform provider is responsible for and what falls on you, the customer.&lt;/p&gt;
&lt;p&gt;Here’s what Salesforce handles: the physical infrastructure, data center security, application uptime, and platform availability. They do an excellent job at this. Their infrastructure is geo-redundant, their uptime is industry-leading, and they invest billions in keeping the platform running.&lt;/p&gt;
&lt;p&gt;Here’s what Salesforce does &lt;em&gt;not&lt;/em&gt; handle: protecting your data from being deleted, corrupted, overwritten, or otherwise damaged by you, your users, your integrations, or your automations. According to a &lt;a href=&quot;https://www.salesforceben.com/salesforce-shared-responsibility-model-what-it-means-for-salesforce-admins/&quot;&gt;Salesforce Ben survey of administrators&lt;/a&gt;, a staggering 73.5% of admins didn’t even know the shared responsibility model existed. That’s a knowledge gap with real consequences.&lt;/p&gt;
&lt;p&gt;Put bluntly: Salesforce is responsible for making sure the platform stays up. You are responsible for making sure your data stays intact.&lt;/p&gt;
&lt;p&gt;This distinction matters because the most common causes of data loss aren’t platform failures. They’re things that happen inside your org, every day, caused by well-intentioned people doing their jobs.&lt;/p&gt;
&lt;h2 id=&quot;the-real-world-ways-salesforce-data-gets-lost&quot;&gt;The Real-World Ways Salesforce Data Gets Lost&lt;/h2&gt;
&lt;p&gt;When people think about data loss, they tend to picture dramatic scenarios — hackers, ransomware, data centers engulfed in flames. Those things do happen (more on that in a moment), but the majority of Salesforce data loss comes from far more mundane sources.&lt;/p&gt;
&lt;h3 id=&quot;bad-data-imports&quot;&gt;Bad Data Imports&lt;/h3&gt;
&lt;p&gt;This is the classic admin nightmare. Someone uploads a CSV file and accidentally overwrites thousands of records with blank values, wrong values, or values from the wrong column. Maybe the file had duplicate IDs. Maybe someone mapped “Phone” to “Account Name.” Maybe the import ran against production when it was supposed to hit the sandbox.&lt;/p&gt;
&lt;p&gt;It happens fast, it’s usually silent, and by the time someone notices, the damage is done. The overwritten data isn’t sitting in the Recycle Bin — that only catches deletions, not overwrites. The original values are simply gone.&lt;/p&gt;
&lt;h3 id=&quot;rogue-automations&quot;&gt;Rogue Automations&lt;/h3&gt;
&lt;p&gt;Flows, Process Builders, Apex triggers, and third-party integrations are the workhorses of any mature Salesforce org. They’re also the most common source of mass data corruption. A Flow with a misconfigured loop can overwrite a field across every record in an object. An Apex trigger with a missing null check can blank out values on save. A sync with your marketing automation tool can push bad data into thousands of Lead records.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://gearset.com/blog/who-is-responsible-for-your-salesforce-backup/&quot;&gt;Gearset State of Salesforce DevOps 2024 report&lt;/a&gt; found that 65% of teams had experienced at least one data loss incident in the previous year. The leading cause wasn’t hackers or outages — it was day-to-day business activity: integrations, migrations, and automation gone wrong.&lt;/p&gt;
&lt;h3 id=&quot;accidental-and-not-so-accidental-deletions&quot;&gt;Accidental (and Not-So-Accidental) Deletions&lt;/h3&gt;
&lt;p&gt;Users delete records they shouldn’t. Admins run cleanup scripts that are a little too aggressive. Data Loader jobs with the wrong operation type turn an update into a delete. And yes, sometimes a departing employee decides to clear out their pipeline on the way out the door.&lt;/p&gt;
&lt;p&gt;Salesforce treats all of these as legitimate requests. If the user has valid credentials and the right permissions, the platform will process the changes without question. It doesn’t distinguish between an intentional cleanup and a catastrophic mistake.&lt;/p&gt;
&lt;h3 id=&quot;integration-failures&quot;&gt;Integration Failures&lt;/h3&gt;
&lt;p&gt;Modern Salesforce orgs don’t exist in isolation. They’re connected to marketing platforms, ERP systems, billing tools, customer support software, and dozens of other services. Each integration is a potential vector for data problems. A failed sync can leave records in an inconsistent state. A misconfigured field mapping can overwrite good data with garbage. An API rate limit hit during a large sync can leave half your records updated and half untouched.&lt;/p&gt;
&lt;h3 id=&quot;external-threats-are-real-too&quot;&gt;External Threats Are Real Too&lt;/h3&gt;
&lt;p&gt;While internal errors are more common, external attacks are escalating rapidly. In 2025, a &lt;a href=&quot;https://www.salesforceben.com/salesforce-data-theft-roundup-everything-you-need-to-know/&quot;&gt;coordinated social engineering campaign&lt;/a&gt; targeted dozens of major Salesforce customers — including Adidas, Google, Chanel, and FedEx — by tricking employees into authorizing malicious connected apps. The attackers extracted millions of CRM records without exploiting any Salesforce vulnerability. The platform was never compromised; the &lt;em&gt;people&lt;/em&gt; were.&lt;/p&gt;
&lt;p&gt;For organizations without independent backups, this kind of attack means a grim choice: pay a ransom or accept permanent data loss.&lt;/p&gt;
&lt;h2 id=&quot;why-salesforces-native-tools-arent-enough&quot;&gt;Why Salesforce’s Native Tools Aren’t Enough&lt;/h2&gt;
&lt;p&gt;Salesforce does provide some native data protection features. They’re useful in limited scenarios, but they weren’t designed to be a comprehensive backup strategy. Here’s what’s available and where each one falls short.&lt;/p&gt;
&lt;h3 id=&quot;the-recycle-bin&quot;&gt;The Recycle Bin&lt;/h3&gt;
&lt;p&gt;When a record is deleted in Salesforce, it moves to the Recycle Bin and stays there for 15 days (or 30 days with extended retention enabled). After that, it’s permanently gone. The Recycle Bin is useful for the occasional “oops, I didn’t mean to delete that” moment, but it has significant limitations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It only catches deletions — not overwrites, not corruptions, not field-level changes.&lt;/li&gt;
&lt;li&gt;It doesn’t preserve metadata, object relationships, or record history.&lt;/li&gt;
&lt;li&gt;Users can empty their own Recycle Bin, allowing malicious deletions to become permanent.&lt;/li&gt;
&lt;li&gt;Bulk restores from the Recycle Bin are clunky and often fail for large datasets.&lt;/li&gt;
&lt;li&gt;Some deletes are hard deletes, which skip the recycle bin, such as deleting a large number of records through a tool like Data Loader.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Recycle Bin is a safety net for small mistakes, not a backup strategy.&lt;/p&gt;
&lt;h3 id=&quot;data-export-service-weekly-export&quot;&gt;Data Export Service (Weekly Export)&lt;/h3&gt;
&lt;p&gt;Salesforce’s Data Export Service lets you manually or automatically export your data to CSV files. The frequency depends on your edition: once every 7 days for weekly export, or once every 29 days for monthly. The export files must be downloaded within 48 hours, or they expire.&lt;/p&gt;
&lt;p&gt;The limitations here are substantial:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Frequency gaps: If you make changes daily (and you do), a weekly export means up to 7 days of data loss in a recovery scenario.&lt;/li&gt;
&lt;li&gt;No metadata: The export includes data but not your configurations, custom fields, relationships, Flows, Apex triggers, or reports. If you lose metadata, you’re rebuilding from scratch.&lt;/li&gt;
&lt;li&gt;Painful recovery: Restoring data from CSVs requires manually reconstructing object relationships using tools like VLOOKUP, splitting large files that exceed Excel’s row limits, and carefully sequencing re-imports to maintain referential integrity. It’s a multi-day project for a skilled admin.&lt;/li&gt;
&lt;li&gt;No versioning: You can’t see what a record looked like at a specific point in time. You only get the state at the moment the export ran.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;salesforce-backup--restore-paid-add-on&quot;&gt;Salesforce Backup &amp;amp; Restore (Paid Add-On)&lt;/h3&gt;
&lt;p&gt;Salesforce now offers a paid &lt;a href=&quot;https://www.salesforce.com/platform/data-backup-recovery/&quot;&gt;Backup &amp;amp; Restore&lt;/a&gt; add-on (enhanced by its $1.9 billion acquisition of OwnBackup in 2024). It’s a capable tool, but it’s a significant cost on top of your Salesforce subscription, and it’s not included by default. The fact that Salesforce made this acquisition tells you something important: even Salesforce knows backup is a key part of a company’s toolset.&lt;/p&gt;
&lt;h2 id=&quot;what-a-real-backup-strategy-looks-like&quot;&gt;What a Real Backup Strategy Looks Like&lt;/h2&gt;
&lt;p&gt;A backup strategy that actually protects your organization needs to cover a few fundamental requirements. These aren’t nice-to-haves — they’re the minimum.&lt;/p&gt;
&lt;h3 id=&quot;daily-automated-backups&quot;&gt;Daily Automated Backups&lt;/h3&gt;
&lt;p&gt;Your recovery point should never be more than 24 hours old. That means daily backups, running automatically, with no admin intervention required. Weekly exports leave too much on the table. If something breaks on Tuesday and your last backup was Sunday, you’ve lost three days of work — deals updated, cases resolved, records created — all gone.&lt;/p&gt;
&lt;h3 id=&quot;data-and-metadata&quot;&gt;Data and Metadata&lt;/h3&gt;
&lt;p&gt;Backing up records without their underlying configuration is like saving a document without the application that opens it. Your metadata — custom objects, fields, relationships, validation rules, Flows, Apex code, page layouts, reports — is what makes your org yours. Losing metadata can be more disruptive than losing data because it’s what you need to make sense of the data during recovery.&lt;/p&gt;
&lt;h3 id=&quot;easy-fast-restoration&quot;&gt;Easy, Fast Restoration&lt;/h3&gt;
&lt;p&gt;A backup you can’t restore from isn’t a backup — it’s a false sense of security. Restoration needs to be fast (hours, not weeks), granular (restore a single record, a batch, or an entire object), and reliable (maintaining object relationships and field integrity). If your recovery process requires a team of admins spending a week with Data Loader and spreadsheets, that’s not a recovery plan. It’s a prayer.&lt;/p&gt;
&lt;h3 id=&quot;searchable-history&quot;&gt;Searchable History&lt;/h3&gt;
&lt;p&gt;When something goes wrong, the first question is usually “what changed?” You need to be able to search your backup data, compare it to production, and identify exactly what was modified, when, and by whom. This is especially important for compliance-driven organizations operating under regulations like GDPR, SOX, or HIPAA, where audit trails and data retention policies aren’t optional.&lt;/p&gt;
&lt;h3 id=&quot;separation-from-your-production-org&quot;&gt;Separation from Your Production Org&lt;/h3&gt;
&lt;p&gt;Your backup needs to live outside your Salesforce environment. If a bad actor gains access to your org (as happened in the 2025 social engineering attacks), backups stored within the same environment are at risk. An independent backup solution means that even if production is compromised, your backup data remains intact and recoverable.&lt;/p&gt;
&lt;h2 id=&quot;getting-started-a-practical-backup-checklist&quot;&gt;Getting Started: A Practical Backup Checklist&lt;/h2&gt;
&lt;p&gt;If you don’t have a backup strategy in place right now, don’t panic — but don’t wait either. Here’s a practical checklist to start building one.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Audit your current state. Do you know what native protections you’re currently using? Is extended Recycle Bin retention enabled? Is anyone running scheduled data exports? Find out where you stand before you start planning.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Identify your critical objects. Not all data carries the same risk. Start with the objects that would cause the most business disruption if lost: Accounts, Contacts, Opportunities, Cases, and any custom objects central to your operations.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Define your recovery requirements. How much data can you afford to lose? (That’s your Recovery Point Objective, or RPO.) How quickly do you need to be back up and running? (That’s your Recovery Time Objective, or RTO.) These numbers drive your backup frequency and tool selection.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Review your automation footprint. How many Flows, triggers, and integrations touch your data? Each one is a potential source of data corruption. The more complex your org, the more important a robust backup becomes. If you’re running bulk operations, such as merging duplicates at scale or migrating records between objects, having a backup beforehand is essential.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choose a backup tool. Evaluate solutions based on your RPO/RTO requirements, budget, and org complexity. At minimum, look for daily automated backups, metadata coverage, and a straightforward restore process. There are options at every price point — from enterprise platforms to affordable solutions like &lt;a href=&quot;https://www.dbsaver.com&quot;&gt;DBSAVER&lt;/a&gt; that give you daily automated backups without per-user pricing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test your recovery process. This is the step most teams skip, and it’s the most important. Run a test recovery in a sandbox. Verify that the records return with the correct relationships and field values. Document the process so your team knows what to do when (not if) you need it for real.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build backup into your change management process. Before any major deployment, data migration, or bulk operation, verify that a recent backup exists. Make it a line item in your deployment checklist. This is especially important for consultants working across multiple client orgs — the stakes are high, and the &lt;a href=&quot;/blog/why-consultants-need-event-monitoring&quot;&gt;consequences of data loss during a consulting engagement&lt;/a&gt; can permanently damage client relationships.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;the-cost-of-doing-nothing&quot;&gt;The Cost of Doing Nothing&lt;/h2&gt;
&lt;p&gt;When Salesforce data is lost, the costs aren’t abstract — they’re immediate and concrete. Your sales team loses pipeline visibility and can’t forecast accurately. Your service team starts cases from scratch with frustrated customers. Your marketing team sends duplicate emails to corrupted contact lists. And behind the scenes, your admins are spending days or weeks hunched over Data Loader and spreadsheets trying to piece records back together.&lt;/p&gt;
&lt;p&gt;For Salesforce-specific data loss, the costs include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sales disruption: Lost Opportunity data means lost pipeline visibility, inaccurate forecasts, and stalled deals.&lt;/li&gt;
&lt;li&gt;Service degradation: Missing Case records force agents to start from scratch with frustrated customers.&lt;/li&gt;
&lt;li&gt;Marketing waste: Corrupted Contact data leads to duplicate emails, wrong personalization, and damaged brand reputation. If you’re not already keeping your CRM &lt;a href=&quot;/products/merge-duplicates&quot;&gt;free of duplicate records&lt;/a&gt;, data loss only compounds the problem.&lt;/li&gt;
&lt;li&gt;Compliance exposure: Regulatory frameworks like GDPR require documented data retention and recovery capabilities. An inability to recover lost data can trigger enforcement action.&lt;/li&gt;
&lt;li&gt;Recovery labor: Manual data reconstruction from CSVs and tribal knowledge can consume hundreds of admin hours. At consultant rates, that’s tens of thousands of dollars in recovery costs alone.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Compare that to the cost of a backup solution running in the background. The math isn’t even close.&lt;/p&gt;
&lt;h2 id=&quot;its-not-a-question-of-if--its-a-question-of-when&quot;&gt;It’s Not a Question of If — It’s a Question of When&lt;/h2&gt;
&lt;p&gt;We’ve been a Salesforce partner since 2008. We’ve managed hundreds of client orgs, built &lt;a href=&quot;/apps&quot;&gt;AppExchange products&lt;/a&gt;, and done our share of data migrations, bulk operations, and automation deployments. Along the way, we’ve learned a simple truth: data loss isn’t a hypothetical. It’s an inevitability.&lt;/p&gt;
&lt;p&gt;The question isn’t whether something will go wrong with your data. It’s whether you’ll be able to fix it when it does.&lt;/p&gt;
&lt;p&gt;If you’re running a Salesforce org without a backup strategy, the best time to start was yesterday. The second-best time is right now. Start with the checklist above, evaluate your options, and get something in place. Your future self — and your users, your sales team, your customers — will thank you.If you want to talk through your specific situation, &lt;a href=&quot;/contact&quot;&gt;reach out to the CloudAnswers team&lt;/a&gt;. We’re happy to help you think through the right approach for your org.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[5 Salesforce Report Automation Mistakes That Cost You Hours Every Week]]></title><description><![CDATA[If you’re a Salesforce Admin, you already know that reporting is one…]]></description><link>https://cloudanswers.com/blog/5-salesforce-report-automation-mistakes-that-cost-you-hours-every-week</link><guid isPermaLink="false">/blog/5-salesforce-report-automation-mistakes-that-cost-you-hours-every-week</guid><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/03/pexels-analysis-1841158_1920.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;If you’re a Salesforce Admin, you already know that reporting is one of those tasks that never quite stops. Stakeholders need their weekly pipeline updates. Finance wants the monthly revenue summary. The VP of Sales wants a daily snapshot of closed deals — and they want it in their inbox by 8 AM.&lt;/p&gt;
&lt;p&gt;You build the reports, set up subscriptions, and hope everything works. But it rarely does — at least not cleanly. A &lt;a href=&quot;https://www.smartsheet.com/content-center/product-news/automation/workers-waste-quarter-work-week-manual-repetitive-tasks&quot;&gt;Smartsheet survey&lt;/a&gt; found that more than 40% of workers spend at least a quarter of their work week on manual, repetitive tasks. Nearly 60% estimated they could save six or more hours a week if those tasks were automated. For Salesforce Admins juggling report scheduling, distribution, and troubleshooting, those numbers feel conservative.&lt;/p&gt;
&lt;p&gt;The problem isn’t that Salesforce doesn’t have reporting features. It does. The problem is that the native tools have limitations that push admins into habits that waste time, create risk, and don’t scale. Here are the five most common report automation mistakes we see — and how to fix every one of them.&lt;/p&gt;
&lt;h2 id=&quot;mistake-1-not-asking-how-the-report-will-actually-be-used&quot;&gt;&lt;strong&gt;Mistake #1: Not Asking How the Report Will Actually Be Used&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This is the mistake that causes all the others. An admin gets a request — “I need a report on X” — and starts building. Filters, groupings, columns, maybe a chart. They finish the report, share the link, and move on.&lt;/p&gt;
&lt;p&gt;Two weeks later, the same person asks: “Can you email this to me every Monday?” Then: “Can you send it to my team too?” Then: “Actually, can the client see this?”&lt;/p&gt;
&lt;p&gt;Each request adds a layer of manual work because the delivery question was never asked upfront. The best admins we’ve worked with treat report delivery as part of the requirements conversation, not an afterthought. Before building anything, they ask:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Is this something you’ll check on demand?&lt;/strong&gt; If so, a dashboard might be the best option. Pin it to a home page, and the user can check it whenever they want.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Does this need to come to your inbox on a schedule?&lt;/strong&gt; If so, you need a subscription or a tool like Report Sender — and you need to know who else should receive it, including anyone outside of Salesforce.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Should this data live on a specific record?&lt;/strong&gt; Sometimes the answer isn’t a report at all. An embedded chart or a Lightning component on the Account or Opportunity page might be what the user actually needs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Who else needs to see this, and do they have Salesforce access?&lt;/strong&gt; This is the question that determines whether native tools will work or whether you need something more flexible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This conversation takes five minutes and can save you hours of rework. It also helps you avoid the trap of building report after report only to find out that none of them are used, because you didn’t figure out how they fit in the user’s workflow.&lt;/p&gt;
&lt;p&gt;Don’t treat report delivery as a separate problem to solve later. It’s part of the requirement. Define it upfront, and you’ll choose the right tool the first time.&lt;/p&gt;
&lt;h2 id=&quot;mistake-2-assuming-everyone-who-needs-data-has-a-salesforce-login&quot;&gt;&lt;strong&gt;Mistake #2: Assuming Everyone Who Needs Data Has a Salesforce Login&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This is the single most common reason we see admins fall into manual reporting routines. And honestly, it’s the number one reason organizations adopt our Report Sender app.&lt;/p&gt;
&lt;p&gt;The scenario plays out the same way in almost every org: your sales team tracks everything in Salesforce, but the people who need visibility into that data don’t all have licenses. The board member who wants a quarterly pipeline summary. The agency partner who needs campaign performance numbers. The client who expects a monthly activity report. The finance team running on a separate system. The warehouse manager who needs order data but has no reason to sit in a CRM all day.&lt;/p&gt;
&lt;p&gt;Salesforce’s native report subscriptions can only deliver to users &lt;em&gt;within&lt;/em&gt; your Salesforce org. If someone doesn’t have a Salesforce login, they can’t receive a scheduled report. Full stop. This is a hard limitation that Salesforce has never addressed, and it forces admins into one of these bad workarounds:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Manual export and email.&lt;/strong&gt; You run the report, export it, write an email, attach the file, and send it. Every week. Or every day. For every recipient. It works until you go on vacation, get busy, or simply forget.&lt;/li&gt;
&lt;li&gt;**Email forwarding.**Send the report to yourself, then set up an email rule to automatically forward. Pretty soon, you have all kinds of users forwarding reports and no easy way to audit where the data’s going. Then one employee leaves the company, and suddenly their reports aren’t getting delivered.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Buying unnecessary licenses.&lt;/strong&gt; Some orgs actually purchase Salesforce licenses just so someone can view reports. At the cost of a Salesforce license, this is an absurdly expensive way to solve what should be a simple email delivery problem.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Building custom integrations.&lt;/strong&gt; A developer writes something that pulls report data via the API and emails it externally. This works but adds maintenance overhead, breaks when the report changes, and requires developer time for something an admin should be able to manage.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;mistake-3-building-a-separate-report-for-every-recipient&quot;&gt;&lt;strong&gt;Mistake #3: Building a Separate Report for Every Recipient&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This one is a silent productivity killer, and it usually stems from the problem described in Mistake #2.&lt;/p&gt;
&lt;p&gt;Here’s the common scenario: you need to send monthly reports to 15 different clients, each showing only the data relevant to their account. Or you need to send performance reports to a dozen agency partners, each filtered to their campaigns. With native Salesforce tools, your options are limited: you either build 15 separate reports or you build one report and manually change the filters, export, and email each version.&lt;/p&gt;
&lt;p&gt;Either way, you end up maintaining a library of near-identical reports. When someone asks you to add a column or change a date range, you’re making that change a dozen times. The reports inevitably drift out of sync. Someone gets last month’s filter by accident. You forget to update one of the variants. It’s the kind of work that makes you question your career choices at 4:30 on a Friday afternoon.&lt;/p&gt;
&lt;p&gt;We’ve seen orgs with hundreds of these near-duplicate reports cluttering up their report folders. It makes auditing difficult, confuses other admins who inherit the system, and generates a surprising amount of ongoing maintenance.&lt;/p&gt;
&lt;h2 id=&quot;mistake-4-manually-running-reports-because-its-faster&quot;&gt;&lt;strong&gt;Mistake #4: Manually Running Reports Because “It’s Faster”&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This is the mistake that doesn’t feel like a mistake — at first.&lt;/p&gt;
&lt;p&gt;An admin gets a request: “Can you send me the weekly pipeline report every Friday?” The admin knows that setting up a subscription has limitations — the recipient might not have a Salesforce login, the admin might already be at their subscription limit, or the report needs to be sent as a formatted Excel file. So instead of fighting with the native tools, they just do it manually. Open Salesforce, run the report, export, attach, email. Done in three minutes.&lt;/p&gt;
&lt;p&gt;The problem is that three minutes multiplied by a handful of reports multiplied by 52 weeks a year adds up fast. And it’s not just the time. It’s the mental overhead of keeping track of who needs what, when, and in what format. It’s the risk that the report doesn’t go out when you’re in an all-day meeting, on PTO, or dealing with a production issue. It’s the institutional fragility of having critical data distribution depend on one person remembering to do something.&lt;/p&gt;
&lt;p&gt;We talk to admins who have been manually running and emailing the same reports for years. They’ve accepted it as part of the job. But it doesn’t have to be. The whole point of being a Salesforce Admin is building systems that scale — and a reporting process that depends on you personally hitting “Export” every Friday is not a system.&lt;/p&gt;
&lt;h2 id=&quot;mistake-5-hitting-the-subscription-ceiling-and-just-accepting-it&quot;&gt;&lt;strong&gt;Mistake #5: Hitting the Subscription Ceiling and Just Accepting It&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If you’ve ever tried to subscribe to a sixth report in Salesforce and been told you can’t, you’ve hit the &lt;a href=&quot;/blog/report-sending-limitations-in-salesforce&quot;&gt;report subscription limit&lt;/a&gt;. Depending on your Salesforce edition, each user is limited to between 5 and 15 report subscriptions. That’s it. And there’s an org-wide cap of 200 scheduled report emails per month.&lt;/p&gt;
&lt;p&gt;For a small team with simple reporting needs, these limits are fine. But for a growing org — especially one where the admin is managing report schedules on behalf of multiple departments — you hit the ceiling fast. And once you’re there, the typical response is to start triaging: which reports are important enough to automate, and which ones will you just run manually?&lt;/p&gt;
&lt;p&gt;That’s not a decision any admin should have to make. Report automation should scale with the business, not cap out arbitrarily.&lt;/p&gt;
&lt;p&gt;Some admins try to work around the limit by consolidating reports into dashboards (which have their own separate subscription limit) or by spreading subscriptions across multiple users. These workarounds sort of work, but they add complexity and make it harder to manage who’s getting what.&lt;/p&gt;
&lt;h2 id=&quot;the-common-thread&quot;&gt;&lt;strong&gt;The Common Thread&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If you look at all five mistakes, they share a root cause: Salesforce’s native report automation was designed for simple scenarios. It works when every stakeholder has a license, when you have a handful of reports, and when data stays inside the org. The moment any of those assumptions break — and in most growing organizations, they all break eventually — admins end up filling the gap with manual labor.&lt;/p&gt;
&lt;p&gt;That’s the problem &lt;a href=&quot;/products/report-sender&quot;&gt;Report Sender&lt;/a&gt; solves. Not by replacing Salesforce’s reporting engine, but by fixing the delivery layer. It’s a 100% native Salesforce app that’s been on the AppExchange for over 10 years, trusted by more than 3,000 organizations. The &lt;a href=&quot;https://help.cloudanswers.com/en/articles/3701615-report-sender-edition-comparison&quot;&gt;free version&lt;/a&gt; handles unlimited scheduling to any email address. The Plus version adds Excel formatting, dashboard delivery, and more. Premium unlocks dynamic filtering and secure file sharing.&lt;/p&gt;
&lt;p&gt;If you’re currently spending time every week manually running, exporting, and emailing Salesforce reports, start a free trial and set up your first automated schedule. It takes a few minutes, and you’ll immediately see what you’ve been missing.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Use Cases for Salesforce QR Codes: From Events to Field Service and Beyond]]></title><description><![CDATA[If you’ve been around Salesforce for a while, you’ve probably noticed QR…]]></description><link>https://cloudanswers.com/blog/use-cases-for-salesforce-qr-codes-from-events-to-field-service-and-beyond</link><guid isPermaLink="false">/blog/use-cases-for-salesforce-qr-codes-from-events-to-field-service-and-beyond</guid><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/03/pexels-pixabay-278430.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;If you’ve been around Salesforce for a while, you’ve probably noticed QR codes popping up everywhere — conference badges, warehouse shelves, product packaging, invoices. And for good reason. Those little black-and-white squares have become one of the easiest ways to bridge the gap between the physical world and your CRM data.&lt;/p&gt;
&lt;p&gt;Here’s what makes this interesting for Salesforce teams specifically: QR codes aren’t just a consumer marketing gimmick. When you connect them to your Salesforce records, they become a tool for &lt;em&gt;operational efficiency&lt;/em&gt;. Your field technicians can scan a code on a piece of equipment and instantly pull up the service history. Your event staff can check in attendees without fumbling through spreadsheets. Your warehouse team can update inventory records in real time.&lt;/p&gt;
&lt;p&gt;In this guide, we’ll walk through the most impactful use cases for QR codes in Salesforce — the ones that actually save time, reduce errors, and make your data more reliable. Whether you’re an admin looking for a quick win or a consultant scoping out a larger implementation, there’s something here for you.&lt;/p&gt;
&lt;h2 id=&quot;1-event-management-and-attendance-tracking&quot;&gt;&lt;strong&gt;1. Event Management and Attendance Tracking&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This is the use case that gets most teams excited, and for good reason. If you’ve ever run an event using Salesforce Campaigns, you know the pain of tracking attendance. Paper sign-in sheets get lost. Manual data entry takes forever. And by the time the data is in the system, the event is a distant memory.&lt;/p&gt;
&lt;p&gt;QR codes change all of that. Here’s how it works: when someone registers for your event (and gets added as a Campaign Member), a Salesforce Flow automatically sends them a confirmation email that includes a personalized QR code. That QR code is generated using a &lt;a href=&quot;/blog/salesforce-admins-make-qr-codes-and-barcodes-in-salesforce&quot;&gt;formula field on the Campaign Member object&lt;/a&gt; — no custom code required.&lt;/p&gt;
&lt;p&gt;On the day of the event, your front desk staff simply scans each attendee’s QR code with the Salesforce mobile app. The scan pulls up the Campaign Member record, and the staff member updates the status to “Attended” in a single tap. The data flows into your CRM instantly.&lt;/p&gt;
&lt;p&gt;If your company happens to sponsor or attend &lt;a href=&quot;https://www.milehighdreamin.com/&quot;&gt;Mile High Dreamin’&lt;/a&gt;, Denver’s community-run Salesforce conference, you may see one of our QR code solutions in action. Attendee badges get a QR code with their attendee ID and name encoded. Then, sponsors get an app that can scan these QR codes and sync with Salesforce to get the rest of the lead contact information.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why this matters:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No more chasing down attendance data after the event.&lt;/li&gt;
&lt;li&gt;Marketing gets accurate attendance numbers for ROI reporting.&lt;/li&gt;
&lt;li&gt;Sales can follow up with attendees the next day with confidence, knowing exactly who showed up.&lt;/li&gt;
&lt;li&gt;Nonprofits can track program participation across multiple classes or sessions without paper.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We’ve seen nonprofits, in particular, use this to track attendance at exercise classes, educational workshops, and support groups. Anywhere “who was there” matters for reporting and compliance.&lt;/p&gt;
&lt;h2 id=&quot;2-field-service-and-equipment-management&quot;&gt;&lt;strong&gt;2. Field Service and Equipment Management&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Field service teams deal with a constant challenge: getting the right information at the right time, in the field, on a mobile device. QR codes are a natural fit here.&lt;/p&gt;
&lt;p&gt;The concept is straightforward. You attach a physical QR code label to a piece of equipment, a vehicle, or a facility. That QR code encodes a link to the corresponding Asset or Work Order record in Salesforce. When a technician arrives on-site, they scan the code and immediately see the full service history, parts list, maintenance schedule, and any open work orders — no searching or typing required.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Common field service QR code workflows:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;**Equipment identification:**Scan a QR code on machinery to pull up the Salesforce Asset record, including warranty status, last service date, and related knowledge articles.&lt;/li&gt;
&lt;li&gt;**Work order completion:**After service, technicians can scan the code to log their work directly against the correct record.&lt;/li&gt;
&lt;li&gt;**Parts tracking:**Label parts with QR codes to track inventory movement and reduce trunk stock discrepancies.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some medical device companies are even using dynamic QR codes that update automatically as the device’s internal asset configuration changes — pulling all of that data directly into Salesforce for compliance tracking.&lt;/p&gt;
&lt;h2 id=&quot;3-inventory-and-asset-tracking&quot;&gt;&lt;strong&gt;3. Inventory and Asset Tracking&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If your organization manages physical inventory — whether that’s products in a warehouse, IT assets across multiple offices, or supplies in a healthcare facility — QR codes in Salesforce can replace a lot of manual work.&lt;/p&gt;
&lt;p&gt;The setup works like this: each inventory item or asset gets a QR code label that links to its Salesforce record. Staff use the Salesforce mobile app (or a dedicated scanner) to scan items as they move in and out of locations. Each scan can trigger a Flow that updates the record’s location, status, or custody field automatically.&lt;/p&gt;
&lt;p&gt;This is especially powerful for organizations that need to maintain audit trails. Instead of relying on someone to remember to update a spreadsheet, the scan creates a timestamped, user-attributed record in Salesforce. Research from &lt;a href=&quot;https://www.uniqode.com/blog/qr-code-insights/qr-code-report&quot;&gt;Uniqode’s 2025 State of QR Codes report&lt;/a&gt; found that 95% of businesses using QR codes say they help collect valuable first-party data — and for inventory management, that first-party data is the audit trail your compliance team is asking for.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Use cases by industry:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;**Manufacturing:**Track raw materials, work-in-progress, and finished goods through production stages.&lt;/li&gt;
&lt;li&gt;**Healthcare:**Monitor the location and maintenance status of medical equipment.&lt;/li&gt;
&lt;li&gt;**IT departments:**Manage laptop, monitor, and peripheral assignments across distributed teams.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;4-lead-capture-and-networking-at-trade-shows&quot;&gt;&lt;strong&gt;4. Lead Capture and Networking at Trade Shows&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Trade shows are expensive. Booth space, travel, swag, staff time — it adds up fast. And one of the biggest wastes of that investment is the poor lead capture that often follows. Business cards get stacked in a pile. Notes get scribbled on napkins. And by the time someone enters the leads into Salesforce, half the context is gone.&lt;/p&gt;
&lt;p&gt;QR codes solve this in two directions. First, your booth staff can have badges with QR codes. When a prospect scans the code, their phone opens a pre-populated form that creates a new Lead in Salesforce on the spot — complete with the booth rep’s name, the event Campaign, and whatever qualifying questions you want to ask.&lt;/p&gt;
&lt;p&gt;You can also print QR codes for prospects to scan that link to product demos, pricing pages, or scheduling tools. The scan itself can be tracked as a Campaign Member touchpoint.&lt;/p&gt;
&lt;p&gt;More and more professionals are swapping paper cards for QR-based digital alternatives. If your team isn’t set up to capture that data directly into Salesforce, you’re leaving leads on the table.&lt;/p&gt;
&lt;h2 id=&quot;5-customer-feedback-and-survey-collection&quot;&gt;&lt;strong&gt;5. Customer Feedback and Survey Collection&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Getting customers to fill out a survey is one of the hardest problems in CRM. Email open rates are declining. Survey links get buried. And by the time you follow up, the customer has moved on.&lt;/p&gt;
&lt;p&gt;QR codes offer a physical touchpoint that catches people in the moment. Print a QR code on a receipt, packing slip, or service completion form. The customer scans it and lands directly on a feedback form that’s linked to their Case or Opportunity record in Salesforce. No login. No searching for an email. Just scan and respond.&lt;/p&gt;
&lt;p&gt;This works particularly well for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;**Post-service feedback:**After a field service visit, leave a QR code card that links to a satisfaction survey tied to the Work Order.&lt;/li&gt;
&lt;li&gt;**Retail and e-commerce:**Include a QR code in product packaging that links to a review form or NPS survey.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When you put the survey at the physical point of experience, response rates go up because the experience is still fresh.&lt;/p&gt;
&lt;h2 id=&quot;6-invoicing-and-payment-processing&quot;&gt;&lt;strong&gt;6. Invoicing and Payment Processing&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If your organization sends invoices or donation receipts through Salesforce, adding a QR code to those documents can dramatically speed up the payment cycle. The customer or donor scans the code and lands directly on a payment page — no typing in URLs, no hunting for account numbers.&lt;/p&gt;
&lt;p&gt;Global spending through QR code payments is projected to reach over $8 trillion by 2029, according to &lt;a href=&quot;https://www.qrcode-tiger.com/qr-code-statistics-2022-q1&quot;&gt;Juniper Research&lt;/a&gt;. While B2B payment flows are more complex than restaurant tabs, the principle is the same: the fewer steps between “invoice received” and “payment submitted,” the faster you get paid.&lt;/p&gt;
&lt;p&gt;For nonprofits using Salesforce, QR codes on printed materials — event programs, direct mail, posters — can link directly to donation pages. Pair this with &lt;a href=&quot;/products/report-sender&quot;&gt;Report Sender&lt;/a&gt; to automate donation acknowledgment reports, and you’ve got a streamlined giving pipeline from scan to thank-you.&lt;/p&gt;
&lt;h2 id=&quot;7-document-access-and-knowledge-sharing&quot;&gt;&lt;strong&gt;7. Document Access and Knowledge Sharing&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This is one of the more underrated use cases. Any time you have a physical object — a product, a manual, a printed report, a piece of equipment — you can attach a QR code that links to related documentation stored in Salesforce or an external knowledge base.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Practical examples:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;**Product manuals:**A QR code on the product links to the latest user guide, eliminating the problem of outdated printed instructions.&lt;/li&gt;
&lt;li&gt;**Training materials:**QR codes in printed training packets link to video walkthroughs or interactive guides hosted in Salesforce Knowledge.&lt;/li&gt;
&lt;li&gt;**Warranty registration:**Customers scan a QR code on packaging to activate their warranty, with all details automatically logged in Salesforce.&lt;/li&gt;
&lt;li&gt;**Compliance documentation:**Attach QR codes to physical assets that link to inspection records, certifications, or safety data sheets.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By 2027, the global supply chain standard will shift from traditional 1D barcodes to 2D barcodes (including QR codes), according to the &lt;a href=&quot;https://bitly.com/blog/qr-code-statistics/&quot;&gt;GS1 Sunrise 2027 initiative&lt;/a&gt;. Organizations that start building QR code workflows now will be ahead of the curve when industry standards catch up.&lt;/p&gt;
&lt;h2 id=&quot;8-shipping-returns-and-logistics&quot;&gt;&lt;strong&gt;8. Shipping, Returns, and Logistics&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If you’re managing shipments or returns through Salesforce, QR codes can streamline the entire process. At &lt;a href=&quot;/blog/hackathon-highlights-shipment-scanner&quot;&gt;CloudAnswers, we actually built a shipment scanner during an internal hackathon&lt;/a&gt; that demonstrates exactly how this works.&lt;/p&gt;
&lt;p&gt;The workflow: generate a packing slip with a QR code from the Salesforce record. Attach it to the shipment. When the package arrives, the receiving team scans the QR code with the Salesforce mobile app, instantly pulling up all relevant shipment details. From there, they can accept the delivery, flag issues, or trigger a return workflow — all without leaving the app.&lt;/p&gt;
&lt;p&gt;This is particularly valuable for companies processing high volumes of returns, where speed and accuracy directly impact customer satisfaction and inventory accuracy.&lt;/p&gt;
&lt;h2 id=&quot;getting-started-its-easier-than-you-think&quot;&gt;&lt;strong&gt;Getting Started: It’s Easier Than You Think&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Here’s the good news: setting up QR codes in Salesforce doesn’t require a developer. A junior admin can get this working in about 15 minutes using a formula field. We covered the full step-by-step in our original post on &lt;a href=&quot;/blog/salesforce-admins-make-qr-codes-and-barcodes-in-salesforce&quot;&gt;making QR codes and barcodes in Salesforce&lt;/a&gt;, but here’s the quick version:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;**Choose your object.**Decide which Salesforce object needs a QR code (Contact, Case, Asset, Campaign Member, custom object — anything works).&lt;/li&gt;
&lt;li&gt;**Create a formula field.**Add a new formula field of type “Text” to the object.&lt;/li&gt;
&lt;li&gt;**Add the IMAGE formula.**Use the IMAGE() function with a barcode generation service URL. CloudAnswers provides a free barcode service at barcode.cloudanswers.com.&lt;/li&gt;
&lt;li&gt;**Add to page layouts.**Drop the field onto your page layouts, email templates, Experience Cloud pages, or printed documents.&lt;/li&gt;
&lt;li&gt;**Scan and go.**Use the Salesforce mobile app or any QR code reader to scan and access records.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That’s it. No AppExchange install. No Apex code. No Visualforce pages. Just a formula field that works across page layouts, emails, communities, Conga documents, and more.&lt;/p&gt;
&lt;h2 id=&quot;best-practices-for-qr-codes-in-salesforce&quot;&gt;&lt;strong&gt;Best Practices for QR Codes in Salesforce&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Before you go QR-code-crazy across your org, a few tips to keep things running smoothly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;**Use stable data in your QR codes.**Encode the Record ID or an auto-number field rather than data that might change (like email or phone number). A QR code that points to a record that no longer exists is worse than no QR code at all.&lt;/li&gt;
&lt;li&gt;**Keep URLs short.**The more data you encode, the more complex (and harder to scan) the QR code becomes. Short URLs or Salesforce record IDs are ideal.&lt;/li&gt;
&lt;li&gt;**Test across devices.**Make sure your QR codes scan reliably on both iOS and Android, and in different lighting conditions. Print a few test labels before rolling out to the whole team.&lt;/li&gt;
&lt;li&gt;**Brand your QR codes when possible.**Research shows that branded QR codes tied to recognizable domains increase user trust and scan rates. Use a domain your audience recognizes.&lt;/li&gt;
&lt;li&gt;**Plan for scale.**If you’re deploying QR codes across thousands of assets or products, think about centralized governance. Which team owns the QR code records? Who updates them when URLs change? A little planning upfront prevents headaches later.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Never encode sensitive data directly in a QR code&lt;/strong&gt;. QR codes can be scanned by anyone with a smartphone. Ensure you never embed confidential information, such as phone numbers, emails, or Social Security numbers. Instead, have the QR code link to a Salesforce record or Experience Cloud page that requires authentication to view.&lt;/li&gt;
&lt;li&gt;**Maintain your data quality.**QR codes are only as useful as the records they link to. If your Salesforce data is cluttered with duplicates or incomplete records, scanning a QR code will just surface bad data faster. Make sure your &lt;a href=&quot;/products/merge-duplicates&quot;&gt;duplicate management&lt;/a&gt; is in good shape before scaling QR code workflows.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;ready-to-implement-qr-codes-in-your-salesforce-org&quot;&gt;&lt;strong&gt;Ready to Implement QR Codes in Your Salesforce Org?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Whether you’re looking to add a simple QR code formula to your Contact records or build out a full event check-in system with Flows, QR codes are one of the highest-impact, lowest-effort improvements you can make to your Salesforce org.&lt;/p&gt;
&lt;p&gt;If you want help figuring out the best approach for your specific use case, &lt;a href=&quot;/contact&quot;&gt;contact the CloudAnswers team&lt;/a&gt;. We’ve been building Salesforce solutions since 2008, and we’ve helped hundreds of organizations implement everything from simple formula fields to complex multi-object QR code workflows. We’d love to hear what you’re working on.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Why use Report Sender?]]></title><description><![CDATA[Salesforce reporting has limitations — especially when it comes to getting reports into the right hands. Report Sender enhances scheduling, adds dynamic filtering, and extends delivery to external users, making your reporting process faster and more flexible.]]></description><link>https://cloudanswers.com/blog/why-use-report-sender</link><guid isPermaLink="false">/blog/why-use-report-sender</guid><pubDate>Wed, 18 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/02/how-to-use-report-sender-e1761593226858.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h2 id=&quot;report-sender-vs-salesforce-reporting&quot;&gt;&lt;strong&gt;Report Sender VS Salesforce Reporting&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;In the business world, efficiency is everything. Salesforce is a great tool; however, its reporting capabilities have limitations. One of the main limitations is getting people to use the reports. That’s where Report Sender comes in; it lets you deliver the reports to Salesforce users, customers, partners, and coworkers so everyone has the visibility they need.&lt;/p&gt;
&lt;p&gt;Imagine sending personalized, dynamically filtered reports to both internal and external users with no limits. Report Sender not only enhances scheduling and customization but also offers many frequency and file options, making your reporting processes more efficient than ever.&lt;/p&gt;
&lt;p&gt;Report Sender doesn’t just streamline your workflow; it empowers you to automate report delivery, ensuring that the right information reaches the right people at the right time. Using these advanced features, you will be able to spend less time on reporting and more time on what really counts.&lt;/p&gt;
&lt;p&gt;Continue reading to discover how Report Sender can transform your reporting experience and boost your productivity.&lt;/p&gt;
&lt;h2 id=&quot;how-it-improves-upon-salesforce-report-subscriptions&quot;&gt;&lt;strong&gt;How it improves upon Salesforce Report Subscriptions&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;While native report subscriptions provide a base level of being informed in the world of Salesforce reports, they often lack the flexibility and options for customizations that today’s businesses demand. Report Sender bridges that gap with a greater functionality that significantly improves upon Salesforce’s native capabilities.&lt;/p&gt;
&lt;p&gt;With Report Sender, one of the strongest features is the more robust and detailed scheduling capabilities, whereas Salesforce subscriptions have limited options. Report Sender allows you to schedule reports to be sent Daily, Every Weekday, Weekly, Hourly, Monthly, Quarterly, Annually, and based on custom fiscal periods. That makes it more flexible and more adept at solving your business problems.&lt;/p&gt;
&lt;p&gt;But that’s not all, the enhancements don’t stop at scheduling. Report Sender extends the capabilities to include external users who don’t have access to Salesforce. This is a game-changer for businesses that need to keep all stakeholders informed, regardless of their platform access. Allowing the sharing of reports with external recipients, Report Sender ensures that critical data reaches everyone who needs it, fostering better collaboration and decision-making.&lt;/p&gt;
&lt;p&gt;Report Sender also offers versatility in how reports are delivered. You can send reports as file attachments, in the email body, or include a link to the report within Salesforce, providing flexibility that caters to different business needs. This functionality is particularly useful for large reports or when you want to ensure that the recipient can easily access the report without downloading it.&lt;/p&gt;
&lt;p&gt;Report Sender also outperforms with regard to the level of customization options available. You can customize the email subject, message body, and report format to suit the needs of your business. This level of personalization not only makes the reports more relevant and engaging but also ensures that the information is presented in the way you want it shown to your users. Whether you need to highlight key metrics, add a personal note, or format the report to match your branding, Report Sender has you covered.&lt;/p&gt;
&lt;h2 id=&quot;enable-users-to-use-one-source-report-via-dynamic-filtering&quot;&gt;&lt;strong&gt;Enable users to use one source report via Dynamic Filtering&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Dynamic filtering is the most powerful feature of Report Sender, it revolutionizes the way Salesforce Admins manage and distribute their reports. Instead of creating multiple reports for different users, admins can use a single source report and update a filter for each recipient. As a simple example, imagine sending a sales pipeline to each sales person that only shows their own deals&lt;/p&gt;
&lt;p&gt;Dynamic Filtering helps maintain data control and integrity. Admins can eliminate the potential of sending wrong or sensitive information to the wrong person. Precisely defining what information will be included in the reports with Dynamic filtering ensures precise and secure Salesforce reporting. All in all, it is a game changer when compared to traditional reporting ways. Dynamic Filtering simplifies the process of reporting while maintaining the integrity of data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;
Report Sender is a must-have addition to any Salesforce instance. The core of any business involves data and reporting on that data. Report Sender helps supercharge your team’s reporting abilities. The best part? You can &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&quot;&gt;try out Report Sender for free on the AppExchange&lt;/a&gt;and see the difference for yourself. Why not go ahead and save yourself one less headache?&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Announcing DBSAVER: Simple, Affordable Salesforce Backup]]></title><description><![CDATA[Many organizations face data loss in Salesforce, often due to lacking reliable backups. To address this, CloudAnswers has launched DBSAVER, a cost-effective backup solution designed for all sizes of organizations. DBSAVER provides daily automated backups, secure data storage, and simplified access for just $100 a month, significantly cheaper than traditional per-user options.]]></description><link>https://cloudanswers.com/blog/announcing-dbsaver-simple-affordable-salesforce-backup</link><guid isPermaLink="false">/blog/announcing-dbsaver-simple-affordable-salesforce-backup</guid><pubDate>Mon, 16 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/02/hero-dashboard-CLVYpIVe.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;If you’ve been managing Salesforce long enough, you’ve had “the moment.” Maybe it was a mass import that went sideways. Maybe a departing employee deleted a few too many records on their way out. Or maybe it was something quieter—a misconfigured automation silently overwriting critical field values for weeks before anyone noticed.&lt;/p&gt;
&lt;p&gt;Whatever the scenario, the sinking feeling is the same: &lt;em&gt;do we have a backup?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;For too many organizations, the honest answer is still “not really.” And that’s a bigger problem than most admins want to admit. &lt;a href=&quot;https://crmninjas.io/salesforce-data-loss-think-again/&quot;&gt;53% of organizations&lt;/a&gt; using SaaS applications reported suffering from lost or corrupted data within the past &lt;strong&gt;year&lt;/strong&gt;! Meanwhile, &lt;a href=&quot;https://expertinsights.com/backup-and-recovery/saas-backup-recovery-2025-stats&quot;&gt;roughly 60% of Salesforce users&lt;/a&gt; are running their CRM without any third-party backup.&lt;/p&gt;
&lt;p&gt;Today, we’re doing something about it. We’re officially launching &lt;a href=&quot;https://dbsaver.com/?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=announcing_dbsaver&quot;&gt;DBSAVER&lt;/a&gt;—a simple, fast, and affordable Salesforce backup solution—to the public.&lt;/p&gt;
&lt;h2 id=&quot;weve-been-using-this-internally-for-over-a-decade&quot;&gt;&lt;strong&gt;We’ve Been Using This Internally for Over a Decade&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Here’s the thing: DBSAVER isn’t new to us. At CloudAnswers, we’ve been using this backup solution for our consulting clients for more than ten years. When you’re a Salesforce consulting partner managing multiple orgs—running data migrations, deploying complex automations, &lt;a href=&quot;/blog/say-goodbye-to-salesforce-duplicates-with-cloudanswers-potential-duplicates-bulk-merge?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=announcing_dbsaver&quot;&gt;merging duplicate records&lt;/a&gt;—you learn pretty quickly that having a reliable backup isn’t optional. It’s the safety net that lets you move fast without losing sleep.&lt;/p&gt;
&lt;p&gt;Over the years, we refined the tool to do exactly what we needed: back up data frequently, store it securely, and make it easy to find and extract when something went wrong. Nothing more, nothing less.&lt;/p&gt;
&lt;p&gt;We recently decided it was time to open it up to everyone. If you’ve been using our &lt;a href=&quot;/blog/eliminate-duplicates-fast-with-bulk-merge?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=announcing_dbsaver&quot;&gt;Potential Duplicates &amp;amp; Bulk Merge&lt;/a&gt; app, you may have already seen the DBSAVER recommendation pop up when running bulk merges. Now you can try it yourself.&lt;/p&gt;
&lt;h2 id=&quot;why-most-backup-solutions-are-overkill-and-overpriced&quot;&gt;&lt;strong&gt;Why Most Backup Solutions Are Overkill (and Overpriced)&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Let’s be honest about how most Salesforce orgs actually use backup: they don’t. Not because admins don’t care about data protection—they absolutely do. It’s because the existing options either cost too much, do too much, or require too much effort to justify.&lt;/p&gt;
&lt;p&gt;The Salesforce backup market has exploded in recent years. Salesforce itself signaled just how important this space is when it &lt;a href=&quot;https://techcrunch.com/2024/09/05/salesforce-acquires-data-management-firm-own-for-1-9b-in-cash/&quot;&gt;acquired Own Company (formerly OwnBackup) for $1.9 billion&lt;/a&gt; in late 2024. That’s a massive bet on data protection—and it tells you something about how underserved this market has been.&lt;/p&gt;
&lt;p&gt;But here’s the disconnect: enterprise-grade solutions like OwnBackup, Spanning, and Odaseva are built for large organizations with complex compliance requirements, sandbox seeding needs, and metadata versioning workflows. They’re powerful tools. They’re also priced per user, which means costs scale with your headcount rather than your actual data volume. For a 100-user org at $3 per user per month, you’re looking at $3,600 per year—for backup you’ll hopefully never need to use.&lt;/p&gt;
&lt;p&gt;Most companies don’t need all of that. They need a copy of their data in case something goes wrong, and they need the ability to get it back. That’s it.&lt;/p&gt;
&lt;h2 id=&quot;what-dbsaver-actually-does&quot;&gt;&lt;strong&gt;What DBSAVER Actually Does&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;DBSAVER does exactly what its name suggests: &lt;a href=&quot;https://help.cloudanswers.com/en/articles/13064951-how-db-saver-works&quot;&gt;it saves your database&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After you &lt;a href=&quot;https://dbsaver.com/?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=announcing_dbsaver&quot;&gt;sign up at dbsaver.com&lt;/a&gt; and connect your Salesforce org via OAuth (which takes about two minutes), DBSAVER starts running daily automated backups. It queries all your tables and stores the data securely on our infrastructure. At any point, you can search through your backed-up data and download whatever you need to restore.&lt;/p&gt;
&lt;p&gt;That’s the whole pitch. No complex configuration. No week-long implementation. No dedicated admin required to manage it.&lt;/p&gt;
&lt;p&gt;Here’s what you get:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Daily automated backups.&lt;/strong&gt; Set it and forget it. DBSAVER runs in the background, capturing your data every day so your recovery point is never more than 24 hours old.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Powerful search.&lt;/strong&gt; Need to find a specific record from three months ago? Search across all your backup data instantly instead of digging through CSV exports.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Team collaboration.&lt;/strong&gt; Organize your team into vaults with role-based access controls. Not everyone needs access to everything, and DBSAVER makes it easy to manage who sees what.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enterprise security.&lt;/strong&gt; Bank-level encryption and granular access controls protect your data at rest and in transit.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No per-user pricing.&lt;/strong&gt; This is the big one. DBSAVER costs $100 per month for 400GB of backup storage, with additional storage at just $0.25 per gigabyte. That’s it. Whether you have 10 users or 500, the price stays the same.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;the-math-speaks-for-itself&quot;&gt;&lt;strong&gt;The Math Speaks for Itself&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Let’s put the cost savings in perspective. Traditional Salesforce backup solutions typically charge between $2 and $5 per user per month. For a mid-sized org with 200 Salesforce users, that works out to somewhere between $4,800 and $12,000 per year.&lt;/p&gt;
&lt;p&gt;DBSAVER? $100 per month on the monthly plan, or $1,000 per year on the annual plan. That’s up to 90% less than what you’d pay for a per-user solution—and you’re not sacrificing the core functionality you actually need.&lt;/p&gt;
&lt;p&gt;Here’s a quick comparison:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Per-User Solution (200 users)&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;DBSAVER&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;Annual Cost&lt;/td&gt;
&lt;td&gt;$4,800–$12,000&lt;/td&gt;
&lt;td&gt;$1,000–$1,200&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pricing Model&lt;/td&gt;
&lt;td&gt;Per user/month&lt;/td&gt;
&lt;td&gt;Flat rate for up to 400 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Daily Backups&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Search &amp;amp; Recovery&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Team Management&lt;/td&gt;
&lt;td&gt;Varies&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Setup Time&lt;/td&gt;
&lt;td&gt;Days to weeks&lt;/td&gt;
&lt;td&gt;Minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;For organizations watching their budgets—especially nonprofits, startups, and small- to mid-sized businesses—this is a game-changer. You shouldn’t have to choose between protecting your data and staying within budget.&lt;/p&gt;
&lt;h2 id=&quot;who-should-use-dbsaver&quot;&gt;&lt;strong&gt;Who Should Use DBSAVER?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;DBSAVER is built for organizations that want dependable Salesforce backup without the enterprise price tag or complexity. That includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Small and mid-sized businesses&lt;/strong&gt; that know they need backup but can’t justify spending $5,000+ per year on a solution they’ll rarely use.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nonprofits and educational institutions&lt;/strong&gt; operating on tight budgets where every dollar matters. You need data protection just as much as a Fortune 500 company—maybe more, since you likely can’t afford a data disaster.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Salesforce consultants and partners&lt;/strong&gt; managing multiple client orgs who need a cost-effective way to protect client data during migrations, deployments, and ongoing management.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Any organization currently relying on manual exports.&lt;/strong&gt; If your “backup strategy” involves someone remembering to run a weekly data export from Salesforce and saving CSVs to a shared drive, you already know that’s not sustainable.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;isnt-salesforce-in-the-cloud-isnt-my-data-already-safe&quot;&gt;&lt;strong&gt;Isn’t Salesforce in the Cloud? Isn’t My Data Already Safe?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This is the most common misconception in the Salesforce ecosystem. Yes, Salesforce runs in the cloud. Yes, Salesforce has robust infrastructure protections. But Salesforce’s own documentation makes it clear that protecting your data is your responsibility.&lt;/p&gt;
&lt;p&gt;Salesforce protects against &lt;em&gt;their&lt;/em&gt; failures—platform outages, hardware issues, and infrastructure-level disasters. They do not protect against &lt;em&gt;your&lt;/em&gt; failures—accidental deletions, bad data imports, automation errors, or malicious actions by users with admin access.&lt;/p&gt;
&lt;p&gt;Think of it this way: your bank protects its vault, but if you accidentally shred your own documents, that’s on you. Salesforce works the same way. The &lt;a href=&quot;/blog/why-you-should-sync-salesforce-to-an-external-database?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=announcing_dbsaver&quot;&gt;shared responsibility model&lt;/a&gt; means you need your own backup strategy, period.&lt;/p&gt;
&lt;h2 id=&quot;getting-started-takes-two-minutes&quot;&gt;&lt;strong&gt;Getting Started Takes Two Minutes&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;We designed DBSAVER to be as simple as possible to set up:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Sign up&lt;/strong&gt; at&lt;a href=&quot;https://dbsaver.com/?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=announcing_dbsaver&quot;&gt;dbsaver.com&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create a vault&lt;/strong&gt; to connect orgs and store data.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Connect your Salesforce org&lt;/strong&gt; using OAuth—no API keys to manage, no packages to install.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;That’s it.&lt;/strong&gt; DBSAVER starts backing up your data automatically.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you ever want to stop using DBSAVER, you can turn off the sync for your vault or delete the org or vault entirely to remove the data. No contracts, no lock-in.&lt;/p&gt;
&lt;p&gt;We also offer a free trial so you can see exactly how it works before committing. Give it a spin and see for yourself.&lt;/p&gt;
&lt;h2 id=&quot;whats-next&quot;&gt;&lt;strong&gt;What’s Next&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;DBSAVER is just getting started. We’re already protecting over 1.5 terabytes of data across 341 organizations, with more than 1.3 billion rows backed up and counting. As we grow, we’ll continue adding features based on what our users actually need—not feature bloat designed to justify enterprise pricing.&lt;/p&gt;
&lt;p&gt;If you’re already a CloudAnswers user—whether you’re using &lt;a href=&quot;/blog/say-goodbye-to-salesforce-duplicates-with-cloudanswers-potential-duplicates-bulk-merge?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=announcing_dbsaver&quot;&gt;Potential Duplicates&lt;/a&gt;,&lt;a href=&quot;/blog/report-sender-version-2-a-major-upgrade-for-salesforce-users&quot;&gt;Report Sender&lt;/a&gt;, or any of our other &lt;a href=&quot;/blog/introducing-app-reviews&quot;&gt;AppExchange apps&lt;/a&gt;—DBSAVER fits right into your toolkit. And if you’re new to CloudAnswers, welcome. We’ve been building practical Salesforce solutions since 2008, and DBSAVER is the latest example of what happens when you focus on solving real problems simply.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://dbsaver.com/?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=announcing_dbsaver&quot;&gt;Get started with DBSAVER today →&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Have questions? Reach out to us at &lt;a href=&quot;/contact&quot;&gt;cloudanswers.com/contact&lt;/a&gt;. We’d love to hear from you.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Agentforce Vibes: Can We Really Use AI to Write Code as Salesforce Admins?]]></title><description><![CDATA[Agentforce Vibes is changing what it means to be a Salesforce Admin. For years, our work revolved around no-code and low-code tools—but now AI is opening the door to a new reality: Admins who can generate and understand Apex without being traditional developers. In this post, I break down how Agentforce Vibes helps turn natural language into functional code, explains complex logic, assists with debugging, and even updates Flows and metadata.]]></description><link>https://cloudanswers.com/blog/agentforce-vibes-can-we-really-use-ai-to-write-code-as-salesforce-admins</link><guid isPermaLink="false">/blog/agentforce-vibes-can-we-really-use-ai-to-write-code-as-salesforce-admins</guid><pubDate>Wed, 11 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/02/image-6.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;For as long as I can remember, our role as &lt;a href=&quot;/blog/tips-for-becoming-a-salesforce-admin?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=agentforce_vibes_an_admins_perspective&quot;&gt;Salesforce Admins&lt;/a&gt; has been defined by the no-code/low-code philosophy. We’re the builders of our Salesforce orgs, the ones who leverage clicks-not-code tools like Process Builder, Workflow Rules, and, of course, &lt;a href=&quot;/blog/flows-vs-workflows-vs-process-builder-process-automation-in-salesforce?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=agentforce_vibes_an_admins_perspective&quot;&gt;Flows&lt;/a&gt; to automate business processes and customize user experiences. Our superpower? Understanding business needs and translating them into efficient, declarative solutions right within the Salesforce platform.&lt;/p&gt;
&lt;p&gt;But what if the boundaries of no-code started to get a little blurry? What if we could not only understand complex &lt;a href=&quot;https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dev_guide.htm&quot;&gt;Apex code&lt;/a&gt; but also generate it, debug it, and even deploy it, all without ever having to learn a coding language? This is exactly where &lt;a href=&quot;https://www.salesforce.com/agentforce/&quot;&gt;Agentforce Vibes&lt;/a&gt; steps in, a game-changer for us, Salesforce Admins.&lt;/p&gt;
&lt;p&gt;The big question I’ve been asking myself, and what we’re exploring today, is, can Agentforce truly empower us Admins to become viable coders, or at least highly proficient code-adjacent professionals? Let’s dive in and see what I’ve found.&lt;/p&gt;
&lt;h2 id=&quot;the-shift-from-traditional-admin-to-admin&quot;&gt;The Shift from Traditional Admin to Admin+&lt;/h2&gt;
&lt;p&gt;The Salesforce ecosystem is always evolving, and with it, the demands on us admins. As our businesses grow more complex, so do our Salesforce implementations. While declarative tools are incredibly powerful, there are always those scenarios where Apex code just becomes necessary to achieve specific, nuanced requirements.&lt;/p&gt;
&lt;p&gt;This is where I see the concept of Admin+ really taking shape. An Admin+ isn’t meant to replace a Developer; instead, we’re Admins augmented by AI. Agentforce Vibes fits perfectly into this vision, acting as a skill amplifier for us. It’s not about AI replacing our human expertise, but about enhancing it, allowing us to tackle challenges that were previously out of our reach, making us even more valuable to our organizations.&lt;/p&gt;
&lt;h3 id=&quot;setting-up-agentforce-vibes&quot;&gt;Setting Up Agentforce Vibes&lt;/h3&gt;
&lt;p&gt;Getting started is actually pretty straightforward. Agentforce Vibes can be used either through a dedicated Integrated Development Environment (IDE) or as an environment in Salesforce itself. If you choose to go with Agentforce Vibes in the web browser, it will look like this, allowing you to vibe code right in your org (preferably a sandbox). Either way you set it up, you just have to click the AgentForce Vibes icon to get to vibe coding.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2026/02/image-6-1024x646.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;explaining-code&quot;&gt;Explaining Code&lt;/h3&gt;
&lt;p&gt;One of Agentforce’s most valuable features, in my opinion, is its ability to break down complex Apex code into plain, understandable English. As a consultant, there are many hands constantly pushing code into my clients’ orgs. With Agentforce Vibes, I can simply specify the Apex Class or Trigger and ask it what it does, allowing me to get a much clearer picture of how everything works together. This is not only helpful for those who are not code inclined, but for the developers as well. Because instead of spending their time explaining what everything does, it speeds up knowledge transfer, allowing them to get back to coding and the Admins to understand everything quickly.&lt;/p&gt;
&lt;h3 id=&quot;my-real-world-example-bridging-the-flow-code-gap&quot;&gt;My Real-World Example: Bridging the Flow-Code Gap&lt;/h3&gt;
&lt;p&gt;Let’s walk through a recent project that perfectly illustrates Agentforce’s capabilities. I recently had a client request that seemed straightforward at first; they wanted a custom Lead creation process. I built a screen Flow to handle the user interface and initial logic, but I kept hitting a wall. The core issue was trying to bypass the default Lead conversion logic and existing validation rules that the Flow simply can’t do on its own. I thought I was staring down the barrel of a developer request, thinking that it was going to be a bigger project than it turned out to be.&lt;/p&gt;
&lt;p&gt;Then, I remembered Agentforce Vibes. I opened VS Code, pulled my existing Flow into the environment, and then turned to Agentforce. I instructed it to create an Apex Class that could plug into the Flow and create records, using the Flow variables. Agentforce didn’t just generate code, it became my coding partner. It created two Apex Classes to handle the two possible outcomes and inserted them into the Flow by updating the XML file.&lt;/p&gt;
&lt;p&gt;What truly impressed me was its iterative process. Agentforce ran test cases, identified issues, and then suggested and implemented resolutions. It was like having a developer by my side constantly testing, refining, and writing code. After several rounds of this guided iteration, I had a complete solution, a modified Flow with the new Apex Classes (including a test class) that Agentforce had written and refined. The best part, I was able to push all of it, the updated Flow and the three Apex Classes, directly from VS Code into the org with one command. This project, which would have previously required a developer and significant back-and-forth, was completed by me, an Admin, thanks to Agentforce.&lt;/p&gt;
&lt;h3 id=&quot;limitations-and-considerations-because-its-not-perfect&quot;&gt;Limitations and Considerations (Because It’s Not Perfect)&lt;/h3&gt;
&lt;p&gt;While Agentforce Vibes is incredibly powerful, we must approach it with a clear understanding of its role:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;We still need understanding: a foundational understanding of what the code should do and how Salesforce works. When prompting, I always made sure Agentforce understood the scope of its actions, explicitly telling it not to touch other code and asking it to explain its proposed changes before execution.&lt;/li&gt;
&lt;li&gt;It’s a tool, not a replacement for us: Agentforce is a sophisticated tool, not a substitute for our human intelligence. We must check its work. I treat its output as a highly intelligent first draft.&lt;/li&gt;
&lt;li&gt;Code review is essential: Before deploying any AI-generated code to a production environment, a thorough code review by a developer colleague is essential. This ensures quality, adherence to best practices, and prevents any issues in production.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;our-admin-work-with-agentforce-the-future-is-admin&quot;&gt;Our Admin Work with Agentforce: The Future is Admin+&lt;/h3&gt;
&lt;p&gt;AI isn’t just transforming our Admin role; it’s elevating it. The Admin+ model, where we are Admins augmented by AI tools like Agentforce Vibes, is rapidly becoming the standard. Admins who embrace this technology aren’t just keeping up; we’re becoming more versatile, capable, and ultimately, more valuable members of our teams. We can contribute to projects that once required specialized developer resources, accelerating innovation and efficiency within our organizations.&lt;/p&gt;
&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Agentforce Vibes significantly expands our capabilities as Admins, allowing us to undertake more complex and higher-skilled work than ever before. With this Salesforce native agent, we can confidently write, interpret, and debug Apex code, bridging that gap between declarative and programmatic solutions.&lt;/p&gt;
&lt;p&gt;The narrative isn’t about AI replacing us Admins, it’s about AI empowering us, making us more valuable, more capable, and more integral to the success of our Salesforce implementations. The future for Salesforce Admins is bright, and I truly believe it’s powered by intelligent tools like Agentforce Vibes.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Agentforce: Worth all of the Fanfare?]]></title><description><![CDATA[Salesforce’s vision for autonomous AI has been years in the making, but Agentforce 360 represents its boldest step yet. From defining agent behavior in the Builder to testing real-world booking scenarios, this article explores what Agentforce does well, where it still falls short, and whether its rapidly rising costs justify the value. Is Agentforce the future of Salesforce automation—or just an expensive work in progress?]]></description><link>https://cloudanswers.com/blog/agentforce-worth-all-of-the-fanfare</link><guid isPermaLink="false">/blog/agentforce-worth-all-of-the-fanfare</guid><pubDate>Wed, 11 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/02/image-10.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;AI is inescapable in 2026. Everyone is betting on it, and Salesforce certainly is with &lt;a href=&quot;https://www.salesforce.com/agentforce/&quot;&gt;Agentforce&lt;/a&gt;. Salesforce first launched Agentforce at &lt;a href=&quot;https://www.salesforce.com/dreamforce/&quot;&gt;Dreamforce&lt;/a&gt; 24 to much fanfare, with integrations in Salesforce, Slack, and Mulesoft products. One of the big promises was adding autonomous AI to the platform, allowing it to work without input from staff, serving customers.&lt;/p&gt;
&lt;p&gt;Since then, they have introduced 2.0, and at Dreamforce 25, Salesforce announced their newest version of Agentforce, with even more intelligence, better guardrails, and a &lt;a href=&quot;https://www.salesforce.com/agentforce/what-is-new/&quot;&gt;new voice mode&lt;/a&gt;. In this article, we’ll take a look at how Agentforce has changed in the short time that it has been alive, and how realistic the promises Salesforce makes actually are.&lt;/p&gt;
&lt;h2 id=&quot;from-einstein-to-agentforce-a-quick-history&quot;&gt;From Einstein to Agentforce: A Quick History&lt;/h2&gt;
&lt;p&gt;Agentforce isn’t Salesforce’s first venture into artificial intelligence. Salesforce’s first foray into AI was with the launch of Einstein in 2016. In its early days, Einstein offered limited but powerful capabilities, including predictive analytics, Lead Scoring, Opportunity Insights, and Forecasting.&lt;/p&gt;
&lt;p&gt;By 2017, Salesforce expanded its AI offerings with Einstein Bots for Service Cloud, enabling automated responses to basic inquiries, intelligent escalation of complex cases, and record updates. The following year, 2018, saw the introduction of Einstein Prediction Builder, empowering administrators to create predictive models without coding, allowing them to forecast churn, identify upsell opportunities, and predict payment delays.&lt;/p&gt;
&lt;p&gt;Salesforce leveled up its AI integration in 2023 with the introduction of Einstein GPT. This innovation combined the power of public LLMs with proprietary Salesforce CRM data, enabling users to generate custom and personalized emails, call summaries, marketing copy, and knowledge articles. This shift from purely predictive to generative AI was a significant game-changer.&lt;/p&gt;
&lt;p&gt;However, generative AI’s true potential is unlocked through interaction, which is where Einstein Copilot, released in 2024, came into play. Copilot serves as the conversational layer, allowing users to interact with the AI, such as asking it to display opportunities based on specific criteria or generate comprehensive reports. Essentially, Einstein GPT acts as the brain, while Copilot provides the voice and hands, making it accessible and actionable.&lt;/p&gt;
&lt;p&gt;Now, Agentforce is core to the Salesforce strategy. It is a key part of their messaging, even renaming the platform to Agentforce 360 and embedding Agentforce in everything from developer tools to user-specific solutions, as well as letting people build their own agents. If you’re confused by what Agentforce “is,” you are not alone, since the name is now on many of the Salesforce products. When determining your agent strategy, make sure you’re clear on your business goals, &lt;em&gt;then&lt;/em&gt; choose the right set of tools.&lt;/p&gt;
&lt;h3 id=&quot;salesforce-ai-evolution-at-a-glance&quot;&gt;&lt;strong&gt;Salesforce AI Evolution at a Glance&lt;/strong&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Einstein GPT&lt;/th&gt;
&lt;th&gt;Einstein Copilot&lt;/th&gt;
&lt;th&gt;Agentforce&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;Role&lt;/td&gt;
&lt;td&gt;Generative AI&lt;/td&gt;
&lt;td&gt;Conversation Assistant&lt;/td&gt;
&lt;td&gt;Autonomous Agent Platform.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Launch&lt;/td&gt;
&lt;td&gt;2023&lt;/td&gt;
&lt;td&gt;2024&lt;/td&gt;
&lt;td&gt;2024 (1.0)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Focus&lt;/td&gt;
&lt;td&gt;Produces content, predictions, insights&lt;/td&gt;
&lt;td&gt;Natural-langauge, Q&amp;amp;A, guided actions&lt;/td&gt;
&lt;td&gt;Executes workflows, resolves cases, orchestrates across systems&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User Interaction&lt;/td&gt;
&lt;td&gt;Mostly behind the scenes&lt;/td&gt;
&lt;td&gt;Direct, user-facing&lt;/td&gt;
&lt;td&gt;Often background, monitored via Command Center&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strength&lt;/td&gt;
&lt;td&gt;The brain&lt;/td&gt;
&lt;td&gt;The interface&lt;/td&gt;
&lt;td&gt;The operators&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Example&lt;/td&gt;
&lt;td&gt;Drafts a personalized sales email&lt;/td&gt;
&lt;td&gt;Allows a rep to ask “draft a thank-you email”&lt;/td&gt;
&lt;td&gt;Agent sends the email, updates the record, schedules a follow-up&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Yet, Salesforce wasn’t content with the user still being actively involved in every step. The vision was to go further: to have AI act autonomously, within defined guardrails, to execute insights automatically.&lt;/p&gt;
&lt;h2 id=&quot;inside-the-agent-builder-how-agentforce-actually-works&quot;&gt;&lt;strong&gt;Inside the Agent Builder: How Agentforce Actually Works&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This ambition is precisely where Agentforce steps in, leveraging all the data within an organization to power its actions. So how do these agents actually work? The process begins in the Agentforce Builder, where the first step is to define the agent’s purpose. For instance, let’s consider creating a Sales agent to assist customers in purchasing generators at our hypothetical solar company. To get started, we would build a new topic, which we’ll simply call “Sales.”&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2026/02/image-8-1024x785.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;The Agent Builder is a fully-featured environment, allowing for the setting of detailed descriptions and precise scoping of the agent’s operational boundaries. In the initial setup, simply providing “Sales” as the topic prompted Agentforce to automatically complete almost all of the information needed. We can then add specific training data, such as details about generators, to further enhance its understanding.&lt;/p&gt;
&lt;p&gt;Every step of this process is customizable, enabling you to fine-tune the agent to perform only what you define and to adhere to specified parameters strictly. This level of granular control is a core strength of Agentforce, ensuring that the autonomous AI functions not as an opaque “black box,” but as a carefully calibrated extension of your business logic.&lt;/p&gt;
&lt;p&gt;The ability to customize every detail, from topics to the data it is trained on, to the actions it is allowed to take, is what makes it so powerful. With this new “Sales” Agent we have created, it can interact with a customer, taking their shipping information, answering product-based questions, and processing payments all from a chat window. This enables sales teams to increase volume and allows the highly skilled salespeople to maximize their productivity and profits in ways never seen before.&lt;/p&gt;
&lt;p&gt;Setting up an Agent seems incredibly straightforward and downright, almost foolproof, but how do they perform in the real world? Let’s go ahead and use Salesforce’s example to see if an agent provided with the proper information can book me a dinner for two.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;blob:https://cloudanswers.com/1f032f83-70e2-462b-9efb-3548a58ab1dc&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;This agent is going to help our user Jim Halpert book a farm-to-table cooking class.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2026/02/image-9-1024x767.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;As you can see, the agent is following its instructions by asking for both the member Id and email before proceeding with the conversation. Once I provided that information and said yes, it booked the class for me. However, as you can see, it is not perfect; it failed to provide the cost information to me after explicitly asking for it. The booking does successfully show on the customer record.&lt;/p&gt;
&lt;p&gt;On the customer record, we are able to specify the Experience Interests, which Agentforce can use to recommend related events that it thinks the user will like.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2026/02/image-7-1024x920.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Using this information, let’s try another test with the Agent, seeing if it can recommend an experience for the customer and book it, using the customer’s interests.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2026/02/image-10-1024x675.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;As you can see here, the Agent knows that the customer enjoys Cultural Tours and Workshops, Dining Experiences, and Spa &amp;amp; Wellness. Using this information, it was able to suggest a handful of experiences that the customer would be interested in. Once I selected the Spa Retreat, it booked it for me and added that booking to the contact record.&lt;/p&gt;
&lt;p&gt;Agentforce Agents are capable, but not perfect; they still need a lot of guidelines and training. As you saw from the first example, it did not pull in the price data, even though I had asked it to.&lt;/p&gt;
&lt;p&gt;The reason it failed was that in the instructions, I did not tell it that it had to share pricing information if asked. It’s a great start; ideally, it would be smart enough to do that on its own, but situations like that are things to consider when building out and deploying your own autonomous agents. Another thing to consider is the cost of the agents.&lt;/p&gt;
&lt;p&gt;Agentforce’s advertised cost is $125-$550 per user per month, on top of the Data Cloud and implementation costs, which puts you at 50k on the low end for existing users, and well into the 6 figures for new users.&lt;/p&gt;
&lt;p&gt;Compare that to the possible cost of implementing your own solution, using APIs and prompt engineering to send data back and forth to an external LLM, and it makes you stop to think about whether the value is really there yet, and if it aligns with the cost.&lt;/p&gt;
&lt;h2 id=&quot;the-verdict-powerful-promising-and-still-maturing&quot;&gt;&lt;strong&gt;The Verdict: Powerful, Promising, and Still Maturing&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Agentforce represents a genuine leap forward in what’s possible with autonomous AI in the enterprise. The Agent Builder is intuitive, the customization options are extensive, and when properly configured, agents can deliver impressive results.&lt;/p&gt;
&lt;p&gt;But “properly configured” is doing a lot of heavy lifting in that sentence. These agents don’t think for themselves—they execute what you explicitly define. Miss an instruction, and you’ll have gaps in functionality and a poor user experience.&lt;/p&gt;
&lt;p&gt;The pricing model has improved with Flex Credits, but costs can still climb quickly for enterprise deployments. Make sure you model realistic usage scenarios before committing.&lt;/p&gt;
&lt;p&gt;Is Agentforce worth the hype? For the right use cases, absolutely. For others, it might still be an expensive work in progress. The key is understanding exactly what you need and testing thoroughly before going live.&lt;/p&gt;
&lt;p&gt;Whether you’re evaluating Agentforce, optimizing your existing Salesforce environment, or need help building out automation,&lt;a href=&quot;/contact&quot;&gt;CloudAnswers can help&lt;/a&gt;. We’ve been a Salesforce partner since 2008, helping clients get more out of their platform through&lt;a href=&quot;/products&quot;&gt;consulting, apps, and custom development&lt;/a&gt;.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Why Consultants need Event Monitoring]]></title><description><![CDATA[Event monitoring is often overlooked by consultants, but it’s essential for securing and optimizing Salesforce environments. This post explores the importance of Salesforce Shield, its components, and a real-life scenario where event monitoring saved the day.]]></description><link>https://cloudanswers.com/blog/why-consultants-need-event-monitoring</link><guid isPermaLink="false">/blog/why-consultants-need-event-monitoring</guid><pubDate>Wed, 11 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/01/0x0.webp&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Consultants play a crucial role in implementing Salesforce for their clients, and one often overlooked aspect of that is event monitoring. We don’t think about it until it’s too late, and we’re left asking ourselves how this modification could have happened to this many records without anyone noticing. The simple fact of the matter is this – We’re human. We can’t monitor everyone in the system’s activity at once. That’s where event monitoring comes in.&lt;/p&gt;
&lt;p&gt;Salesforce offers event monitoring through an add-on service, called &lt;a href=&quot;https://www.salesforce.com/platform/shield/&quot;&gt;Salesforce Shield&lt;/a&gt;. Let me tell you a little bit about it, and then I’ll tell you about a time I was glad that my client had it.&lt;/p&gt;
&lt;h1 id=&quot;salesforce-shield&quot;&gt;Salesforce Shield&lt;/h1&gt;
&lt;p&gt;Salesforce Shield has four main components;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Platform encryption&lt;/li&gt;
&lt;li&gt;Field audit trail&lt;/li&gt;
&lt;li&gt;Event, monitoring&lt;/li&gt;
&lt;li&gt;Einstein data detection.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you work in any sector that requires legal compliance, you probably already have Salesforce Shield.&lt;/p&gt;
&lt;h2 id=&quot;platform-encryption&quot;&gt;&lt;strong&gt;Platform Encryption&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This component encrypts all of your data on Salesforce’s servers. This way if ever there was a data breach, you’d still be protected because the encrypted data would be unreadable. For a deeper look at how Salesforce handles data protection at every level, check out our post on &lt;a href=&quot;/blog/designing-user-security-and-visibility-in-salesforce?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=why_consultants_need_event_monitoring&quot;&gt;designing user security and visibility in Salesforce&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;field-audit-trail&quot;&gt;&lt;strong&gt;Field Audit Trail&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Field tracking history is built into Salesforce by default, letting you track up to 20 fields per object. But &lt;a href=&quot;https://help.salesforce.com/s/articleView?id=sf.salesforce_shield.htm&amp;amp;type=5&quot;&gt;Field Audit Trail&lt;/a&gt; offers you more. With this, you can track up to 60 fields per object and store that data for up to 10 years.&lt;/p&gt;
&lt;h2 id=&quot;salesforce-event-monitoring&quot;&gt;&lt;strong&gt;Salesforce Event Monitoring&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;There are two types of monitoring included here: core event monitoring, and&lt;a href=&quot;https://developer.salesforce.com/docs/atlas.en-us.securityImplGuide.meta/securityImplGuide/salesforce_shield.htm&quot;&gt;real-time event monitoring&lt;/a&gt;. Core event monitoring allows the admin to go over all of the data that has happened over the course of the last 30 days. After 30 days the log files are purged. There’s also real-time event monitoring where you can be notified if a user takes certain actions.&lt;/p&gt;
&lt;p&gt;For example, if a sales user who’s about to leave your company starts exporting reports with contacts, you can set up precautions that let you in real-time prevent them from&lt;a href=&quot;/blog/salesforce-reporting-tips-and-best-practices?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=why_consultants_need_event_monitoring&quot;&gt;exporting those and other reports&lt;/a&gt;, and even lock the user. For a more technical deep-dive into how architects and admins should think about event monitoring, Salesforce has published an excellent&lt;a href=&quot;https://www.salesforce.com/blog/architect-guide-event-monitoring/&quot;&gt;Architect’s Guide to Event Monitoring&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;einstein-data-detect&quot;&gt;&lt;strong&gt;Einstein Data Detect&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This component detects sensitive data such as credit card numbers, emails, Social Security numbers, URLs, and IP addresses. Then it works with platform encryption, encrypting the data at rest.&lt;/p&gt;
&lt;h2 id=&quot;the-time-it-saved-my-bacon&quot;&gt;The Time It Saved My Bacon&lt;/h2&gt;
&lt;p&gt;On a weekly standing call with a client, they raised a concern about how the close date on a handful of Opportunities had been changed repeatedly per record, and the system user was the user responsible for all the changes. There was a &lt;a href=&quot;/blog/replace-code-with-flows?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=why_consultants_need_event_monitoring&quot;&gt;Flow&lt;/a&gt; evaluating the record criteria every time it was updated… when it should’ve only been once. That was happening for over a year.&lt;/p&gt;
&lt;p&gt;Thankfully, in this instance, we had Event Monitoring. We were able to query all the data, and with some formulas and uploads, it was like that data mishap never even happened. I’m grateful the client has Event Monitoring because we were able to restore their data successfully ensuring quality and success on their end. The backups we had from Event Monitoring allowed us to rather easily, and within a timely fashion, get them back on track.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Event monitoring is something I’d recommend that all consultants have. It empowers them to secure the platform, enhance performance, ensure compliance, and resolve issues proactively. By leveraging event monitoring Salesforce consultants can deliver greater value to their clients, ensuring the environments are robust and secure.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[8 Spring ’26 Features Salesforce Admins Can’t Afford to Miss]]></title><description><![CDATA[Salesforce’s Spring ’26 release delivers features that solve real admin pain points. We’ve identified the 8 updates that’ll have the biggest impact on your daily work, from long-awaited security improvements to Flow automation that doesn’t require a developer. Here’s what deserves your attention.]]></description><link>https://cloudanswers.com/blog/8-spring-26-features-salesforce-admins-cant-afford-to-miss</link><guid isPermaLink="false">/blog/8-spring-26-features-salesforce-admins-cant-afford-to-miss</guid><pubDate>Thu, 05 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/02/image-5.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;&lt;a href=&quot;https://www.salesforce.com/news/stories/spring-2026-product-release-announcement/&quot;&gt;Salesforce’s Spring ’26 release&lt;/a&gt; lands on February 23rd, 2026, and they’re delivering more features that solve Admin pain points. Sandbox preview orgs have been available since early December 2025, giving you time to explore what’s coming.&lt;/p&gt;
&lt;p&gt;We’ve combed through the release notes to identify the eight updates that’ll have the biggest impact on your daily &lt;a href=&quot;/blog/tips-for-becoming-a-salesforce-admin?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=spring_26_for_admins&quot;&gt;Admin work&lt;/a&gt;. From long-awaited security improvements to &lt;a href=&quot;/blog/flows-vs-workflows-vs-process-builder-process-automation-in-salesforce?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=spring_26_for_admins&quot;&gt;Flow automation&lt;/a&gt; that doesn’t require a developer, here’s what deserves your attention.****&lt;/p&gt;
&lt;h2 id=&quot;1-error-console--stop-playing-whack-a-mole-with-user-issues&quot;&gt;&lt;strong&gt;1. Error Console – Stop Playing Whack-a-Mole with User Issues&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt; Centralized monitoring for Lightning page errors across your entire org.&lt;/p&gt;
&lt;p&gt;The days of reactive troubleshooting are over. The Error Console gives you visibility into page-level errors before users even report them. You can identify which pages throw errors most frequently, spot patterns, and fix issues during scheduled maintenance instead of dealing with mountains of tickets.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2026/02/image-1.png&quot; alt=&quot;Error Console&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;2-delete-salesforce-files-permission--a-welcome-security-change&quot;&gt;&lt;strong&gt;2. Delete Salesforce Files Permission – A Welcome Security Change&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt; Let users delete files without granting the “Modify All Data” permission.&lt;/p&gt;
&lt;p&gt;This is huge. Before Spring ’26, giving someone file deletion rights meant handing over “Modify All Data” permissions, essentially the keys to your kingdom. Not happening on any security-conscious admin’s watch.&lt;/p&gt;
&lt;p&gt;The new “Delete Salesforce Files” permission follows the principle of least privilege. Users can delete files they have access to without owning them, and you can sleep at night knowing you haven’t created a security vulnerability.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Perfect for:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Content managers maintaining shared libraries&lt;/li&gt;
&lt;li&gt;Team leads handling project documentation&lt;/li&gt;
&lt;li&gt;Compliance teams that are removing outdated materials&lt;/li&gt;
&lt;li&gt;Anyone who needs file management rights without Admin access&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2026/02/image.png&quot; alt=&quot;Salesforce Files Permission&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;3-dashboard-tables-that-actually-remember-your-report-settings&quot;&gt;&lt;strong&gt;3. Dashboard Tables That Actually Remember Your Report Settings&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt; Automatically carries over all report configurations when adding tables to dashboards.&lt;/p&gt;
&lt;p&gt;Remember spending 20 minutes formatting a report, perfect groupings, filters, everything, then adding it to a dashboard and having to reconfigure the whole thing? That nightmare ends with Spring ’26. Dashboard tables now respect your report settings automatically. Add a report table to a dashboard, and all your configurations transfer. No duplicate work, no inconsistencies, no frustration.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Screen Flow Styling – Align Flows with your branding&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt; Native styling options built directly into Flow Builder.&lt;/p&gt;
&lt;p&gt;Making a Flow screen look decent used to require either accepting Salesforce’s bland defaults or building custom Lightning components. Spring ’26 changes the game with native styling options in Flow Builder.&lt;/p&gt;
&lt;p&gt;Customize background colors, borders, fonts, and button colors through a new Style tab in screen elements. Match your company branding or create a visual hierarchy, no code required.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2026/02/image-2-1024x640.png&quot; alt=&quot;Dashboard Tables&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. Kanban Board Component – Visual Workflow Management in Flows&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt; Embeds a native Kanban board directly into Screen Flows.&lt;/p&gt;
&lt;p&gt;This feature delivers the kind of modern, interactive experience users expect. Drag and drop functionality for moving records between columns, all inside a Screen Flow.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Real-world applications:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sales pipeline stage management with a visual board view&lt;/li&gt;
&lt;li&gt;Project task tracking with drag to update status&lt;/li&gt;
&lt;li&gt;Support ticket workflows with priority lanes&lt;/li&gt;
&lt;li&gt;Recruitment pipeline management&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Users interact with records visually without leaving the Flow screen. It’s intuitive, efficient, and feels like software built in 2026, not 2006.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2026/02/image-3-1024x445.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;6-record-triggered-flows-on-files--automate-your-document-processes&quot;&gt;&lt;strong&gt;6. Record Triggered Flows on Files – Automate Your Document Processes&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt; Create Record Triggered Flows on ContentDocument and ContentVersion objects.&lt;/p&gt;
&lt;p&gt;This is a game-changer for document management. What used to require Apex can now be done natively in Flow. Every time someone uploads a file, updates it, or links it to a record, you can trigger automated workflows.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Automation possibilities you couldn’t do before:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Approval processes when contracts are uploaded&lt;/li&gt;
&lt;li&gt;Notifications when important documents arrive&lt;/li&gt;
&lt;li&gt;Automatic tagging and categorization based on content&lt;/li&gt;
&lt;li&gt;Document expiration reminders&lt;/li&gt;
&lt;li&gt;File naming standardization&lt;/li&gt;
&lt;li&gt;Compliance checks on upload&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your org handles significant document volume, this feature opens up automation opportunities that previously required custom code or expensive apps.&lt;/p&gt;
&lt;h2 id=&quot;7-message-component--alerts-in-screen-flows&quot;&gt;&lt;strong&gt;7. Message Component – Alerts in Screen Flows&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt; Dedicated component for displaying success messages, warnings, and errors in Screen Flows.&lt;/p&gt;
&lt;p&gt;No more cobbling together text displays and hoping they look distinct enough. The Message component provides proper styling and accessibility for informational, success, warning, and error messages. Small feature, big impact on how polished your Flows feel.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2026/02/image-4-1024x435.png&quot; alt=&quot;Message Component&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;8-external-client-apps--better-security-for-integrations&quot;&gt;&lt;strong&gt;8. External Client Apps – Better Security for Integrations&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt; Replaces Connected Apps with more secure External Client Apps for new integrations.&lt;/p&gt;
&lt;p&gt;Salesforce is blocking the creation of new Connected Apps and pushing admins toward External Client Apps. You can keep existing Connected Apps running, but new integrations need External Client Apps (or you’ll need to contact Support for exceptions).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What makes External Client Apps better:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More granular OAuth policies&lt;/li&gt;
&lt;li&gt;Mandatory scope validation for client credentials flows&lt;/li&gt;
&lt;li&gt;Improved auditability and monitoring&lt;/li&gt;
&lt;li&gt;Better alignment with modern security standards&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This shift reflects Salesforce’s response to industry-wide OAuth security concerns. It’s not just a preference—it’s about protecting your org from emerging threats.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Action required:&lt;/strong&gt; Audit your Connected Apps inventory now. Start planning migrations for actively maintained integrations. This isn’t something to put off.&lt;/p&gt;
&lt;h2 id=&quot;a-spring-26-action-plan&quot;&gt;&lt;strong&gt;A Spring ’26 Action Plan&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Don’t let these features go to waste. Here’s how to take advantage of them:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This Week:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Sign up for a Pre Release Org&lt;/strong&gt; &lt;a href=&quot;https://www.salesforce.com/form/signup/prerelease-spring26/&quot;&gt;https://www.salesforce.com/form/signup/prerelease spring26/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Review the full release notes&lt;/strong&gt; &lt;a href=&quot;https://help.salesforce.com/s/articleView?id=release-notes.salesforce_release_notes.htm&amp;amp;release=260&amp;amp;type=5&quot;&gt;https://help.salesforce.com/s/articleView?id=release notes.salesforce_release_notes.htm&amp;amp;release=260&amp;amp;type=5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Audit your Connected Apps&lt;/strong&gt; – document what you’re using&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Before Production Rollout:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Test the Error Console&lt;/strong&gt; – identify problem pages in your sandbox&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Review file deletion permissions&lt;/strong&gt; – plan permission set updates&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update key dashboards&lt;/strong&gt; – leverage new report table behavior&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Identify Flow improvement opportunities&lt;/strong&gt; – which Flows need styling, Kanban boards, or file triggers?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Production Rollout Dates:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;January 10, 2026&lt;/li&gt;
&lt;li&gt;February 14, 2026&lt;/li&gt;
&lt;li&gt;February 21, 2026&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;spring-26-focuses-on-making-admin-tools-more-powerful&quot;&gt;&lt;strong&gt;Spring ’26 Focuses on Making Admin Tools More Powerful&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Spring ’26 focuses on making admin tools more powerful without requiring development skills. These eight features address real pain points: security that doesn’t require excessive permissions, Flow automation that looks professional, proactive error monitoring, and file management capabilities that should have existed years ago.&lt;/p&gt;
&lt;p&gt;The security improvements, granular file permissions, and External Client Apps aren’t optional nice-to-haves. They’re essential for managing modern Salesforce orgs responsibly as data access and compliance scrutiny increase.Are you ready for Spring ’26? &lt;a href=&quot;/contact&quot;&gt;Contact CloudAnswers&lt;/a&gt; if you need help preparing your org or implementing these new features effectively.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Why You Should Sync Salesforce to an External Database]]></title><description><![CDATA[Quick Summary Why Your Salesforce Data Needs to Break Free Salesforce has…]]></description><link>https://cloudanswers.com/blog/why-you-should-sync-salesforce-to-an-external-database</link><guid isPermaLink="false">/blog/why-you-should-sync-salesforce-to-an-external-database</guid><pubDate>Thu, 08 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2026/01/SalesForce-Database.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h2 id=&quot;quick-summary&quot;&gt;Quick Summary&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking data silos and enabling advanced analytics: Syncing Salesforce data to an external database unlocks sophisticated cross-system reporting, predictive analytics, and business intelligence capabilities that native Salesforce reporting simply cannot provide.&lt;/li&gt;
&lt;li&gt;Disaster recovery, compliance, and cost optimization: External database synchronization provides robust backup protection, ensures regulatory compliance with customizable retention policies, and can dramatically reduce Salesforce storage costs (which run up to $1,500 per 500MB annually).&lt;/li&gt;
&lt;li&gt;Powering custom applications and real-time integrations: By syncing to databases like PostgreSQL, MySQL, or cloud data warehouses, businesses can build high-performance customer-facing applications, enable bidirectional data flows, and create unified data architectures without hitting Salesforce API limits.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Why Your Salesforce Data Needs to Break Free&lt;/p&gt;
&lt;p&gt;Salesforce has earned its reputation as the world’s leading customer relationship management platform. With its powerful capabilities for managing sales pipelines, customer interactions, and business processes, it’s no wonder that over &lt;a href=&quot;https://www.salesforce.com/crm/worlds-number-one-crm/&quot;&gt;150,000 companies&lt;/a&gt; rely on it as their system of record.&lt;/p&gt;
&lt;p&gt;But here’s a truth that many Salesforce administrators and business leaders discover after years of using the platform: Salesforce is an exceptional CRM, but it was never designed to be a data warehouse.&lt;/p&gt;
&lt;p&gt;The distinction matters more than you might think. While Salesforce excels at transactional operations—creating records, managing workflows, and supporting day-to-day business activities—it carries inherent limitations when organizations try to use it for comprehensive analytics, cross-system reporting, or as a central repository for all business data.&lt;/p&gt;
&lt;p&gt;The solution? Syncing your Salesforce data to an external database. Whether you’re looking to power advanced analytics, ensure business continuity, meet compliance requirements, or build custom applications, understanding how and why to replicate your Salesforce data is becoming increasingly essential for modern businesses.&lt;/p&gt;
&lt;p&gt;In this comprehensive guide, we’ll explore the compelling reasons to sync Salesforce to external databases, examine the various methods available, and provide actionable guidance for implementing a sync strategy that drives real business value.&lt;/p&gt;
&lt;h2 id=&quot;understanding-salesforces-data-storage-architecture&quot;&gt;Understanding Salesforce’s Data Storage Architecture&lt;/h2&gt;
&lt;p&gt;Before diving into the reasons for syncing to an external database, it’s important to understand how Salesforce handles data—and where its limitations emerge.&lt;/p&gt;
&lt;h3 id=&quot;salesforces-database-design&quot;&gt;Salesforce’s Database Design&lt;/h3&gt;
&lt;p&gt;Salesforce runs on the Force.com platform, which provides a powerful relational database. In Salesforce terminology, a table is called an “object,” a column is a “field,” and a row is a “record.” This structure supports the platform’s incredible flexibility in customization and&lt;a href=&quot;/blog/flows-vs-workflows-vs-process-builder-process-automation-in-salesforce?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=sync_salesforce_to_an_external_database&quot;&gt;workflow automation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;However, Salesforce’s architecture is fundamentally different from a traditional data warehouse. Here’s why that matters:&lt;/p&gt;
&lt;h4 id=&quot;transactional-vs-analytical-design&quot;&gt;Transactional vs. Analytical Design&lt;/h4&gt;
&lt;p&gt;Salesforce is optimized for OLTP (Online Transaction Processing)—handling real-time data operations like creating leads, updating opportunities, and managing customer interactions. Data warehouses are designed for OLAP (Online Analytical Processing)—complex queries across massive datasets for reporting and analysis.&lt;/p&gt;
&lt;h4 id=&quot;storage-costs&quot;&gt;Storage Costs&lt;/h4&gt;
&lt;p&gt;Salesforce data storage isn’t cheap. According to Salesforce’s pricing structure, additional data storage costs approximately $1,500 per 500MB annually, while file storage runs $60 per 1GB per year. For organizations with millions of records, these costs add up quickly. Learn more about &lt;a href=&quot;/blog/avoid-the-salesforce-data-storage-limit?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=sync_salesforce_to_an_external_database&quot;&gt;avoiding the Salesforce data storage limit&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&quot;query-performance&quot;&gt;Query Performance&lt;/h4&gt;
&lt;p&gt;As your Salesforce org grows, you may notice performance degradation on complex analytical queries. Native Salesforce reports have built-in limitations—including maximum row counts, limited cross-object reporting capabilities, and restricted historical data access.&lt;/p&gt;
&lt;h4 id=&quot;api-limits&quot;&gt;API Limits&lt;/h4&gt;
&lt;p&gt;Every Salesforce org has daily API call limits based on your edition and user licenses. Heavy reporting or integration workloads can quickly consume these limits, impacting other business processes.&lt;/p&gt;
&lt;h3 id=&quot;native-salesforce-storage-limits&quot;&gt;Native Salesforce Storage Limits&lt;/h3&gt;
&lt;p&gt;Understanding your storage allocation is crucial for planning a sync strategy. Each Salesforce org receives storage based on its edition:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Edition&lt;/th&gt;
&lt;th&gt;Data Storage Minimum&lt;/th&gt;
&lt;th&gt;Per-User Allocation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;Professional&lt;/td&gt;
&lt;td&gt;10 GB&lt;/td&gt;
&lt;td&gt;20 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise&lt;/td&gt;
&lt;td&gt;10 GB&lt;/td&gt;
&lt;td&gt;20 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;td&gt;10 GB&lt;/td&gt;
&lt;td&gt;120 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Performance&lt;/td&gt;
&lt;td&gt;10 GB&lt;/td&gt;
&lt;td&gt;120 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;For organizations with large data volumes, complex &lt;a href=&quot;/blog/creating-automated-reports-in-salesforce?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=sync_salesforce_to_an_external_database&quot;&gt;reporting requirements&lt;/a&gt;, or long-term data retention needs, these limits can become significant constraints. For a deeper dive into storage management, see our guide on&lt;a href=&quot;/blog/effective-data-storage-in-salesforce-for-every-business-size?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=sync_salesforce_to_an_external_database&quot;&gt;effective data storage in Salesforce for every business size&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;the-top-10-reasons-to-sync-salesforce-to-an-external-database&quot;&gt;The Top 10 Reasons to Sync Salesforce to an External Database&lt;/h2&gt;
&lt;h3 id=&quot;1-unlocking-advanced-analytics-and-business-intelligence&quot;&gt;1. Unlocking Advanced Analytics and Business Intelligence&lt;/h3&gt;
&lt;p&gt;Perhaps the most compelling reason to sync Salesforce data externally is to unlock analytics capabilities that simply aren’t possible within Salesforce’s native environment.&lt;/p&gt;
&lt;h4 id=&quot;the-problem&quot;&gt;The Problem&lt;/h4&gt;
&lt;p&gt;Native Salesforce reporting tools—while useful for operational dashboards—have significant limitations. Report Builder previews show a maximum of 20 rows for summary and matrix reports, subscription limits cap at 15 reports per user in Unlimited Edition, and the platform’s three-month lookback window restricts long-term trend analysis. Learn &lt;a href=&quot;/blog/salesforce-reports-run-faster?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=sync_salesforce_to_an_external_database&quot;&gt;how to make your Salesforce reports run faster&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&quot;the-solution&quot;&gt;The Solution&lt;/h4&gt;
&lt;p&gt;By syncing Salesforce data to a purpose-built data warehouse like Snowflake, BigQuery, or Redshift, you can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Run complex queries across millions of records without performance degradation&lt;/li&gt;
&lt;li&gt;Join Salesforce data with data from other systems (ERP, marketing automation, support ticketing)&lt;/li&gt;
&lt;li&gt;Build sophisticated predictive models and machine learning pipelines&lt;/li&gt;
&lt;li&gt;Create interactive dashboards in tools like Tableau or Power BI with unlimited data access&lt;/li&gt;
&lt;li&gt;Perform historical trend analysis spanning years, not months&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;2-breaking-down-data-silos-across-your-organization&quot;&gt;2. Breaking Down Data Silos Across Your Organization&lt;/h3&gt;
&lt;p&gt;Data silos represent one of the most expensive problems facing modern enterprises. When customer information lives in Salesforce, product data lives in your ERP, and marketing engagement data lives in your automation platform, you’re essentially operating with incomplete pictures across every department.&lt;/p&gt;
&lt;p&gt;When you sync Salesforce to a central data repository, you enable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Unified Customer Views: Combine CRM data with support tickets, product usage, billing history, and marketing interactions&lt;/li&gt;
&lt;li&gt;Cross-Functional Alignment: Sales, marketing, and customer success teams work from the same data foundation&lt;/li&gt;
&lt;li&gt;Accurate Attribution: Track the complete customer journey from first touch through renewal&lt;/li&gt;
&lt;li&gt;Better Decision-Making: Leadership gains visibility into true business performance across departments&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;3-ensuring-robust-backup-and-disaster-recovery&quot;&gt;3. Ensuring Robust Backup and Disaster Recovery&lt;/h3&gt;
&lt;p&gt;Many organizations operate under a dangerous assumption: because Salesforce is in the cloud, their data is automatically protected. The reality is more nuanced—and more risky.&lt;/p&gt;
&lt;p&gt;Consider these scenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An administrator accidentally mass-deletes thousands of records&lt;/li&gt;
&lt;li&gt;A misconfigured integration overwrites critical field values&lt;/li&gt;
&lt;li&gt;A departing employee maliciously modifies or deletes data&lt;/li&gt;
&lt;li&gt;A complex deployment corrupts metadata and record relationships&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Without proper backup, recovering from these scenarios ranges from difficult to impossible.&lt;/p&gt;
&lt;p&gt;By syncing Salesforce data to an external database, you create:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Point-in-Time Recovery: Restore data to any previous state, not just the most recent backup&lt;/li&gt;
&lt;li&gt;Granular Recovery: Recover individual records, specific fields, or entire objects as needed&lt;/li&gt;
&lt;li&gt;Business Continuity: Maintain operations even during Salesforce outages or incidents&lt;/li&gt;
&lt;li&gt;Audit Trail: Maintain complete historical records for compliance and forensic analysis&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The 3-2-1 backup strategy (3 copies of data, on 2 different media types, with 1 copy offsite) remains a gold standard—and syncing to an external database helps achieve this protection.&lt;/p&gt;
&lt;h3 id=&quot;4-reducing-salesforce-storage-costs&quot;&gt;4. Reducing Salesforce Storage Costs&lt;/h3&gt;
&lt;p&gt;As mentioned earlier, Salesforce storage costs can become a significant line item—especially for organizations with high data volumes.&lt;/p&gt;
&lt;p&gt;At $1,500 per 500MB annually for data storage, an organization with 50GB of data faces $150,000 per year just in storage fees. That same data in a cloud data warehouse like Snowflake or BigQuery might cost a fraction of that amount.&lt;/p&gt;
&lt;p&gt;Strategic Archiving: By syncing data to an external database, organizations can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Archive historical records while maintaining accessibility&lt;/li&gt;
&lt;li&gt;Remove stale data from Salesforce to improve performance&lt;/li&gt;
&lt;li&gt;Keep only actively-needed data in the CRM&lt;/li&gt;
&lt;li&gt;Maintain complete historical records externally for reporting and compliance&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;5-improving-salesforce-application-performance&quot;&gt;5. Improving Salesforce Application Performance&lt;/h3&gt;
&lt;p&gt;Salesforce performance can degrade as data volumes grow. Large reports take longer to run, list views load slowly, and complex queries time out. This impacts every user in your organization, every day.&lt;/p&gt;
&lt;p&gt;Performance Optimization Through Sync:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Offload Reporting: Run heavy analytical queries against the external database, not production Salesforce&lt;/li&gt;
&lt;li&gt;Reduce Record Counts: Archive older records externally to slim down your Salesforce org&lt;/li&gt;
&lt;li&gt;Eliminate API Consumption: Once data is synced, reporting tools query the external database directly&lt;/li&gt;
&lt;li&gt;Enable Real-Time Dashboards: External databases can handle concurrent queries that would overwhelm Salesforce&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Organizations using&lt;a href=&quot;https://www.heroku.com/connect/&quot;&gt;Heroku Connect&lt;/a&gt; with Heroku Postgres, for example, benefit from incredibly fast queries with low latency—because the data is co-located with the application making the queries, rather than requiring round-trips to Salesforce APIs.&lt;/p&gt;
&lt;h3 id=&quot;6-building-custom-applications-and-customer-portals&quot;&gt;6. Building Custom Applications and Customer Portals&lt;/h3&gt;
&lt;p&gt;Not every application should (or can) be built on the Salesforce platform. When you need to build customer-facing applications, high-traffic portals, or systems using specific technology stacks, syncing to an external database becomes essential.&lt;/p&gt;
&lt;p&gt;Use Cases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Customer Portals: Build self-service portals using Node.js, React, or other frameworks&lt;/li&gt;
&lt;li&gt;Public Websites: Display product catalogs or account information from Salesforce&lt;/li&gt;
&lt;li&gt;Mobile Applications: Power mobile apps with Salesforce data without hitting API limits&lt;/li&gt;
&lt;li&gt;Partner Integrations: Enable partners to access specific data without Salesforce licenses&lt;/li&gt;
&lt;li&gt;IoT Applications: Collect and process sensor data before syncing to Salesforce&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Consider this scenario: You’re building a public product catalog website. The product data lives in Salesforce, but you want to display it on a high-traffic website built with modern web technologies. Using Heroku Connect, you sync product records to a Postgres database, then your website queries Postgres directly. The result? Lightning-fast page loads, no API limits concerns, and real-time data accuracy.&lt;/p&gt;
&lt;h3 id=&quot;7-enabling-bidirectional-data-flows&quot;&gt;7. Enabling Bidirectional Data Flows&lt;/h3&gt;
&lt;p&gt;Most integration scenarios involve data flowing in one direction—from Salesforce to an external system, or vice versa. But truly powerful integrations require bidirectional sync: changes in either system automatically reflect in the other.&lt;/p&gt;
&lt;p&gt;Bidirectional Sync Scenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Field Operations: Mobile workers update records in a custom app; changes sync back to Salesforce for the office team&lt;/li&gt;
&lt;li&gt;E-commerce Integration: Order data flows to Salesforce; inventory updates flow back to the storefront&lt;/li&gt;
&lt;li&gt;Customer Self-Service: Customers update their information in a portal; changes reflect in Salesforce CRM records&lt;/li&gt;
&lt;li&gt;Partner Systems: Partners modify opportunities in their systems; updates appear in your Salesforce org&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tools like&lt;a href=&quot;https://devcenter.heroku.com/articles/integrating-heroku-and-salesforce&quot;&gt;Heroku Connect support full bidirectional synchronization&lt;/a&gt; with configurable latency and conflict resolution. When properly configured, changes flow near-real-time in both directions, keeping systems in constant alignment.&lt;/p&gt;
&lt;h3 id=&quot;8-supporting-machine-learning-and-ai-initiatives&quot;&gt;8. Supporting Machine Learning and AI Initiatives&lt;/h3&gt;
&lt;p&gt;The AI revolution is here, and organizations are racing to leverage machine learning for competitive advantage. But ML models are hungry—they need vast amounts of clean, integrated data for training.&lt;/p&gt;
&lt;p&gt;ML Data Requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Volume: Models need thousands or millions of records to identify patterns&lt;/li&gt;
&lt;li&gt;History: Predicting future behavior requires understanding past patterns&lt;/li&gt;
&lt;li&gt;Integration: Customer lifetime value predictions, for example, need CRM data combined with financial data, support interactions, and product usage&lt;/li&gt;
&lt;li&gt;Accessibility: Data scientists need direct SQL access, not Salesforce report exports&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By syncing Salesforce data to a data warehouse or data lake, organizations enable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Training predictive models for lead scoring, churn prediction, and opportunity forecasting&lt;/li&gt;
&lt;li&gt;Building recommendation engines based on customer behavior&lt;/li&gt;
&lt;li&gt;Implementing natural language processing on case descriptions and communications&lt;/li&gt;
&lt;li&gt;Creating AI-powered automation based on cross-system patterns&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;9-preparing-for-long-term-data-strategy&quot;&gt;9. Preparing for Long-Term Data Strategy&lt;/h3&gt;
&lt;p&gt;Finally, syncing Salesforce to an external database positions your organization for future flexibility. Technology landscapes change, business requirements evolve, and vendor relationships shift.&lt;/p&gt;
&lt;p&gt;Strategic Benefits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Vendor Independence: Your data isn’t locked into Salesforce’s ecosystem&lt;/li&gt;
&lt;li&gt;Future Integration: New systems can connect to your central data repository&lt;/li&gt;
&lt;li&gt;Scalability: External databases scale more flexibly than Salesforce storage&lt;/li&gt;
&lt;li&gt;Technology Evolution: Adopt new analytics tools without re-integrating with Salesforce&lt;/li&gt;
&lt;li&gt;M&amp;amp;A Readiness: Integrating acquired companies is easier with centralized data&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The organizations that thrive long-term are those that treat data as a strategic asset—stored, managed, and protected independently of any single vendor or system.&lt;/p&gt;
&lt;h2 id=&quot;methods-for-syncing-salesforce-to-external-databases&quot;&gt;Methods for Syncing Salesforce to External Databases&lt;/h2&gt;
&lt;p&gt;Understanding the “why” is only half the equation. Let’s explore the “how”—the various methods available for synchronizing Salesforce data with external databases. For a comprehensive overview of integration options, the&lt;a href=&quot;https://architect.salesforce.com/decision-guides/data-integration&quot;&gt;Salesforce Architects Data Integration Decision Guide&lt;/a&gt; provides excellent framework-level guidance.&lt;/p&gt;
&lt;h3 id=&quot;heroku-connect-the-native-integration-powerhouse&quot;&gt;Heroku Connect: The Native Integration Powerhouse&lt;/h3&gt;
&lt;p&gt;For organizations already using or considering the Heroku platform,&lt;a href=&quot;https://www.heroku.com/connect/&quot;&gt;Heroku Connect&lt;/a&gt; offers arguably the most elegant solution for Salesforce-to-Postgres synchronization.&lt;/p&gt;
&lt;h4 id=&quot;how-it-works&quot;&gt;How It Works&lt;/h4&gt;
&lt;p&gt;Heroku Connect is an add-on that synchronizes data between your Salesforce organization and a Heroku Postgres database. Using a declarative interface, you specify which Salesforce objects should sync with which Postgres tables, mapping object fields to table columns. Heroku Connect then continuously monitors both systems, creating and updating records as needed.&lt;/p&gt;
&lt;p&gt;Key Features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Unidirectional or Bidirectional: Sync from Salesforce to Postgres, or enable full two-way synchronization&lt;/li&gt;
&lt;li&gt;Near Real-Time: Changes sync with low latency, typically within minutes&lt;/li&gt;
&lt;li&gt;Standard SQL Access: Query your Salesforce data using familiar SQL—no special APIs required&lt;/li&gt;
&lt;li&gt;Scalable: Postgres handles large data volumes efficiently&lt;/li&gt;
&lt;li&gt;External Objects: Expose Heroku Postgres data back to Salesforce using Salesforce Connect&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Organizations building custom applications on Heroku, needing high-performance access to Salesforce data, or wanting to integrate with other Heroku services. Learn more from the&lt;a href=&quot;https://devcenter.heroku.com/articles/heroku-connect&quot;&gt;Heroku Connect documentation&lt;/a&gt; or explore the&lt;a href=&quot;https://trailhead.salesforce.com/content/learn/modules/salesforce_heroku_integration/integrating_with_heroku_connect&quot;&gt;Salesforce Trailhead module on Heroku integration&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;fromtable-the-cost-effective-heroku-connect-alternative&quot;&gt;FromTable: The Cost-Effective Heroku Connect Alternative&lt;/h3&gt;
&lt;p&gt;For organizations that want the simplicity of Heroku Connect but need a more budget-friendly option,&lt;a href=&quot;https://www.fromtable.com/&quot;&gt;FromTable&lt;/a&gt; offers a compelling alternative that delivers production-ready Salesforce data directly to any PostgreSQL database.&lt;/p&gt;
&lt;h4 id=&quot;how-it-works-1&quot;&gt;How It Works&lt;/h4&gt;
&lt;p&gt;FromTable provides always-on, resilient syncing between Salesforce and PostgreSQL with automatic error recovery. The service creates a clean, normalized PostgreSQL schema that developers can query directly using standard SQL tools—no Salesforce API wrestling required. Setup takes approximately five minutes, with no coding needed.&lt;/p&gt;
&lt;p&gt;Key Features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Near Real-Time Synchronization: Latency measured in seconds, not hours, ensuring your data is always current&lt;/li&gt;
&lt;li&gt;Unlimited Rows: Unlike Heroku Connect’s tiered row limits, FromTable offers unlimited rows for a flat monthly fee&lt;/li&gt;
&lt;li&gt;Any PostgreSQL Provider: Not locked into Heroku Postgres—use any PostgreSQL provider of your choice&lt;/li&gt;
&lt;li&gt;Custom Object Support: Sync both standard and custom Salesforce objects with full flexibility&lt;/li&gt;
&lt;li&gt;Historical Data Support: Handles initial backfills and historical tracking for comprehensive data management&lt;/li&gt;
&lt;li&gt;Granular Control: Field-level mapping control and custom transformation rules&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;cost-comparison&quot;&gt;Cost Comparison&lt;/h4&gt;
&lt;p&gt;The pricing difference is substantial. While Heroku Connect’s production starter package runs approximately $40,000/month with row limits, FromTable’s Pro tier costs $100/month with unlimited rows. For organizations syncing 100+ million rows monthly, this can translate to annual savings exceeding $45,000.&lt;/p&gt;
&lt;p&gt;Organizations seeking a drop-in replacement for Heroku Connect at a fraction of the cost, teams that want PostgreSQL flexibility without vendor lock-in, and data teams that need direct SQL access without building and maintaining complex ETL pipelines.&lt;/p&gt;
&lt;h3 id=&quot;etlelt-tools-and-integration-platforms&quot;&gt;ETL/ELT Tools and Integration Platforms&lt;/h3&gt;
&lt;p&gt;Extract, Transform, Load (ETL) or Extract, Load, Transform (ELT) tools provide flexible pipelines for moving data between Salesforce and virtually any destination.&lt;/p&gt;
&lt;p&gt;Popular Tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fivetran: Automated data pipelines with pre-built Salesforce connectors&lt;/li&gt;
&lt;li&gt;Talend: Enterprise-grade data integration with extensive transformation capabilities&lt;/li&gt;
&lt;li&gt;CData Sync: Continuous data pipelines to 100+ destinations&lt;/li&gt;
&lt;li&gt;Skyvia: Cloud-based integration with bidirectional sync capabilities&lt;/li&gt;
&lt;li&gt;Integrate.io: ETL platform with Salesforce-specific optimization&lt;/li&gt;
&lt;li&gt;MuleSoft: Salesforce’s enterprise integration platform (via acquisition)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;how-they-work&quot;&gt;How They Work&lt;/h4&gt;
&lt;p&gt;These platforms connect to Salesforce (typically via API), extract data according to your specifications, optionally transform it (cleaning, enriching, restructuring), and load it into your target database. Most support scheduled syncs, change data capture, and incremental updates.&lt;/p&gt;
&lt;p&gt;Considerations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;API consumption—most tools use Salesforce APIs, counting against your daily limits&lt;/li&gt;
&lt;li&gt;Transformation complexity—some scenarios require significant data modeling&lt;/li&gt;
&lt;li&gt;Cost—pricing varies widely based on data volume and connector counts&lt;/li&gt;
&lt;li&gt;Latency—scheduled syncs mean data isn’t always real-time&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Organizations needing to sync Salesforce with multiple destinations, requiring complex transformations, or integrating with existing data infrastructure.&lt;/p&gt;
&lt;h3 id=&quot;custom-api-based-solutions&quot;&gt;Custom API-Based Solutions&lt;/h3&gt;
&lt;p&gt;For organizations with development resources and specific requirements, custom integrations using Salesforce APIs offer maximum flexibility.&lt;/p&gt;
&lt;p&gt;Available APIs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;REST API: General-purpose API for CRUD operations&lt;/li&gt;
&lt;li&gt;Bulk API: Optimized for large data volumes (millions of records)&lt;/li&gt;
&lt;li&gt;Streaming API: Real-time notifications of data changes&lt;/li&gt;
&lt;li&gt;Change Data Capture: Subscribe to change events for specific objects&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Implementation Approaches:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Build middleware services that poll or subscribe to Salesforce changes&lt;/li&gt;
&lt;li&gt;Use serverless functions (AWS Lambda, Azure Functions) for event-driven sync&lt;/li&gt;
&lt;li&gt;Implement custom Apex triggers that call external systems&lt;/li&gt;
&lt;li&gt;Create scheduled jobs using Salesforce’s native scheduling capabilities&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Organizations with unique requirements, existing development teams, or needs that pre-built tools don’t address.&lt;/p&gt;
&lt;h2 id=&quot;best-practices-for-salesforce-data-synchronization&quot;&gt;Best Practices for Salesforce Data Synchronization&lt;/h2&gt;
&lt;p&gt;Implementing a sync strategy isn’t just about choosing the right tool—it’s about designing a robust, maintainable solution. Here are key best practices:&lt;/p&gt;
&lt;h3 id=&quot;plan-your-data-model-carefully&quot;&gt;Plan Your Data Model Carefully&lt;/h3&gt;
&lt;p&gt;Before syncing, map out:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Which objects and fields need to be replicated&lt;/li&gt;
&lt;li&gt;How records relate to each other (parent-child relationships, lookups)&lt;/li&gt;
&lt;li&gt;Which direction data should flow (Salesforce → External, External → Salesforce, or both)&lt;/li&gt;
&lt;li&gt;How conflicts will be resolved when data changes in both systems&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;start-small-and-iterate&quot;&gt;Start Small and Iterate&lt;/h3&gt;
&lt;p&gt;Don’t try to sync your entire Salesforce org on day one. Begin with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A few critical objects (Accounts, Contacts, Opportunities)&lt;/li&gt;
&lt;li&gt;One-way sync (Salesforce to external)&lt;/li&gt;
&lt;li&gt;Frequent but small batches&lt;/li&gt;
&lt;li&gt;Thorough validation at each step&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As you gain confidence, expand scope incrementally.&lt;/p&gt;
&lt;h3 id=&quot;implement-change-data-capture&quot;&gt;Implement Change Data Capture&lt;/h3&gt;
&lt;p&gt;Rather than full-table syncs on every run, implement change tracking to sync only modified records. This approach:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reduces API consumption&lt;/li&gt;
&lt;li&gt;Improves sync speed&lt;/li&gt;
&lt;li&gt;Decreases load on both systems&lt;/li&gt;
&lt;li&gt;Enables near-real-time updates&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;handle-deletions-explicitly&quot;&gt;Handle Deletions Explicitly&lt;/h3&gt;
&lt;p&gt;Deleted records are often overlooked in sync designs. Consider:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How you’ll detect when records are deleted in Salesforce&lt;/li&gt;
&lt;li&gt;Whether external records should be deleted, archived, or flagged&lt;/li&gt;
&lt;li&gt;Soft delete vs. hard delete implications&lt;/li&gt;
&lt;li&gt;Recovery processes if deletions need to be reversed&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;monitor-and-alert&quot;&gt;Monitor and Alert&lt;/h3&gt;
&lt;p&gt;Sync jobs fail. APIs time out. Schemas change. Build monitoring that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Alerts when sync jobs fail&lt;/li&gt;
&lt;li&gt;Tracks record counts and identifies anomalies&lt;/li&gt;
&lt;li&gt;Logs errors for debugging&lt;/li&gt;
&lt;li&gt;Reports on sync latency and throughput&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;document-everything&quot;&gt;Document Everything&lt;/h3&gt;
&lt;p&gt;Future you (and your successors) will thank present you for documentation covering:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Data flow diagrams&lt;/li&gt;
&lt;li&gt;Object/field mappings&lt;/li&gt;
&lt;li&gt;Error handling procedures&lt;/li&gt;
&lt;li&gt;Runbooks for common issues&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;common-challenges-and-how-to-address-them&quot;&gt;Common Challenges and How to Address Them&lt;/h2&gt;
&lt;h3 id=&quot;challenge-api-limits&quot;&gt;Challenge: API Limits&lt;/h3&gt;
&lt;p&gt;Problem: Salesforce limits daily API calls based on your edition and user count. Heavy sync operations can exhaust these limits.&lt;/p&gt;
&lt;p&gt;Solutions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use Bulk API for large data volumes&lt;/li&gt;
&lt;li&gt;Implement incremental sync (only changed records)&lt;/li&gt;
&lt;li&gt;Schedule heavy syncs during off-peak hours&lt;/li&gt;
&lt;li&gt;Consider Heroku Connect (doesn’t count against standard API limits)&lt;/li&gt;
&lt;li&gt;Monitor API consumption proactively&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;challenge-data-transformation-complexity&quot;&gt;Challenge: Data Transformation Complexity&lt;/h3&gt;
&lt;p&gt;Problem: Salesforce’s data model (with custom objects, relationships, and picklist values) doesn’t always map cleanly to relational database schemas.&lt;/p&gt;
&lt;p&gt;Solutions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Design your external schema with Salesforce’s model in mind&lt;/li&gt;
&lt;li&gt;Create intermediate staging tables for complex transformations&lt;/li&gt;
&lt;li&gt;Document mapping decisions for future reference&lt;/li&gt;
&lt;li&gt;Use ETL tools with built-in Salesforce expertise&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;challenge-handling-large-data-volumes&quot;&gt;Challenge: Handling Large Data Volumes&lt;/h3&gt;
&lt;p&gt;Problem: Initial sync of millions of records can take days and consume significant resources.&lt;/p&gt;
&lt;p&gt;Solutions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Perform initial load using Salesforce’s Data Export or Bulk API&lt;/li&gt;
&lt;li&gt;Break initial sync into smaller batches by date ranges or object&lt;/li&gt;
&lt;li&gt;Consider using Heroku Connect’s “smart initial sync” capabilities&lt;/li&gt;
&lt;li&gt;Plan for maintenance windows during initial load&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;challenge-maintaining-data-quality&quot;&gt;Challenge: Maintaining Data Quality&lt;/h3&gt;
&lt;p&gt;Problem: &lt;a href=&quot;/blog/duplicate-records-in-salesforce?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=sync_salesforce_to_an_external_database&quot;&gt;Duplicate records&lt;/a&gt; and inconsistent data in Salesforce propagate to external systems.&lt;/p&gt;
&lt;p&gt;Solutions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clean Salesforce data before implementing sync&lt;/li&gt;
&lt;li&gt;Implement data quality rules at the sync layer&lt;/li&gt;
&lt;li&gt;Use&lt;a href=&quot;/products/merge-duplicates?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=sync_salesforce_to_an_external_database&quot;&gt;deduplication tools&lt;/a&gt; in Salesforce proactively&lt;/li&gt;
&lt;li&gt;Build data quality dashboards to catch issues early&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;frequently-asked-questions&quot;&gt;Frequently Asked Questions&lt;/h2&gt;
&lt;h3 id=&quot;why-cant-i-just-use-salesforces-native-reporting-for-all-my-analytics-needs&quot;&gt;Why can’t I just use Salesforce’s native reporting for all my analytics needs?&lt;/h3&gt;
&lt;p&gt;Salesforce reports are excellent for operational dashboards and day-to-day metrics, but they have significant limitations for advanced analytics. Native reports cap at specific row limits, offer limited cross-object joining capabilities, restrict historical data to roughly three months for trending, and can’t integrate data from non-Salesforce systems. For comprehensive business intelligence—especially analyses combining CRM data with financial, operational, or marketing data from other platforms—an external database or data warehouse is essential.&lt;/p&gt;
&lt;h3 id=&quot;how-often-should-i-sync-salesforce-data-to-my-external-database&quot;&gt;How often should I sync Salesforce data to my external database?&lt;/h3&gt;
&lt;p&gt;Sync frequency depends on your use case. For real-time customer portals or applications, you may need near-real-time sync (minutes or less). For daily reporting, nightly batch syncs often suffice. For compliance archiving, weekly or monthly may be adequate. Start with less frequent syncs and increase frequency only if business needs require it—more frequent syncs consume more resources and API calls.&lt;/p&gt;
&lt;h3 id=&quot;will-syncing-to-an-external-database-affect-my-salesforce-performance&quot;&gt;Will syncing to an external database affect my Salesforce performance?&lt;/h3&gt;
&lt;p&gt;When implemented properly, sync operations shouldn’t noticeably impact Salesforce performance. Best practices include scheduling heavy sync jobs during off-peak hours, using Bulk API for large extracts, implementing incremental sync rather than full-table dumps, and monitoring API consumption. Some solutions like Heroku Connect are specifically optimized to minimize Salesforce load.&lt;/p&gt;
&lt;h3 id=&quot;what-happens-if-my-external-database-and-salesforce-get-out-of-sync&quot;&gt;What happens if my external database and Salesforce get out of sync?&lt;/h3&gt;
&lt;p&gt;Sync drift can occur due to failed jobs, API errors, or timing issues. Mitigation strategies include implementing monitoring and alerting for sync failures, running periodic reconciliation checks comparing record counts and checksums, maintaining audit logs for troubleshooting, and having documented procedures for re-sync operations.&lt;/p&gt;
&lt;h3 id=&quot;is-syncing-salesforce-data-to-external-databases-secure&quot;&gt;Is syncing Salesforce data to external databases secure?&lt;/h3&gt;
&lt;p&gt;Security depends on your implementation. Best practices include encrypting data in transit (TLS) and at rest, using OAuth for Salesforce authentication rather than storing credentials, implementing row-level security in the external database matching Salesforce permissions, maintaining audit logs of all data access, and ensuring compliance with relevant regulations (GDPR, HIPAA, etc.).&lt;/p&gt;
&lt;h3 id=&quot;can-i-sync-salesforce-data-to-multiple-external-databases-simultaneously&quot;&gt;Can I sync Salesforce data to multiple external databases simultaneously?&lt;/h3&gt;
&lt;p&gt;Yes, many organizations sync Salesforce data to multiple destinations—for example, a data warehouse for analytics, a Postgres database for application use, and a cold storage solution for archiving. Most ETL platforms and custom solutions support multiple destinations. Just be mindful of cumulative API consumption across all sync processes.&lt;/p&gt;
&lt;h3 id=&quot;whats-the-difference-between-syncing-data-and-using-salesforce-connect&quot;&gt;What’s the difference between syncing data and using Salesforce Connect?&lt;/h3&gt;
&lt;p&gt;Syncing copies data from Salesforce to an external database, creating a replica that can be queried independently. Salesforce Connect does the opposite—it creates virtual “External Objects” in Salesforce that proxy queries to external databases in real-time without copying data. Syncing is better for analytics and external applications; Salesforce Connect is better for displaying external data within the Salesforce UI.&lt;/p&gt;
&lt;h3 id=&quot;how-do-i-handle-salesforce-schema-changes-new-fields-renamed-objects-in-my-sync&quot;&gt;How do I handle Salesforce schema changes (new fields, renamed objects) in my sync?&lt;/h3&gt;
&lt;p&gt;Schema changes require sync updates. Best practices include implementing automated schema drift detection, designing flexible sync configurations that can adapt to changes, testing schema changes in sandbox before production, maintaining documentation of all field mappings, and using tools that handle schema evolution gracefully.&lt;/p&gt;
&lt;h2 id=&quot;data-freedom-drives-business-success&quot;&gt;Data Freedom Drives Business Success&lt;/h2&gt;
&lt;p&gt;Salesforce remains an exceptional platform for managing customer relationships and driving sales processes. But in today’s data-driven business environment, the organizations that succeed are those that can leverage their data fully—across systems, over time, and at scale.&lt;/p&gt;
&lt;p&gt;Syncing Salesforce to an external database isn’t about moving away from Salesforce. It’s about extending its value by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Unlocking analytics capabilities that transform decision-making&lt;/li&gt;
&lt;li&gt;Breaking down silos that fragment your organization’s knowledge&lt;/li&gt;
&lt;li&gt;Protecting your most valuable asset through proper backup and recovery&lt;/li&gt;
&lt;li&gt;Meeting compliance requirements that protect your business&lt;/li&gt;
&lt;li&gt;Reducing costs while improving performance&lt;/li&gt;
&lt;li&gt;Enabling custom applications that differentiate your business&lt;/li&gt;
&lt;li&gt;Preparing for an AI-powered future&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Whether you choose Heroku Connect for its elegance, an ETL platform for its flexibility, or a custom solution for its specificity, the investment in proper Salesforce data synchronization pays dividends across every function of your organization.&lt;/p&gt;
&lt;p&gt;The question isn’t whether to sync your Salesforce data externally—it’s how soon you can start realizing the benefits.&lt;/p&gt;
&lt;p&gt;Ready to optimize your Salesforce implementation? &lt;a href=&quot;/contact?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=sync_salesforce_to_an_external_database&quot;&gt;Contact the CloudAnswers team&lt;/a&gt; to discuss your integration and data management needs.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Fast Inline Editing Lists with LWC and Conga Grid]]></title><description><![CDATA[We had a client request to let users inline edit multiple records…]]></description><link>https://cloudanswers.com/blog/fast-inline-editing-lists-with-lwc-and-conga-grid</link><guid isPermaLink="false">/blog/fast-inline-editing-lists-with-lwc-and-conga-grid</guid><pubDate>Mon, 29 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2025/12/updaterelatedfields_mp4_vp9_2160p.original.webp&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;We had a client request to let users inline edit multiple records from list views and related lists in Salesforce. A few requirements we had:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Display more than 15 columns in list views or 10 columns in related list views&lt;/li&gt;
&lt;li&gt;Display links to related records under a column&lt;/li&gt;
&lt;li&gt;Mass update a field for multiple records&lt;/li&gt;
&lt;li&gt;Mass update multiple fields for multiple records&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After exploring multiple tools, we narrowed down to &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3000000B5ilaEAB&quot;&gt;Conga Grid,&lt;/a&gt; which met all the requirements out of the box except one. Conga Grid doesn’t allow mass updating of relationship fields that have lookup filters. But it has a nice feature, called Custom Actions, which allows you to add user-defined buttons or actions. In this article, we will learn about the solution we created to open Lightning Web Components from Conga Grid custom actions and mass update fields with lookup filters.&lt;/p&gt;
&lt;p&gt;Here’s an example of what it looks like:&lt;/p&gt;
&lt;p&gt;&lt;video controls preload=&quot;metadata&quot; className=&quot;w-100&quot; aria-label=&quot;updaterelatedfields-mp4&quot; poster=&quot;/uploads/wordpress/video/9Lmm5ebn/updaterelatedfields_mp4_vp9_2160p.original.jpg&quot; src=&quot;/uploads/wordpress/video/9Lmm5ebn/updaterelatedfields.mp4&quot;&gt;&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;Quick demo of Conga Grid with a Custom Lookup&lt;/p&gt;
&lt;p&gt;Add Conga Grid Custom Action via Static Resource&lt;/p&gt;
&lt;p&gt;Conga Grid Custom Action follows the following structure. We use &lt;strong&gt;addCustomAction&lt;/strong&gt;method from &lt;strong&gt;crmc&lt;/strong&gt; global variable to add custom action. Couple of key things to note here are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;isAvailable function&lt;/strong&gt;: It is called to decide when to display the custom action. We can add our custom logic here to control when the action shows up.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;click function&lt;/strong&gt;: It is called when you click the custom action. This is where all the magic happens. We use &lt;strong&gt;window.parent.postMessage&lt;/strong&gt; function to send a message to parent window. We will handle this method in an Aura component to listen to message and pass it on to a Lightning Web Component.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;crmc.require([&amp;#39;sfdc&amp;#39;, &amp;#39;KendoPopup&amp;#39;], function (sfdc, popup) {
    crmc.addCustomAction({
        // Unique identifier for this action item
        &amp;quot;itemID&amp;quot;: &amp;quot;Open_Lightning_Modal&amp;quot;,
        &amp;quot;isAvailable&amp;quot;: function (context) {
            // Return true to display the item, false to hide it
            // check to ensure this is correct object and feature is enabled
            var isAccount = context.objectDescribe.name == &amp;quot;Account&amp;quot;;
            var isEnabled = this.featureSecurity.getSetting(context.objectDescribe.name, this.itemID) !== false;
            // check to ensure at least one record is selected
            var multipleSelected = context.selectedRows &amp;amp;&amp;amp; context.selectedRows.length &amp;gt; 0;
            return isAccount &amp;amp;&amp;amp; isEnabled &amp;amp;&amp;amp; multipleSelected;
        },
        &amp;quot;isHeaderAvailable&amp;quot;: function(context) {
            // This function determines if this item can be displayed from the column header menu
            return false;
        },
        &amp;quot;isToolbarAvailable&amp;quot;: function(context) {
            // This function determines if this item can be displayed in the Toolbar as a button
            return false;
        },
        &amp;quot;getLabel&amp;quot;: function (context) {
            // This function returns the display label of the action item and is called before the item is shown
            return &amp;quot;Open Lightning Modal&amp;quot;;
        },
        &amp;quot;createSubmenuItems&amp;quot;: function (context) {
            // If this function returns additional action item objects, they will appear as submenu items
            return [];
        },
        &amp;quot;click&amp;quot;: function (context, grid) {
            if (context.selectedRows.length &amp;gt; 0) {
                let rowIds = [];
                Object.each(context.selectedRows, function (selectedRow) {
                    rowIds.push(selectedRow[&amp;quot;Id&amp;quot;]);
                });
                window.parent.postMessage(
                    {
                        action: &amp;#39;OPEN_MODAL&amp;#39;,
                        recordIds: rowIds,
                        message: &amp;#39;Hello World&amp;#39;
                    },
                    &amp;#39;*&amp;#39;
                );
            } else {
                popup.popup(&amp;#39;Please select records&amp;#39;, &amp;#39;Select at least one record to proceed.&amp;#39;);
            }
        }
    });
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Add a Modal using Lightning Web Component&lt;/p&gt;
&lt;p&gt;We create a Lightning Web Component using the &lt;em&gt;LightningModal&lt;/em&gt; element. This component has all the functionality which we want to perform on the selected records. We can custom code all the requirements in this component, but, for this example I’m just adding the boilerplate needed for end-to-end demo. Here are code snippets from &lt;strong&gt;modalExample.html&lt;/strong&gt;, &lt;strong&gt;modalExample.js&lt;/strong&gt; and &lt;strong&gt;modalExample.js-meta.xml&lt;/strong&gt; files for &lt;strong&gt;modalExample&lt;/strong&gt; Lightning Web Component.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;template&amp;gt;
    &amp;lt;lightning-modal-header label=&amp;quot;Conga Grid Action&amp;quot;&amp;gt;&amp;lt;/lightning-modal-header&amp;gt;
    &amp;lt;lightning-modal-body&amp;gt;
        &amp;lt;p&amp;gt;{message}&amp;lt;/p&amp;gt;
        &amp;lt;p&amp;gt;{recordIds}&amp;lt;/p&amp;gt;
    &amp;lt;/lightning-modal-body&amp;gt;
    &amp;lt;lightning-modal-footer&amp;gt;
        &amp;lt;lightning-button label=&amp;quot;Close&amp;quot; onclick={handleClose}&amp;gt;&amp;lt;/lightning-button&amp;gt;
    &amp;lt;/lightning-modal-footer&amp;gt;
&amp;lt;/template&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;import LightningModal from &amp;#39;lightning/modal&amp;#39;;
import { api } from &amp;#39;lwc&amp;#39;;

export default class ModalExample extends LightningModal {

    @api recordIds;
    @api message;

    handleClose() {
        this.close(&amp;#39;closed&amp;#39;);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&amp;lt;LightningComponentBundle xmlns=&amp;quot;http://soap.sforce.com/2006/04/metadata&amp;quot;&amp;gt;
    &amp;lt;apiVersion&amp;gt;61.0&amp;lt;/apiVersion&amp;gt;
    &amp;lt;isExposed&amp;gt;false&amp;lt;/isExposed&amp;gt;
&amp;lt;/LightningComponentBundle&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Add Lightning Web Component to open Lightning Modal&lt;/p&gt;
&lt;p&gt;We create a Lightning Web Component, let us with name &lt;strong&gt;congaModalListerner&lt;/strong&gt;, which will expose an &lt;strong&gt;@api&lt;/strong&gt; method to open the Lightning Modal component which we created in the previous step. Here is how that component looks:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;!-- this component&amp;#39;s template has no markup --&amp;gt;
&amp;lt;template&amp;gt;&amp;lt;/template&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;import { LightningElement, api } from &amp;quot;lwc&amp;quot;;
import ModalExample from &amp;quot;c/modalExample&amp;quot;;

export default class CongaModalListener extends LightningElement {

  @api
  async openModalFromVF(data) {
    const { message, recordIds, action } = data;

    if (!message) {
      console.error(
        &amp;quot;CongaModalListener: No message sent for modal.&amp;quot;
      );
      return;
    }

    let result;
    if (action === &amp;quot;OPEN_MODAL&amp;quot;) {
      result = await ModalExample.open({
        size: &amp;quot;large&amp;quot;,
        description: &amp;quot;Hello World Modal&amp;quot;,
        recordIds: recordIds,
        message: message
      });
    }

    if (result === &amp;quot;ok&amp;quot;) {
      // TODO: we can display result using toast event
    } else {
      // TODO: we can display result using toast event
    }
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&amp;lt;LightningComponentBundle xmlns=&amp;quot;http://soap.sforce.com/2006/04/metadata&amp;quot;&amp;gt;
    &amp;lt;apiVersion&amp;gt;61.0&amp;lt;/apiVersion&amp;gt;
    &amp;lt;isExposed&amp;gt;false&amp;lt;/isExposed&amp;gt;
&amp;lt;/LightningComponentBundle&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Add an Aura Component with Window Message Listener&lt;/p&gt;
&lt;p&gt;We create an aura component, named &lt;strong&gt;CongaGridModalBridge&lt;/strong&gt;, and add a “message” event listener to the window object. When a message event is received on the window, this component will find a reference to the &lt;strong&gt;congaGridListener&lt;/strong&gt; component and call &lt;strong&gt;openModalFromVF&lt;/strong&gt; api method from it. Here is what constitutes this component:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;!-- markup for CongaGridModalBridge.cmp --&amp;gt;
&amp;lt;aura:component implements=&amp;quot;flexipage:availableForAllPageTypes&amp;quot; access=&amp;quot;global&amp;quot;&amp;gt;

    &amp;lt;!-- add the Lightning web component created in the previous step --&amp;gt;
    &amp;lt;c:congaModalListener aura:id=&amp;quot;modalHandler&amp;quot;/&amp;gt;

    &amp;lt;aura:handler name=&amp;quot;init&amp;quot; value=&amp;quot;{!this}&amp;quot; action=&amp;quot;{!c.doInit}&amp;quot;/&amp;gt;
&amp;lt;/aura:component&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;// JavaScript for CongaGridModalBridgeController.js
({
    doInit: function (component, event, helper) {
        window.addEventListener(&amp;quot;message&amp;quot;, function(event) {
            // Optional: restrict by origin
            // if (event.origin !== &amp;#39;https://yourdomain.my.salesforce.com&amp;#39;) return;
            if (event.data &amp;amp;&amp;amp; event.data.action === &amp;#39;OPEN_MODAL&amp;#39;) {
                const modalHandler = component.find(&amp;quot;modalHandler&amp;quot;);
                if (modalHandler) {
                    modalHandler.openModalFromVF(event.data);
                }
            }
        }, false);
    }
})
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Putting Everything Together&lt;/p&gt;
&lt;p&gt;Now, we are ready to put all the pieces together. We create a Lightning Page, add the Visualforce page that has the &lt;strong&gt;CRMC_PP:Grid&lt;/strong&gt; component to this Lightning Page and then add the &lt;strong&gt;CongaGridModalBridge&lt;/strong&gt; to this page. Save the page and reload page, it should look something like below:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2025/10/Screenshot-2025-10-22-at-5.32.36-PM-1024x469.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Lightning Page with Visualforce Page and Aura Component&lt;/p&gt;
&lt;p&gt;Conclusion&lt;/p&gt;
&lt;p&gt;By using Lightning Components with Conga Grid we can bridge the gap between complex data presentation and a seamless user experience. This approach empowers developers to add custom business logic maintaining separation of concerns while using the powerful features available in Conga Grid. Whether you’re modernizing existing Visualforce implementations or building new Lightning-first applications, this pattern provides a flexible and scalable way to deliver enterprise-grade data grids in Salesforce.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Say Goodbye to Salesforce Duplicates with CloudAnswers’ Potential Duplicates & Bulk Merge]]></title><description><![CDATA[Duplicate data can feel like misaligned puzzle pieces – information that should…]]></description><link>https://cloudanswers.com/blog/say-goodbye-to-salesforce-duplicates-with-cloudanswers-potential-duplicates-bulk-merge</link><guid isPermaLink="false">/blog/say-goodbye-to-salesforce-duplicates-with-cloudanswers-potential-duplicates-bulk-merge</guid><pubDate>Tue, 16 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2025/12/Screenshot-2025-12-18-at-12.21.41-PM.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Duplicate data can feel like misaligned puzzle pieces – information that should fit together but ends up scattered and redundant. If you’ve ever pulled up a Salesforce contact and found two or three entries for the same person (each with a bit of different info), you know the headache it causes. Beyond the annoyance, duplicate records pose serious challenges for organizations.&lt;/p&gt;
&lt;p&gt;In this post, we’ll explore why duplicate data is such a problem and how CloudAnswers’ &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=potential_duplicates_overview_blog&quot;&gt;Potential Duplicates Component &amp;amp; Bulk Merge app&lt;/a&gt; provides a powerful solution. This free app brings advanced deduplication tools right into your Salesforce org to keep your data clean. It’s already helping other companies keep their Salesforce data tidy, and it can do the same for you.&lt;/p&gt;
&lt;h2 id=&quot;why-duplicate-data-is-a-major-problem&quot;&gt;Why Duplicate Data Is a Major Problem&lt;/h2&gt;
&lt;p&gt;Think duplicate records are just a minor inconvenience? Think again. Duplicate data can silently wreak havoc across your business. In fact, data integrity issues like duplicates cost U.S. companies &lt;a href=&quot;https://dmnews.com/study-poor-data-quality-costs-600b-yearly/&quot;&gt;hundreds of billions of dollars every year&lt;/a&gt;. &lt;a href=&quot;https://www.gartner.com/smarterwithgartner/how-to-improve-your-data-quality&quot;&gt;Gartner researchers&lt;/a&gt; found that poor data quality costs organizations an average of $12.9 million annually. &lt;a href=&quot;/blog/how-to-coordinate-marketing-and-sales-by-avoiding-duplicates-in-salesforce&quot;&gt;Duplicates are a huge part of this problem&lt;/a&gt; – they’re widespread in most CRM systems and detrimental to customer relationships.&lt;/p&gt;
&lt;p&gt;Why do duplicates hurt so much? Let’s break down some of the impacts of messy, duplicate-laden data in your Salesforce CRM:&lt;/p&gt;
&lt;h3 id=&quot;wasted-sales-time--opportunities&quot;&gt;Wasted Sales Time &amp;amp; Opportunities&lt;/h3&gt;
&lt;p&gt;Your sales reps might unwittingly call the same prospect twice or step on a colleague’s toes because two leads actually turn out to be the same person. This leads to confusion, redundant effort, and an unprofessional impression when a prospect realizes two reps from your team are contacting them about the same thing. Duplicates also inflate your sales pipeline with ghost data, making your forecasts unreliable.&lt;/p&gt;
&lt;h3 id=&quot;marketing-mistakes--budget-waste&quot;&gt;Marketing Mistakes &amp;amp; Budget Waste&lt;/h3&gt;
&lt;p&gt;Ever received the same email or promotion from a company multiple times? Duplicated contacts in marketing lists can cause that exact blunder. It not only annoys your prospects but also makes your company look disorganized. Marketing teams may end up bombarding customers with duplicate emails or mailers, wasting campaign budget. Duplicates can lead to humiliating blunders that damage your brand’s image and squander your marketing budget.&lt;/p&gt;
&lt;h3 id=&quot;poor-customer-service&quot;&gt;Poor Customer Service&lt;/h3&gt;
&lt;p&gt;When a customer calls support, and your team has to sift through several nearly identical records to find the right info, service slows down. Agents might miss important context spread across duplicate accounts or contacts. This fragmented view means a less satisfying support experience for the customer. Duplicate records force reps to check multiple files for a full history, or risk proceeding with incomplete information – either way, the customer experience suffers.&lt;/p&gt;
&lt;h3 id=&quot;inaccurate-reporting--analytics&quot;&gt;Inaccurate Reporting &amp;amp; Analytics&lt;/h3&gt;
&lt;p&gt;Salesforce reports and dashboards are only as good as the data behind them. If 5 different records actually represent the same customer or deal, your analytics are skewed. You could think you have 500 customers when 50 of them are duplicates, or overestimate your pipeline because deals are counted twice. Decision-makers end up navigating with a broken compass when duplicate data lurks in the CRM.&lt;/p&gt;
&lt;h3 id=&quot;higher-costs--compliance-risks&quot;&gt;Higher Costs &amp;amp; Compliance Risks&lt;/h3&gt;
&lt;p&gt;Many organizations don’t realize that duplicates can hit the wallet directly. More records than necessary means higher data storage usage – and since Salesforce pricing models are tied to the number of records, duplicate entries can drive up your costs needlessly. (Why pay to store the same customer data multiple times?) There’s also the risk of running afoul of data privacy rules if a customer asks to remove their data and you purge one record but miss its duplicate. In regulated industries, maintaining a single accurate record per customer isn’t just best practice – it’s often a compliance requirement.&lt;/p&gt;
&lt;p&gt;Duplicate data isn’t just an irritating quirk in your Salesforce org – it’s a threat to efficiency, customer satisfaction, and the bottom line. They cause users to distrust the system and undermine confidence in your CRM. Now that we’ve seen how significant the issue can be, let’s look at how CloudAnswers tackles this problem head-on.&lt;/p&gt;
&lt;h2 id=&quot;how-cloudanswers-potential-duplicates-component--bulk-merge-solves-the-issue&quot;&gt;How CloudAnswers’ Potential Duplicates Component &amp;amp; Bulk Merge Solves the Issue&lt;/h2&gt;
&lt;p&gt;CloudAnswers has developed a solution to make duplicate management in Salesforce simple, efficient, and even user-friendly. The Potential Duplicates Component &amp;amp; Bulk Merge app is a 100% native Salesforce app that addresses duplicates from two angles:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;On-the-Spot Duplicate Handling – Potential Duplicates Component&lt;/li&gt;
&lt;li&gt;Mass Cleanup – Bulk Merge Tool&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;By combining these, the app covers both daily data entry and big-picture cleanup. Here’s how it works and what sets it apart from other solutions.&lt;/p&gt;
&lt;h3 id=&quot;potential-duplicates-component-in-record-duplicate-management&quot;&gt;Potential Duplicates Component (In-Record Duplicate Management)&lt;/h3&gt;
&lt;p&gt;The Potential Duplicates component is a Lightning component that you can add to any record page that supports duplicate rules (currently Account, Contact, Lead, and custom objects). Once in place, it will display any potential duplicates for that record based on Salesforce Duplicate Rules you’ve defined. This means that as soon as a user views a record, they can immediately see if other similar records exist. Compared to the standard component for Leads, Accounts, and Contacts, this component lets you customize which fields are displayed, so users can see whether it’s a duplicate before even opening the review screen. And the Potential Duplicates component can be added to custom objects, where the standard component is unavailable.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2025/12/image-1024x499.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;What’s really empowering is that users can merge duplicates right from the record page. The component guides you through selecting up to 3 duplicate records and choosing which field values to keep in the principal record. With just a few clicks, the duplicates are merged and cleaned up. This makes it super easy for everyday users, the ones who typically know the data best, to pitch in and maintain data hygiene as part of their everyday workflow. By surfacing possible dupes to your sales, marketing, and support folks in real time, the burden of cleanup no longer falls solely on periodic admin scrubbing – it becomes a collective effort.&lt;/p&gt;
&lt;h3 id=&quot;key-features-of-the-potential-duplicates-component&quot;&gt;Key features of the Potential Duplicates component:&lt;/h3&gt;
&lt;h4 id=&quot;runs-on-more-object&quot;&gt;Runs on More Object&lt;/h4&gt;
&lt;p&gt;Unlike Salesforce’s standard duplicate component (which is limited to Leads, Accounts, and Contacts), CloudAnswers’ component also works on custom objects, wherever you have a duplicate rule in place. This flexibility sets it apart – you can maintain a single view of the truth across all standard and custom data in Salesforce.&lt;/p&gt;
&lt;h4 id=&quot;uses-your-matching-rules&quot;&gt;Uses Your Matching Rules&lt;/h4&gt;
&lt;p&gt;The component leverages Salesforce’s native Matching Rules and Duplicate Rules. You define what constitutes a “match” (exact email, fuzzy name, etc.) using Salesforce’s built-in rules, and the component uses those criteria to find dupes. This means it’s highly customizable to your business logic and doesn’t require uploading your data to an external system – everything stays in Salesforce (keeping your data secure and compliant). Since Salesforce’s duplicate rules can also be used to prevent duplicates or alert people when editing or creating records, all of your duplicate rules can be maintained in one place – controlling when duplicates are blocked, users are alerted, or just when it’s shown as a potential duplicate for the user to handle.&lt;/p&gt;
&lt;h4 id=&quot;quick-merges-with-user-control&quot;&gt;Quick Merges with User Control&lt;/h4&gt;
&lt;p&gt;A user seeing potential duplicates can initiate a merge and will be shown a side-by-side comparison to pick the principal record and which values to keep from each record. Only fields that differ are displayed for review, making it efficient to consolidate information.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2025/12/image-1-1024x698.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;The app even allows merging related records, like activities or opportunities under the principal, so nothing important is lost (one reviewer noted surprise at “how well this works to solve a universal problem,” merging not just the records but also related data). By merging duplicates in just a few clicks, teams save time and ensure data stays accurate.&lt;/p&gt;
&lt;h4 id=&quot;improved-data-quality-and-trust&quot;&gt;Improved Data Quality and Trust&lt;/h4&gt;
&lt;p&gt;By cleaning duplicates on the fly, you prevent the issues we discussed earlier. Reps and agents can trust that the record they’re looking at is the one and only record with that information. Reports become more accurate. Using this tool significantly improves user adoption because people trust the CRM data more. Clean data is reliable data.&lt;/p&gt;
&lt;h4 id=&quot;free-and-proven&quot;&gt;Free and Proven&lt;/h4&gt;
&lt;p&gt;The Potential Duplicates component has been available for years as a free tool, and it’s tried-and-true. We developed this tool after several consulting clients requested an easy way to keep their data free of duplicates. We released it for free because we believed this should be a standard component in Salesforce.&lt;/p&gt;
&lt;p&gt;By empowering end-users to merge obvious duplicates as they work, the component addresses the “looser matching rules” scenario – those potential duplicates that might not be caught by strict automation, but that a human can recognize and confirm. However, what about those big cleanup projects, or catching duplicates en masse across your entire database? That’s where Bulk Merge comes in.&lt;/p&gt;
&lt;h3 id=&quot;bulk-merge-for-mass-deduplication&quot;&gt;Bulk Merge for Mass Deduplication&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;/blog/eliminate-duplicates-fast-with-bulk-merge?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=potential_duplicates_overview_blog&quot;&gt;Bulk Merge&lt;/a&gt; is the game-changing feature introduced in Potential Duplicates V2. It gives Salesforce admins (or anyone responsible for data quality) a powerful interface for scanning the entire org for duplicates and merging them in bulk. Think of it as a de-dupe wizard that can clean up years of accumulated duplicates in a fraction of the time it used to take, and still for free.&lt;/p&gt;
&lt;p&gt;The Bulk Merge tool can find duplicate records across your Salesforce org and let you merge or auto-merge them according to set rules. It supports all standard and custom objects that have duplicate rules in Salesforce.&lt;/p&gt;
&lt;h3 id=&quot;heres-how-bulk-merge-works-and-why-its-a-big-deal&quot;&gt;Here’s How Bulk Merge Works and Why It’s a Big Deal:&lt;/h3&gt;
&lt;h4 id=&quot;org-wide-duplicate-scan&quot;&gt;Org-wide Duplicate Scan&lt;/h4&gt;
&lt;p&gt;Bulk Merge lets you pick an object (say, Contacts) and run a full scan of your Salesforce org for duplicates on that object. It uses the existing duplicate rules in your org to identify matches, so you’ll want to make sure you have appropriate matching rules in place (just like for the component).&lt;/p&gt;
&lt;p&gt;Once you hit “Run Duplicates Search,” the app combs through all your records behind the scenes (this might take a bit if you have millions of records – a good time to refill your coffee!). After the scan, it will list out all the duplicate sets it found. This beats the manual process of running reports or spot-checking – Bulk Merge finds duplicates proactively.&lt;/p&gt;
&lt;h4 id=&quot;merge-hundreds-at-a-time&quot;&gt;Merge Hundreds at a Time&lt;/h4&gt;
&lt;p&gt;The “bulk” in Bulk Merge is no joke. Rather than merging duplicates one set at a time, you can select dozens or even hundreds of duplicate sets and merge them all in one go. CloudAnswers designed Bulk Merge to handle merging hundreds or thousands of records, dramatically reducing the time and clicks needed for cleanup.&lt;/p&gt;
&lt;p&gt;What might have taken hours of tedious work through Salesforce’s standard merge (which only allows three records at a time) can now be done in minutes. For example, in testing, an admin was able to merge 30 duplicate records in about 5 minutes, and nothing is stopping you from processing hundreds of duplicates in a automerge – an hours-long chore turned into a quarter-hour task. This is a lifesaver when you’re doing an initial cleanup or routine maintenance on a large org.&lt;/p&gt;
&lt;h4 id=&quot;manual-review-vs-auto-merge&quot;&gt;Manual Review vs. Auto-Merge&lt;/h4&gt;
&lt;p&gt;Not all duplicates are created equal. Some you might want to eyeball before merging, others are obvious no-brainers. Bulk Merge supports both modes:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2025/12/image-2-1024x543.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h5 id=&quot;manual-merge&quot;&gt;Manual Merge&lt;/h5&gt;
&lt;p&gt;You can step through each duplicate group, review the records, and decide field-by-field which information to keep (just like the in-record component, but on a larger scale). This is great for scenarios like recently imported leads from a tradeshow – you want to ensure new info (like an updated phone number) isn’t lost when merging with an older record. Manual mode keeps you in control for critical merges.&lt;/p&gt;
&lt;h5 id=&quot;automerge&quot;&gt;Automerge&lt;/h5&gt;
&lt;p&gt;For duplicates that meet clear criteria (for instance, entries that are exact matches on Email or some reliable ID), you can let the app auto-merge them. Bulk Merge allows you to choose a rule for the principal record (e.g., always keep the oldest record, or the newest, or the one last modified) and then automatically merge all selected duplicate sets following that rule.&lt;/p&gt;
&lt;p&gt;This “fire-and-forget” option is perfect for cleaning up obvious dupes – say, a batch integration accidentally created duplicate accounts every night for a week; you can merge them all, keeping just the first occurrence of each. Auto-merge massively speeds up cleanup when you trust your matching rules.&lt;/p&gt;
&lt;h4 id=&quot;any-object-any-time&quot;&gt;Any Object, Any Time&lt;/h4&gt;
&lt;p&gt;Just like the component, Bulk Merge works with any object that Salesforce duplicate rules support. Standard objects (Accounts, Contacts, Leads, etc.) of course, but also custom objects – if you’ve set up duplicate rules for a custom object (maybe you have a custom “Student” object or “Donation” object for a nonprofit), Bulk Merge can find and fix dupes there too.&lt;/p&gt;
&lt;p&gt;This broad support is something many third-party tools don’t offer without extra cost. And because Bulk Merge is native, it respects all your Salesforce permissions and security. If a user doesn’t have access to certain records, they won’t be able to merge them – ensuring data governance isn’t violated.&lt;/p&gt;
&lt;h4 id=&quot;time--resource-savings&quot;&gt;Time &amp;amp; Resource Savings:&lt;/h4&gt;
&lt;p&gt;The net effect of Bulk Merge is significant efficiency gains. CloudAnswers users have reported saving countless hours and resources thanks to this feature. Instead of dedicating entire afternoons or paying expensive consulting hours for deduplication projects, an admin can routinely clean the org in a few clicks. By keeping your database clean, you also save costs down the line (why pay for 100,000 records when 10,000 of them are duplicates you could remove?). And with better data, all your downstream processes (from marketing automation to analytics) run more smoothly.&lt;/p&gt;
&lt;p&gt;The Potential Duplicates app addresses duplicate data continuously (via the in-record component) and in big batch fixes (via Bulk Merge). This one-two punch ensures both newly introduced duplicates and long-standing clutter are taken care of. Few other solutions offer this level of flexibility – especially at no cost and fully within the Salesforce platform. It’s like having an intelligent de-duplication assistant living inside your CRM.&lt;/p&gt;
&lt;h2 id=&quot;who-should-use-this-app&quot;&gt;Who Should Use This App?&lt;/h2&gt;
&lt;p&gt;The short answer: any Salesforce user or org that cares about data quality (which should be everyone!). But let’s get specific:&lt;/p&gt;
&lt;h3 id=&quot;salesforce-administrators&quot;&gt;Salesforce Administrators&lt;/h3&gt;
&lt;p&gt;If you’re an admin, maintaining clean data is probably one of your responsibilities – and also one of your biggest headaches. This app is a godsend for you. It gives you superpowers to quickly tidy up large data sets and automate a lot of the dedupe process. No more manually exporting to Excel or purchasing expensive one-time data cleaning services.&lt;/p&gt;
&lt;p&gt;As one Admin wrote in their review, “This app works amazingly and I am a big fan! It’s a must for all admins and developers… just install this!”. In other words, it saves admin time and effort, and even developers won’t need to write custom deduping code or Apex triggers – the heavy lifting is already handled.&lt;/p&gt;
&lt;h3 id=&quot;salesforce-consultants&quot;&gt;Salesforce Consultants&lt;/h3&gt;
&lt;p&gt;Implementing Salesforce for clients? You know that data migration and deduplication is a huge part of any rollout. By using CloudAnswers’ Potential Duplicates app, you can deliver a cleaner database and equip your client with an ongoing solution to keep it clean. It’s an excellent value-add (did we mention it’s free?) that you can include in your toolkit. Consultants working with nonprofits or small businesses will especially appreciate having a no-cost dedupe option.&lt;/p&gt;
&lt;h3 id=&quot;organizations-with-large-datasets&quot;&gt;Organizations with Large Datasets&lt;/h3&gt;
&lt;p&gt;The more records in your system, the more duplicates likely hide within. If you manage a large Salesforce org (thousands or millions of contacts, leads, accounts, etc.), a manual approach to find and merge duplicates simply doesn’t scale. Bulk Merge was designed with scale in mind – merging hundreds of dupes at once. Enterprises and fast-growing companies can use it to keep data quality high even as the database grows. This also helps avoid performance issues and unnecessary storage costs from too much redundant data.&lt;/p&gt;
&lt;h3 id=&quot;nonprofits-and-ngos&quot;&gt;Nonprofits and NGOs&lt;/h3&gt;
&lt;p&gt;Nonprofit organizations often deal with large contact lists (donors, volunteers, event attendees) and frequently import data from external sources (event registrations, donation platforms), which can introduce duplicates. Clean constituent data is critical for meaningful engagement – you don’t want to ask the same donor for a donation twice because they accidentally ended up with two records.&lt;/p&gt;
&lt;p&gt;Moreover, nonprofits usually operate on tight budgets, so purchasing a pricey data management tool might be off the table. CloudAnswers’ app being 100% free is a huge advantage here. It’s an ideal solution for nonprofits using Salesforce (including those on the Nonprofit Success Pack) to maintain a single, accurate record for every constituent.&lt;/p&gt;
&lt;h3 id=&quot;businesses-that-rely-on-clean-crm-data&quot;&gt;Businesses that Rely on Clean CRM Data&lt;/h3&gt;
&lt;p&gt;This is basically all businesses, but if your success hinges on data (think marketing agencies, financial services, higher education, healthcare providers with patient data, etc.), you need a deduplication strategy. Mistakes from duplicates in these contexts can be costly and even carry legal risk. For instance, in healthcare CRM use, duplicate patient entries could lead to fragmented medical histories.&lt;/p&gt;
&lt;p&gt;Or in sales, duplicate accounts might mean missing out on cross-sell opportunities because data was split up. Any organization that can’t afford to have confusing or incorrect customer data should consider this tool. It’s especially useful if you have multiple data sources feeding Salesforce (web forms, integrations, list uploads by different departments) – those environments are ripe for duplicates. Potential Duplicates will act as a safeguard, catching dupes as they come and giving you the means to eliminate them swiftly.&lt;/p&gt;
&lt;p&gt;If you see yourself in any of the above, the Potential Duplicates Component &amp;amp; Bulk Merge app is built for you. It removes the drudgery of duplicate cleanup and lets you focus on what matters: using Salesforce to grow relationships and drive results, with confidence that your data is solid.&lt;/p&gt;
&lt;h2 id=&quot;why-free&quot;&gt;Why Free&lt;/h2&gt;
&lt;p&gt;If you’re still reading this post, you must be interested in cleaning up your duplicates, and like what you’re hearing about this app. And you may be wondering, why is this free? The short answer to that is that we do plan to make a paid edition in the future. But like our &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=potential_duplicates_overview_blog&quot;&gt;Report Sender app&lt;/a&gt;, we plan to keep some features free for anyone. We do that for a few reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;We work with a lot of nonprofit organizations and small businesses that are very budget conscious. We believe these organizations should still be able to have clean data (and other admin tools, we have a few free apps).&lt;/li&gt;
&lt;li&gt;We believe to build great Salesforce apps, we need to see what works across not just dozens of organizations, but hundreds or thousands of organizations. Salesforce usage varies wildly across different industries, company sizes, and regions, so we want to gather as much feedback as we can to make our products are robust, error-free, and easy to use.&lt;/li&gt;
&lt;li&gt;We needed a tool for our consulting clients anyway, so we thought, why not release it to other people to use and see if it gets enough interest to become something bigger?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you are interested in having our consulting team help with cleaning up your data, or want to learn about some of the advanced tools we’re building, just let us know. We’re happy to help.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/let-us-handle-your-duplicate-cleanup?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=potential_duplicates_overview_blog&quot;&gt;Let us clean up your data&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/advanced-tools-for-cleaner-data?utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=potential_duplicates_overview_blog&quot;&gt;Talk to us about advanced de-duping tools&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;getting-started&quot;&gt;Getting Started&lt;/h2&gt;
&lt;p&gt;Maintaining clean data in Salesforce is not just a one-time project – it’s an ongoing discipline, and it’s critical for any organization that wants to make the most of its CRM. Duplicate data, as we’ve seen, can undermine even the best sales and marketing efforts and cost a fortune in wasted time and resources.&lt;/p&gt;
&lt;p&gt;The good news is that you can take control of your data. CloudAnswers’ Potential Duplicates Component &amp;amp; Bulk Merge app gives you a robust, user-friendly way to keep duplicates at bay and ensure your Salesforce instance is accurate and trustworthy.With the combination of real-time duplicate alerts on records and bulk merging capabilities, you’ll quickly wonder how you ever managed without these tools.&lt;/p&gt;
&lt;p&gt;The fact that CloudAnswers offers this solution 100% free removes any barrier to trying it out​ – there’s literally nothing to lose except your duplicate data! If you’re not already using Potential Duplicates, now is the perfect time to install it and start reaping the benefits of cleaner data. We invite you to try the app for yourself and see the impact on your organization’s efficiency and data quality. You can find &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&quot;&gt;CloudAnswers Potential Duplicates Component &amp;amp; Bulk Merge on the Salesforce AppExchange&lt;/a&gt; and get it running in minutes. In a world where business moves fast, don’t let duplicate data trip you up. Give your team the gift of clean, reliable information. With CloudAnswers’ help, say goodbye to Salesforce duplicates for good and hello to a smarter CRM. Get started today and make “dirty data” a thing of the past!&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Eliminate Duplicates Fast with Bulk Merge]]></title><description><![CDATA[As consultants and app providers, we get to see a LOT of…]]></description><link>https://cloudanswers.com/blog/eliminate-duplicates-fast-with-bulk-merge</link><guid isPermaLink="false">/blog/eliminate-duplicates-fast-with-bulk-merge</guid><pubDate>Mon, 24 Feb 2025 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2025/02/Potential-Duplicates-AppExchange.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;As consultants and app providers, we get to see a LOT of Salesforce orgs, and one thing that almost everyone has in common is bad data – it takes consistent, proactive work to ensure the data in Salesforce is clean and accurate. We love to leverage native tools, and we think Salesforce duplicate rules are powerful, so we always make sure our clients have them set up to prevent duplicates. But in our experience, duplicate management falls into two buckets: records that are definitely duplicates, like two contacts with the same email, and records that might be duplicated, but someone who knows the data might have to review. The second bucket is what we call potential duplicates, and it takes much more work to keep these out of your system.&lt;/p&gt;
&lt;p&gt;Six years ago, we released our &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&amp;amp;tab=d&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=bulk_merge_blog&quot;&gt;potential duplicates component&lt;/a&gt; to help show potential duplicates on custom objects and standard records where the standard Salesforce duplicate component didn’t exist. We released it for free because we felt it should be standard—it’s a great, simple tool for users to help determine which potential duplicates actually need to be merged. Since then, it has helped thousands of companies keep their Salesforce clean.&lt;/p&gt;
&lt;p&gt;Now, we are introducing Potential Duplicates V2, which adds a powerful and commonly requested feature that allows you to scan your org for duplicates and merge them in bulk. Potential Duplicates V2 empowers our users to save countless hours and resources by enabling them to view and delete all duplicate records in their org. Let’s dive into this new powerful feature and see how it works.&lt;/p&gt;
&lt;h1 id=&quot;bulk-merge&quot;&gt;Bulk Merge&lt;/h1&gt;
&lt;p&gt;Bulk Merge is designed to simplify the lives of our admins. It allows you to merge hundreds or thousands of duplicates, dramatically reducing time and complexity.&lt;/p&gt;
&lt;p&gt;Here’s how it works: with Bulk Merge, just like the componnet, you have to make sure that your Salesforce duplicate rules are set up on the object you wish to merge. Bulk Merge uses the &lt;a href=&quot;https://help.salesforce.com/s/articleView?id=sales.duplicate_rules_create.htm&amp;amp;type=5&quot;&gt;existing duplicate rules&lt;/a&gt;in your org and supports the merging of any object Salesforce allows. Once those are set up, you can launch the app and start finding and eliminating duplicates. Keep reading for more on how it works.&lt;/p&gt;
&lt;h2 id=&quot;search-for-duplicates&quot;&gt;Search for Duplicates&lt;/h2&gt;
&lt;p&gt;When you first go to the Bulk Merge tab, you may see duplicates there already. But if you don’t, or you’ve recently changed your duplicate or matching rules, you may want to start with a search. To do that, just make sure you have the object selected that you want to search and then click Run Duplicates Search. Then refill your coffee or work on something else because it’ll take a minute to scan through all the records. When you want, click Refresh to see all of the duplicates that it found. Then move on to either manually or automatically merging the duplicates that were found.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2025/02/image-1024x344.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;manual-merge&quot;&gt;Manual Merge&lt;/h2&gt;
&lt;p&gt;Let’s take a look at a common occurrence: you and your team go to a trade show, and many of your colleagues start collecting contact information on potential prospects from the show. Sounds great, everyone is generating a ton of new connections, until they’re imported into Salesforce and you realize that a bunch of the “new connections” are people you’ve had in the system for years. After you have a conversation with the new guys about cross-referencing with the system before adding new people, you get started with the cleanup. This is a great use case for the manual merge feature in Bulk Merge, which lets you review every record before they’re merged, so you can make sure any new information is applied to the existing record while merging the excess data.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2025/02/AD_4nXf9RxItVQzR7k2OBuAyaMbqVw38pWYVA7Jrvd2PCeBfGNJcfxk2ilO59fRSulcX9Qx2FWEoqUEcwMKuBDB0AaITTv2_0xa8UWjz1CCQXEakNvHHPELmWjM9p9dzQxVHviZHn-mm-zkcDIwXKJD_RWPRrOAV.gif&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Manual merge empowers you to control the merge, keeping you in the driver’s seat for critical data merges.&lt;/p&gt;
&lt;h2 id=&quot;auto-merge&quot;&gt;Auto Merge&lt;/h2&gt;
&lt;p&gt;Let’s look at another situation that happens from time to time. Your company uses an external system to receive orders and sync them over into Salesforce via a batch job. Unfortunately for your organization, there was an issue with the API which caused mass sync jobs that no one noticed for a few days. Not to worry, this is a perfect use case for the Automerge feature.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2025/02/AD_4nXf8dEK9J0R5UC1H0cP_4LN36x0Q7YOEKFn2WvMn-i-pzfmTICPtR0GFZF2FqpUHT59CYwRl7YpnFpl8K0CVf27lHqJBHw2IrNXN82ayYxWseiLCislZajRfzwPz4wnP8-BmhjPpbmn2-3ueukenYk7vEId7.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Automerge works by letting you choose which master record you want, Oldest, Newest, or the most recently modified. In this example, merging by the oldest record and letting the system do the rest would be the perfect solution for this problem, so let’s fix it!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2025/02/AD_4nXdhh89uE9H9jRQNPB_mB8AEIo9GXso64PIUR62yG2XwWB13DIUCNLeSg2u2JQSER9f_0b2thSQfWnL0NuV0x-iJHdSMYyyDy4spD5hWGJ2XY7gCPwMuAJ01pKHV95BTVC6xslBG3ol6HCKL6AvJqi-et9OD.gif&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;In this example we merged 30 duplicate records, but as you can see there is the option to “Load More” at the bottom of the page. There is nothing stopping you from loading hundreds of records in a batch, selecting and processing them. Taking a process that would normally several take hours and reducing it into a 15 minute task. Automerge is a great tool for tasks like this, or merges where you trust the system to make the dceisions for you.&lt;/p&gt;
&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;Potential Duplicates v2 is the most capable data management application we’ve ever created. With the power of Bulk Merge and its options to manually or automatically merge records, it’s sure to assist your org with duplicates.&lt;/p&gt;
&lt;p&gt;If you’re not already a Potential Duplicates user, this is the best time to start. We offer the application 100% free forever, so go ahead and start cleaning up your duplicates today!&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Report Sender Version 2: A Major Upgrade for Salesforce Users]]></title><description><![CDATA[As we celebrate Report Sender’s 10th anniversary, we’re thrilled to unveil its…]]></description><link>https://cloudanswers.com/blog/report-sender-version-2-a-major-upgrade-for-salesforce-users</link><guid isPermaLink="false">/blog/report-sender-version-2-a-major-upgrade-for-salesforce-users</guid><pubDate>Thu, 07 Nov 2024 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/wordpress/2024/11/cloudanswers-report-sender-dynamic-filters.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;As we celebrate Report Sender’s &lt;strong&gt;10th anniversary&lt;/strong&gt;, we’re thrilled to unveil its most significant upgrade — &lt;strong&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_content=blog_rs2_features&quot;&gt;Report Sender Version 2&lt;/a&gt;&lt;/strong&gt;. Designed to streamline your Salesforce reporting process, this new version introduces powerful features like Dynamic Filtering, a Lightning Component, enhanced log files, preview capabilities, and new file format options. Let’s dive into these exciting enhancements and discover how they can save you hours of work and simplify your workflow.&lt;/p&gt;
&lt;p&gt;Report Sender Premium is the newest edition of our popular Salesforce application that automates the scheduling and emailing of Salesforce reports. Built with power users in mind, this version offers advanced functionalities that reduce complexity and increase efficiency in managing your reports.&lt;/p&gt;
&lt;h3 id=&quot;dynamic-filtering-premium-edition&quot;&gt;Dynamic Filtering (Premium Edition)&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2024/11/cloudanswers-report-sender-dynamic-filters-1024x576.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dynamic Filtering&lt;/strong&gt; is a game-changing feature that allows you to create multiple customized reports from a single master report. By applying dynamic filters, you can tailor reports for different recipients without the need to create separate reports for each one.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How It Works:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Apply Any Filter&lt;/strong&gt;: Use any filter from your source report to customize the output.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Personalized Reports&lt;/strong&gt;: For example, filter by Contact Name so each contact receives a report specific to them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduce Complexity&lt;/strong&gt;: Minimize the number of reports and schedules you need to manage.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Use Cases:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Client Reporting&lt;/strong&gt;: Provide clients with personalized updates without manual intervention.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sales Teams&lt;/strong&gt;: Send individual performance reports from one master report to each salesperson.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Regional Managers&lt;/strong&gt;: Distribute region-specific data without creating multiple reports.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_content=blog_rs2_features&quot;&gt;Install Now&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;2-lightning-componentpremium-customers-only&quot;&gt;&lt;strong&gt;2. Lightning Component&lt;/strong&gt;&lt;em&gt;&lt;strong&gt;(Premium Customers Only)&lt;/strong&gt;&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2024/11/report-sender-blog-graphic-for-lightning-component-1024x576.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;The new &lt;strong&gt;Report Sender Lightning Component&lt;/strong&gt; integrates seamlessly with &lt;strong&gt;any record page&lt;/strong&gt; for objects used as a recipient. This means you (or your end users) can view, add, or remove dynamically filtered schedules directly from a record page without navigating away from your current workflow.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Benefits:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Quick Access&lt;/strong&gt;: Manage report schedules from the Account, Contact, or any custom object page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Efficiency&lt;/strong&gt;: Save time by not switching between different parts of Salesforce.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Real-Time Updates&lt;/strong&gt;: Instantly add stakeholders to report schedules as you review records.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_content=blog_rs2_features&quot;&gt;Install Now&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;3-enhanced-log-filesall-users&quot;&gt;&lt;strong&gt;3. Enhanced Log Files&lt;/strong&gt;&lt;em&gt;&lt;strong&gt;(All Users)&lt;/strong&gt;&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;Understanding what’s happening behind the scenes is crucial. We’ve overhauled the logging system to make it more accessible and informative.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2024/11/report-sender-v2-blog-log-files-1024x576.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What’s New:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dashboard Viewing&lt;/strong&gt;: Logs are now viewable directly from the dashboard.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Critical Information&lt;/strong&gt;: See Status, Error Messages, and Log File Names at a glance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File Storage&lt;/strong&gt;: Log details are now stored in Files, following Salesforce’s recommendation to move away from Attachments.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_content=blog_rs2_features&quot;&gt;Install Now&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;4-preview-report-schedulesall-users&quot;&gt;&lt;strong&gt;4. Preview Report Schedules&lt;/strong&gt;&lt;em&gt;&lt;strong&gt;(All Users)&lt;/strong&gt;&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;No more adjusting recipients just to test your report schedules. The new preview feature allows you to send test reports to any email address.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2024/11/report-sender-v2-blog-preview-send-1024x576.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Easy Testing&lt;/strong&gt;: Verify that your reports look correct before sending them out.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dynamic Filtering Verification&lt;/strong&gt;: Ensure that your dynamic filters are set up properly and recipients receive the correct data.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Confidence&lt;/strong&gt;: Reduce errors by previewing reports in real-world scenarios.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_content=blog_rs2_features&quot;&gt;Install Now&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;5-new-file-format-optionsplus-and-premium-users&quot;&gt;&lt;strong&gt;5. New File Format Options&lt;/strong&gt;&lt;em&gt;&lt;strong&gt;(Plus and Premium Users)&lt;/strong&gt;&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;V2 includes added support for new file formats to give you more flexibility in how you present your data.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/wordpress/2024/11/report-sender-v2-blog-log-files-1-1024x576.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;additions&quot;&gt;&lt;strong&gt;Additions:&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Details Only XLSX&lt;/strong&gt;: Leverage Salesforce’s new API format for cleaner, more detailed Excel reports.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;International and legacy system support&lt;/strong&gt;: Change file encoding directly from the report schedule to support special characters, multiple languages, and file formats used by old legacy systems who have not updated to UTF-8.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_content=blog_rs2_features&quot;&gt;Install Now&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;why-upgrade-to-report-sender-premium&quot;&gt;&lt;strong&gt;Why Upgrade to Report Sender Premium?&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Upgrading to Report Sender Premium means unlocking features that significantly enhance your reporting capabilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Save Time&lt;/strong&gt;: Dynamic Filtering and the Lightning Component streamline your workflow.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduce Complexity&lt;/strong&gt;: Manage fewer reports and schedules while delivering more personalized content.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enhance Communication&lt;/strong&gt;: New file formats and encoding options make your reports more accessible and professional.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improve Oversight&lt;/strong&gt;: Enhanced logs and preview features give you better control over your reporting process.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;getting-started-with-report-sender-premium&quot;&gt;&lt;strong&gt;Getting Started with Report Sender Premium&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Start Your Free Trial&lt;/strong&gt;: We offer a 30-day free trial with no credit card required.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Install the App&lt;/strong&gt;: Visit the Salesforce AppExchange to install Report Sender Premium. Existing users can try it out in a sandbox.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configure Your Settings&lt;/strong&gt;: Set up dynamic filters, schedule reports, and customize your preferences.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integrate the Lightning Component&lt;/strong&gt;: Add the component to your record pages for easy access.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Preview and Launch&lt;/strong&gt;: Test your reports with the new preview feature before rolling them out.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_content=blog_rs2_features&quot;&gt;Install Now&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;thats-all-folks&quot;&gt;&lt;strong&gt;That’s All, Folks!&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_content=blog_rs2_features&quot;&gt;Report Sender Premium&lt;/a&gt; is our most powerful and user-friendly version yet. Whether you’re a sales manager needing individualized reports for your team or a global company requiring multi-language support, this upgrade is designed to revolutionize your reporting process.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Don’t miss out on this opportunity to elevate your workflow. Try &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_content=blog_rs2_features&quot;&gt;Report Sender Premium&lt;/a&gt; today and experience the future of Salesforce reporting.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If you’re an existing user and want to learn more or upgrade,&lt;/strong&gt;&lt;a href=&quot;https://cloudanswers.dev/meetings/cloudanswers/cloudanswers-sales&quot;&gt;&lt;strong&gt;schedule a time with us&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;to discuss your needs and get a quote.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;For more information,&lt;/em&gt;&lt;a href=&quot;/contact&quot;&gt;&lt;em&gt;contact us&lt;/em&gt;&lt;/a&gt;&lt;em&gt;or&lt;/em&gt;&lt;a href=&quot;https://cloudanswers.dev/meetings/cloudanswers/cloudanswers-sales&quot;&gt;&lt;em&gt;schedule a time to talk&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[AppExchange Review: Lazy Admin]]></title><description><![CDATA[Don’t you just wish you could ask an AI to build your Salesforce reports for you? I’ve found an app that does just that in our first installment of CloudAnswers AppExchange Reviews. Check out our review of Lazy Admin AI, a great app for an Admin in a rush.]]></description><link>https://cloudanswers.com/blog/lazy-admin-review</link><guid isPermaLink="false">/blog/lazy-admin-review</guid><pubDate>Thu, 25 Jul 2024 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/lazy-admin-review/image4.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h1 id=&quot;lazy-admin-a-great-app-for-quickly-querying-data&quot;&gt;Lazy Admin: A Great App for Quickly Querying Data&lt;/h1&gt;
&lt;p&gt;In our first app review, I’ve chosen an app that is simple, effective,
and works well: Lazy Admin by HTTPeak Pty Ltd. This application uses AI
and natural language processing to run SOQL queries and generate reports
and dashboards. You can ask it to query any data set in your Org,
including standard and custom objects.&lt;/p&gt;
&lt;h2 id=&quot;querying-data&quot;&gt;Querying Data&lt;/h2&gt;
&lt;p&gt;Let&amp;#39;s walk through an example. I’ll have the AI query all accounts and
related contacts, and let&amp;#39;s see how it does.&lt;/p&gt;
&lt;img src=&quot;/uploads/lazy-admin-review/image2.png&quot; /&gt;

&lt;p&gt;I created a new search for all accounts and related contacts, sorting by
account number. It retrieved all records in the org, just as I asked,
with the related contact. The contact level in the report was included
as well.&lt;/p&gt;
&lt;h2 id=&quot;exporting-data&quot;&gt;Exporting Data&lt;/h2&gt;
&lt;p&gt;Let&amp;#39;s export this data via email so we can see it in a spreadsheet
editor. The email screen allows you to customize a message, select a
user to send it to and add external emails to CC so that you can send
the data out of the Org right from Salesforce.&lt;/p&gt;
&lt;p&gt;Here’s what the email looks like with the custom message included.
&lt;img src=&quot;/uploads/lazy-admin-review/image1.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Here’s all the data dumped out, and it did exactly what it said it would
do. It got all Accounts, with related contacts and included the
relationship level. These were just the default fields. You can
add/remove fields either from the GUI or in the query editor, but for a
quick text prompt, it did a good job.&lt;/p&gt;
&lt;img src=&quot;/uploads/lazy-admin-review/image3.png&quot;/&gt;

&lt;h2 id=&quot;other-thoughts&quot;&gt;Other Thoughts&lt;/h2&gt;
&lt;p&gt;There are some drawbacks to the application; you have the search history
and can favorite queries, but at the end of the day, they aren’t
Salesforce reports and can’t be saved and shared within Salesforce. I
had some security concerns, I reached out to the developer for comment
and this is what they had to say:&lt;/p&gt;
&lt;p&gt;“We do not send the data out of the Salesforce org.However, we do send the metadata (schema) along with the search phrase, for better context. In addition to that, we have numerous orchestrations in place which are passed as system instructions to the LLM behind the scenes. This helps the LLM understand the appropriate context and instructions required to generate the SOQL.” - HTTPeak&lt;/p&gt;
&lt;p&gt;Whether or not this is secure enough for you will depend on whether you
have any proprietary metadata. HTTPeak has passed Salesforce’s security
review and no record data leaves the org.&lt;/p&gt;
&lt;h2 id=&quot;setup&quot;&gt;Setup&lt;/h2&gt;
&lt;p&gt;The setup was rather easy. I went to their website and followed the
installation guide. The only limitation is it only works for lighting
apps, so if you don’t pay attention to that fact in the setup you may
run into an issue.&lt;/p&gt;
&lt;h2 id=&quot;target-users&quot;&gt;Target Users&lt;/h2&gt;
&lt;p&gt;The users who would benefit from this are your lazy admins, who don’t
feel like writing SOQL queries, and any end user, say a sales manager
who already has access to all data, who just wants a quick answer on the
data without having to build out a report.&lt;/p&gt;
&lt;h2 id=&quot;alternatives&quot;&gt;Alternatives&lt;/h2&gt;
&lt;p&gt;Running a SOQL query from Salesforce Inspector, the developer console,
or for something permanent just a standard Salesforce report.&lt;/p&gt;
&lt;h2 id=&quot;errors&quot;&gt;Errors&lt;/h2&gt;
&lt;p&gt;I asked for all Opportunities related to Universities and Hotels, and
the AI was expecting to find record types. Instead, what I was looking
for were Opportunities with those words in the name. Understanding that
and rewording it got it to work, but things like that should be kept in
mind when interacting with the AI.&lt;/p&gt;
&lt;h2 id=&quot;tips&quot;&gt;Tips&lt;/h2&gt;
&lt;p&gt;Be sure to word your prompt as if you are talking to a computer. You
still have to keep that in mind. The LLM is good but imperfect, so
understand that it may make an error, and you might have to reword it or
edit the query it returns.&lt;/p&gt;
&lt;h2 id=&quot;pricing&quot;&gt;Pricing&lt;/h2&gt;
&lt;p&gt;This app is a freemium app with three pricing tiers: free, $3,048 for
the starter tier, which removes the monthly limit and allows 12k
searches annually, and the Plus tier, at $6120 annually, allowing 60k
yearly searches and creation of dashboards. For free, you can run 10
unique queries a month, with no limits on how often you can send out the
CSVs via email or download them directly from those 10 queries.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Overall, I’d say Lazy Admin is a solid application if you install it and
keep the users to just Admins/trusted persons at the free tier. In my
experience consulting, it’s nice to run a quick SOQL query without
having to type it out. It saves you from tabbing into ChatGPT, and it’s
a friendlier UI for reviewing data than other options like Salesforce
Inspector or the Developer Console. It’s a Lightning App, and it feels
and behaves like it. There is a fluidity to it, which is nice and
enjoyable to use. I like it more than Salesforce Inspector because it
generates my queries, and I can manually edit them if necessary.
However, I can count on one hand the number of times I run one-off
reports a month. Most reports are reused, so it’s more helpful to save
and share within Salesforce and sometimes email them out on a consistent
basis. I don’t see this replacing reporting, but for quick queries, this
is a great tool.&lt;/p&gt;
&lt;h2 id=&quot;our-rating&quot;&gt;Our Rating&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Functionality ⭐️⭐️⭐️⭐️⭐️&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Innovation    ⭐️⭐️⭐️⭐️&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UI and UX     ⭐️⭐️⭐️⭐️⭐️&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Support and Documentation ⭐️⭐️⭐️&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Security ⭐️⭐️⭐️⭐️&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Value for Money ⭐️⭐️⭐️&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Coolness ⭐️⭐️⭐️⭐️&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&quot;overall-⭐️⭐️⭐️⭐️&quot;&gt;&lt;strong&gt;Overall&lt;/strong&gt; &lt;strong&gt;⭐️⭐️⭐️⭐️&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=96ad3719-43d3-4ccd-a9ae-62cc933661ce&amp;amp;tab=r&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=lazy_admin_blog_post&quot;&gt;&lt;u&gt;View on the
AppExchange&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[AppExchange Review Series]]></title><description><![CDATA[As a long time Salesforce partner (since 2008), on both the consulting and AppExchange side, we realized we have a wealth of experience in building, installing, configuring, and using AppExchange apps. Our consulting customers often come to us with questions about which app would solve a particular problem, and as part of our AppExchange business we are often trying apps to learn what to do (and not to do) when building our own.]]></description><link>https://cloudanswers.com/blog/introducing-app-reviews</link><guid isPermaLink="false">/blog/introducing-app-reviews</guid><pubDate>Wed, 24 Jul 2024 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/introducing-app-reviews/image2.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h1 id=&quot;new-appexchange-review-series&quot;&gt;New: AppExchange Review Series&lt;/h1&gt;
&lt;p&gt;As a long-time Salesforce partner (since 2008) on both the consulting
and AppExchange side, we realized we have a wealth of experience
building, installing, configuring, and using AppExchange apps. Our
consulting customers often come to us with questions about which app
would solve a particular problem, and as part of our AppExchange
business, we often try apps to learn what to do (and not to do) when
building our own. So, we’re starting a new series where we give you
in-depth reviews on AppExchange apps.&lt;/p&gt;
&lt;h2 id=&quot;the-review-process&quot;&gt;The Review Process&lt;/h2&gt;
&lt;p&gt;After choosing what we will review, we install it in a developer org,
taking screenshots and notes of anything important along the way. After
the installation, we consult the documentation to complete any
configuration necessary for the application we’re testing. Once the
setup is complete, we navigate to the application via the app launcher
or follow the application instructions to start testing it. Some apps
require us to set up some data to test properly, i.e., Contact/Account
records, Apex classes, etc. Once that is done, we start running
scenarios that we’ve encountered with customers before or make based on
our experience. We take screenshots and notes of our experiences and
compare the application to alternatives to see how it handles against
the competition.&lt;/p&gt;
&lt;h2 id=&quot;rating-categories&quot;&gt;Rating Categories&lt;/h2&gt;
&lt;p&gt;To rate the apps, we’ll be using a version of the judging scale that
we’ve used for a lot of our internal hackathons and rating apps in five
categories:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Functionality:&lt;/strong&gt; How well the software meets its intended purpose
and functionality, how well the features work, and the range and
depth of features it offers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Innovation:&lt;/strong&gt; Uniqueness of the problem they’re solving, the
technology used to solve the problem, and the user experience.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;User Interface (UI) and User Experience (UX):&lt;/strong&gt; The overall
quality and refinement of the software, especially the user
experience, installation and setup process, and overall attention to
detail.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Support and Documentation:&lt;/strong&gt; Availability and quality of customer
support, including documentation, user guides, responsiveness to
inquiries, and the presence of an active user community or help
resources.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; Data protection, compliance with GDPR and other
regulations, and technology best practices.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Value for Money:&lt;/strong&gt; How much value the app provides to an
organization compared to the cost of the app, including
implementation, support, and maintenance.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Coolness:&lt;/strong&gt; Even though it’s business software, we think the best
software has a coolness factor. Coolness is based on the appeal and
attractiveness of the software, including the design, user
interface, and features that stand out and engage users.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;rubric&quot;&gt;Rubric&lt;/h2&gt;
&lt;p&gt;We use the following criteria to determine our score for each
category.
&lt;img src=&quot;/uploads/introducing-app-reviews/image1.png&quot;/&gt;&lt;/p&gt;
&lt;p&gt;Based on the total score, apps will be categorized as Excellent (35-40
points), Good (28-34 points), Satisfactory (21-27 points), Needs
Improvement (14-20 points), or Poor (7-13 points).&lt;/p&gt;
&lt;h2 id=&quot;why-check-out-our-reviews&quot;&gt;Why Check Out Our Reviews?&lt;/h2&gt;
&lt;p&gt;With our detailed reviews, you can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Discover new and innovative apps that can enhance your Salesforce
experience.&lt;/li&gt;
&lt;li&gt;Save time by narrowing down your options based on our expert
assessments.&lt;/li&gt;
&lt;li&gt;Make informed decisions by understanding each app&amp;#39;s strengths and
weaknesses.&lt;/li&gt;
&lt;li&gt;Stay up-to-date with the latest trends and updates in the Salesforce
ecosystem.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title><![CDATA[5 Hottest Updates in Salesforce Summer '24 for Admins]]></title><description><![CDATA[Salesforce has 3 major releases every year: Spring, Summer, and Winter. The Summer 24 release is rolling out in 3 stages: May 17th, June 7th, and June 14th, respectively. Sandboxes will be updated on May 10, but if you want to get hands-on early, you can sign up for a preview org by following the link below. Getting to the good stuff, there are some major quality-of-life updates for Admins, features like the automation app, Einstein for Flow, Field tracking history, personal labels, and improved permission set interfaces, to highlight a few.]]></description><link>https://cloudanswers.com/blog/5-hottest-updates-in-salesforce-24-for-admins</link><guid isPermaLink="false">/blog/5-hottest-updates-in-salesforce-24-for-admins</guid><pubDate>Tue, 07 May 2024 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/hottest-features-summer-24/header.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Salesforce has 3 major releases every year: Spring, Summer, and Winter.
The Summer 24 release is rolling out in 3 stages: May 17th, June 7th,
and June 14th, respectively. Sandboxes will be updated on May 10, but if
you want to get hands-on early, you can sign up for a preview org by
following the link below. Getting to the good stuff, there are some
major quality-of-life updates for Admins, features like the automation
app, Einstein for Flow, Field tracking history, personal labels, and
improved permission set interfaces, to highlight a few.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.salesforce.com/form/signup/prerelease-summer24/&quot;&gt;Get a pre-release org to try out the new
features.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;the-automation-app&quot;&gt;The Automation App&lt;/h2&gt;
&lt;p&gt;Now, without going to Setup, you can see the status of the Flow, see
when it last ran, and keep tabs on all Flows that run in the system.
From this screen, you can manage all of your automation in the system,
access help articles, join Trailblazer communities, and create a new
Flow.&lt;/p&gt;
&lt;img src=&quot;/uploads/hottest-features-summer-24/image1.png&quot;/&gt;

&lt;h2 id=&quot;einstein-draft-flows&quot;&gt;Einstein Draft Flows&lt;/h2&gt;
&lt;p&gt;Maybe you’re new to the Flow game, or you’re in a rush. Either way,
Salesforce now lets you draft a Flow using Einstein. All you have to do
is click new Flow, and then select “Let Einstein Help You Build,” then
tell Einstein what you want in a text prompt. Within a minute, it’s
built the Flow. Now, even Salesforce agrees that this is not perfect,
and needs a manual overview, as well as testing before activation.
However, it is a great implementation of AI into the Salesforce platform
and is a promising look into another way AI makes our lives better.&lt;/p&gt;
&lt;img src=&quot;/uploads/hottest-features-summer-24/image6.png&quot; /&gt;

&lt;h2 id=&quot;field-tracking-history&quot;&gt;Field Tracking History&lt;/h2&gt;
&lt;p&gt;Summer 24’ has a new and improved field history tracking screen. From
one UI, you can enable or disable field tracking for all objects in one
place.&lt;/p&gt;
&lt;img src=&quot;/uploads/hottest-features-summer-24/image4.png&quot; /&gt;

&lt;h2 id=&quot;personal-labels&quot;&gt;Personal Labels&lt;/h2&gt;
&lt;p&gt;Users can now create personal labels for records to help organize them
as they need. It’s super easy to add your records to a Label, you can do
it from the List View on all supported objects, and you can add
different types of objects to the same Label.&lt;/p&gt;
&lt;img src=&quot;/uploads/hottest-features-summer-24/image3.png&quot; /&gt;

&lt;p&gt;For example, I have included Accounts and Contacts in my custom Label to
keep track of the people and businesses I need to contact once a week.
The concept of labeling or tagging records is not new in Salesforce.
However, this is a new implementation and has the potential to increase
the productivity of all users in your org.&lt;/p&gt;
&lt;img src=&quot;/uploads/hottest-features-summer-24/image5.png&quot; /&gt;

&lt;p&gt;Personal labels are private and cannot be seen by other users. It’s
enabled by default on the following objects:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Account&lt;/li&gt;
&lt;li&gt;Cadence&lt;/li&gt;
&lt;li&gt;Cadence Step Tracker&lt;/li&gt;
&lt;li&gt;Call Script&lt;/li&gt;
&lt;li&gt;Campaign&lt;/li&gt;
&lt;li&gt;Contact&lt;/li&gt;
&lt;li&gt;Case&lt;/li&gt;
&lt;li&gt;Email Template&lt;/li&gt;
&lt;li&gt;Lead&lt;/li&gt;
&lt;li&gt;Opportunity&lt;/li&gt;
&lt;li&gt;Orchestration Work Item&lt;/li&gt;
&lt;li&gt;Task&lt;/li&gt;
&lt;li&gt;Custom Objects&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;permission-set-and-permission-set-groups-screen&quot;&gt;Permission Set and Permission Set Groups Screen&lt;/h2&gt;
&lt;p&gt;Summer 24’ adds a much-requested feature from the IdeaExchange, now you
can see exactly what permissions are granted via the Permission Set
assigned to the user, making it glanceable and easier to manage. A
similar screen has also been added to the User page so you can see
permissions on the User level as well.&lt;/p&gt;
&lt;img src=&quot;/uploads/hottest-features-summer-24/image2.png&quot; /&gt;


&lt;p&gt;I’ve barely scratched the surface in this article.
There are many other quality-of-life improvements and little tweaks,
such as improved List View performance, Einstein for formulas, repeaters
for Flow now being GA, and so much more. If you have the time, I
recommend going through the release notes, there’s a ton of great
information there.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://help.salesforce.com/s/articleView?id=release-notes.salesforce_release_notes.htm&amp;amp;release=250&amp;amp;type=5&quot;&gt;Release Notes - Summer
‘24&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Product Launch: CloudAnswers Shop Builder]]></title><description><![CDATA[Are you looking for an easy way to launch an ecommerce shop? Our new app, Shop Builder, is now in public beta! We’re looking for companies that want to build an online shop but don’t want to spend thousands building it out. ]]></description><link>https://cloudanswers.com/blog/announcing-shop-builder</link><guid isPermaLink="false">/blog/announcing-shop-builder</guid><pubDate>Fri, 12 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/shop-builder-blog-header.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Are you looking for an easy way to launch an ecommerce shop? Our new
app, Shop Builder, is now in public beta! We’re looking for companies
that want to build an online shop but don’t want to spend thousands
building it out. And since you might be asking why we’re building out
another ecommerce solution for Salesforce, we’ll start with a brief
summary of current ecommerce options.&lt;/p&gt;
&lt;h2 id=&quot;ecommerce-solutions-in-2024&quot;&gt;Ecommerce Solutions in 2024&lt;/h2&gt;
&lt;p&gt;These days, having an online presence is a must. Building an ecommerce
storefront is an established method for increasing reach and revenue.
For many, however, creating and managing an online store can be
daunting, requiring technical expertise and substantial resources.&lt;/p&gt;
&lt;p&gt;In recent years a slew of ecommerce options have popped up online trying
to simplify this process. They’ve opened the door to tons of small
businesses and nonprofits looking to find a new audience online.
Shopify, Oracle, and Squarespace are three names that have helped to
define this wave of options. Salesforce itself offers an ecommerce
solution, and now, so does CloudAnswers.&lt;/p&gt;
&lt;h3 id=&quot;salesforce-commerce-cloud&quot;&gt;Salesforce Commerce Cloud&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/sf-commerce.png&quot; alt=&quot;Salesforce Commerce Graphic&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.salesforce.com/news/stories/salesforce-headless-commerce-composable-storefront/&quot;&gt;Image
Source&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The commerce solution offered directly by Salesforce is generally
considered a large investment of time and effort, but comes with a ton
of templates and features. For example, you can utilize the embedded
Einstein AI to recommend related products to shoppers to guide their
experience and upsell naturally.&lt;/p&gt;
&lt;p&gt;For smaller businesses or non-profits, the most intimidating part of
setting up a shop on Salesforce Commerce Cloud could easily be the cost
and the need to have a Salesforce developer available for setup and
updates. This makes it a better option for those who are either already
firmly established with a customer base or those who have the money to
invest upfront in the longevity of their shop.&lt;/p&gt;
&lt;h3 id=&quot;shopify-plus&quot;&gt;Shopify Plus&lt;/h3&gt;
&lt;p&gt;This popular option offers many of the same features as Commerce Cloud
but removes the need for a dedicated developer. Their shops are built
with a drag-and-drop program that lets you choose the components you
want on your page and move them around until you’re happy.&lt;/p&gt;
&lt;p&gt;Shopify Plus requires less time and (typically) less money than setting
up with Salesforce Commerce Cloud since it doesn’t require developer
skills, although there are developer tools for advanced functionality
like headless commerce. Shopify Plus does come with a subscription fee
that starts at $2,300/month. The cost of setup with both can vary, and a
financial investment is required before your shop is live.&lt;/p&gt;
&lt;h2 id=&quot;cloudanswers-salesforce-shop-builder&quot;&gt;CloudAnswers Salesforce Shop Builder&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/shop-builder-example.png&quot; alt=&quot;Shop Builder Example Shop&quot;&gt;&lt;/p&gt;
&lt;p&gt;My team at CloudAnswers is obsessed with figuring out the most effective
way to build solutions to give our users the most bang for their buck.
So when a client approached us with the idea for a simple ecommerce site
that didn’t require a developer or learning a whole platform to update
and automatically synced with Salesforce, we were surprised when we
couldn’t find an existing solution. The resulting product, which we are
now calling Shop Builder, has been used by this client for years and
processed millions of dollars in orders. And we are now opening it up to
the public!&lt;/p&gt;
&lt;p&gt;The options I gave earlier along with their competitors offer bells and
whistles a-plenty. For many, that’s what they’re looking for. But others
find them overwhelming, and are concerned with the software’s ability to
work with the sales strategies they already have.&lt;/p&gt;
&lt;p&gt;If you’re looking for a straightforward online storefront and are using
Salesforce for products and tracking purchases, CloudAnswers Shop
Builder is perfect for you. There is no need for IT, graphic design, or
web development skills. We want to be an affordable option for
businesses just getting started and for non-profits, so we’re forgoing
monthly fees – instead, we charge 1% of your shop’s sales.&lt;/p&gt;
&lt;h2 id=&quot;current-shop-builder-features&quot;&gt;Current Shop Builder Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Customize your Shop: Improve customer recognition by matching your
shop with your brand identity. Choose your main color, add your
logo, and upload a hero image. Describe your shop prominently on the
homepage.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Domain Included: Get a free personalized URL without any of the
hassle of buying a domain.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Unlimited Shops: You can set up multiple shops and have as many
active at once as you’d like. They can even use the same Salesforce
pricebook, displaying the same products. A/B test with ease, and
diversify your offerings and reach different customers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Seamless Salesforce Integration: Sales on the shop are immediately
tracked in Salesforce as opportunities, capturing buyer information
during checkout.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Right now we’re working on two important features to be rolled out in
April. These updates will be applied to all new and old shops without
any additional cost.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Product Pages: Click on a product to view more detailed information
with a carousel of images. Each URL is unique, so you can share
links directly to one product. Shoppers can add to cart or buy
immediately and proceed to checkout from this page.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Shop Preview: Review your shop and make changes before you click
that go-live button. See updates in real time on the preview page
and tweak your shop before your eyes.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you think Shop Builder &lt;em&gt;could&lt;/em&gt; be a good fit for you but it’s missing
something, send us a chat message or &lt;a href=&quot;https://cloudanswers.com/contact&quot;&gt;use the contact
form&lt;/a&gt;! We’re gathering feedback
from beta users at this phase of development, and your input will guide
us as we make decisions about what to develop next! We have these
features in mind;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Build a shop before connecting with Salesforce or Stripe: Allowing
users to test out what their site could look like without making any
commitment or agreeing to additional permissions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add-On Fees: Let you set shipping costs or product taxes for your
shop&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;want-shop-builder&quot;&gt;Want Shop Builder?&lt;/h2&gt;
&lt;p&gt;Great news—if you use Salesforce, it’s already available to you!
&lt;a href=&quot;https://youtu.be/tim9dq2ojSk&quot;&gt;Follow these directions to get
started.&lt;/a&gt; You’ll also need a free
Stripe account before you can finish setting up your Shop. There’s no
upfront cost, we won’t collect anything until you make your first sale.&lt;/p&gt;
&lt;p&gt;Interested but need more information? &lt;a href=&quot;https://calendly.com/pfox-cloudanswers/product-feedback-session/?a1=Shop%20Builder&amp;amp;month=2024-04&quot;&gt;You can set up a demo
here&lt;/a&gt;
or &lt;a href=&quot;https://cloudanswers.com/products/shop-builder&quot;&gt;learn more on our
website.&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Tips for Becoming a Salesforce Developer]]></title><description><![CDATA[Interested in becoming a Salesforce developer? In this blog post Jagmohan has put together his favorite tips and resources to get started in the world of Salesforce development.]]></description><link>https://cloudanswers.com/blog/tips-for-becoming-a-salesforce-dev</link><guid isPermaLink="false">/blog/tips-for-becoming-a-salesforce-dev</guid><pubDate>Thu, 04 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/tips-for-becoming-a-salesforce-dev.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h1 id=&quot;tips-for-becoming-a-salesforce-developer&quot;&gt;Tips for Becoming a Salesforce Developer&lt;/h1&gt;
&lt;p&gt;Interested in becoming a Salesforce developer? In this blog post Jagmohan has put together his favorite tips and resources to get started in the world of Salesforce development.&lt;/p&gt;
&lt;h2 id=&quot;pre-requisites&quot;&gt;Pre-Requisites&lt;/h2&gt;
&lt;p&gt;These skills are strongly recommended for anyone who wants to become a
developer. If you don’t think you have some of these skills, you can
still be a developer, but you may want to develop them in addition to
the other items below, or you may struggle with your job. Even after you
become a developer, these should be continuously improved.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Analytical and Problem-Solving Skills&lt;/strong&gt;: These include the ability
to visualize problems and their complexity and devise logical
solutions. These skills help professionals effectively understand
their clients&amp;#39; needs and suggest optimal solutions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Effective Communication&lt;/strong&gt;: The ability to communicate effectively
to share, receive, and process information. These skills help
professionals communicate with colleagues and customers both orally
and in writing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Time Management&lt;/strong&gt;: It is important to effectively manage your time
when working on multiple tasks for one customer or multiple projects
for different clients. You might get overwhelmed when people keep
asking you to do more.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;learn-salesforce-administration-basics&quot;&gt;Learn Salesforce Administration Basics&lt;/h2&gt;
&lt;p&gt;As a developer at a large company with administrators on your team, you
&lt;em&gt;might&lt;/em&gt; get away with knowing only the developer tools. Still, most
Salesforce developers will need to know how to perform basic
administrative tasks in order to develop on the platform.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Learn about the Salesforce Platform:&lt;/strong&gt; Familiarize yourself with
the Salesforce platform and its various products, such as Sales
Cloud, Service Cloud, Experience Cloud, and Marketing Cloud.
Understand the basics of cloud computing, CRM concepts, and
Salesforce terminology. This is a great time to consider where you
might want to specialize. Some developers learn multiple clouds, but
as a new developer, you’ll want to focus on a certain area.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Become a Certified Administrator:&lt;/strong&gt; There are lots of
configuration / declarative options available in the Salesforce
platform before you need any customization. Even when you have
decided that you need some customization, you still need to know how
it will coexist with the other automation in Salesforce, for
example, how to call a Flow from Apex and the other way around, add
a Lightning Web Component to a record page, make a decision between
a Screen Flow and LWC, and so on. All this comes with an overall
understanding of the Salesforce platform and the various declarative
tools available in the platform. You can refer to &lt;a href=&quot;https://cloudanswers.com/blog/tips-for-becoming-a-salesforce-admin&quot;&gt;&lt;u&gt;this post on
how to become a Salesforce
Administrator&lt;/u&gt;&lt;/a&gt;
for tips on what to study.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adopt the Salesforce platform in your daily life:&lt;/strong&gt; Once you are
in the Salesforce ecosystem, navigating and customizing the
Salesforce platform should start to come naturally to you. And to
become better at it, one approach you can adopt is to start using
Salesforce in your daily life. You could build a habit tracker app
to improve your fitness or self-learning, an expense tracker app to
manage your finances, a vehicle maintenance app to maintain records
of your vehicle’s service/repair appointments, etc. You can make use
of workflow rules, flows, etc, to create follow-up appointments,
send reminders, etc. This is a great way to practice the skills you
are learning and make sure you can actually deliver a complete
solution.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;programming-skills&quot;&gt;Programming Skills&lt;/h2&gt;
&lt;p&gt;To be a Salesforce developer, you must have basic programming skills.
These skills remain common for most programming languages and can be
re-applied while learning any new programming language. You could
benefit from having some prior knowledge of the following concepts.
These are not required but will definitely help you become a better
programmer.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Data Structures&lt;/strong&gt;: You should learn how various data structure
constructs, such as arrays, stacks, queues, linked lists, maps,
sets, trees, and graphs, work and be able to use them in
programming.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Object-Oriented Programming Concepts&lt;/strong&gt;: The OOP principles, such
as classes, objects, polymorphism, inheritance, overloading and
overriding, etc., essentially remain the same across any programming
language that supports Object-Oriented Programming.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Algorithms and Design Patterns&lt;/strong&gt;: The ability to write effective
programming that optimizes time (CPU) and space (Memory) utilization
helps you write software that performs better and scales
efficiently.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;use-trailhead-and-get-platform-developer-i-certification&quot;&gt;Use Trailhead and Get Platform Developer I Certification&lt;/h2&gt;
&lt;p&gt;Use the &lt;a href=&quot;https://trailhead.salesforce.com/users/strailhead/trailmixes/prepare-for-your-salesforce-platform-developer-i-credential&quot;&gt;&lt;u&gt;Prepare for Your Salesforce Platform Developer I
Credential&lt;/u&gt;&lt;/a&gt;
to study and learn important concepts related to Salesforce development. There is a huge
difference between getting certified and having the ability to build and
deliver real-world projects. But take this as a step in your journey
towards becoming a Salesforce developer and display your tenacity to see
it through.&lt;/p&gt;
&lt;h2 id=&quot;learn-to-use-generative-ai-effectively&quot;&gt;Learn to Use Generative AI Effectively&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://chat.openai.com/&quot;&gt;&lt;u&gt;ChatGPT&lt;/u&gt;&lt;/a&gt; and similar tools can be of
great help when learning anything. You just need to ask the right
questions and write good prompts to get the information you are looking
for. We don’t recommend using this to write code when you are starting
out; use it to learn and understand the concepts when stuck on
understanding something. If you use it to write code, ensure you
understand what the code is doing; you can even ask it questions about
the code.&lt;/p&gt;
&lt;p&gt;You can also install the &lt;a href=&quot;https://developer.salesforce.com/tools/vscode/en/einstein/einstein-overview&quot;&gt;&lt;u&gt;Einstein for Developers plugin for VS
Code&lt;/u&gt;&lt;/a&gt;
or &lt;a href=&quot;https://code.visualstudio.com/docs/copilot/overview&quot;&gt;&lt;u&gt;GitHub
Copilot&lt;/u&gt;&lt;/a&gt; and
begin learning some of the Generative AI tools that can be used within
your Integrated Development Environment (IDE). The Salesforce tools are
not as advanced as ChatGPT or GitHub Copilot, but they are trained
exclusively on Salesforce code and have stricter privacy practices, so
as their models evolve they may end up being the best solution.&lt;/p&gt;
&lt;h2 id=&quot;do-not-stop-practice-practice-and-some-more-practice&quot;&gt;Do Not Stop: Practice, Practice, and Some More Practice&lt;/h2&gt;
&lt;p&gt;You should continue to practice by building personal projects, taking on
freelance opportunities, volunteering for non-profit organizations,
contributing to open source projects, starting a blog, and building a
portfolio website/resume, etc. All this will help you improve your
skills and build a network of connections from which new opportunities
will come your way.&lt;/p&gt;
&lt;h2 id=&quot;learn-git&quot;&gt;Learn Git&lt;/h2&gt;
&lt;p&gt;Git allows developers to work on projects locally, enabling them to make
changes, commit them, and track history without needing constant access
to a central server. It provides robust version control capabilities,
allowing developers to track changes to files over time.&lt;/p&gt;
&lt;p&gt;Git facilitates collaboration among developers by providing tools for
sharing code, reviewing changes, and resolving conflicts. Features like
pull requests allow developers to propose changes, discuss them, and
incorporate feedback before merging them into the main codebase. This
fosters collaboration, knowledge sharing, and code quality improvement.&lt;/p&gt;
&lt;p&gt;To learn Git, we recommend the &lt;a href=&quot;https://git-scm.com/book/en/v2&quot;&gt;&lt;u&gt;Pro Git
book&lt;/u&gt;&lt;/a&gt;, available online completely
free and translated into over a dozen languages. Once you understand the
basics of Git, you can learn &lt;a href=&quot;https://code.visualstudio.com/docs/sourcecontrol/overview&quot;&gt;&lt;u&gt;how to use Git within VS
Code&lt;/u&gt;&lt;/a&gt;,
Salesforce’s recommended IDE.&lt;/p&gt;
&lt;h2 id=&quot;get-involved-in-the-community&quot;&gt;Get Involved in the Community&lt;/h2&gt;
&lt;p&gt;Salesforce has a great community behind it, and there are various kinds
of community coordination going on all around the world, such as &lt;a href=&quot;https://trailblazercommunitygroups.com/&quot;&gt;&lt;u&gt;Trailblazer
community groups&lt;/u&gt;&lt;/a&gt;,
&lt;a href=&quot;https://www.salesforceben.com/7-salesforce-slack-communities-to-join/&quot;&gt;&lt;u&gt;Slack teams&lt;/u&gt;&lt;/a&gt;,
Salesforce Stackexchange, local meetups, etc. Find out more about these
and try to reach out to Salesforce professionals to build your connections
in the Salesforce ecosystem.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Salesforce is an exceptional platform that offers great opportunities to
build successful careers. Once you understand the basic concepts,
demonstrate your ability to learn new concepts, and have a passion for
technology, there is no one stopping you from landing your dream job in
the Salesforce ecosystem. We hope this post helps you achieve your goals
as a Salesforce developer.&lt;/p&gt;
&lt;h2 id=&quot;downloadable-guide&quot;&gt;Downloadable Guide&lt;/h2&gt;
&lt;p&gt;Want this in a convenient PDF format for reference? Download the tips for becoming a Salesforce developer guide:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/uploads/Tips%20for%20Becoming%20a%20Salesforce%20Developer.pdf&quot;&gt;&lt;img src=&quot;/uploads/tips-for-becoming-sf-dev-guide-thumbnail.png&quot; alt=&quot;Screenshot of guide&quot;&gt;&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[A Day in the Life of a Project Manager at CloudAnswers]]></title><description><![CDATA[I'm Emily, and I've been a project manager at CloudAnswers for the last two years. It can be a nebulous role, but I like to say I act as a bridge between the product vision and tangible results, whether that is building a custom app for a client or one of our own Salesforce products. My typical day revolves around managing tasks, ensuring progress, and maintaining standards while adhering to project timelines.]]></description><link>https://cloudanswers.com/blog/day-in-the-life-of-a-project-manager</link><guid isPermaLink="false">/blog/day-in-the-life-of-a-project-manager</guid><pubDate>Fri, 22 Mar 2024 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/blog-day-in-the-life-of-a-project-manager-github.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;I&amp;#39;m Emily, and I&amp;#39;ve been a project manager at CloudAnswers for the last
two years. It can be a nebulous role, but I like to say I act as a
bridge between the product vision and tangible results, whether that is
building a custom app for a client or one of our own Salesforce
products. My typical day revolves around managing tasks, ensuring
progress, and maintaining standards while adhering to project timelines.&lt;/p&gt;
&lt;p&gt;In a general sense, my role is;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Drafting tasks so that developers know the desired
outcomes/expectations&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Making sure the right work is being done and we&amp;#39;re not blocked by
anything&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Communicating progress and questions to clients&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The CloudAnswers team is international, so while I&amp;#39;m sleeping away, a
lot of our team is hard at work. When I wake up, I know I have a limited
amount of time where my work day overlaps with some of my coworkers.
This gives me the motivation to hop online early to see what updates and
questions await me. Not an early riser by nature, but it helps that I
can ease into this on the couch with a cup of coffee.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ll open up Slack first, where I am connected with my team and with
many of our clients in shared channels. I&amp;#39;ll check and respond to my
direct messages, project channels, and communicate with clients.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/blog-day-in-the-life-of-a-project-manager-geekbot.png&quot; alt=&quot;How we do standups with Geekbot&quot;&gt;&lt;/p&gt;
&lt;p style={{ textAlign: &quot;center&quot;, fontStyle: &quot;italic&quot; }}&gt;How Geekbot starts the Standup everyday. Questions and timing
are customizable.&lt;/p&gt;

&lt;p&gt;Lately, our team has been using an app called Geekbot to automate our
standups. Each of us is prompted to answer a few questions about what
we&amp;#39;ve done since the last check-in, and what we plan to do today. We&amp;#39;ll
tag each other and bring up blockers, so each standup message can become
a thread for problem-solving. This ensures that everyone is aligned and
aware of each other&amp;#39;s progress and roadblocks. Twice a week we do our
standups live, which gives us the opportunity to ask questions directly
and share our screens to collaborate on solutions.&lt;/p&gt;
&lt;p&gt;As the Project Manager, these standup messages and meetings are a great
way for me to catch up and plan my day. I&amp;#39;ll see the work that happened
while I was sleeping, and be tagged when someone has a question or has
something ready for me to review.&lt;/p&gt;
&lt;p&gt;Since I start my day in Slack, the Google Calendar integration is a big
help. I have it set to tell me about my day&amp;#39;s meetings every morning at
7:30, then it notifies me 10 minutes prior to any calls. I know which
clients I&amp;#39;ll be talking to, and therefore which projects I need to be up
to date on to address client needs.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ll make note of the expectations that the client will have for us,
considering what major or minor projects we&amp;#39;re delivering for them and
any deadlines. We track most of our work in Github, and use projects
boards and milestones to track the issues in our current initiatives.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/blog-day-in-the-life-of-a-project-manager-github.png&quot; alt=&quot;Our GitHub project board&quot;&gt;&lt;/p&gt;
&lt;p style={{ textAlign: &quot;center&quot;, fontStyle: &quot;italic&quot; }}&gt;The project board in Github gives an overview of the tasks
we&apos;re juggling.&lt;/p&gt;

&lt;p&gt;By reviewing these issues in Github I&amp;#39;m also able to see where the
developers may have run into questions or other blockers. I&amp;#39;m then able
to report about our current status and ensure that when the dev team
returns to work they&amp;#39;re ready to go -- driving continuous development
and customer satisfaction.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s what I try to make sure we do on client calls;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Ask any questions we have about desired outcomes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Review completed work and gather any feedback for iterations&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Discuss upcoming work to begin planning outcome and timeline&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Over the course of my day, developers are tagging me in work that&amp;#39;s
ready for internal testing. I try to act on this as soon as possible so
that I&amp;#39;m not blocking progress.&lt;/p&gt;
&lt;p&gt;Nothing is worse than handing over a new feature or bug fix just to have
the client say, &amp;quot;That&amp;#39;s not what I wanted,&amp;quot; or &amp;quot;I can still reproduce
the bug.&amp;quot; That&amp;#39;s why I made sure to test the updates we&amp;#39;re making from
their perspective, keeping the end user in mind.&lt;/p&gt;
&lt;p&gt;To test an update, I first review the definition of done and any
particular standards I need to keep in mind. Then, I test the new
functionality or bug fix at least twice. The first time, I look for
large issues that prevent me from completing my test. Next, I look for
little things, like wording changes, that could aid clarity. I type up
my findings and add screenshots or videos when needed.&lt;/p&gt;
&lt;p&gt;After a few hours of this, for my own sanity I try to get out for a long
walk and make myself a nice lunch. Maybe I&amp;#39;ll play with my cat a bit and
do some chores around the house. Then it&amp;#39;s back to testing, or whatever
else the afternoon has planned for me.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/blog-day-in-the-life-of-a-project-manager-cat.jpg&quot; alt=&quot;Emily&amp;#39;s cat&quot;&gt;&lt;/p&gt;
&lt;p style={{ textAlign: &quot;center&quot;, fontStyle: &quot;italic&quot; }}&gt;I do it all for her.&lt;/p&gt;

&lt;p&gt;When it&amp;#39;s getting closer to the end of the day, I&amp;#39;ll consider what
should be up next for our team and send out messages based on that. This
might be sending out a message directly about feedback I or a client
gave on a project, prompting the developer to pick this back up for the
next iteration. Or I may be sending out the next project(s) to be
prioritized.&lt;/p&gt;
&lt;p&gt;If we have a deadline coming up, I&amp;#39;ll typically pull together a more
comprehensive look at the remaining work and post that into a shared
project channel on Slack. I&amp;#39;ll tag the team asking for status updates or
oblige the team to connect on issues that have been left unresolved.
That way, when our team logs into work tomorrow, they know what&amp;#39;s
coming. Ideally, they&amp;#39;ll never need to wonder what they should be
working on next.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/blog-day-in-the-life-of-a-project-manager-status-update.png&quot; alt=&quot;Project overview message in Slack&quot;&gt;&lt;/p&gt;
&lt;p style={{ textAlign: &quot;center&quot;, fontStyle: &quot;italic&quot; }}&gt;My typical format for a project overview message&lt;/p&gt;

&lt;p&gt;In my role as a project manager at CloudAnswers, I&amp;#39;ve found that
effective communication is vital to our success. I aim for clarity and
transparency with my team and with our clients. At the end of the day I
want to facilitate everyone being on the same page so that we can
overcome obstacles together and deliver exciting results.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Create a Custom Lightning Component for Alert and Confirm Dialogs]]></title><description><![CDATA[As front-end developers, there can be numerous instances when we need to display a prompt, a confirm dialog, or a confirm dialog with some input control to accept some value from the user. If you happen to be a Salesforce developer reading this article, you must have had such a requirement while writing lightning components. ]]></description><link>https://cloudanswers.com/blog/create-a-custom-lighting-component</link><guid isPermaLink="false">/blog/create-a-custom-lighting-component</guid><pubDate>Mon, 04 Mar 2024 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/create-a-custom-lighting-component.gif&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;As front-end developers, there can be numerous instances when we need to display a prompt, a confirm dialog, or a confirm dialog with some input control to accept some value from the user. If you happen to be a Salesforce developer reading this article, you must have had such a requirement while writing lightning components.&lt;/p&gt;
&lt;p&gt;There are a couple of components available in the &lt;a href=&quot;https://developer.salesforce.com/docs/component-library/overview/components&quot;&gt;Lightning Components Library&lt;/a&gt; that can be used to render dialogs.&lt;/p&gt;
&lt;h3 id=&quot;lightninglightningoverlaylib&quot;&gt;&lt;a href=&quot;https://developer.salesforce.com/docs/component-library/bundle/lightning:overlayLibrary/documentation&quot;&gt;lightning:lightning:overlayLib&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This component is quite extensive and offers good flexibility for rendering the dialog header, body, etc. However, this component lacks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ability to accept input from the user&lt;/li&gt;
&lt;li&gt;Support for Lightning Out&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;lightningalert-and-lightningconfirm&quot;&gt;&lt;a href=&quot;https://developer.salesforce.com/docs/component-library/bundle/lightning:alert/example&quot;&gt;lightning:alert&lt;/a&gt; and &lt;a href=&quot;https://developer.salesforce.com/docs/component-library/bundle/lightning:confirm&quot;&gt;lightning:confirm&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This component is supported in both Lightning Experience and Lightning Out but lacks&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ability to accept input from a user&lt;/li&gt;
&lt;li&gt;Ability to override header, body, etc to render HTML markup&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;workaround&quot;&gt;Workaround&lt;/h3&gt;
&lt;p&gt;As a workaround for the missing features in the above components, I have put together a custom Lightning component that supports&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Accepting input from a user&lt;/li&gt;
&lt;li&gt;Rendering HTML markup in modal body&lt;/li&gt;
&lt;li&gt;Both Lightning Experience and Lightning Out&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;
&amp;lt;aura:component &amp;gt;

    &amp;lt;aura:attribute name=&amp;quot;title&amp;quot; type=&amp;quot;String&amp;quot; /&amp;gt;
    &amp;lt;aura:attribute name=&amp;quot;message&amp;quot; type=&amp;quot;String&amp;quot; /&amp;gt;
    &amp;lt;aura:attribute name=&amp;quot;showConfirmButton&amp;quot; type=&amp;quot;Boolean&amp;quot; default=&amp;quot;true&amp;quot; /&amp;gt;
    &amp;lt;aura:attribute name=&amp;quot;showCancelButton&amp;quot; type=&amp;quot;Boolean&amp;quot; default=&amp;quot;false&amp;quot; /&amp;gt;
    &amp;lt;aura:attribute name=&amp;quot;confirmButtonLabel&amp;quot; type=&amp;quot;String&amp;quot; default=&amp;quot;OK&amp;quot; /&amp;gt;
    &amp;lt;aura:attribute name=&amp;quot;cancelButtonLabel&amp;quot; type=&amp;quot;String&amp;quot; default=&amp;quot;Cancel&amp;quot; /&amp;gt;
    &amp;lt;!-- accepting user input --&amp;gt;
    &amp;lt;aura:attribute name=&amp;quot;inputType&amp;quot; type=&amp;quot;String&amp;quot; /&amp;gt;
    &amp;lt;aura:attribute name=&amp;quot;inputLabel&amp;quot; type=&amp;quot;String&amp;quot; /&amp;gt;
    &amp;lt;aura:attribute name=&amp;quot;inputValue&amp;quot; type=&amp;quot;String&amp;quot; /&amp;gt;
    &amp;lt;aura:attribute name=&amp;quot;inputPlaceholder&amp;quot; type=&amp;quot;String&amp;quot; default=&amp;quot;Enter a value&amp;quot; /&amp;gt;

    &amp;lt;aura:attribute name=&amp;quot;promptClass&amp;quot; type=&amp;quot;String&amp;quot; access=&amp;quot;private&amp;quot; /&amp;gt;
    &amp;lt;aura:attribute name=&amp;quot;isOpen&amp;quot; type=&amp;quot;Boolean&amp;quot; access=&amp;quot;private&amp;quot; /&amp;gt;
    &amp;lt;aura:attribute name=&amp;quot;config&amp;quot; type=&amp;quot;Object&amp;quot; access=&amp;quot;private&amp;quot; /&amp;gt;

    &amp;lt;aura:method name=&amp;quot;open&amp;quot; action=&amp;quot;{!c.openAlert}&amp;quot; description=&amp;quot;Method used to open alert&amp;quot;&amp;gt;
        &amp;lt;aura:attribute name=&amp;quot;config&amp;quot; type=&amp;quot;Object&amp;quot; /&amp;gt;
    &amp;lt;/aura:method&amp;gt;

    &amp;lt;aura:if isTrue=&amp;quot;{!v.isOpen}&amp;quot;&amp;gt;
        &amp;lt;div&amp;gt;
            &amp;lt;section role=&amp;quot;dialog&amp;quot; tabindex=&amp;quot;0&amp;quot; aria-modal=&amp;quot;true&amp;quot; aria-labelledby=&amp;quot;alert-heading-id&amp;quot; aria-describedby=&amp;quot;alert-message-wrapper&amp;quot; class=&amp;quot;slds-modal slds-fade-in-open slds-modal_prompt&amp;quot;&amp;gt;
                &amp;lt;div class=&amp;quot;slds-modal__container&amp;quot;&amp;gt;
                    &amp;lt;div class=&amp;quot;{!&amp;#39;slds-modal__header slds-theme_alert-texture &amp;#39; + v.promptClass}&amp;quot;&amp;gt;
                        &amp;lt;h1 class=&amp;quot;slds-text-heading_medium&amp;quot; id=&amp;quot;alert-heading-id&amp;quot;&amp;gt;{!v.title}&amp;lt;/h1&amp;gt;
                    &amp;lt;/div&amp;gt;
                    &amp;lt;div class=&amp;quot;slds-modal__content slds-p-around_medium&amp;quot; id=&amp;quot;alert-message-wrapper&amp;quot;&amp;gt;
                        &amp;lt;aura:if isTrue=&amp;quot;{!v.inputType == null}&amp;quot;&amp;gt;
                            &amp;lt;lightning:formattedRichText value=&amp;quot;{!v.message}&amp;quot;&amp;gt;&amp;lt;/lightning:formattedRichText&amp;gt;
                        &amp;lt;/aura:if&amp;gt;
                        &amp;lt;aura:if isTrue=&amp;quot;{!v.inputType == &amp;#39;text&amp;#39;}&amp;quot;&amp;gt;
                            &amp;lt;lightning:input aura:id=&amp;quot;text-input&amp;quot; type=&amp;quot;{!v.inputType}&amp;quot; label=&amp;quot;{!v.inputLabel}&amp;quot; value=&amp;quot;{!v.inputValue}&amp;quot; placeholder=&amp;quot;{!v.inputPlaceholder}&amp;quot; /&amp;gt;
                        &amp;lt;/aura:if&amp;gt;
                    &amp;lt;/div&amp;gt;
                    &amp;lt;div class=&amp;quot;slds-modal__footer slds-theme_default&amp;quot;&amp;gt;
                        &amp;lt;aura:if isTrue=&amp;quot;{!v.showCancelButton}&amp;quot;&amp;gt;
                            &amp;lt;lightning:button label=&amp;quot;{!v.cancelButtonLabel}&amp;quot; title=&amp;quot;{!v.cancelButtonLabel}&amp;quot; onclick=&amp;quot;{! c.handleCancel }&amp;quot; /&amp;gt;
                        &amp;lt;/aura:if&amp;gt;
                        &amp;lt;aura:if isTrue=&amp;quot;{!v.showConfirmButton}&amp;quot;&amp;gt;
                            &amp;lt;lightning:button variant=&amp;quot;brand&amp;quot; label=&amp;quot;{!v.confirmButtonLabel}&amp;quot; title=&amp;quot;{!v.confirmButtonLabel}&amp;quot; onclick=&amp;quot;{! c.handleConfirm }&amp;quot; /&amp;gt;
                        &amp;lt;/aura:if&amp;gt;
                    &amp;lt;/div&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;div class=&amp;quot;slds-backdrop slds-backdrop_open&amp;quot; role=&amp;quot;presentation&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/aura:if&amp;gt;
&amp;lt;/aura:component&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;
({
    openAlert: function(component, event, helper) {
        // close existing alert
        helper.closeAlert(component);
        // get params
        var args = event.getParam(&amp;#39;arguments&amp;#39;);
        var config = args.config;
        helper.setConfiguration(component, config);
        // open alert
        helper.openAlert(component);
    },
    handleConfirm: function(component, event, helper) {
        helper.callbackAndClose(component, true);
    },
    handleCancel: function(component, event, helper) {
        helper.callbackAndClose(component, false);
    }
})
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;
({
    getPromptClass: function(promptType) {
        var promptClass = null;
        if (promptType == &amp;#39;success&amp;#39;) {
            promptClass = &amp;#39;slds-theme_success&amp;#39;;
        } else if (promptType == &amp;#39;warning&amp;#39;) {
            promptClass = &amp;#39;slds-theme_warning&amp;#39;;
        } else if (promptType == &amp;#39;error&amp;#39;) {
            promptClass = &amp;#39;slds-theme_error&amp;#39;;
        } else {
            // default
            promptClass = &amp;#39;slds-theme_info&amp;#39;;
        }
        return promptClass;
    },
    setConfiguration: function(component, config) {
        var helper = this;
        component.set(&amp;#39;v.title&amp;#39;, config.title);
        component.set(&amp;#39;v.message&amp;#39;, config.message);
        component.set(&amp;#39;v.confirmButtonLabel&amp;#39;, config.confirmButtonLabel);
        component.set(&amp;#39;v.cancelButtonLabel&amp;#39;, config.cancelButtonLabel);
        component.set(&amp;#39;v.showConfirmButton&amp;#39;, config.showConfirmButton || component.get(&amp;#39;v.showConfirmButton&amp;#39;));
        component.set(&amp;#39;v.showCancelButton&amp;#39;, config.showCancelButton);
        component.set(&amp;#39;v.inputType&amp;#39;, config.inputType);
        component.set(&amp;#39;v.inputLabel&amp;#39;, config.inputLabel);
        component.set(&amp;#39;v.inputValue&amp;#39;, config.inputValue);
        component.set(&amp;#39;v.inputPlaceholder&amp;#39;, config.inputPlaceholder || component.get(&amp;#39;v.inputPlaceholder&amp;#39;));
        component.set(&amp;#39;v.promptClass&amp;#39;, helper.getPromptClass(config.promptType));
        component.set(&amp;#39;v.config&amp;#39;, config);
    },
    openAlert: function(component) {
        component.set(&amp;#39;v.isOpen&amp;#39;, true);
    },
    closeAlert: function(component) {
        component.set(&amp;#39;v.isOpen&amp;#39;, false);
    },
    callbackAndClose: function(component, result) {
        var helper = this;
        helper.closeAlert(component);
        var config = component.get(&amp;#39;v.config&amp;#39;);
        if (config &amp;amp;&amp;amp; config.callbackFn) {
            var inputType = component.get(&amp;#39;v.inputType&amp;#39;);
            var value = null;
            if (inputType == &amp;#39;text&amp;#39;) {
                value = component.find(&amp;#39;text-input&amp;#39;).get(&amp;#39;v.value&amp;#39;);
            }
            config.callbackFn(result, value);
        }
    }
})
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Let us understand the basics of this component. This component exposes an &lt;a href=&quot;https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/ref_tag_method.htm&quot;&gt;aura:method&lt;/a&gt; that accepts a configuration object. We can pass various configuration attributes to make the behave as:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Alert dialog&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Confirm dialog (Yes / No)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Confirm dialog with text input&lt;/p&gt;
&lt;p&gt;Let us look into the configuration for some popular use cases.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;add-customalert-component&quot;&gt;Add CustomAlert Component&lt;/h3&gt;
&lt;p&gt;The first step is to add this component to our Lightning component. We can do that by adding the following line of code to our lightning component.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;
&amp;lt;c:CustomAlert aura:id=”custom-alert” /&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;display-an-info-message&quot;&gt;Display an info message&lt;/h3&gt;
&lt;p&gt;There are numerous instances where we just want to display an info message and also want the user to take note of it by blocking the user interface. Instead of using the standard JavaScript alert dialog, we can use this component to display an alert dialog matching the Lightning Experience UI. Plus, this component offers the ability to render markup in the message body.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;var customAlert = component.find(&amp;#39;custom-alert&amp;#39;);
customAlert.open({
    title: &amp;#39;Info!&amp;#39;,
    message: &amp;#39;This modal contains some info message&amp;#39;,
    confirmButtonLabel: &amp;#39;OK&amp;#39;,
    showConfirmButton: true,
    showCancelButton: false,
    promptType: &amp;#39;info&amp;#39;,
    callbackFn: function(result, userInput) {
        console.log(result, userInput);
    }
});
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;prompt-the-user-to-confirm-an-action&quot;&gt;Prompt the user to confirm an action&lt;/h3&gt;
&lt;p&gt;Many times, we need the user to confirm the action which is going to take place to make sure the user hasn’t initiated the action accidentally. The most common place for such confirmation dialogs is when the delete button is clicked. Here is the configuration for that scenario:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;var customAlert = component.find(&amp;#39;custom-alert&amp;#39;);
customAlert.open({
    title: &amp;#39;Confirm Delete&amp;#39;,
    message: &amp;#39;Do you want to delete selected record?&amp;#39;,
    confirmButtonLabel: &amp;#39;Yes&amp;#39;,
    cancelButtonLabel: &amp;#39;No&amp;#39;,
    showCancelButton: true,
    promptType: &amp;#39;warning&amp;#39;,
    callbackFn: function(result, userInput) {
        console.log(result, userInput);
        if (result == true) {
            // perform desired action
        }
    }
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The key thing to note here is the &lt;strong&gt;callbackFn&lt;/strong&gt; function attribute. This function accepts two parameters.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;result&lt;/em&gt;: The value of this parameter is used to identify whether the user has confirmed the action or not. If its value is true, then it means the user has confirmed the action, any other value means the user cancelled the action.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;userInput&lt;/em&gt;: We will see how this parameter is used in the next use case.
Accept input from the user
Sometimes, we come across a scenario where we need some input from the user before completing an action. In such cases, we can make use of this component to display a prompt with an input field. The user enters a value, clicks the confirm action button, and proceeds to complete the action. Here is how we can display such a confirm dialog:&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;accept-input-from-the-user&quot;&gt;Accept input from the user&lt;/h3&gt;
&lt;p&gt;Sometimes, we come across a scenario where we need some input from the user before completing an action. In such cases, we can make use of this component to display a prompt with an input field. The user enters a value, clicks the confirm action button, and proceeds to complete the action. Here is how we can display such a confirm dialog:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;
var customAlert = component.find(&amp;#39;custom-alert&amp;#39;);
customAlert.open({
    title: &amp;#39;Success&amp;#39;,
    confirmButtonLabel: &amp;#39;Confirm&amp;#39;,
    cancelButtonLabel: &amp;#39;Cancel&amp;#39;,
    showCancelButton: true,
    inputType: &amp;#39;text&amp;#39;,
    inputLabel: &amp;#39;Enter Name&amp;#39;,
    inputPlaceholder: &amp;#39;Please enter your name&amp;#39;,
    promptType: &amp;#39;success&amp;#39;,
    callbackFn: function(result, inputValue) {
        console.log(result, inputValue);
        if (result == true) {
            // proceed with desired action with input from user
        }
    }
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In the previous use case, we saw that the callbackFn function accepts two parameters. We saw the first param is used to denote whether the confirm or cancel button was clicked. The second param comes into play when we are accepting input from the user, whatever user enters, is passed into this param.&lt;/p&gt;
&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;The main reason for building the CustomAlert component was to overcome the limitations in the standard alert/confirm Lightning components. Hopefully, Salesforce will release updates to the standard components to add the missing features. Until then, we can use this component as a workaround.&lt;/p&gt;
&lt;p&gt;If you found this helpful, please don’t hold back your upvotes, and you can follow me on Medium or Twitter for more tips and tricks related to Apex, Visualforce, Aura, Lightning Web Components, and the Salesforce platform.&lt;/p&gt;
&lt;p&gt;If you need any help with Salesforce or have something a little more complex that might require some advanced developer knowledge, you can chat with us at &lt;a href=&quot;https://cloudanswers.com&quot;&gt;https://cloudanswers.com&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/apex&quot;&gt;Apex&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce&quot;&gt;Salesforce&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce-development&quot;&gt;Salesforce Development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce-lightning&quot;&gt;Salesforce Lightning&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title><![CDATA[5 Northeast Dreamin’ Sessions Admins You Don’t Want to Miss]]></title><description><![CDATA[Northeast Dreamin’ is the premier Salesforce User conference in the Northeastern United States and happens annually in New Hampshire. If you’re not familiar, Dreamin’ events are small regional Salesforce conferences that take place around the world. So you would expect informative sessions, but I wa]]></description><link>https://cloudanswers.com/blog/5-northeast-dreamin-sessions-admins-dont-want-to-miss</link><guid isPermaLink="false">/blog/5-northeast-dreamin-sessions-admins-dont-want-to-miss</guid><pubDate>Fri, 10 Nov 2023 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/northeast-dreamin-sessions-admins-dont-want-to-miss.webp&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Northeast Dreamin’ is the premier Salesforce User conference in the Northeastern United States and happens annually in New Hampshire. If you’re not familiar, Dreamin’ events are small regional Salesforce conferences that take place around the world. So you would expect informative sessions, but I was blown away by their lineup. If you were there, you know what I’m talking about. If you missed it or want a recap, here are my top 5 sessions with key takeaways from the event.&lt;/p&gt;
&lt;h2 id=&quot;architect-like-a-pro-using-the-5-ws-from-primary-school-by-roger-mitchel&quot;&gt;Architect Like a Pro: Using the 5 W’s from Primary School by Roger Mitchel&lt;/h2&gt;
&lt;p&gt;The 5 W’s, who, what, where, when, and why, are fundamentals commonly forgotten in the business world today. You can understand a lot by getting back to the basics, like do we need to build out these custom objects, or would it make more sense for us to just add a few custom fields to the already existing and well-functioning standard objects?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The importance of the 5Ws in architecture&lt;/li&gt;
&lt;li&gt;Factors to consider in the ‘Who’ aspect of architecture&lt;/li&gt;
&lt;li&gt;Considerations for constraints and goals in architecture&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;escape-the-mcadmin-trap-by-jodi-hrbek&quot;&gt;Escape the McAdmin Trap by Jodi Hrbek&lt;/h2&gt;
&lt;p&gt;This session was a great lesson in slowing down and changing how you approach customer requests. An important reminder for all admins, but I would say especially for more junior-level admins such as myself. Instead of just doing what the client tells you, dig deeper and develop a better understanding of the root issue they are trying to solve. Then supply them with the best solution for their problem, even if it is not what they asked for.&lt;/p&gt;
&lt;p&gt;Key Takeaway/Other Tips: Dig deeper and understand the real reason behind your customer’s request. The best way I have found to do this is to understand the business they are running, and how their request can benefit their business.&lt;/p&gt;
&lt;p&gt;Other Tips:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Provide a realistic timeline for when the request can be satisfied.&lt;/li&gt;
&lt;li&gt;Don’t give them what they want, give them what they need&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Resources from the Presentation:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.sfadminbook.com/&quot;&gt;https://www.sfadminbook.com/&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;career-planning-for-a-gpt-enabled-sf-world-by-ian-gotts&quot;&gt;Career Planning for a GPT-Enabled SF World by Ian Gotts&lt;/h2&gt;
&lt;p&gt;AI is the hottest new thing on the block, and whether we like it or not it’s here to stay. As Admins, we can leverage it to bring more value to our customers and make our lives easier. Prompt engineering was a major point of this session, learning how to talk to GPT and manipulate it properly is key to adding it to your arsenal and enabling you to achieve things in more efficient ways. The prompt engineering cycle tracks prompts usage and performance, refines prompts, monitors prompts for drift, and notifies of prompt dependency changes. What does all this mean? Well, say you have a model that you have trained to spit out average monthly temperatures in Boston. You can continuously hit it with the prompt asking for the averages, but if one of the runs tells you that it was 85 in December, that means your prompt has drifted.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The results are only as good as the prompts you provide them with&lt;/li&gt;
&lt;li&gt;Delegate work to GPT, do not abdicate, for example, I would use GPT to write a validation rule with a few exceptions to speed up my work, and I would check it to be safe.&lt;/li&gt;
&lt;li&gt;Gain BA Certification, by gaining the Salesforce Business Analytics certification you understand the business and technology side deeper, allowing you to better use the new tools&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Resources from the Presentation:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://trailhead.salesforce.com/content/learn/trails/get-started-with-ai-data&quot;&gt;https://trailhead.salesforce.com/content/learn/trails/get-started-with-ai-data&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://elements.cloud/blog/gpt-requires-salesforce-skills/&quot;&gt;https://elements.cloud/blog/gpt-requires-salesforce-skills/&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;a-sf-admins-guide-to-data-modeling-for-scalability-and-performance-by-brian-shea&quot;&gt;A SF Admins Guide to Data Modeling for Scalability and Performance by Brian Shea&lt;/h2&gt;
&lt;p&gt;Understanding the data model is critical to being an effective admin, it would be wise to take some time to sit down and analyze your organization’s data model to become familiar with it. Creating a data dictionary is a great first step in this process. What is a data dictionary? A data dictionary is essentially a giant spreadsheet that has all of your Objects and subsequent fields, detailing what they are and how they relate to each other. Knowing how everything works under the hood will make your life easier on the day-to-day, as well as when you want to add things.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a database dictionary&lt;/li&gt;
&lt;li&gt;Use prebuilt data models when possible&lt;/li&gt;
&lt;li&gt;Have a solid data retention policy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Resources from the Presentation:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://architect.salesforce.com/diagrams/framework/data-model-notation&quot;&gt;https://architect.salesforce.com/diagrams/framework/data-model-notation&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://architect.salesforce.com/diagrams#framework&quot;&gt;https://architect.salesforce.com/diagrams#framework&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=oSD999TQTzU&quot;&gt;https://www.youtube.com/watch?v=oSD999TQTzU&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;straighten-out-your-flows--how-to-unravel-your-loops-and-improve-performance-by-eric-smith&quot;&gt;Straighten Out Your Flows- How to Unravel Your Loops and Improve Performance by Eric Smith&lt;/h2&gt;
&lt;p&gt;Flows flow flows! Salesforce’s favorite way to automate things, and with good reason. Depending on what you’re trying to accomplish they’re almost at parity with, if not better than code. But if you’re relying on loops and updating large batches of records, you’ll hit limits– fast. Not only do you hit limits, but there are just better and more efficient ways to go about solving that problem, such as what was suggested in this session: use invocable actions. Invocable actions are elements that you can add to your flow that allow you to add apex code within the flow itself.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use invocable actions&lt;/li&gt;
&lt;li&gt;Reactive Screens, a new feature that allows you to pass outputs from one component into another on the same screen&lt;/li&gt;
&lt;li&gt;Understanding how DML limits relate to Flows&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Resources from the Presentation:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://unofficialsf.com/understanding-invocable-actions/#:~:text=The%20Invocable%20Actions%20mechanism%20allows,Action%20Strategy%20Builder%2C%20and%20more&quot;&gt;https://unofficialsf.com/understanding-invocable-actions/#:~:text=The%20Invocable%20Actions%20mechanism%20allows,Action%20Strategy%20Builder%2C%20and%20more&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://unofficialsf.com/list-actions-for-flow/&quot;&gt;https://unofficialsf.com/list-actions-for-flow/&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce&quot;&gt;Salesforce&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce-event&quot;&gt;Salesforce Event&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/admin&quot;&gt;Admin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce-productivity&quot;&gt;Salesforce Productivity&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title><![CDATA[SF Admin 1 Year Blog post]]></title><description><![CDATA[It’s been one year since I started working as a Salesforce administrator, and I have learned a lot. From getting a solid grasp on Flow to learning how to use SOQL queries or even the simplest formulas in Excel. My perspective is unique since I work as a consultant, meaning I work with many different]]></description><link>https://cloudanswers.com/blog/sf-admin-1-year-blog-post</link><guid isPermaLink="false">/blog/sf-admin-1-year-blog-post</guid><pubDate>Tue, 07 Nov 2023 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/sf-admin-1-year-blog-post--1.webp&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;It’s been one year since I started working as a Salesforce administrator, and I have learned a lot. From getting a solid grasp on Flow to learning how to use SOQL queries or even the simplest formulas in Excel. My perspective is unique since I work as a consultant, meaning I work with many different organizations helping them use Salesforce to solve problems across different businesses. In this article, I would like to share with you some of the things I’ve learned so far on my journey.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;FLOWS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Alright, let’s start with the biggest tool you’ll use working in the Salesforce ecosystem in 2023, Salesforce Flows. If you’ve never used Flows, or aren’t sure what they are, then you aren’t different from me before I started this journey. Now flows are an essential part of my job, and I could not work effectively without using and understanding them.&lt;/p&gt;
&lt;p&gt;A Flow is an automation that you can build using a GUI(Graphical User Interface) instead of a command line. In most cases, Flows have become so powerful that they are on par with code in terms of functionality– with exceptions of course. Do you want to loop through every record in a custom object and recalculate values on a specific field nightly so that reports are up to date making your data valuable to your colleagues and stakeholders? You can make a scheduled Flow for that. Do you want to make sure every time an Opportunity is Closed Won that the Sales Manager gets a Chatter, Slack, and Email notification? You can make a record-triggered flow for that. Do you want a custom screen that enables users to create records for whichever object you desire? You can make a screen flow for that.&lt;/p&gt;
&lt;p&gt;There are a handful of other Flow triggers that are worth mentioning, such as Platform Event- platform-triggered flow, Autolaunched Flow, and Record Triggered Orchestration. Those are valuable to just be familiar with, for my work and most of my colleagues as well. In terms of Flow triggers they are ranked from most to least common: Record triggered Flow, Scheduled Flow, Screen flow, Platform Event- Triggered Flow, Autolaunched Flow, and Record Triggered Orchestration. I highly recommend doing all of the Flow-related Trailheads, as well as finding a good course or two, or honestly, there are hundreds of hours of great Flow content on YouTube for free. However you go about it, if you’re an aspiring admin, someone who just started, or just a curious mind about how to better use Salesforce, Flows are essential for getting the most outstanding value you can out of the platform.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SOQL QUERIES&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you asked me a year ago what a SOQL Query was I would’ve looked at you like you just landed from outer space. Now that it’s a year later, I can speak a bit to what the heck a SOQL Query is. SOQL stands for Salesforce Object Query Language, and if you’ve been around the block before you might say to yourself “Wait, that sounds a lot like SQL”, and you’d be right. SOQL is just SQL that Salesforce went ahead and modified a bit to work in their database, and it works very well. SOQL is more of a developer tool, and geared towards that group. Working alongside mostly developers I’ve inevitably been exposed to it, and I’m happy that I have been because it has genuinely improved my work. I do not use it all that often, I’m still mostly a reports guy, but depending on the job, I use SOQL queries instead of reports because it’s just a faster way to go about finding and dumping data. It’s a tool I want to get more familiar with and it’s one I would suggest you do as well. Check out the &lt;a href=&quot;https://trailhead.salesforce.com/content/learn/modules/soql-for-admins&quot;&gt;SOQL for Admins&lt;/a&gt; trailhead to get started.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/sf-admin-1-year-blog-post--2.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DATA&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Data is the fun and oh-so-abstract word that could lead down a few hundred different rabbit holes when starting a section talking about it. I’ll keep it simple and split it into two sections; how to manipulate it, and how to best keep it.&lt;/p&gt;
&lt;p&gt;In terms of manipulating data, you absolutely must have some basic Excel skills. Because Salesforce is essentially a big spreadsheet, and when the data is exported it is often in CSV format. One of the easiest ways to manipulate that data is in Excel, enabling you to make all the necessary changes you need and then re-upload your changes in a CSV file back into Salesforce. If you learn one thing from this article it’s that VLOOKUPs are your best friend. There are other functions of course and I do not claim to be an expert in Excel, but taking a basic course will help you tremendously when manipulating your Salesforce data. I once spent 4 hours manually mapping IDs to each Account record in a database, just to find out that if I had typed =VLOOKUP and populated it correctly, that task would’ve taken me, oh say about 45 seconds. If you’re fresh to database management, I can’t urge you enough to learn the tool you’ll use the most to manipulate your data. In terms of getting that data back into Salesforce, there are countless tools. I recommend the basic Data Import Wizard, and if for some reason you would like something more advanced I recommend &lt;a href=&quot;http://workbench.io/&quot;&gt;workbench.io&lt;/a&gt;.It’s a great tool with advanced features that enable you to map more fields and get granular with your data.&lt;/p&gt;
&lt;p&gt;Keeping the data is a whole different ballgame and depending on your company there may already be good data retention policies in place. Before you do anything major to production data, I recommend you have a backup and keep that backup untouched just in case the need arises to revert the changes you made. One thing I’ve learned while backing up Salesforce data, is to export Files and Attachments as well, not just the fields, because if you only have the fields, yay the record is back, however it’s missing key data so it’s not of the same use that it once was.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/sf-admin-1-year-blog-post--3.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SOFT SKILLS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Soft skills are an often overlooked aspect of the job, but I would argue they’re just as important as technical skills in terms of working with your clients. In the beginning, I fell into the trap of just saying yes to everything the client would ask for, instead of asking them why they wanted the change made. That was all on me, for a lot of the clients I didn’t fully understand their business process, I just blindly did what they told me because, well they’re the client. That is the wrong way to go about it, I know that’s obvious for some, but I was eager to help out and assumed that they all knew Salesforce at a solid level and that they knew best. Whether you’re in a consulting position like myself, or in a standard role at an organization, before you start making any changes to the organization’s Salesforce instance, understand their business first. Get as much knowledge as you can about what they do, how they do it, and how to best enable them to do it better. For example, I had a client requesting a screen flow to solve a problem, after consulting with my colleagues it turned out that a list view and a record-triggered flow was the better option. When I showed it to the client he was so excited to use it because it wasn’t what he asked for, but it was what he wanted. Understanding the problem at the root is the best way to solve it, listen to your requests from clients, and when they propose a solution, take it into account but not as gospel. They are coming to you for your expertise, not for you to be a yes man.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CONCLUSION&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you’re thinking about becoming a Salesforce Administrator, the only thing I have to say to you is to stop thinking about it and do it. It’s such a fulfilling and dynamic job. I get to wear so many hats and work with incredible people across different industries. Now, your experience may differ, however, even in a traditional role, it’s so much more than building out reports and adding a few fields here and there. Done right, you have a deep understanding of the business and your work feels meaningful to the success of your organization because you know every step and it’s part of your job to enable the rest of your team to succeed. Going forward in my career there are many routes I can take, which is just another benefit of the Salesforce ecosystem as a whole. I’ve personally been eyeing the Business Analyst Certification, as well as a recent interest in helping my organization on the marketing front. At the core, I’m an Admin, and I have no plans to change that, but you can be an Admin and more which is what is so incredible about the Salesforce ecosystem.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce&quot;&gt;Salesforce&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/admin&quot;&gt;Admin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce-lightning&quot;&gt;Salesforce Lightning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce-productivity&quot;&gt;Salesforce Productivity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce-admin&quot;&gt;Salesforce Admin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title><![CDATA[Creating a Custom Component to Update Experience Cloud Profile Photos]]></title><description><![CDATA[Are you looking for a lightning component to set or update a community user’s profile photo? If yes, please read this article for a guide that makes it simple.
A profile photo adds a personal touch to the profile and helps others easily identify the person behind the profile. In the context of profe]]></description><link>https://cloudanswers.com/blog/creating-a-custom-component-to-update-experience-cloud-profile-photos</link><guid isPermaLink="false">/blog/creating-a-custom-component-to-update-experience-cloud-profile-photos</guid><pubDate>Tue, 10 Oct 2023 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/creating-a-custom-component-to-update-experience.gif&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Are you looking for a lightning component to set or update a community user’s profile photo? If yes, please read this article for a guide that makes it simple.&lt;/p&gt;
&lt;p&gt;A profile photo adds a personal touch to the profile and helps others easily identify the person behind the profile. In the context of professional profiles, a profile photo can convey competence and seriousness. Also, people tend to trust profiles with photos more than those without it. So, most often than not, you will come across a requirement to allow the user to be able to update their profile photo like we did while building a custom profile page for one of our customers.&lt;/p&gt;
&lt;p&gt;For building this component, we would need three methods:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set Community User Profile Photo&lt;/li&gt;
&lt;li&gt;Get Community User Profile Photo&lt;/li&gt;
&lt;li&gt;Delete Community User Profile Photo&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Set Community User Profile Photo&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The UserProfiles class under the ConnectApi namespace provides various methods to set, get and delete a user’s profile photo. Let’s look at one such method, &lt;a href=&quot;https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_ConnectAPI_UserProfiles_static_methods.htm#apex_ConnectAPI_UserProfiles_setPhoto_2&quot;&gt;setPhoto&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;code&gt;public static ConnectApi.Photo setPhoto(String communityId, String userId, ConnectApi.BinaryInput fileUpload)&lt;/code&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This method accepts three parameters:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;communityId&lt;/em&gt;: This is the Id of the community to which the user is logged in. We can obtain this Id using the Network.getNetworkId method.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;userId&lt;/em&gt;: This is the Id of logged in user. We can obtain this using the UserInfo.getUserId() method.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;fileUpload&lt;/em&gt;: This should be an object of ​​ConnectApi.BinaryInput class containing the Blob data, content type and name for image.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Get Community User Profile Photo&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Let us say you are building a custom profile page for Experience or Community Cloud users in Salesforce and you want to display a user’s profile photo. Here is how you can get the info about a user’s profile photo which can be used to render their profile photo.&lt;/p&gt;
&lt;p&gt;The getPhoto method from UserProfiles class under ConnectApi namespace can be used to get the user profile photo.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;code&gt;public static ConnectApi.Photo getPhoto(String communityId, String userId)&lt;/code&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This method accepts two parameters:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;communityId&lt;/em&gt;: This is the Id of the community to which the user is logged in. We can obtain this Id using the Network.getNetworkId method.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;userId&lt;/em&gt;: This is the Id of logged in user. We can obtain this using the UserInfo.getUserId() method.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Delete Community User Profile Photo&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You have seen how you can set and get a community user photo. There can be multiple reasons when a user would need to delete their profile photo. For e.g: due to change in Organization’s compliance and security policies users may be required to remove their profile photos. So now, you may be wondering how you can allow your users to be able to delete their profile photo from the custom page you built. You’re in luck, we have that answer as well!&lt;/p&gt;
&lt;p&gt;We can use the deletePhoto method from the UserProfiles class under ConnectApi for deleting the profile photo.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;code&gt;public static Void deletePhoto(String communityId, String userId)&lt;/code&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This method accepts two parameters:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;communityId: This is the Id of the community to which the user is logged in. We can obtain this Id using the Network.getNetworkId method.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;userId: This is the Id of logged in user. We can obtain this using the UserInfo.getUserId() method.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Putting It Together in Apex class&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The output of getCommunityUserPhoto of the above method would look something like this:
You can use smallPhotoUrl, mediumPhotoUrl or largePhotoUrl in the src attribute of image tag to render the user profile photo.&lt;/p&gt;
&lt;hr&gt;
&lt;pre&gt;&lt;code class=&quot;language-apex&quot;&gt;public class ProfilePhotoCtrl {

    @AuraEnabled
    public static Map&amp;lt;String, Object&amp;gt; getCommunityUserPhoto() {
        Map&amp;lt;String, Object&amp;gt; result = new Map&amp;lt;String, Object&amp;gt;();
        try {
            // get logged in user id
            String userId = UserInfo.getUserId();
            // get community id
            String networkId = Network.getNetworkId();
            if (networkId != null) {
                // call getPhoto method to retrieve user photo
                ConnectApi.Photo profilePhoto = ConnectApi.UserProfiles.getPhoto(networkId, userId);
                result.put(&amp;#39;photo&amp;#39;, profilePhoto);
                result.put(&amp;#39;status&amp;#39;, true);
            } else {
                result.put(&amp;#39;status&amp;#39;, false);
                result.put(&amp;#39;error&amp;#39;, &amp;#39;Invalid Network Id&amp;#39;);
            }
        } catch (Exception ex) {
            result.put(&amp;#39;status&amp;#39;, false);
            result.put(&amp;#39;error&amp;#39;, ex.getMessage());
        }
        return result;
    }

    @AuraEnabled @RemoteAction
    public static Map&amp;lt;String, Object&amp;gt; setCommunityUserPhoto(String base64Photo, String contentType) {
        Map&amp;lt;String, Object&amp;gt; result = new Map&amp;lt;String, Object&amp;gt;();
        try {
            // get logged in user id
            String userId = UserInfo.getUserId();
            // get the community id
            String networkId = Network.getNetworkId();
            if (networkId != null) {
                String photoName = &amp;#39;&amp;#39;;
                if (contentType == &amp;#39;image/png&amp;#39;) {
                    photoName = &amp;#39;userImage.png&amp;#39;;
                } else if (contentType == &amp;#39;image/jpeg&amp;#39;) {
                    photoName = &amp;#39;userImage.jpg&amp;#39;;
                } else {
                    // TODO throw exception
                }
                // convert base64 encoded string to blob
                Blob photoBlob = EncodingUtil.base64Decode(base64Photo);
                // instantiate ConnectApi.BinaryInput object with image data
                ConnectApi.BinaryInput binaryPhoto = new ConnectApi.BinaryInput(photoBlob, contentType, photoName);
                // set the user profile photo
                ConnectApi.Photo profilePhoto = ConnectApi.UserProfiles.setPhoto(networkId, userId, binaryPhoto);
                result.put(&amp;#39;status&amp;#39;, true);
            } else {
                result.put(&amp;#39;status&amp;#39;, false);
                result.put(&amp;#39;error&amp;#39;, &amp;#39;Invalid Network Id&amp;#39;);
            }
        } catch (Exception ex) {
            result.put(&amp;#39;status&amp;#39;, false);
            result.put(&amp;#39;error&amp;#39;, ex.getMessage());
        }
        return result;
    }

    @AuraEnabled
    public static Map&amp;lt;String, Object&amp;gt; deleteCommunityUserPhoto() {
        Map&amp;lt;String, Object&amp;gt; result = new Map&amp;lt;String, Object&amp;gt;();
        try {
            // get logged in user id
            String userId = UserInfo.getUserId();
            // get community id
            String networkId = Network.getNetworkId();
            if (networkId != null) {
                // call deletePhoto method from UserProfiles class
                ConnectApi.UserProfiles.deletePhoto(networkId, userId);
                result.put(&amp;#39;status&amp;#39;, true);
            } else {
                result.put(&amp;#39;status&amp;#39;, false);
                result.put(&amp;#39;error&amp;#39;, &amp;#39;Invalid Network Id&amp;#39;);
            }
        } catch (Exception ex) {
            result.put(&amp;#39;status&amp;#39;, false);
            result.put(&amp;#39;error&amp;#39;, ex.getMessage());
        }
        return result;
    }

}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The output of getCommunityUserPhoto of the above method would look something like this:&lt;/p&gt;
&lt;hr&gt;
&lt;pre&gt;&lt;code class=&quot;language-apex&quot;&gt;{
 &amp;quot;photo&amp;quot;: {
  &amp;quot;fullEmailPhotoUrl&amp;quot;: &amp;quot;some_url&amp;quot;,
  &amp;quot;largePhotoUrl&amp;quot;: &amp;quot;some_url&amp;quot;,
  &amp;quot;mediumPhotoUrl&amp;quot;: &amp;quot;some_url&amp;quot;,
  &amp;quot;photoVersionId&amp;quot;: &amp;quot;photo_version_id&amp;quot;,
  &amp;quot;smallPhotoUrl&amp;quot;: &amp;quot;some_url&amp;quot;,
  &amp;quot;standardEmailPhotoUrl&amp;quot;: &amp;quot;some_url&amp;quot;,
  &amp;quot;url&amp;quot;: &amp;quot;some_url&amp;quot;
 },
 &amp;quot;status&amp;quot;: true
}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;p&gt;You can use smallPhotoUrl, mediumPhotoUrl or largePhotoUrl in the src attribute of image tag to render the user profile photo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Custom Lightning Component and Apex Controller&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can find the full source code for Lightning component and Apex class in this &lt;a href=&quot;https://gist.github.com/jagmohansingh/d2cf5cc758b05f459d37e4291b9628c6&quot;&gt;GitHub Gist&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you found this helpful, please don’t hold back your upvotes and you can follow me on &lt;a href=&quot;https://medium.com/@jagmohan.singh.1&quot;&gt;Medium&lt;/a&gt; or &lt;a href=&quot;https://twitter.com/i/flow/login?redirect_after_login=%2FJagmohanSingh&quot;&gt;Twitter&lt;/a&gt; for more tips and tricks related to Apex, Visualforce, Aura, Lightning Web Components and Salesforce platform.&lt;/p&gt;
&lt;p&gt;If you need any help with Salesforce or have something little more complex that might require some advanced developer knowledge, you can contact us at &lt;a href=&quot;mailto:&amp;#104;&amp;#x65;&amp;#108;&amp;#112;&amp;#64;&amp;#x63;&amp;#x6c;&amp;#x6f;&amp;#117;&amp;#100;&amp;#x61;&amp;#x6e;&amp;#115;&amp;#119;&amp;#101;&amp;#114;&amp;#115;&amp;#46;&amp;#x63;&amp;#111;&amp;#x6d;&quot;&gt;&amp;#104;&amp;#x65;&amp;#108;&amp;#112;&amp;#64;&amp;#x63;&amp;#x6c;&amp;#x6f;&amp;#117;&amp;#100;&amp;#x61;&amp;#x6e;&amp;#115;&amp;#119;&amp;#101;&amp;#114;&amp;#115;&amp;#46;&amp;#x63;&amp;#111;&amp;#x6d;&lt;/a&gt; or chat with us on &lt;a href=&quot;https://cloudanswers.com&quot;&gt;https://cloudanswers.com&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/apex&quot;&gt;Apex&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce&quot;&gt;Salesforce&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce-communities&quot;&gt;Salesforce Communities&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce-development&quot;&gt;Salesforce Development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce-productivity&quot;&gt; Salesforce Productivity&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title><![CDATA[When and how should I use entry criteria VS decision elements in Flows? #admins]]></title><description><![CDATA[Both entry criteria and decision elements are great ways to filter records down to get exactly what you need, but there is a time and place for each. First, let’s take a look at their strengths and limitations. Then we’ll dive into how and why to use each with a business problem that is solved by us]]></description><link>https://cloudanswers.com/blog/when-and-how-should-i-use-entry-criteria-vs-decision-elements-in-flows-admins</link><guid isPermaLink="false">/blog/when-and-how-should-i-use-entry-criteria-vs-decision-elements-in-flows-admins</guid><pubDate>Thu, 25 May 2023 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/when-and-how-should-i-use-entry--1.webp&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Both entry criteria and decision elements are great ways to filter records down to get exactly what you need, but there is a time and place for each. First, let’s take a look at their strengths and limitations. Then we’ll dive into how and why to use each with a business problem that is solved by using both.&lt;/p&gt;
&lt;p&gt;Strengths and limitations:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Entry Criteria:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Strengths:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Triggers the flow&lt;/li&gt;
&lt;li&gt;The first criterion to fire which helps filter down records&lt;/li&gt;
&lt;li&gt;It can evaluate multiple values&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Limitations:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Can only reference the object that triggered the flow&lt;/li&gt;
&lt;li&gt;Can only be used once&lt;/li&gt;
&lt;li&gt;Can only go in one path&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Decision Elements:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Strengths:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Can reference multiple objects&lt;/li&gt;
&lt;li&gt;Can have multiple values&lt;/li&gt;
&lt;li&gt;Can split into many different paths&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Limitations:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Can only evaluate records that have already been filtered down&lt;/li&gt;
&lt;li&gt;Cannot choose when to fire the flow, before VS after record save&lt;/li&gt;
&lt;li&gt;Cannot choose when to run, every time a record is updated VS when it meets requirements&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The scenario:&lt;/p&gt;
&lt;p&gt;A local non-profit has asked you to help them track whether or not someone is in their system as a donor. In order to do that they have a custom picklist field on the Account object with the following values, Donor, Non-Member, and Partner. When the donor status is selected, they want an Opportunity to automatically be created with details from the Account. However, if the Account already has one or more related opportunities, an opportunity record should not be created. The creation of the Opportunity record is to track the new donor, and the organization also wants an email alert to be sent to the new Donor thanking them for their patronage.&lt;/p&gt;
&lt;p&gt;To satisfy this request, start by creating a record-triggered flow on the Account object. To start, you use the entry criteria to filter down the records. Yes, it is possible to gather all Account records and then filter down using a decision element later, however, that is inefficient and not best practice. Setting the entry criteria to “When a record is updated” and then filtering down to when the Member Status field = Donor will provide you with the exact record you need.&lt;/p&gt;
&lt;p&gt;Once a record has been updated to meet the criteria, the following logic will fire. The first get record element collects the AccountId and stores it in a variable, aptly named ‘AccountId’. The second element uses the AccountId variable to see if any opportunities exist that are related to the Account record that triggered the flow.&lt;/p&gt;
&lt;p&gt;Once the flow has collected all of the information, it then passes into a decision element. If the AccountId on any Opportunity in the system equals the current RecordId, then the flow will do nothing. That’s an ‘Existing Opportunity’. If no Opportunity is found then the flow will go ahead and create a new Opportunity record and relate it to the Account record that started the flow.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/when-and-how-should-i-use-entry--2.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Why don’t you just check for an existing Opportunity in the entry criteria? It might sound more efficient to do this all in one step, however, there are a few issues with that approach. The first and largest being able to filter down to specific Opportunity records related to the Account is just not possible in the entry criteria. Entry criteria are just that, criteria to enter the flow. It has its limitations, such as only being able to reference data from the record that started the flow, and no other object. It also lacks any way to split into different paths based on criteria — this is where the decision element comes in. The decision element is great because it compliments the shortfalls of entry criteria by allowing you to reference any and all records and objects that came before it in the flow. By utilizing a decision element, I was able to filter down Account records without Opportunities, which is not possible using entry criteria alone.&lt;/p&gt;
&lt;p&gt;As you can see, both entry criteria and decision elements have their time and place, and when used together they can be powerful teammates to help build a sophisticated Flow.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/flow&quot;&gt;Flow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce&quot;&gt;Salesforce&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce-productivity&quot;&gt;Salesforce Productivity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/sales-development&quot;&gt;Sales Development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce-tools&quot;&gt;Salesforce Tools&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title><![CDATA[How to ensure your team’s work passes UAT]]></title><description><![CDATA[Getting stopped in your tracks by not passing User Acceptance Testing (UAT) is rough. All that hard work only to run into a bug or find that your solution doesn’t actually fit the needs of the client. These things are bound to happen sometimes, but if it’s a regular occurrence, it can mess with your]]></description><link>https://cloudanswers.com/blog/how-to-ensure-your-teams-work-passes-uat</link><guid isPermaLink="false">/blog/how-to-ensure-your-teams-work-passes-uat</guid><pubDate>Thu, 04 May 2023 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/how-to-ensure-your-teams-work-passes-uat.webp&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;The dreaded back arrow when an issue doesn’t pass UAT&lt;/p&gt;
&lt;p&gt;Getting stopped in your tracks by not passing User Acceptance Testing (UAT) is rough. All that hard work only to run into a bug or find that your solution doesn’t actually fit the needs of the client. These things are bound to happen sometimes, but if it’s a regular occurrence, it can mess with your client’s happiness and your company’s reputation.&lt;/p&gt;
&lt;p&gt;Follow these steps to get issues consistently moving into Done instead of back to In Progress.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Write Clear Issue Requirements and Have a Definition of Done&lt;/li&gt;
&lt;li&gt;Keep the Client Up-to-Date&lt;/li&gt;
&lt;li&gt;Do Comprehensive Internal Testing&lt;/li&gt;
&lt;li&gt;Provide Testing Guidance&lt;/li&gt;
&lt;li&gt;Be Proud of your Work!&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&quot;1-write-clear-issue-requirements-and-have-a-definition-of-done&quot;&gt;1. Write Clear Issue Requirements and Have a Definition of Done&lt;/h2&gt;
&lt;p&gt;When you’re deciding with your client which issues should be prioritized, it’s important to discuss the desired outcome and outline the requirements that will get you there. The developers need to know what they are fixing or building. Document all of this on the issue or somewhere else where both the dev team and the client can view it.&lt;/p&gt;
&lt;p&gt;When doing UAT, you can return to this description to determine if the issue is ready to get marked as done. Writing everything down prevents lapses in memory from getting in the way of closing issues.&lt;/p&gt;
&lt;h2 id=&quot;2-keep-the-client-up-to-date&quot;&gt;2. Keep the Client Up-to-Date&lt;/h2&gt;
&lt;p&gt;This may not be necessary with some small issues, but for larger tasks, it’s best to keep the client in the loop. The development process can uncover unknown complexities or shine light on a solution that wasn’t previously considered. In both cases, it’s best to keep things feeling like a collaboration. You may do this with regular sprint review meetings or with written communication. We do a combination; sometimes including an updated mock-up in the issue to discuss, or hopping on a call to look at the software together.A new factor coming into play should be discussed with the client because it could affect prioritization (if the issue will take more time than originally planned) or if a design change is recommended (best not to spring that on them during UAT).&lt;/p&gt;
&lt;h2 id=&quot;3-do-comprehensive-internal-testing&quot;&gt;3. Do Comprehensive Internal Testing&lt;/h2&gt;
&lt;p&gt;Put yourself in the shoes of the end user and mess around. Review the issue requirements and definition of done you wrote in step 1 and make sure it’s all been addressed. Clients and end users alike can be unpredictable when using software, so it can pay to be creative when you’re testing your latest update. This should prevent you from running into bugs or unfinished features after you’ve handed it over for UAT.&lt;/p&gt;
&lt;h2 id=&quot;4-provide-testing-guidance&quot;&gt;4. Provide Testing Guidance&lt;/h2&gt;
&lt;p&gt;A step-by-step guide for testing updates can keep the focus on what you’ve updated or fixed. When in a UAT meeting, you can share your screen and show the process for testing, then give the tester freedom to check it out on their own. With written communication, highlight what changed with a combination of video, screenshots, and text. Make sure to include the page and function you’re testing and the acceptance criteria that was agreed on in step 1.&lt;/p&gt;
&lt;h2 id=&quot;5-be-proud-of-your-work&quot;&gt;5. Be Proud of your Work!&lt;/h2&gt;
&lt;p&gt;If you’re unsure about what you’re handing over, your client will be able to tell. But if you’ve followed the steps here and your work is ready to hand over, you should be proud. Present your work under the belief that it will be well received and working properly. Your confidence will do wonders for getting your client excited about the product you’re delivering.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/user-acceptance-testing&quot;&gt;User Acceptance Testing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/uat&quot;&gt;Uat&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/client-relationship&quot;&gt;Client Relationship&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title><![CDATA[Salesforce Admins: Make QR Codes and Barcodes in Salesforce]]></title><description><![CDATA[Unlock the power of QR codes and barcodes (aka zebra codes) in Salesforce. Add them to your page layouts, email templates, communities (aka experience cloud), portals, and printed templates.
This can be accomplished by a junior admin with a simple formula field — no code required.
Read more if you w]]></description><link>https://cloudanswers.com/blog/salesforce-admins-make-qr-codes-and-barcodes-in-salesforce</link><guid isPermaLink="false">/blog/salesforce-admins-make-qr-codes-and-barcodes-in-salesforce</guid><pubDate>Wed, 01 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/salesforce-admins-make-qr-codes--1.webp&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Unlock the power of QR codes and barcodes (aka zebra codes) in Salesforce. Add them to your page layouts, email templates, communities (aka experience cloud), portals, and printed templates.&lt;/p&gt;
&lt;p&gt;This can be accomplished by a junior admin with a simple formula field — &lt;em&gt;no code required&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Read more if you want to embed a QR Code or any other barcode format into your salesforce instance like this:&lt;/p&gt;
&lt;p&gt;It’s really easy for an admin to embed a QR Code like this into &lt;strong&gt;any object&lt;/strong&gt; in Salesforce.&lt;/p&gt;
&lt;p&gt;Barcodes and QR Codes are machine-readable formats for data, so the first step is to pick the data you want from that record.&lt;/p&gt;
&lt;p&gt;The Record ID or Auto-Number field is a good choice because it won’t change with time — as you might see with email, name, or phone number.&lt;/p&gt;
&lt;p&gt;Here is the formula that generates the QR code in the above screenshot:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/salesforce-admins-make-qr-codes--2.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;In the above formula, a barcode generation service is called and an image is returned with the data you want to be embedded within it. The “&amp;amp; Id” part is what you would customize with your own information. You can use custom or standard fields, or even cross-object references. It accepts numbers, text, urls, phone numbers, urls, etc.&lt;/p&gt;
&lt;p&gt;To create this formula and embed a QR code in your salesforce instance, just follow these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open Setup&lt;/li&gt;
&lt;li&gt;Click the “Object Manager” tab&lt;/li&gt;
&lt;li&gt;Open the object for which you want to create your QR code (eg. Contact)&lt;/li&gt;
&lt;li&gt;Click “Fields &amp;amp; Relationships”&lt;/li&gt;
&lt;li&gt;Click the button “New”&lt;/li&gt;
&lt;li&gt;Select “Formula” and click “Next”&lt;/li&gt;
&lt;li&gt;Enter your desired field name (eg. “QR Code”), select the type “Text”, then click “Next”&lt;/li&gt;
&lt;li&gt;Enter the following formula and click “Next”:&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;pre&gt;&lt;code class=&quot;language-apex&quot;&gt;IMAGE(
&amp;quot;https://barcode.cloudanswers.com/png?size=150x150&amp;amp;content=&amp;quot; &amp;amp; Id ,
&amp;quot;qr code&amp;quot;,
150,150)
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;ol start=&quot;9&quot;&gt;
&lt;li&gt;Chose your permissions and page layouts at the end of the wizard.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;At this point, you’ll be able to see the QR code in your page layouts and you can include it in emails, communities, conga docs, or any other place you need them.&lt;/p&gt;
&lt;p&gt;🎉🎉🎉 Congrats! You did it! 🎉🎉🎉&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/salesforce-admins-make-qr-codes--3.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce&quot;&gt;Salesforce&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/barcode&quot;&gt;Barcode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/zebra&quot;&gt;Zebra&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/admin&quot;&gt;Admin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/qr-code&quot;&gt;Qr Code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title><![CDATA[Sidestep the 2000 record limit in server-side pagination using Apex]]></title><description><![CDATA[Have you ever tried implementing server-side pagination using Apex with Salesforce SOQL limit and offset clauses? If yes, then you might already know that Salesforce SOQL doesn’t support offset values more than 2000. That means you can’t load more than 2000 records even if they are spread across mul]]></description><link>https://cloudanswers.com/blog/sidestep-the-2000-record-limit-in-server-side-pagination-using-apex</link><guid isPermaLink="false">/blog/sidestep-the-2000-record-limit-in-server-side-pagination-using-apex</guid><pubDate>Wed, 02 Nov 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Have you ever tried implementing server-side pagination using Apex with Salesforce SOQL limit and offset clauses? If yes, then you might already know that Salesforce SOQL doesn’t support offset values more than 2000. That means you can’t load more than 2000 records even if they are spread across multiple pages.&lt;/p&gt;
&lt;p&gt;In this article, I’ll show you an approach that doesn’t use the SOQL offset clause, thereby overcoming this limitation for large data sets.&lt;/p&gt;
&lt;h2 id=&quot;the-solution&quot;&gt;The Solution&lt;/h2&gt;
&lt;h3 id=&quot;overview&quot;&gt;Overview&lt;/h3&gt;
&lt;p&gt;The key part of the solution is to pass the Id of the last or the first record from the current page based on whether we are trying to load the next or the previous page of records. Once we have the Id of the record for an already loaded page, page size and direction, we can use SOQL with filters on the Id field, limit and order by clauses to load the next set of records. Let’s see some code to understand this further:&lt;/p&gt;
&lt;hr&gt;
&lt;pre&gt;&lt;code class=&quot;language-apex&quot;&gt;@RemoteAction
public static Map&amp;lt;String, Object&amp;gt; fetchRecords(String sObjectName, String lastKnownId, Integer pageSize, Integer direction) {
…
}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;p&gt;In the above method, we are accepting four parameters:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;sObjectName: Used to specify the name of the object whose records we want to load&lt;/li&gt;
&lt;li&gt;lastKnownId: This parameter can have different values depending upon which page and in what direction we are trying to load the records. For e.g. when loading the first page, this parameter will be null or an empty string with direction = 1; For loading the last page, this parameter will be null or an empty string with direction = -1; For loading the next page for the current page, this parameter will be the Id of the last record on the current page with direction = 1; For loading the previous page for the current page, this parameter will be the Id of the first record on the current page with direction = -1&lt;/li&gt;
&lt;li&gt;pageSize: Used to specify the number of records to load per page&lt;/li&gt;
&lt;li&gt;direction: Used to specify whether to load the next or the previous page&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;details&quot;&gt;Details&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Get the total numbers of records&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;First of all, we find the total number of records for the specified object in the system. We can do that using the following method:&lt;/p&gt;
&lt;hr&gt;
&lt;pre&gt;&lt;code class=&quot;language-apex&quot;&gt;public static Integer getTotalCount(String sObjectName) {
    Integer totalCount = 0;
    String query = &amp;#39;select count(Id) totalCount from &amp;#39; + sObjectName;
    List&amp;lt;AggregateResult&amp;gt; res = (List&amp;lt;AggregateResult&amp;gt;) Database.query(query);
    if (!res.isEmpty()) {
        totalCount = (Integer) res.get(0).get(&amp;#39;totalCount&amp;#39;);
    }
    return totalCount;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Calculate the total pages based on the total records and the page size&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Next, we calculate the total number of pages based on the total number of records and the specified page size. We can use the following formula to calculate that:&lt;/p&gt;
&lt;hr&gt;
&lt;pre&gt;&lt;code class=&quot;language-apex&quot;&gt;Integer totalPages = (Integer) Math.ceil((Decimal) totalRecords / pageSize);
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;p&gt;The &lt;strong&gt;key thing&lt;/strong&gt; to note here is the usage of Math.ceil method to round the argument to the nearest Decimal which is not less than the argument.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Special Case: When starting from the last page&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If the user wants to navigate to the last page of records, we support this use case by passing lastKnownId = null and direction = -1. We calculate the number of records on the last page based on the page size passed from client-side and return only that many records in the response.&lt;/p&gt;
&lt;hr&gt;
&lt;pre&gt;&lt;code class=&quot;language-apex&quot;&gt;public static Integer getLastPageRecordCount(Integer totalRecords, Integer pageSize) {
    Integer totalPages = (Integer) Math.ceil((Decimal) totalRecords / pageSize);
    Integer recordCount = totalRecords - ((totalPages - 1) * pageSize);
    return recordCount;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Load records&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Next, we build a SOQL query to fetch the records from the Salesforce database. We are using Schema describe methods to find all the fields accessible to the logged in user to build a list of fields. Then they are embedded in the select clause and specify the object name in the from clause of the SOQL query.&lt;/p&gt;
&lt;p&gt;Now, we need to understand how the direction flag is used with lastKnownId. If the lastKnownId value is not blank, then based on the direction flag we will either load the next or previous set of records by using the greater or less than operators.&lt;/p&gt;
&lt;p&gt;Another key thing to note is that we are querying one extra record per page. This will be used to deduce values for two flags; i.e. hasNext and hasPrevious and set them in the response. This will help us identity whether current page has a next or a previous page.&lt;/p&gt;
&lt;p&gt;Lastly, we are ordering records in ascending or descending order based on the direction the user is trying to navigate. For e.g. when the user is navigating from the last page to its previous page, we pass direction = -1. When direction = -1, we order the records in descending order and limit the number of records to page size + 1. This gives the user the ability to paginate forward and backward in the pages.&lt;/p&gt;
&lt;hr&gt;
&lt;pre&gt;&lt;code class=&quot;language-apex&quot;&gt;public static List&amp;lt;SObject&amp;gt; queryRecords(String sObjectName, String lastKnownId, Integer maxResults, Integer direction) {
    List&amp;lt;String&amp;gt; fields = describeSObjectFields(sObjectName);
    String query = &amp;#39;select &amp;#39; + String.join(fields, &amp;#39;,&amp;#39;);
    query += &amp;#39; from &amp;#39; + sObjectName;
    if (String.isNotBlank(lastKnownId)) {
        query += &amp;#39; where Id &amp;#39; + (direction == 1 ? &amp;#39;&amp;gt;&amp;#39; : &amp;#39;&amp;lt;&amp;#39;) + &amp;#39; \&amp;#39;&amp;#39; + lastKnownId + &amp;#39;\&amp;#39; &amp;#39;;
    }
    if (maxResults != null) {
        // query one extra record
        maxResults =  maxResults + 1;
        query += &amp;#39; order by Id &amp;#39; + (direction == 1 ? &amp;#39;asc&amp;#39; : &amp;#39;desc&amp;#39;) + &amp;#39; limit :maxResults&amp;#39;;
    }
    return Database.query(query);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Deduce the page state&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Once we have queried the records for the next or the previous page, we set the hasNext, hasPrevious, firstId, lastId properties in the response based on the number of records loaded on the page using the &lt;strong&gt;getPageState&lt;/strong&gt; method in &lt;strong&gt;SObjectQueryService&lt;/strong&gt; class. The idea behind setting the firstId and lastId properties in the response is to make the client side implementation easier. For e.g. if we use any kind of sorting mechanism on the client side, we might lose track of the original order of the records. These properties help easy access to those Ids and navigation between pages.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sort the records&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;One last thing to note is that when the direction flag = -1, we are sorting the records before setting them into the response. The idea is to sort the records by Id in ascending order since we are retrieving the records sorted in descending order when navigating backwards.&lt;/p&gt;
&lt;hr&gt;
&lt;pre&gt;&lt;code class=&quot;language-apex&quot;&gt;public class LoadRecordsCtrl {

    @RemoteAction
    public static Map&amp;lt;String, Object&amp;gt; fetchRecords(String sObjectName, String lastKnownId, Integer pageSize, Integer direction) {
        Map&amp;lt;String, Object&amp;gt; result = new Map&amp;lt;String, Object&amp;gt;();
        try {
            SObject sObj = (SObject) Type.forName(sObjectName).newInstance();
            Integer totalRecords = SObjectQueryService.getTotalCount(sObjectName);
            Integer totalPages = (Integer) Math.ceil((Decimal) totalRecords / pageSize);
            Integer maxResults = pageSize;
            if (String.isBlank(lastKnownId) &amp;amp;&amp;amp; direction == -1) {
                // when querying the last page, get the number of records on last page
                maxResults = SObjectQueryService.getLastPageRecordCount(totalRecords, pageSize);
            }
            List&amp;lt;SObject&amp;gt; records = SObjectQueryService.queryRecords(sObjectName, lastKnownId, maxResults, direction);
            // remove extra record and set next / previous state
            result.putAll(SObjectQueryService.getPageState(records, lastKnownId, totalPages, pageSize, direction));
            // sort and set records
            if (direction == -1) records.sort();
            result.put(&amp;#39;totalRecords&amp;#39;, totalRecords);
            result.put(&amp;#39;records&amp;#39;, records);
            result.put(&amp;#39;status&amp;#39;, true);
        } catch (Exception ex) {
            result.put(&amp;#39;status&amp;#39;, false);
            result.put(&amp;#39;error&amp;#39;, ex.getMessage());
        }
        return result;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;pre&gt;&lt;code class=&quot;language-apex&quot;&gt;public with sharing class SObjectQueryService {

    public static Integer getTotalCount(String sObjectName) {
        Integer totalCount = 0;
        String query = &amp;#39;select count(Id) totalCount from &amp;#39; + sObjectName;
        List&amp;lt;AggregateResult&amp;gt; res = (List&amp;lt;AggregateResult&amp;gt;) Database.query(query);
        if (!res.isEmpty()) {
            totalCount = (Integer) res.get(0).get(&amp;#39;totalCount&amp;#39;);
        }
        return totalCount;
    }

    public static Integer getLastPageRecordCount(Integer totalRecords, Integer pageSize) {
        Integer totalPages = (Integer) Math.ceil((Decimal) totalRecords / pageSize);
        Integer recordCount = totalRecords - ((totalPages - 1) * pageSize);
        return recordCount;
    }

    public static List&amp;lt;SObject&amp;gt; queryRecords(String sObjectName, String lastKnownId, Integer maxResults, Integer direction) {
        List&amp;lt;String&amp;gt; fields = describeSObjectFields(sObjectName);
        String query = &amp;#39;select &amp;#39; + String.join(fields, &amp;#39;,&amp;#39;);
        query += &amp;#39; from &amp;#39; + sObjectName;
        if (String.isNotBlank(lastKnownId)) {
            query += &amp;#39; where Id &amp;#39; + (direction == 1 ? &amp;#39;&amp;gt;&amp;#39; : &amp;#39;&amp;lt;&amp;#39;) + &amp;#39; \&amp;#39;&amp;#39; + lastKnownId + &amp;#39;\&amp;#39; &amp;#39;;
        }
        if (maxResults != null) {
            // query one extra record
            maxResults =  maxResults + 1;
            query += &amp;#39; order by Id &amp;#39; + (direction == 1 ? &amp;#39;asc&amp;#39; : &amp;#39;desc&amp;#39;) + &amp;#39; limit :maxResults&amp;#39;;
        }
        return Database.query(query);
    }

    public static Map&amp;lt;String, Object&amp;gt; getPageState(List&amp;lt;SObject&amp;gt; records, String lastKnownId, Integer totalPages, Integer pageSize, Integer direction) {
        Map&amp;lt;String, Object&amp;gt; pageState = new Map&amp;lt;String, Object&amp;gt;();
        if (String.isBlank(lastKnownId)) {
            if (records.size() &amp;gt; pageSize) {
                records.remove(records.size() - 1);
            }
            if (direction == -1) {
                // loading last page
                pageState.put(&amp;#39;hasPrevious&amp;#39;, totalPages &amp;gt; 1);
                pageState.put(&amp;#39;hasNext&amp;#39;, false);
            } else {
                // loading first page
                pageState.put(&amp;#39;hasPrevious&amp;#39;, false);
                pageState.put(&amp;#39;hasNext&amp;#39;, totalPages &amp;gt; 1);
            }
        } else if (records.size() &amp;gt; pageSize) {
            records.remove(records.size() - 1);
            pageState.put(&amp;#39;hasPrevious&amp;#39;, true);
            pageState.put(&amp;#39;hasNext&amp;#39;, true);
        } else {
            if (direction == -1) {
                // reached first page while navigating backwards
                pageState.put(&amp;#39;hasPrevious&amp;#39;, false);
                pageState.put(&amp;#39;hasNext&amp;#39;, true);
            } else {
                // reached last page while navigating forwards
                pageState.put(&amp;#39;hasPrevious&amp;#39;, true);
                pageState.put(&amp;#39;hasNext&amp;#39;, false);
            }
        }
        if (!records.isEmpty()) {
            // set first and last Id on the page
            if (direction == -1) {
                pageState.put(&amp;#39;firstId&amp;#39;, records.get(records.size() - 1).get(&amp;#39;Id&amp;#39;));
                pageState.put(&amp;#39;lastId&amp;#39;, records.get(0).get(&amp;#39;Id&amp;#39;));
            } else {
                pageState.put(&amp;#39;firstId&amp;#39;, records.get(0).get(&amp;#39;Id&amp;#39;));
                pageState.put(&amp;#39;lastId&amp;#39;, records.get(records.size() - 1).get(&amp;#39;Id&amp;#39;));
            }
        }
        return pageState;
    }

    private static List&amp;lt;String&amp;gt; describeSObjectFields(String sObjectName) {
        List&amp;lt;String&amp;gt; fields = new List&amp;lt;String&amp;gt;();
        SObject sObj = (SObject) Type.forName(sObjectName).newInstance();
        DescribeSObjectResult objResult = sObj.getSObjectType().getDescribe();
        Map&amp;lt;String, SObjectField&amp;gt; fieldsMap = objResult.fields.getMap();
        for (String field : fieldsMap.keySet()) {
            DescribeFieldResult fieldResult = fieldsMap.get(field).getDescribe();
            if (fieldResult.isAccessible() &amp;amp;&amp;amp; fieldResult.getType() != Schema.DisplayType.BASE64) {
                fields.add(fieldResult.getName());
                if (fieldResult.getType() == Schema.DisplayType.REFERENCE) {
                    List&amp;lt;SObjectType&amp;gt; sObjectTypes = fieldResult.getReferenceTo();
                    SObjectType referenceTo = sObjectTypes.get(0);
                    String relName = fieldResult.getRelationshipName();
                    String nameField = getNameField(referenceTo);
                    fields.add(relName + &amp;#39;.&amp;#39; + nameField);
                }
            }
        }
        return fields;
    }

    private static String getNameField(SObjectType sObjType) {
        String fieldName = null;
        DescribeSObjectResult relObjResult = sObjType.getDescribe();
        Map&amp;lt;String, SObjectField&amp;gt; fieldsMap = relObjResult.fields.getMap();
        for (String field : fieldsMap.keySet()) {
            DescribeFieldResult fieldResult = fieldsMap.get(field).getDescribe();
            if (fieldResult.isNameField()) {
                fieldName = fieldResult.getName();
                break;
            }
        }
        return fieldName;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;p&gt;If you need help with Salesforce or have something little more complex that might require some advanced developer knowledge, you can contact us at &lt;a href=&quot;mailto:&amp;#104;&amp;#101;&amp;#x6c;&amp;#112;&amp;#x40;&amp;#x63;&amp;#x6c;&amp;#111;&amp;#x75;&amp;#x64;&amp;#97;&amp;#x6e;&amp;#x73;&amp;#119;&amp;#101;&amp;#114;&amp;#x73;&amp;#46;&amp;#x63;&amp;#111;&amp;#x6d;&quot;&gt;&amp;#104;&amp;#101;&amp;#x6c;&amp;#112;&amp;#x40;&amp;#x63;&amp;#x6c;&amp;#111;&amp;#x75;&amp;#x64;&amp;#97;&amp;#x6e;&amp;#x73;&amp;#119;&amp;#101;&amp;#114;&amp;#x73;&amp;#46;&amp;#x63;&amp;#111;&amp;#x6d;&lt;/a&gt; or chat with us on &lt;a href=&quot;https://cloudanswers.com&quot;&gt;https://cloudanswers.com&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/apex&quot;&gt;Apex&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce&quot;&gt;Salesforce&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/pagination&quot;&gt;Pagination&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/programming&quot;&gt;Programming&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/development&quot;&gt;Development&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title><![CDATA[Extending React Data Table’s Functionality with Custom Components]]></title><description><![CDATA[At CloudAnswers, we use the react-data-table-component for managing data in tables. It is quite good when it comes to pagination, sorting, and other important features. However, there were missing features in the original component, so we decided to add some func]]></description><link>https://cloudanswers.com/blog/extending-react-data-tables-functionality-with-custom-components</link><guid isPermaLink="false">/blog/extending-react-data-tables-functionality-with-custom-components</guid><pubDate>Tue, 25 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/extending-react-data-tables-functionality.webp&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;At CloudAnswers, we use the &lt;a href=&quot;https://react-data-table-component.netlify.app/?path=/docs/getting-started-intro--docs&quot;&gt;react-data-table-component&lt;/a&gt; for managing data in tables. It is quite good when it comes to pagination, sorting, and other important features. However, there were missing features in the original component, so we decided to add some functionality that we needed on top of it.&lt;/p&gt;
&lt;p&gt;In this article, you’ll see how you can enhance the features and usability of the &lt;code&gt;react-data-table-component&lt;/code&gt; as we did for some of our customer applications.&lt;/p&gt;
&lt;h2 id=&quot;expanding-all-rows&quot;&gt;Expanding All Rows&lt;/h2&gt;
&lt;p&gt;In the original react-data-table-component repository, you can select all the rows at once with the “Select All” checkbox. However, you cannot expand all the rows if you want. To solve this issue, we created a &lt;a href=&quot;https://github.com/cloudanswers/react-data-table-component&quot;&gt;fork of the original repository&lt;/a&gt; and edited its source code to allow users to expand/collapse all the rows at the same time.&lt;/p&gt;
&lt;p&gt;If you want to use our fork, you can use the following props to configure the behavior for expandable rows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;keepExpandableFirst&lt;/code&gt; — By default, the select checkbox is shown before the expand button. So, in case, you want to reverse their order, you can use the keepExpandableFirst prop.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;expandableRowsNoExpandAll&lt;/code&gt;— In case, you want to disable the “Expand All” button, you can pass the &lt;code&gt;expandableRowsNoExpandAll&lt;/code&gt; prop to do so.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;adding-footer-component&quot;&gt;Adding Footer Component&lt;/h2&gt;
&lt;p&gt;The original &lt;code&gt;react-data-table-component&lt;/code&gt; provides support for adding a header but not a footer. A footer is often used in a table to summarise the data in the table, for example, you can add a “totals” row in the footer if your table contains some numeric data. So, we added a &lt;code&gt;footer&lt;/code&gt; prop to which you can pass any functional component.&lt;/p&gt;
&lt;p&gt;If you want to use our fork of the original repository, you can use the footer in the following manner:&lt;/p&gt;
&lt;hr&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;&amp;lt;ReactDataTable
 ...
 footer={
   &amp;lt;ReactDataTable
   ...
   /&amp;gt;
 }
/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;h2 id=&quot;configuring-table-columns&quot;&gt;Configuring Table Columns&lt;/h2&gt;
&lt;p&gt;As the application’s business complexity increases, the fields/columns in the tables increase. Due to this, the UI becomes a little more clunky and difficult to interpret. One solution for this problem is to allow users to hide/display columns in the tables based on their own needs.&lt;/p&gt;
&lt;p&gt;For this purpose, you can create a component called &lt;code&gt;TableColumnsConfigurator&lt;/code&gt; with the following code:&lt;/p&gt;
&lt;hr&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const TableColumnsConfigurator = ({
  columns,
  hiddenColumns,
  setHiddenColumns,
  className,
}) =&amp;gt; {
  const columnsWithValidIDs = columns.filter(
    (column) =&amp;gt; column.id &amp;amp;&amp;amp; typeof column.id === &amp;quot;string&amp;quot;
  );

  const isColumnHidden = (column) =&amp;gt; {
    return column.id &amp;amp;&amp;amp; hiddenColumns.includes(column.id);
  };

  const updateHiddenColumns = (column) =&amp;gt; {
    setHiddenColumns((prevValue) =&amp;gt; {
      let _hiddenColumns = [...prevValue];
      if (column.id) {
        if (_hiddenColumns.includes(column.id)) {
          _hiddenColumns = _hiddenColumns.filter(
            (_hiddenColumn) =&amp;gt; _hiddenColumn !== column.id
          );
        } else {
          _hiddenColumns = [..._hiddenColumns, column.id];
        }
      }
      return _hiddenColumns;
    });
  };

  const clearHiddenColumns = () =&amp;gt; {
    setHiddenColumns([]);
  };

  const id = useUniqueId();

  return (
    &amp;lt;div className={cx(&amp;quot;d-flex&amp;quot;, className)}&amp;gt;
      &amp;lt;Dropdown alignRight&amp;gt;
        &amp;lt;OverlayTrigger
          overlay={
            &amp;lt;Tooltip id={id}&amp;gt;
              Edit Columns{&amp;quot; &amp;quot;}
              {hiddenColumns.length &amp;gt; 0 &amp;amp;&amp;amp; (
                &amp;lt;div className=&amp;quot;small&amp;quot;&amp;gt;
                  ({hiddenColumns.length} hidden column
                  {hiddenColumns.length &amp;gt; 1 &amp;amp;&amp;amp; &amp;quot;s&amp;quot;})
                &amp;lt;/div&amp;gt;
              )}
            &amp;lt;/Tooltip&amp;gt;
          }
        &amp;gt;
          &amp;lt;Dropdown.Toggle variant=&amp;quot;transparent&amp;quot; className=&amp;quot;p-0 text-muted&amp;quot;&amp;gt;
            &amp;lt;i className=&amp;quot;fas fa-list&amp;quot; /&amp;gt;
            {hiddenColumns.length &amp;gt; 0 &amp;amp;&amp;amp; (
              &amp;lt;div className=&amp;quot;visual-indicator-danger&amp;quot; /&amp;gt;
            )}
          &amp;lt;/Dropdown.Toggle&amp;gt;
        &amp;lt;/OverlayTrigger&amp;gt;
        &amp;lt;Dropdown.Menu className=&amp;quot;py-0&amp;quot; style={{ minWidth: &amp;quot;200px&amp;quot; }}&amp;gt;
          {columnsWithValidIDs.length &amp;gt; 0 ? (
            &amp;lt;&amp;gt;
              &amp;lt;div className=&amp;quot;dropdown-header d-flex justify-content-between border-bottom p-h&amp;quot;&amp;gt;
                &amp;lt;div className=&amp;quot;font-weight-bold&amp;quot;&amp;gt;Edit Columns&amp;lt;/div&amp;gt;
                &amp;lt;Button
                  variant=&amp;quot;link&amp;quot;
                  className=&amp;quot;p-0&amp;quot;
                  onClick={clearHiddenColumns}
                &amp;gt;
                  Show All
                &amp;lt;/Button&amp;gt;
              &amp;lt;/div&amp;gt;
              &amp;lt;div style={{ maxHeight: &amp;quot;300px&amp;quot;, overflowY: &amp;quot;auto&amp;quot; }}&amp;gt;
                {columnsWithValidIDs.map((column, index) =&amp;gt; (
                  &amp;lt;div
                    key={column.id}
                    className=&amp;quot;dropdown-item d-flex justify-content-between px-h py-q&amp;quot;
                    style={{ opacity: isColumnHidden(column) ? 0.5 : 1 }}
                  &amp;gt;
                    &amp;lt;span className=&amp;quot;pr-h&amp;quot;&amp;gt;{column.name}&amp;lt;/span&amp;gt;
                    &amp;lt;input
                      type=&amp;quot;checkbox&amp;quot;
                      checked={!isColumnHidden(column)}
                      onClick={() =&amp;gt; updateHiddenColumns(column)}
                      readOnly
                    /&amp;gt;
                  &amp;lt;/div&amp;gt;
                ))}
              &amp;lt;/div&amp;gt;
            &amp;lt;/&amp;gt;
          ) : (
            &amp;lt;div className=&amp;quot;px-h&amp;quot;&amp;gt;No columns available to show/hide.&amp;lt;/div&amp;gt;
          )}
        &amp;lt;/Dropdown.Menu&amp;gt;
      &amp;lt;/Dropdown&amp;gt;
    &amp;lt;/div&amp;gt;
  );
};
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;p&gt;Next, you can call the &lt;code&gt;TableColumnsConfigurator&lt;/code&gt; component in a sub-header component and pass this to the &lt;code&gt;subHeaderComponent&lt;/code&gt; prop in the &lt;code&gt;ReactDataTable&lt;/code&gt;:&lt;/p&gt;
&lt;hr&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const subHeaderComponent = () =&amp;gt; {
  return (
    &amp;lt;div className=&amp;quot;mb-0&amp;quot;&amp;gt;
      {headerComponent}
      &amp;lt;div className=&amp;quot;d-flex justify-content-end align-items-center py-q&amp;quot;&amp;gt;
        &amp;lt;div className=&amp;quot;d-flex&amp;quot;&amp;gt;
          &amp;lt;TableColumnsConfigurator
            columns={columns}
            hiddenColumns={hiddenColumns}
            setHiddenColumns={setHiddenColumns}
          /&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  );
};
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;h2 id=&quot;exporting-to-csv-and-pdf&quot;&gt;Exporting to CSV and PDF&lt;/h2&gt;
&lt;p&gt;A common request from users of business applications is the ability to export the data to CSV and PDF formats.&lt;/p&gt;
&lt;p&gt;For this purpose, you can create a component called &lt;code&gt;ExportDataDropdown&lt;/code&gt; with the following code:&lt;/p&gt;
&lt;hr&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const ExportDataDropdown = ({ columns, hiddenColumns, data }) =&amp;gt; {
  const [fileName, setFileName] = useState(
    `report-${new Date().toLocaleDateString()}`
  );

  const csvFileName = useMemo(() =&amp;gt; `${fileName}.csv`, [fileName]);
  const pdfFileName = useMemo(() =&amp;gt; `${fileName}.pdf`, [fileName]);

  const handleFileNameChange = (e) =&amp;gt; setFileName(e.target.value);

  const viewColumns = useMemo(
    () =&amp;gt; columns.filter((column) =&amp;gt; !hiddenColumns.includes(column.id ?? &amp;quot;&amp;quot;)),
    [columns, hiddenColumns]
  );

  const handleExportToCSV = useCallback(() =&amp;gt; {
    const headers = viewColumns.map((column) =&amp;gt; column.name);
    const csvData = data.map((row) =&amp;gt;
      viewColumns.map((column) =&amp;gt; {
        return column.selector?.(row) ?? &amp;quot;&amp;quot;;
      })
    );

    // write your logic for CSV export
    exportCsv({
      name: csvFileName,
      headers,
      body: csvData,
    });
  }, [csvFileName, data, viewColumns]);

  const handleExportToPDF = useCallback(() =&amp;gt; {
    const headers = viewColumns.map((column) =&amp;gt; column.name);
    const pdfData = data.map((row, rowIndex) =&amp;gt;
      viewColumns.map((column, colIndex) =&amp;gt; {
        return column.selector?.(row) ?? &amp;quot;&amp;quot;;
      })
    );

    // write your logic for PDF export
    exportPdf({
      name: pdfFileName,
      headers,
      body: pdfData,
    });
  }, [data, pdfFileName, viewColumns]);

  return (
    &amp;lt;Dropdown alignRight&amp;gt;
      &amp;lt;Dropdown.Toggle variant=&amp;quot;transparent&amp;quot; className=&amp;quot;p-0 text-muted&amp;quot;&amp;gt;
        Export
      &amp;lt;/Dropdown.Toggle&amp;gt;
      &amp;lt;Dropdown.Menu className=&amp;quot;p-h&amp;quot; style={{ minWidth: &amp;quot;200px&amp;quot; }}&amp;gt;
        &amp;lt;div className=&amp;quot;d-flex flex-column&amp;quot;&amp;gt;
          &amp;lt;Form.Group className=&amp;quot;mb-h&amp;quot;&amp;gt;
            &amp;lt;Form.Control
              type=&amp;quot;text&amp;quot;
              placeholder=&amp;quot;File Name&amp;quot;
              value={fileName}
              onChange={handleFileNameChange}
            /&amp;gt;
            &amp;lt;Form.Text className=&amp;quot;text-muted&amp;quot;&amp;gt;
              Enter file name without file extension
            &amp;lt;/Form.Text&amp;gt;
          &amp;lt;/Form.Group&amp;gt;
          &amp;lt;DropdownButton
            as={ButtonGroup}
            variant=&amp;quot;outline-primary&amp;quot;
            title=&amp;quot;Export As&amp;quot;
            alignRight
          &amp;gt;
            &amp;lt;Dropdown.Item onClick={handleExportToPDF}&amp;gt;
              Export as PDF
            &amp;lt;/Dropdown.Item&amp;gt;
            &amp;lt;Dropdown.Item onClick={handleExportToCSV}&amp;gt;
              Export as CSV
            &amp;lt;/Dropdown.Item&amp;gt;
          &amp;lt;/DropdownButton&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/Dropdown.Menu&amp;gt;
    &amp;lt;/Dropdown&amp;gt;
  );
};
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;p&gt;Next, you can call the &lt;code&gt;ExportDataDropdown&lt;/code&gt; component in a sub-header component and pass this to the &lt;code&gt;subHeaderComponent&lt;/code&gt; prop in the &lt;code&gt;ReactDataTable&lt;/code&gt;:&lt;/p&gt;
&lt;hr&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const subHeaderComponent = () =&amp;gt; {
  return (
    &amp;lt;div className=&amp;quot;mb-0&amp;quot;&amp;gt;
      {headerComponent}
      &amp;lt;div className=&amp;quot;d-flex justify-content-end align-items-center py-q&amp;quot;&amp;gt;
        &amp;lt;div className=&amp;quot;d-flex&amp;quot;&amp;gt;
          &amp;lt;ExportDataDropdown
            columns={columns}
            hiddenColumns={hiddenColumns}
            data={data}
          /&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  );
};
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;h2 id=&quot;persisting-user-settings&quot;&gt;Persisting User Settings&lt;/h2&gt;
&lt;p&gt;When your invest time in customizing columns and filters, you will expect the application to remember your preferences on page reload or when you return to the application later in the day.&lt;/p&gt;
&lt;p&gt;This can easily be accomplished by storing user settings in the browser’s local storage. You can replace the use of the &lt;code&gt;useState&lt;/code&gt; hook with the &lt;a href=&quot;https://usehooks-ts.com/react-hook/use-local-storage&quot;&gt;&lt;code&gt;useLocalStorage&lt;/code&gt; custom hook&lt;/a&gt;. It works in the same way as &lt;code&gt;useState&lt;/code&gt; works but allows you to save your state variables in local storage.&lt;/p&gt;
&lt;p&gt;For example, you might want to persist the filename used in the &lt;code&gt;ExportDataDropdown&lt;/code&gt; component in the local storage. For this, you can use the following code:&lt;/p&gt;
&lt;hr&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const ExportDataDropdown = () =&amp;gt; {
  const [fileName, setFileName] = useLocalStorage(&amp;#39;fileName&amp;#39;, `report-${new Date().toLocaleDateString()}`);
  ...
};
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;p&gt;The first parameter is the “key” and the second parameter is the default value in case the key doesn’t exist in local storage.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;As a developer, there is always the temptation to create a new component from scratch, but extending an existing component that already solves 90% of your needs is a far more efficient approach. Here we are standing on the shoulders of giants, by starting with the react-data-table component. We’ve opened a pull request for them to include these features but if you want to use our version today, you can find it at &lt;a href=&quot;https://github.com/cloudanswers/react-data-table-component&quot;&gt;https://github.com/cloudanswers/react-data-table-component&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/react&quot;&gt;React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/nextjs&quot;&gt;Nextjs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/javascript&quot;&gt;JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/front-end-development&quot;&gt;Front End Development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/web-development&quot;&gt;Web Development&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title><![CDATA[5 Northeast Dreamin’ Sessions Admins Don’t Want to Miss]]></title><description><![CDATA[Open Source Updates — Friday Oct 6, 2022
Photo by Hannah Busing on Unsplash
As developers, we often see the same problem through multiple projects. When time permits we like encapsulate the reusable code into an app and/or github repo so we and other developers don’t have to go through the same work]]></description><link>https://cloudanswers.com/blog/open-source-updatesfriday-oct-6-2022</link><guid isPermaLink="false">/blog/open-source-updatesfriday-oct-6-2022</guid><pubDate>Fri, 07 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/open-source-updatesfriday.webp&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;As developers, we often see the same problem through multiple projects. When time permits we like encapsulate the reusable code into an app and/or github repo so we and other developers don’t have to go through the same work needlessly.&lt;/p&gt;
&lt;p&gt;Here’s our open source updates for this week:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N4V00000HZbcAUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=open_source_updates_10_6_22&quot;&gt;case-team-adder&lt;/a&gt; — A solution for people using email-to-case and want to automatically add people to the case team when they are CC’d on the email sent into the service cloud address. Source: &lt;a href=&quot;https://github.com/cloudanswers/case-team-adder&quot;&gt;https://github.com/cloudanswers/case-team-adder&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.dbsaver.com&quot;&gt;www.dbsaver.com&lt;/a&gt; — Now the admin ui has the ability to download your backed up data files, search for strings in backups (so you can find all changes to an ID for instance), and provides some folder navigation logic. Source: &lt;a href=&quot;https://github.com/cloudanswers/dbsaver&quot;&gt;https://github.com/cloudanswers/dbsaver&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce&quot;&gt;Salesforce&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce-productivity&quot;&gt;Salesforce Productivity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/salesforce-tools&quot;&gt;Salesforce Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/sales-development&quot;&gt;Sales Development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/tag/open-source&quot;&gt;Open Source&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title><![CDATA[What is Salesforce DevOps and how does it impact your organization?]]></title><description><![CDATA[Lets begin with 'DevOps' definition. It is a collection of practices that integrate software development (Dev) and operations (Ops) to help teams produce, test, and deliver software faster and more reliably. Think of developer operations like you think about sales operations, or marketing operations - it’s the tools and processes that enable the department’s work. Since its inception in 2009, the word "DevOps" has been used to describe a combination of cultural ideas, practices, and tools that strive to shorten the development life cycle and improve software quality.]]></description><link>https://cloudanswers.com/blog/what-is-salesforce-devops-and-how-does-it-impact-your-organization</link><guid isPermaLink="false">/blog/what-is-salesforce-devops-and-how-does-it-impact-your-organization</guid><pubDate>Thu, 09 Jun 2022 08:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/devops.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Trying to figure out what DevOps Center is? In this article, we&amp;#39;ll introduce DevOps, talk about tools that people typically use for Salesforce DevOps, and talk about the new DevOps Center that is going into public beta in June 2022.&lt;/p&gt;
&lt;p&gt;Let&amp;#39;s begin with &lt;strong&gt;the &amp;#39;DevOps&amp;#39;&lt;/strong&gt; definition. It is a collection of practices that integrate software development (Dev) and operations (Ops) to help teams produce, test, and deliver software faster and more reliably. Think of developer operations like you think about sales operations or marketing operations - it&amp;#39;s the tools and processes that enable the department&amp;#39;s work. Since its inception in 2009, the word &amp;quot;DevOps&amp;quot; has been used to describe a combination of cultural ideas, practices, and tools that strive to shorten the development life cycle and improve software quality.&lt;/p&gt;
&lt;p&gt;Therefore, in general, Salesforce DevOps focuses on ensuring that Salesforce administrators and developers can deploy changes, work through the software development life cycle efficiently, and deploy secure, effective, high-quality solutions.&lt;/p&gt;
&lt;p&gt;We consider some of the &lt;strong&gt;core objectives&lt;/strong&gt; of Salesforce DevOps to be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reducing the development time for changes.&lt;/li&gt;
&lt;li&gt;Improving the quality and security of releases.&lt;/li&gt;
&lt;li&gt;Saving time by streamlining processes such as deployments and testing.&lt;/li&gt;
&lt;li&gt;Enhancing communication between stakeholders, developers, and users.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;what-are-the-benefits&quot;&gt;What are the Benefits?&lt;/h2&gt;
&lt;p&gt;DevOps is all about making it easier for teams to add new features and solve important problems quickly and confidently. So it shouldn&amp;#39;t be a surprise that teams that focus on improving DevOps benefit from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Changes and new features can be made and deployed in less time&lt;/li&gt;
&lt;li&gt;Fewer bugs and fewer breaks in service&lt;/li&gt;
&lt;li&gt;Faster fixes when there&amp;#39;s an issue&lt;/li&gt;
&lt;li&gt;Reliable deployments that save time&lt;/li&gt;
&lt;li&gt;Better collaboration and time management&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Unfortunately, many companies just focus on building new features and never work on the process or technology. Imagine giving a race car driver a car from the 1990s and asking them just to drive faster to win a modern race. Don&amp;#39;t be the slow team using outdated tools and techniques. Add a proactive DevOps strategy to your team, and you&amp;#39;ll be amazed at what your team can do.&lt;/p&gt;
&lt;h2 id=&quot;salesforce-devops-tools&quot;&gt;Salesforce DevOps Tools&lt;/h2&gt;
&lt;p&gt;There are a plethora of choices when it comes to Salesforce DevOps tools. For the categories below, we&amp;#39;ll be highlighting the Salesforce recommended tools and partner or community tools that we like. This is by no means an exhaustive list.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Integrated Development Environments (IDEs)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you&amp;#39;re an admin, you&amp;#39;ll probably be doing all of your changes in a Salesforce sandbox or developer org (or maybe directly in production). But the first tool that most developers will need is an IDE. The IDE is a file editor combined with some tools that make development easier. In this case, you can skip to section 2.&lt;/p&gt;
&lt;p&gt;Salesforce recommends the following tools to be set up on your computer for Salesforce development. They&amp;#39;ve even created &lt;a href=&quot;https://trailhead.salesforce.com/en/content/learn/trails/set-up-your-workspace-and-install-developer-tools&quot;&gt;a trailhead to walk you through it&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visual Studio Code (VS Code) with the Salesforce Extension Pack plugin&lt;/li&gt;
&lt;li&gt;Salesforce CLI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since the code and Salesforce metadata are stored in plain text, you can pretty much edit them in any text editor instead of VS Code. There are even several purpose-built partner tools for Salesforce development:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://plugins.jetbrains.com/plugin/10253-illuminated-cloud-2&quot;&gt;Illuminated Cloud 2 for IntelliJ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://help.salesforce.com/s/articleView?id=sf.code_dev_console.htm&amp;amp;type=5&quot;&gt;Developer Console&lt;/a&gt; (for quick edits in a Salesforce org)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://welkinsuite.com/&quot;&gt;The Welkin Suite&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And, since the &lt;a href=&quot;https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_intro.htm&quot;&gt;metadata API&lt;/a&gt; and &lt;a href=&quot;https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/intro_api_tooling.htm&quot;&gt;tooling API&lt;/a&gt; are fully exposed, you could also create your toolsets. Have enough options yet?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Version Control&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As soon as you have your IDE set up, you&amp;#39;ll be able to start writing code and deploying it to Salesforce. But then you need to save it. If you just save it on your computer, you might lose all of your work at any point. If you just save it to your Salesforce org, what happens if someone else changes it? Enter &lt;a href=&quot;https://git-scm.com/&quot;&gt;Git&lt;/a&gt;, currently the most popular version control system. Git will allow you to keep track of changes to your Salesforce code, although it takes a little time to learn and discuss how to use it as a team.&lt;/p&gt;
&lt;p&gt;Once you have Git installed, sign up with a service like &lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt; to be able to host your git repository online so that it&amp;#39;s backed up and you can share it with others.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Continuous Integration and Delivery (CI/CD)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;These tools should make it easier for developers to move changes between environments, see the history of deployments, and debug issues. Without setting up anything else, you can already deploy changes with the Salesforce CLI mentioned in the section on IDEs or using change sets from within the Salesforce org. But unless you&amp;#39;re a solo developer making the occasional change, the benefits of CI/CD typically outweigh the time and cost required to set it up.&lt;/p&gt;
&lt;p&gt;To explain it simply, CI/CD are just terms for processes that help merge changes, test them, and deploy them to the appropriate environments. Continuous Delivery usually means that deployments to end users can happen automatically, where Continuous Integration just means changes are merged and tested somewhere, typically in a pre-production environment. You just need a computer to run some tasks on demand to do this. Here are some tools and services that are often used to help with this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/features/actions&quot;&gt;GitHub Actions&lt;/a&gt; or &lt;a href=&quot;https://bitbucket.org/product/features/pipelines&quot;&gt;BitBucket Pipelines&lt;/a&gt; - if you&amp;#39;re using one of these git hosts, it&amp;#39;s very quick to get started with one of their tools.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jenkins.io/&quot;&gt;Jenkins&lt;/a&gt; - A very popular open-source option that you can run on your servers or various hosting providers.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://devcenter.heroku.com/articles/pipelines&quot;&gt;Heroku Pipelines&lt;/a&gt; - If you want to keep it under the salesforce.com umbrella, Heroku offers an option for managing app deployments.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://about.gitlab.com/&quot;&gt;GitLab&lt;/a&gt;, &lt;a href=&quot;https://www.travis-ci.com/&quot;&gt;TravisCI&lt;/a&gt;, &lt;a href=&quot;https://circleci.com/&quot;&gt;CircleCI&lt;/a&gt; - Other popular CI/CD services.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;4. Automated Testing&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The more frequently the code is changed, or new features are added to the build, the more sensitive it is to flaws and issues. Integrating testing technologies is crucial for ensuring code quality and security. And if you&amp;#39;re writing Apex, it&amp;#39;s required by Salesforce.&lt;/p&gt;
&lt;p&gt;When testing Apex, you can rely on the deployment settings to control which tests are run when deploying to an org or running a test against an org. Learn more about Testing Apex in the &lt;a href=&quot;https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_testing.htm&quot;&gt;Apex Developer Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you are building Lightning Web Components or other web applications, there are various tools you can use for testing these. Salesforce recommends Jest. It has adapted it to work with Lightning Web Components. You can read more in the &lt;a href=&quot;https://developer.salesforce.com/docs/component-library/documentation/en/lwc/testing&quot;&gt;Lightning Web Component Developer Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you are building other technologies, look into what frameworks people use for testing. There are all kinds of testing frameworks to make sure your application works correctly without manually testing every feature in every version.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. Static Code Analysis&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If your organization already has CI/CD set up and has covered the basic automated testing, one of the following things to add would be other automated tools that review code changes. There are various tools that can be used to analyze your code. Here are some examples of what you can do with static code analyzers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enforce Apex best practices like unit tests actually use an assert to verify results.&lt;/li&gt;
&lt;li&gt;Scan for code style, like naming conventions on methods.&lt;/li&gt;
&lt;li&gt;Look for security issues such as enforcing CRUD permissions.&lt;/li&gt;
&lt;li&gt;Fix basic formatting like proper indentation in the code.&lt;/li&gt;
&lt;li&gt;Scan your visualforce pages or lightning web components for issues.&lt;/li&gt;
&lt;li&gt;Identify code that has been copied and pasted from an outside source.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here are some of the most common static code analysis tools for Salesforce development:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://forcedotcom.github.io/sfdx-scanner/&quot;&gt;Sfdx-scanner&lt;/a&gt; - combines some popular rule sets into one package for Salesforce development: ESLint, PMD, PMD copy-paste detector, and RetireJS. It can be plugged into almost all CI/CD pipelines or run on your computer.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pmd.github.io/latest/pmd_rules_apex.html&quot;&gt;PMD&lt;/a&gt; - if you&amp;#39;re just doing Apex development or doing Apex with some other languages, you can use the open-source PMD and the Apex rules. These are included in sfdx-scanner.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.codescan.io/&quot;&gt;Codes can&lt;/a&gt; - A paid service that can scan your code and integrate with your CI/CD pipeline in several different ways.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://checkmarx.com/&quot;&gt;Checkmarx&lt;/a&gt; - One of the original vendors to create an application security testing tool for Salesforce. Checkmarx is available through Salesforce for customers and partners to use through the &lt;a href=&quot;https://security.secure.force.com/security/tools/forcecom/scanner&quot;&gt;customer portal&lt;/a&gt; or &lt;a href=&quot;https://security.secure.force.com/sourcescanner/&quot;&gt;partner portal&lt;/a&gt;. Although Salesforce does not expose an endpoint, you can use it in CI/CD; you&amp;#39;d have to subscribe to Checkmarx.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;6. Requirements Tracking&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;While this category may be last, it doesn&amp;#39;t have to be the last tool you implement. With the tools above, you&amp;#39;ll have a development process that makes it easy to release quality code, but it&amp;#39;s still good to have a system that tracks WHY those changes were made and what you want to do in the future. There are a large number of systems out there, but here are the most common ones we see at Salesforce customers and partners:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Salesforce apps such as Service Cloud or one of the apps on the &lt;a href=&quot;https://appexchange.salesforce.com/category/project-management&quot;&gt;AppExchange&lt;/a&gt; like Agile Accelerator.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.atlassian.com/software/jira&quot;&gt;Jira&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/features/issues&quot;&gt;GitHub issues&lt;/a&gt; - built right into GitHub; this is an easy option if you&amp;#39;re using GitHub for source code control and want a simple system that easily integrates with developer workflow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DevOps Center&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So why haven&amp;#39;t we mentioned the DevOps center in any of the sections above? DevOps Center combines several of the tools above and is targeted mainly at Salesforce administrators. Currently, Salesforce administrators have to choose between a few less-than-desirable options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Just make changes in production&lt;/strong&gt;. This is prone to various issues but is still one of the most prevalent options for making admin changes.&lt;/li&gt;
&lt;li&gt;Make changes in a sandbox and &lt;strong&gt;use change sets&lt;/strong&gt; to push changes to production. These are slow and prone to problems.&lt;/li&gt;
&lt;li&gt;Make changes in a sandbox or development environment and then &lt;strong&gt;ask a developer&lt;/strong&gt; to move their changes. Not exactly streamlined, but it works for some organizations or short projects.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Learn developer tools&lt;/strong&gt; like Salesforce CLI and Git so they can contribute their changes to the code repository for releases with code. It can be a steep learning curve for an admin, but a great toolset to learn.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use a third-party tool&lt;/strong&gt; such as Gearset or Copado. This requires the whole organization to get on board and agree to their process.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;DevOps Center, which will be available for public beta in &lt;strong&gt;June 2022&lt;/strong&gt;, looks to make this process much easier by creating a user interface that can be used to control the Salesforce CLI and Git interactions while also integrating with requirements gathering. This allows you to do exciting things with just a few clicks, like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keep track of user stories and related work items.&lt;/li&gt;
&lt;li&gt;Identify changes that were made in an org.&lt;/li&gt;
&lt;li&gt;Deploy changes from one org to another.&lt;/li&gt;
&lt;li&gt;Track an entire pipeline through multiple Salesforce orgs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;DevOps Center will be released as a managed package that you install into Salesforce. Keep an eye out for announcements from Salesforce when it is available. DevOps Center may be the tool you need to get the admins involved in the developer release process if you have admins and developers working side-by-side.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DevOps Methodologies&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;While having the right tools is critical, your team still needs to figure out how to work together. &lt;strong&gt;DevOps methodology&lt;/strong&gt; is a way of making software in which &lt;strong&gt;Development&lt;/strong&gt; and &lt;strong&gt;IT Operations&lt;/strong&gt; work together throughout the &lt;strong&gt;software&amp;#39;s lifecycle&lt;/strong&gt; to make it easier to release reliable software faster. A DevOps methodology is a group of practices and procedures that make DevOps work. A good methodology smoothly moves code through each lifecycle stage and keeps information from getting stuck in silos. However, comparing DevOps methodologies is beyond the scope of this post. We recommend doing some research and continuing to iterate on your methodology until you find out what works.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why DevOps Matters&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In 2020, equity investments worth $38.5 million were made in DevOps companies. This number went up to $275.5 million in 2021, a seven-fold rise. 2022 is looking good, and it is &lt;a href=&quot;https://www.grandviewresearch.com/press-release/global-development-to-operations-devops-market&quot;&gt;estimated&lt;/a&gt; to reach 39.84 billion by 2030. These results show that DevOps is an area that companies are investing in. It has succeeded in bringing different areas of the organization together by providing a workflow that focuses on customer requirements. There is something for everyone with a higher likelihood of delivering better results and experiences to the customers. If your team is struggling to release quality code on a regular basis, maybe it&amp;#39;s time to review your DevOps processes and tools.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Salesforce Lead Nurture Campaigns]]></title><description><![CDATA[Lead nurturing is all about discovering what your customers value and then offering it to them in an automated fashion and watching their behavior to see when they are ready to purchase or get involved with sales. Lead nurturing includes identifying their needs and giving value to potential customers throughout their interactions with your organization. That is encouraging leads to stay in touch until they are ready to take the next step]]></description><link>https://cloudanswers.com/blog/salesforce-lead-nurture-campaigns</link><guid isPermaLink="false">/blog/salesforce-lead-nurture-campaigns</guid><pubDate>Fri, 03 Jun 2022 07:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/business104-converted.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Lead nurturing is all about discovering what your customers value and then offering it to them in an automated fashion and watching their behavior to see when they are ready to purchase or get involved with sales. Lead nurturing includes identifying their needs and giving value to potential customers throughout their interactions with your organization. That is encouraging leads to stay in touch until they are ready to take the next step.&lt;/p&gt;
&lt;p&gt;Depending on your marketing automation system, the specific instructions on how to set up a lead nurture campaign can vary. Historically, this was done with just email, but lately, most campaigns have become multi-modal including text messaging, calling, and other social media. In this post, we’ll discuss the key components of lead nurturing and show a few examples.&lt;/p&gt;
&lt;h2 id=&quot;&quot;&gt;&lt;/h2&gt;
&lt;p&gt;What is Lead Nurturing?&lt;/p&gt;
&lt;p&gt;Lead nurturing is a procedure of engaging and developing relationships with customers through each customer journey stage. A lead nurturing campaign aims to qualify leads further and guide them to a successful sales solution.&lt;/p&gt;
&lt;p&gt;Using website content, nurturing flows can provide value to potential consumers. A personalized email flow, for example, may help create confidence in your business and get potential customers closer to completing a purchase by offering additional resources.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s how lead nurturing differs from email marketing: the goal of a lead nurture flow is to keep the lead warm, educate your audience, to meet their needs, not just to sell them products or services. Lead nurture flows are behavior-based, meaning they change depending on what the customer does on the website or in the online store. Instead of promoting &amp;quot;timely&amp;quot; offers in response to out-of-store events and seasonal campaigns, they are based on what the customer wants to know and what they expect from us.&lt;/p&gt;
&lt;p&gt;Results are impressive. Lead nurturing creates more sales, but it also closes bigger deals. Lead nurturing drives more sales and revenue in a shorter period. Forrester Research &lt;a href=&quot;https://www.forrester.com/report/Data+Leaders+Weave+An+InsightsDriven+Corporate+Fabric/-/E-RES140571#&quot;&gt;reports&lt;/a&gt; that companies that excel at lead nurturing generate 50% more sales-ready leads at 33% lower cost. Nurtured leads spend as much as &lt;a href=&quot;https://www.annuitas.com/blog/2010/03/29/lets-ease-into-it/&quot;&gt;47% more than non-nurtured leads&lt;/a&gt;, according to The Annuitas Group.&lt;/p&gt;
&lt;h3 id=&quot;-1&quot;&gt;&lt;/h3&gt;
&lt;p&gt;Example Nurture Campaign Flow Charts:&lt;/p&gt;
&lt;h5 id=&quot;-2&quot;&gt;&lt;/h5&gt;
&lt;p&gt;&lt;strong&gt;Traditional Sales Model - Lead Nurturing&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/nurture-flow.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;ecommerce-nurture-flow&quot;&gt;&lt;strong&gt;eCommerce Nurture Flow&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;This generic eCommerce flow just shows a very simple email nurturing campaign.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/ecommerce-nurture-flow.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;b2c-ecommerce-nurture-flow&quot;&gt;&lt;strong&gt;B2C eCommerce Nurture Flow&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;In this flow, there are on-page pop-ups, emails, and social media retargeting ads to reduce the number of people dropping out of the funnel.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/flow-for-the-blog-post-3.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;what-makes-lead-nurturing-successful&quot;&gt;What Makes Lead Nurturing Successful?&lt;/h2&gt;
&lt;p&gt;Marketing goals are essential for your business. However, your goals should be aligned with meeting your customers&amp;#39; needs. If you create content that meets their needs and get it to them at the right time it will help you build a strong lead list and increase conversions. When you get to know your audience&amp;#39;s behavior and figure out where they are in the buying process, you&amp;#39;ll be able to grow your relationship with them.&lt;/p&gt;
&lt;p&gt;It is safe to conclude that the above strategies show that you should be everywhere. There is no one fool-proof technique for all leads, but you can evaluate leads based on their behavior and continually refine your process and learn from your results.&lt;/p&gt;
&lt;h2 id=&quot;nurture-flow-reporting&quot;&gt;Nurture Flow Reporting&lt;/h2&gt;
&lt;p&gt;When creating an effective nurture flow, the best practice is, as already mentioned, to have great content and an automated process. But to develop great content, you’ll need to develop what you think is great, then measure how well it works in the real world and continue to refine the process and the content over time while continuously creating new content.&lt;/p&gt;
&lt;p&gt;So, when creating your reports, consider some of the following metrics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For the overall nurture campaign, how is your goal rate over time? In other words, out of everyone that goes into this campaign, how many meet your goal criteria (purchase, schedule meeting with sales, etc)?&lt;/li&gt;
&lt;li&gt;For emails, what are their open and click-through rates?&lt;/li&gt;
&lt;li&gt;For ads and on-page pop-ups, what are the click-through rate and the overall number of clicks and impressions?&lt;/li&gt;
&lt;li&gt;Where are the spots in the nurture campaign where the conversion rate is low?&lt;/li&gt;
&lt;li&gt;Which pieces of content are driving the most leads entering the nurture campaign?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you don’t have a solution already, Salesforce offers easy-to-use, powerful tools for lead nurturing, including a marketing automation solution called &lt;a href=&quot;https://www.salesforce.com/editions-pricing/marketing-cloud/account-engagement/&quot;&gt;Marketing Cloud Account Engagement.&lt;/a&gt; Marketing Cloud Account Engagement helps marketers align with sales and understand which marketing efforts drive revenue. With Marketing Cloud Account Engagement, you can track your prospects and deals with lifecycle reporting and &lt;strong&gt;Individual Prospect Lifecycle Report&lt;/strong&gt;, which is available at &lt;strong&gt;Reports&lt;/strong&gt; -&amp;gt;&lt;strong&gt;Lifecycle&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;If you’re using standard Salesforce campaigns to track your Lead nurturing then you can review the stats on the campaign itself, or run some standard reports to view the performance. You can get a lot of the metrics above from a standard Campaigns report, although you may have to go to your email marketing system or website content management system for performance metrics on web content, chat messages, ads, and emails. For more advanced reporting, consider using Flows to update fields on the Lead based on things like when they go from Nurture status back to working status. These fields can then be added to your reports for even more insights, such as how many times Leads get nurtured.&lt;/p&gt;
&lt;p&gt;If you need to schedule and send your reports outside the Salesforce environment, check out our &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=salesforce_lead_nurture_campaigns&quot;&gt;Report Sender&lt;/a&gt; app, it’s free to send reports in CSV format for other people to get the campaign stats.&lt;/p&gt;
&lt;h1 id=&quot;what-next&quot;&gt;What Next&lt;/h1&gt;
&lt;p&gt;If you’re considering implementing or improving a Lead Nurturing program for your organization, we recommend you first sit down and design the flow that you want to be based on your particular lead sources, sales process, and marketing technology. After that, implement your solution, measure the results and continue to tweak it over time until you have a consistent new source of sales leads or revenue!&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Tips for Becoming a Salesforce Admin]]></title><description><![CDATA[Before starting my career as a Salesforce administrator, I had never even heard of Salesforce. I was just some kid who went to a trade school and worked at Best Buy. One day my dad had told me about this software that he was working with called Salesforce. He told me how you didn't need a college degree, no schooling. All you needed was the dedication to learning the software and $200 to pass the exam. ]]></description><link>https://cloudanswers.com/blog/tips-for-becoming-a-salesforce-admin</link><guid isPermaLink="false">/blog/tips-for-becoming-a-salesforce-admin</guid><pubDate>Thu, 19 May 2022 08:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/tips-for-becoming-salesforce-admin.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Before starting my career as a Salesforce administrator, I had never even heard of Salesforce. I was just some kid who went to a trade school and worked at Best Buy. One day my dad had told me about this software that he was working with called Salesforce. He told me how you didn&amp;#39;t need a college degree, no schooling. All you needed was the dedication to learning the software and $200 to pass the exam. Now that sounded too good to be true, and if something is too good to be true, it&amp;#39;s not real, right? Well, that&amp;#39;s what I originally thought until I looked into Salesforce and found out that a career at Salesforce is one of the best-kept open secrets in the tech space. So I went ahead and found the Trailhead study guides, completed those, and then passed my Salesforce Certified Administrator exam. You may ask what I got in return for my hard work and exam fee? I earned my Salesforce Certified Administrator certification allowing me to start my career as a Salesforce consultant here at CloudAnswers.&lt;/p&gt;
&lt;h2 id=&quot;why-become-a-salesforce-administrator&quot;&gt;&lt;strong&gt;Why become a Salesforce Administrator?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;There are many reasons to become a Salesforce Administrator, and the timing has never been better to jump into the industry. A recent study conducted by Salesforce has found that the Salesforce economy will create &lt;a href=&quot;https://www.salesforce.com/news/press-releases/2021/09/20/idc-salesforce-economy-2021/&quot;&gt;9.3 million jobs and 1.6 trillion in new business revenues by 2026&lt;/a&gt;. With entry-level admins earning more than the average college graduate, it&amp;#39;s a no-brainer to pursue a career in the Salesforce ecosystem. The average starting salary for someone with &lt;a href=&quot;https://www.zippia.com/advice/average-starting-salary-out-of-college-statistics/&quot;&gt;a 4-year degree is $55,200, whereas the average starting salary for a Salesforce Administrator is $69,713&lt;/a&gt;. I think the numbers speak for themselves, not that one shouldn&amp;#39;t pursue a college degree. Still, it&amp;#39;s good to know for people who are considering college or considering a career change and want to get into a growing and exciting field.&lt;/p&gt;
&lt;p&gt;On top of the salary and career growth, another benefit is that most of the jobs are fully remote, which means flexible work and lifestyle, allowing you to work literally anywhere you want. If you pursue a career in Salesforce, just know your admin certification is just your starting point. You can then branch off into many other roles and specialize within the industry. There are many options. You can become a developer, architect, solution engineer, business analyst, or even continue with your admin career by getting the Advanced Administrator certification. But step by step, first: where to start?&lt;/p&gt;
&lt;h2 id=&quot;where-to-start&quot;&gt;&lt;strong&gt;Where to start?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If you&amp;#39;re lucky, you&amp;#39;re someone who is considering this career switch with some background knowledge, having been on the end-user side of Salesforce. If, like me, you&amp;#39;re jumping right in entirely fresh, having never used it, you will have a more difficult time doing so, but it is by no means impossible. Whether you have experience in Salesforce or not, the first and best place to start is the official &lt;a href=&quot;https://trailhead.salesforce.com/en/users/strailhead/trailmixes/prepare-for-your-salesforce-administrator-credential&quot;&gt;Salesforce Admin Trailhead&lt;/a&gt;. Trailhead is a great place to learn. Once you finish the Admin Trail, I highly recommend poking around and finding other trails, especially if there are things that you found yourself struggling with or if there are things that you are interested in.&lt;/p&gt;
&lt;h2 id=&quot;get-certified&quot;&gt;&lt;strong&gt;Get Certified&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;The best way to get ready for taking your Salesforce Admin certification exam after completing the Trailhead is to go ahead and complete supplemental courses offered by 3rd parties. The courses I recommend are the Mike Wheeler Salesforce Admin course on Udemy. He does a fantastic job of going deep dive in a lecture-style about all the things you should know to pass the exam and that you&amp;#39;ll use on the job, and the best resource that I&amp;#39;ve found by far is FocusonForce. Between the study guide and then the practice tests they have with unlimited retakes, it is by far the best and most informational resource for getting ready for one&amp;#39;s Salesforce Admin exam. Salesforce does offer a practice test for $20 PER practice test, and it is good to take that at least once before taking the real thing.&lt;/p&gt;
&lt;p&gt;Things I wish I had known before starting my first Salesforce Admin job. There is no way one person can know everything about Salesforce, especially when you&amp;#39;re just starting your career with Salesforce. Specific additional features of Salesforce will vary depending on what organization you end up working for and what they use for their business needs.&lt;/p&gt;
&lt;h2 id=&quot;configure-price-quote-cpq&quot;&gt;&lt;strong&gt;Configure, Price, Quote (CPQ)&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;One of the many things I wish I knew before starting my career and the biggest is CPQ, which stands for Configure, Price, and Quote. CPQ is HUGE, and if the organization you start your career with doesn&amp;#39;t use it, there is a good chance it&amp;#39;s only a matter of time before they do. CPQ, on the basic level, is a highly accurate quoting software, and it is highly customizable, which is what makes it so powerful and critical to many organizations. CPQ allows you to configure one-time product purchases, subscription purchases, and customizable discounts for SKUs depending on what bundle is included in the quote. That&amp;#39;s another thing with CPQ, bundles. Not to get too much into it in this article, just know that CPQ allows you to configure, let&amp;#39;s say, the purchase of a new air conditioner, to always include a labor SKU for installation, which means that&amp;#39;s less thinking for the sales rep and ensures that a product requiring installation is never sold without it. That&amp;#39;s a pretty basic example, but it helps you get the idea of what it can do. I highly recommend checking out the &lt;a href=&quot;https://trailhead.salesforce.com/en/users/strailhead/trailmixes/prepare-for-your-salesforce-cpq-specialist-credential&quot;&gt;Salesforce CPQ Trailmix &lt;/a&gt;to get your hands on CPQ and get familiar with the software.&lt;/p&gt;
&lt;h2 id=&quot;nonprofit-success-pack-npsp&quot;&gt;&lt;strong&gt;Nonprofit Success Pack (NPSP)&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Another aspect of Salesforce that I wish I had familiarized myself with is NPSP, Salesforce&amp;#39;s Nonprofit Success Pack because there are some key differences. Some of you may argue that it may be a waste of time to learn NPSP if you&amp;#39;re not going into the nonprofit sector. However, I would say one still should because it&amp;#39;s never wrong to know more things, and you can use this knowledge to help organizations when you volunteer, which gives you more experience as an administrator.&lt;/p&gt;
&lt;h2 id=&quot;spreadsheets&quot;&gt;&lt;strong&gt;Spreadsheets&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If you take any piece of information from this article, it would be to spend some serious time learning how to use Excel. Get comfortable with formulas and manipulating data within them. Something that isn&amp;#39;t truly emphasized is how often and intimately you will be working in spreadsheets. As an administrator, you will be handling a lot of data, and the more comfortable and capable you are at managing it, the better time you will have starting out because it is an integral part of the job.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;There has never been a better time to pursue a Salesforce career, and thankfully with the way the industry is growing, that statement will ring true for years to come. But why wait for years to come when you can change your life today? Start learning for free on &lt;a href=&quot;https://trailhead.salesforce.com&quot;&gt;Trailhead&lt;/a&gt; and get on the path to a life-changing career.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Sales Activity Reports in Salesforce]]></title><description><![CDATA[Reporting on Sales Activity can be frustrating due to the complexity of capturing and reporting on all the different things going on, but being able to find the pulse of your sales team is priceless. We hope these ideas have inspired you to create some powerful reports. If you have any questions, feel free to start a chat with us - it's on this page to the lower right!]]></description><link>https://cloudanswers.com/blog/sales-activity-reports-in-salesforce</link><guid isPermaLink="false">/blog/sales-activity-reports-in-salesforce</guid><pubDate>Thu, 21 Apr 2022 22:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/sales-activity-report-in-salesforce-blog-pst-top-banner.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;At CloudAnswers, we have decades of combined experience building sales reports. With the launch of Report Sender, we often get asked for help creating certain types of reports. In this blog, we’ll be talking about one of our most common requests, sales activity reports. These are reports that keep track of all of the KPIs that may affect revenue but aren’t just revenue reports - lead flow, sales outreach, key events.&lt;/p&gt;
&lt;p&gt;Since everyone uses Salesforce differently, we’ll try to keep the examples pretty simple. But make sure to customize this based on how your team uses Salesforce. And if you can’t get the metrics you want, this is a great time to talk to the team about changing what data is in Salesforce.&lt;/p&gt;
&lt;h1 id=&quot;what-should-be-included-in-a-sales-activity-report-in-salesforce-sales-cloud&quot;&gt;What should be included in a Sales Activity Report in Salesforce Sales Cloud?&lt;/h1&gt;
&lt;p&gt;Open activities, completed activities, multi-person events or outstanding approval requests for which you are a delegated approver are all examples of common activity reports and there are templates (or report types) for you to get started on creating any of these on the Reports tab in Salesforce. For all the reports we talk about today, you’ll want to make sure you start with the correct report type, anything else can be edited after creating the report.&lt;/p&gt;
&lt;h2 id=&quot;creating-an-activity-report&quot;&gt;Creating an Activity Report&lt;/h2&gt;
&lt;p&gt;To create a sales activity report, do the following:&lt;/p&gt;
&lt;p&gt;1. After logging into your Salesforce account, go to the &lt;strong&gt;&amp;quot;Reports&amp;quot;&lt;/strong&gt; section and select the &amp;quot;New Report&amp;quot; option.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/screenshot-2022-04-22-at-14-14-58.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;2. Then choose the &lt;strong&gt;sales activity report&lt;/strong&gt; you wish to create. For this example, choose Tasks and Events as the report type.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/screenshot-2022-04-22-at-14-18-54.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;3. Once there, you&amp;#39;ll see a screen divided into sections: &lt;strong&gt;Fields, Filters, and Preview&lt;/strong&gt;. The default fields for the activity report type you selected are shown in the &lt;strong&gt;&amp;quot;Preview&amp;quot;&lt;/strong&gt; section.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/screenshot-2022-04-22-at-14-28-44.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;4. If you wish to add more fields to the activity report, look through the &amp;quot;&lt;strong&gt;Fields&lt;/strong&gt;&amp;quot; section. To include the fields in your report, drag them into the &amp;quot;&lt;strong&gt;Preview&lt;/strong&gt;&amp;quot; section. The &amp;quot;&lt;strong&gt;Remove Column&lt;/strong&gt;&amp;quot; option is available when selecting the drop-down menu next to a field&amp;#39;s name from the drop-down menu next to the field&amp;#39;s name.&lt;/p&gt;
&lt;p&gt;5. If you want to see only a subset of the data in your report, use the Filters section. You may input additional filters by clicking the &amp;quot;&lt;strong&gt;Add&lt;/strong&gt;&amp;quot; button next to Filters in the report&amp;#39;s toolbar.&lt;/p&gt;
&lt;p&gt;6. View the report by clicking &amp;quot;&lt;strong&gt;Run Report&lt;/strong&gt;&amp;quot; in Salesforce.&lt;/p&gt;
&lt;p&gt;7. When you’re happy with the report, save it. Make sure to choose an appropriate folder so other people can use all your hard work.&lt;/p&gt;
&lt;p&gt;Following these steps will allow you to run any custom sales activity report. It will be possible for your team to look at data in a range of page layouts and representations to gain the most excellent understanding of the data.&lt;/p&gt;
&lt;h2 id=&quot;examples-of-sales-activity-reports&quot;&gt;Examples of Sales Activity Reports&lt;/h2&gt;
&lt;p&gt;Now that you know the basics, let’s get into the details. What activities actually matter for my team and my metrics? Unfortunately, we can’t answer that for everyone. Everybody’s business is different, so we recommend sitting down with your team (or just on your own whiteboard) and designing the perfect dashboard. Decide what metrics you think to affect your business goals and start with those reports on a dashboard.&lt;/p&gt;
&lt;p&gt;But we do see some common requests. Here are some tips and tricks on how to create some of our most requested sales activity reports:&lt;/p&gt;
&lt;h3 id=&quot;number-of-calls-made&quot;&gt;Number of Calls Made&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Why does it matter?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For sales teams that still rely on a lot of phone calls, this is often an early indicator of the future pipeline. Put this leading indicator on your dashboard and watch for weeks when it dips and see how it correlates to pipeline growth in future periods.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do I report on it?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create a &lt;strong&gt;Tasks and Events&lt;/strong&gt; report and apply the appropriate filters to search for how you’re logging calls. Review the results and make sure they are accurate.&lt;/p&gt;
&lt;p&gt;Then group the &lt;strong&gt;Activity Date&lt;/strong&gt; by week, month, or whatever period makes sense for your team.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/screenshot-2022-04-22-at-14-29-04.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;conversation-rate&quot;&gt;Conversation Rate&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Why does it matter?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: this is not conversion rate, although it’s similar.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If you know that 5% of your calls end up in a conversation and that 10% of your conversations result in someone moving forward, then you can work backward and see how many calls you need to make in order to meet your target for the pipeline growth.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do I report on it?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The key here is to have a field on the activities that tells you if this one was a conversation. To do this, we create a formula field in &lt;strong&gt;Setup &amp;gt; Object Manager for Activities.&lt;/strong&gt; This field is a checkbox formula, and it needs to return TRUE if the activity should be considered a conversation. For this example, we’ll base it on the &lt;strong&gt;Call Result&lt;/strong&gt; field, so this is what the formula looks like:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/screenshot-2022-04-22-at-14-29-33.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Now, create a report just like any Tasks and Events report and adjust the filters to get the right data range, team, and anything else you want to filter on. Make sure that you don’t filter to just the conversations, you want all calls that meet your criteria.&lt;/p&gt;
&lt;p&gt;Now, the next tip: create a custom summary formula for conversation rate. On your report, click on the drop-down next to the columns and click &lt;strong&gt;Add Summary Formula.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/screenshot-2022-04-22-at-14-29-46.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Then enter the following formula (assuming your formula field is named Conversation).&lt;/p&gt;
&lt;p&gt;That’s it, now you can see what % of your calls result in conversations. You can use this similar method to create all kinds of conversion rate reports - for example, what % of leads are converted can be done with just a summary formula with the Converted field that is already in Salesforce.&lt;/p&gt;
&lt;h2 id=&quot;activity-leaderboards&quot;&gt;Activity Leaderboards&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Why does it matter?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In some organizations, competitiveness can be a huge contributor to sales motivation. A dashboard that shows sales stats based on team or individual can be a great tool to increase results.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do I report on it?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Just create any activity report and group it by the User or Role and add it to a dashboard!&lt;/p&gt;
&lt;h2 id=&quot;other-activity-reports-to-consider&quot;&gt;Other Activity Reports to Consider&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://appexchange.salesforce.com/appxSearchKeywordResults?keywords=sales%20report&amp;amp;searchType=simpleSearch&quot;&gt;AppExchange&lt;/a&gt; is a great resource for looking for reports and dashboards that can be used for ideas or as starting points for your team. To get you started, here are a few more requests that we get:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Email open rates - If you’re interested in detailed stats I recommend one of Salesforce’s email partners, but you can also get some stats from the HTML email status reports.&lt;/li&gt;
&lt;li&gt;Opportunity pipeline updates - want to know when deals skip straight to close from an early stage? Or how many deals were lost last week? Using the Opportunity History report you can report on important changes to Opportunities.&lt;/li&gt;
&lt;li&gt;Meeting close rate - This one often requires tracking the meeting outcome which a lot of teams don’t do. But if your sales process is quick and often relies on key meetings to close (demos, on-site evaluations, consults, etc), then this is a critical metric to track. Just set up a custom field on the Event to track what happened (Moved to Opp, Undecided, Not Interested, etc) and create a report based on it.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;how-to-get-started&quot;&gt;How to Get Started&lt;/h2&gt;
&lt;p&gt;Get the appropriate people together and figure out your business metrics, or at least what you think they are to start. Don’t let perfection get in the way of creating something that you can start using soon.&lt;/p&gt;
&lt;p&gt;Then start building. Use the examples above and &lt;strong&gt;the AppExchange&lt;/strong&gt; as inspiration. If you have existing reports that you’re manually preparing for a company or board presentation, use those for ideas too, even better if you don’t have to spend time manually putting together charts after moving reports to Salesforce.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Reporting on Sales Activity&lt;/strong&gt; can be frustrating due to the complexity of capturing and reporting on all the different things going on, but being able to find the pulse of your sales team is priceless. We hope these ideas have inspired you to create some powerful reports. If you have any questions, feel free to start a chat with us - it&amp;#39;s on this page to the lower right!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;If you ever need to email these reports to people, make sure to check out our&lt;/em&gt; &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=sales_activity_reports_in_salesforce&quot;&gt;&lt;strong&gt;&lt;em&gt;Report Sender app&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;, the easiest way to send reports to &lt;strong&gt;non-Salesforce users&lt;/strong&gt;.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[How to build a Customer Churn Rate report in Salesforce]]></title><description><![CDATA[The churn rate is the total percentage of customers that join up and subsequently leave within a specific period. The churn rate is undesirable since it indicates that you're losing consumers. Customer churn rates may be divided into two categories: voluntary and involuntary. People who unsubscribe for their reasons, such as being dissatisfied with the service or no longer requiring it, are referred to as "voluntary churn." Involuntary churn can occur due to problems like payment failure that cannot be attributed to a customer intentionally canceling. ]]></description><link>https://cloudanswers.com/blog/how-to-build-a-customer-churn-rate-report-in-salesforce</link><guid isPermaLink="false">/blog/how-to-build-a-customer-churn-rate-report-in-salesforce</guid><pubDate>Thu, 14 Apr 2022 22:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/churn-rate-report-top-banner.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;The churn rate is the total percentage of customers that join up and subsequently leave within a specific period. The churn rate is undesirable since it indicates that you&amp;#39;re losing consumers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Customer churn rates&lt;/strong&gt; may be divided into two categories: voluntary and involuntary. People who unsubscribe for their reasons, such as being dissatisfied with the service or no longer requiring it, are referred to as &amp;quot;voluntary churn.&amp;quot; Involuntary churn can occur due to problems like payment failure that cannot be attributed to a customer intentionally canceling.&lt;/p&gt;
&lt;p&gt;Since one of your aims in business is to keep your customers happy so that they don&amp;#39;t churn out at the end of the day, the first step is to figure out your total churn rate. After that, the number of clients you lose each month. You may also use the following formula for your customer turnover rate estimate to make things even more straightforward:&lt;/p&gt;
&lt;h5 id=&quot;total-consumerscustomers-who-departed-multiplied-by-100&quot;&gt;&lt;strong&gt;Total consumers/customers who departed multiplied by 100.&lt;/strong&gt;&lt;/h5&gt;
&lt;p&gt;In other words, a churn rate of 5% means that out of every 1,000 new customers you acquire, 50 will cancel their subscription. Because 50 cancellations divided by 1000 customers equals 0.05, or 5%.&lt;/p&gt;
&lt;h3 id=&quot;how-does-the-churn-rate-help-your-business&quot;&gt;&lt;strong&gt;How does the churn rate help your business?&lt;/strong&gt;&lt;/h3&gt;
&lt;h5 id=&quot;calculating-the-churn-rate-has-many-uses&quot;&gt;Calculating the churn rate has many uses:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Being an indicator of a company&amp;#39;s health and long-term prospects&lt;/li&gt;
&lt;li&gt;To determine whether modifications hurt client retention.&lt;/li&gt;
&lt;li&gt;In determining the lifetime value of a customer, another key metric.&lt;/li&gt;
&lt;li&gt;To estimate the amount of future revenue for business valuations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;calculating-revenue-mrr-churn-rate&quot;&gt;&lt;strong&gt;Calculating Revenue (MRR) Churn Rate&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The amount of monthly recurring revenue lost in a given month should be divided by all of your monthly recurring revenue (MRR) at the beginning of the month, make sure to exclude any upgrades or additional money from current customers that was received in a month. This will give the percentage of revenue churned. Don&amp;#39;t add new sales because you&amp;#39;re just interested in how much revenue you lost from pre-existing customers. If you add in upgrades and current customers before dividing by the starting MRR, you get the &lt;strong&gt;Net MRR Churn rate&lt;/strong&gt;, another useful metric.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/mrr.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Building a Churn Rate Report&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Since Salesforce doesn’t have a native solution for subscription metrics like churn rate, the report(s) you build will depend on how you store the data, and it might take more than one report to calculate your churn.&lt;/p&gt;
&lt;p&gt;To build the report you will need to build a report with the following information:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The total MRR at the beginning of the month&lt;/li&gt;
&lt;li&gt;The amount of MRR that churned due to cancellations or payment issues in that month&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As an example, let’s say you are tracking your customers using Accounts, Opportunities, and Products. Since Salesforce doesn’t have a native solution for calculating MRR and tracking cancellations, let’s assume there is a custom field for MRR on the opportunities and you create cancellation Opportunities in Salesforce when a customer cancels or downgrades certain products.&lt;/p&gt;
&lt;p&gt;In this scenario, you just create two reports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One report has your total &lt;strong&gt;MRR&lt;/strong&gt;, this is just a sum of MRR on all closed opportunities (new customers and add-ons minus cancellations) where the close date is prior to the beginning of the month.&lt;/li&gt;
&lt;li&gt;The other report is the total MRR related to cancellations or downgrades for the month.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then, just divide the lost MRR by the starting MRR for the month and you have your revenue churn. You can do this on a monthly basis by setting up a Report Subscription to these two reports or having it sent to the right person using a tool like Report Sender.&lt;/p&gt;
&lt;p&gt;This is just one example and there are a number of ways and different tools to help with calculating these metrics. But if your business depends on recurring revenue, you can’t afford to calculate these metrics.&lt;/p&gt;
&lt;p&gt;Topics that you might be interested in:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/blog/what-operational-metrics-should-you-measure&quot;&gt;What operational metrics should you measure?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/blog/10-crm-metrics-you-should-measure&quot;&gt;10 CRM metrics you should measure&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you look for the FREE apps that will help you better operate in Salesforce, here are apps developed for Salesforce by CloudAsnwers:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=how_to_build_a_customer_churn_rate_report&quot; title=&quot;Report Sender appexchange&quot;&gt;Report Sender&lt;/a&gt; - is the go-to application to download and share Salesforce reports with SF and non-SF users.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=how_to_build_a_customer_churn_rate_report&quot; title=&quot;appexchange potential duplicates&quot;&gt;Potential Duplicates &lt;/a&gt;- an easy to use component that lets you see potential duplicates and merge them&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[The hidden costs of duplicates in Salesforce]]></title><description><![CDATA[
A company's future success depends on making data-informed decisions quickly and effectively. Companies that don't follow these practices may be at a disadvantage. According to reports, poor data management costs organizations an estimated $3.1 trillion in the United States yearly.]]></description><link>https://cloudanswers.com/blog/the-hidden-costs-of-duplicates-in-salesforce</link><guid isPermaLink="false">/blog/the-hidden-costs-of-duplicates-in-salesforce</guid><pubDate>Sun, 03 Apr 2022 22:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/the-hiiden-cost-of-duplicates-in-salesforce.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Today&amp;#39;s business relies heavily on data. Companies need data to engage customers successfully, thrive on the digital transformation path, or interact with partners and other companies. Therefore, decisions can be for the better or worse, depending on how accurate the underlying data is. Whether or not a company can seize a fresh opportunity depends on data too.&lt;/p&gt;
&lt;p&gt;A company&amp;#39;s future success depends on making data-informed decisions quickly and effectively. Companies that don&amp;#39;t follow these practices may be at a disadvantage. According to &lt;a href=&quot;https://hbr.org/2016/09/bad-data-costs-the-u-s-3-trillion-per-year&quot;&gt;reports&lt;/a&gt;, poor data management costs organizations an estimated $3.1 trillion in the United States yearly.&lt;/p&gt;
&lt;p&gt;In addition to poor data management, duplicate data is one of the practices that can cut an organization from the success train. It can occur for several reasons, but it is not a peculiar challenge. Duplicate data costs businesses in America an&lt;a href=&quot;https://www.dmnews.com/data/news/13086153/study-poor-data-quality-costs-600b-yearly&quot;&gt; estimated &lt;/a&gt;600 billion dollars every year, but the adverse effect on companies cannot be overemphasized. Therefore, it is essential to understand the negative impact of duplicates.&lt;/p&gt;
&lt;h2 id=&quot;calculating-the-costs&quot;&gt;Calculating the Costs&lt;/h2&gt;
&lt;p&gt;As many as &lt;a href=&quot;https://www.edq.com/about-us/news/latest-experian-qas-research-finds-contact-data-quality-affects-the-customer-experience/&quot;&gt;94%&lt;/a&gt; of companies believe that their customer and prospect data is erroneous. Businesses can incur high costs due to the existence of these duplicates, with hidden costs eating deeper into the profits. Your marketing budget can quickly go down the drain if you have data duplicates. For example, three records for one consumer means three catalogs. The costs of sending the same information several times are enormous, especially on a larger scale. Assume you&amp;#39;re sending an email at $3 per 1,000 emails. If you have 100,000 email addresses and 10% are duplicates, you lose $30 every time you send an email. Think about how many dollars you could lose if the same mistake occurred during your marketing efforts.&lt;/p&gt;
&lt;p&gt;Decision-making may be hindered if your marketing data isn&amp;#39;t reliable because data integrity issues make it difficult to make informed decisions. The expenses of data duplication run over the budget. In addition, loss of productivity has its price tag. Customers with multiple records imply a time-consuming and challenging customer support experience for both sides.&lt;/p&gt;
&lt;h3 id=&quot;storage-expenses&quot;&gt;&lt;strong&gt;Storage Expenses&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;First of all, multiple copies of the same data result in higher storage costs. Consider this example, 100 people in your business submitted a 1 MB email attachment. With 100 attachments in your database, you need 100 MB of storage space. By deleting duplicate entries, only one instance of the attachment is required to be saved, hence saving space. But, the storage expenses are not the only focus.&lt;/p&gt;
&lt;p&gt;There are significant costs associated with excessive data duplication connected to servers regardless of how inexpensive storage might be. Infrastructure costs are the most common form of these costs. Database software is often necessary to handle the access to the data on the servers. Some businesses are sufficiently advanced that they can assign expenses based on applications and even business functions. Still, only a few companies are mature enough to know what data is duplicated across the applications they manage. For this reason, managers may end up purchasing storage in large quantities, hence buying too much.&lt;/p&gt;
&lt;h3 id=&quot;etl-and-labor-costs&quot;&gt;&lt;strong&gt;ETL and Labor Costs&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;When you use the Extract, Transform, Load (ETL) strategy to copy data, it&amp;#39;s straightforward and fast. It can create interfaces across systems to replicate data, and the costs are usually minimal. However, the data copies diverge over time. Any changes to the dynamics can cause the data to fall out of sync or &amp;quot;drift.&amp;quot; Using inaccurate data(duplicates) in this way can be dangerous, with far-reaching consequences in the long run.&lt;/p&gt;
&lt;p&gt;Many organizations employ ETL developers in their business analyst teams, which spend most of their time managing data pipelines, leaving little time for data analysis. Bottom line? The habit of copying data comes with additional expenses. Also, a single change in one system can have a ripple effect on several other applications. Then overall developmental costs go to the roof at the expense of productivity.&lt;/p&gt;
&lt;h3 id=&quot;inaccurate-kpis-reporting-and-audit-issues&quot;&gt;&lt;strong&gt;Inaccurate KPIs, Reporting, and Audit Issues&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Companies use important metrics to measure and forecast their performance against their own goals and the competitions. However, accuracy will be a challenge if the organization relies on duplicate data to construct its KPIs. For better decision-making and greater profitability, companies should consider one reliable source.&lt;/p&gt;
&lt;p&gt;While duplicates can affect accuracy, financial reporting may also suffer. The accuracy of the crucial record-to-report function can be potentially undermined if information comes from multiple unreliable sources. Financial performance metrics will be affected, but so will compliance requirements. Redoing or postponing financial reporting because of data integrity issues never looks good.&lt;/p&gt;
&lt;h3 id=&quot;customer-service-and-engagement&quot;&gt;&lt;strong&gt;Customer Service and Engagement&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;We know that CRMs make it easier for businesses to communicate with their consumers, provide better customer service, and boost brand loyalty by providing a centralized data source. Therefore, the system is as good as the data that feeds them. Improving the customer experience can prove problematic when customer records have duplicate entries, missing entries, etc.&lt;/p&gt;
&lt;p&gt;Bad data affects customer service and sales. In most cases, a client calls to inquire about a purchase they made earlier, and because the CRM is refreshed every night, the company won&amp;#39;t have a trace of it. In other cases, discrepancies between the CRM and the ordering system may occur. If a company&amp;#39;s marketing teams cannot delete duplicate records during marketing efforts, they risk losing their audience.&lt;/p&gt;
&lt;h2 id=&quot;how-you-can-prevent-data-duplication&quot;&gt;How you can prevent data duplication&lt;/h2&gt;
&lt;p&gt;Preventing data duplication is the best way to avoid all issues mentioned above. It&amp;#39;s an automated procedure that uses algorithms and data processing in your lead database to find and merge probable duplicates. Data entry errors can be curtailed by following consistent procedures the first time a customer&amp;#39;s information is entered.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Consider running duplicate data through filters regularly. In most data management tools like Excel, there are basic features for removing duplication.&lt;/li&gt;
&lt;li&gt;Ensure that the prospecting data you receive is accurate and void of duplicates by sourcing it from a trusted source.&lt;/li&gt;
&lt;li&gt;Stop using prospecting data you&amp;#39;ve paid for in your home file. When purchasing data, be sure that your residence file can be suppressed. Duplicate data will be reduced, and you won&amp;#39;t have to pay for data you already own.&lt;/li&gt;
&lt;li&gt;To find duplicate data, work with reliable data management like &lt;a href=&quot;https://cloudanswers.com/products/merge-duplicates&quot;&gt;CloudAnswers&lt;/a&gt;. They have been recognized as experienced data business specialists and are the builders of the &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=hidden_cost_of_duplicates&quot;&gt;Potential Duplicates component,&lt;/a&gt; which you can use to find and merge duplicates.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Clean data is error-free data, saving you a lot of money if you confirm it before launching your marketing efforts. The expense of removing duplicate data is lesser than scrubbing data.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Duplicate Records in Salesforce]]></title><description><![CDATA[Maintaining a CRM system with accurate data is critical for any business to succeed. Removing duplicates records in Salesforce is one of the easier ways to improve data quality. For those just getting started with duplicate management, start with setting up Duplicate Rules and Matching Rules to prevent or identify duplicates, then figure out a plan to merge them and keep it clean moving forward.]]></description><link>https://cloudanswers.com/blog/duplicate-records-in-salesforce</link><guid isPermaLink="false">/blog/duplicate-records-in-salesforce</guid><pubDate>Thu, 24 Mar 2022 23:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/duplicates-supporting-pc.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;&lt;em&gt;Blog post updated on the 25th of March 2022&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Maintaining a clean and consistent &lt;strong&gt;database&lt;/strong&gt; is important to keep a business running smoothly. But it requires a never-ending process of &lt;strong&gt;removing duplicates&lt;/strong&gt;, cleaning bad data, enhancing records, backing up data, and more. In today’s post, we’d talk about one of the first things to start with - Salesforce duplicate management.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Duplicate records&lt;/strong&gt; are almost unavoidable, especially when you have data coming from multiple sources or multiple users. They are stress agents. Imagine calling a prospect only for them to reply that your company reached out earlier. Or telling a customer that you didn’t get their order just to realize that you were looking at the wrong record for them. Or sending someone several emails because you have multiple leads for them. There are many ways that duplicates can hurt your reputation and directly impact your business.&lt;/p&gt;
&lt;p&gt;Therefore, it is vital to know how to find duplicate accounts in Salesforce, remove them, and prevent them. And when it comes to duplicate checks in salesforce, there are several options. For example, a &lt;a href=&quot;https://appexchange.salesforce.com/appxSearchKeywordResults?keywords=duplicates&amp;amp;searchType=simpleSearch&quot;&gt;search for duplicates on the AppExchange&lt;/a&gt; provides over 260 results! So that you can find duplicate accounts in Salesforce in a single search.&lt;/p&gt;
&lt;p&gt;So where should you start? Read on to know your options and how you can prevent and merge duplicates in Salesforce. If you’d rather have someone else put together a recommendation specifically for your company you can &lt;a href=&quot;https://cloudanswers.com/jsullivan&quot;&gt;schedule some time to talk&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&quot;salesforce-duplicate-rules&quot;&gt;Salesforce Duplicate Rules&lt;/h1&gt;
&lt;p&gt;Most Salesforce systems come with Duplicate Management, a way to alert users about duplicates. Salesforce Duplicate report Management requires setting up Duplicate Rules and Matching Rules (although some are set up by default).&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://help.salesforce.com/articleView?err=1&amp;amp;id=sf.duplicate_rules_map_of_reference.htm&amp;amp;type=5&quot;&gt;&lt;strong&gt;Duplicate Rules&lt;/strong&gt;&lt;/a&gt; answer the question: what happens if a duplicate is identified? These define what happens when someone views a duplicate or tries to edit or create a duplicate.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://help.salesforce.com/articleView?err=1&amp;amp;id=sf.matching_rule_map_of_reference.htm&amp;amp;type=5&quot;&gt;&lt;strong&gt;Matching Rules&lt;/strong&gt;&lt;/a&gt; answer the question: what is a duplicate? These define what fields and criteria are used to match records. Matching Rules are used in Duplicate Rules.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The standard account duplicate rule is one of the defaults that come with Salesforce. The Matching Rule is referenced in the Duplicate Rule.&lt;/p&gt;
&lt;h2 id=&quot;customizing-matching-rules&quot;&gt;Customizing Matching Rules&lt;/h2&gt;
&lt;p&gt;Matching rules are the best place to start since they determine what defines a duplicate. Before sitting down to create these rules, make sure to review your data and talk to your team. Some things to think about or discuss with your team:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;What fields are populated when records are created?&lt;/strong&gt; You don’t want to create a matching rule that uses the Website field, for example, if you never fill in that field.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What fields help identify which records&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;aren’t&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;duplicates?&lt;/strong&gt; There are a lot of scenarios where you might want to allow records that are similar, so identifying unique fields like Email or Address can help avoid matching records that aren’t actually duplicated. You can also use a field for a related object, like Account on Contact, to limit the potential duplicates to only those on the same related object.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;How broadly do you want the potential duplicates to be?&lt;/strong&gt; When setting up rules you can cast a wide net or a small one. If your users are well-trained and familiar with merging records you can make your matching rules broader and let the users decide if a record is a duplicate or not. Otherwise, you can set up stricter rules and users will get fewer warnings about potential duplicates.&lt;/p&gt;
&lt;h2 id=&quot;to-set-up-your-matching-rules-follow-these-steps&quot;&gt;To set up your Matching Rules, follow these steps:&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;In Salesforce Setup, search for Matching Rules on the left menu&lt;/li&gt;
&lt;li&gt;Click New Rule to create a new rule or click Edit to edit an existing rule. Note: Rules that are active cannot be edited, deactivate the Duplicate rule and the Matching Rule to edit. Standard rules cannot be edited.&lt;/li&gt;
&lt;li&gt;Choose the object that the matching rule is for.&lt;/li&gt;
&lt;li&gt;Enter a rule name and select the fields and matching method for each one. For details on the matching methods, &lt;a href=&quot;https://help.salesforce.com/articleView?err=1&amp;amp;id=sf.matching_rules_matching_methods.htm&amp;amp;type=5&quot;&gt;check out the Salesforce help&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;If you have advanced logic (like match on Name and Address OR Email), then click Add Filter Logic to enter the logic.&lt;/li&gt;
&lt;li&gt;Save and activate your rule. Depending on the amount of data and Salesforce’s current server load, the activation could take a while to generate keys for all of the records.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That’s it, you now have a matching rule that you can use in your duplicate rules.&lt;/p&gt;
&lt;h2 id=&quot;customizing-duplicate-rules&quot;&gt;Customizing Duplicate Rules&lt;/h2&gt;
&lt;p&gt;Now that you have matching rules, you can decide what happens when they find a match. To customize Duplicate Rules search for Duplicate Rules in Salesforce Setup. Like Matching Rules, there are a few things you may want to consider before setting these up:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Should duplicate checks bypass sharing?&lt;/strong&gt; If your organization&amp;#39;s records are private, you&amp;#39;ll have to determine whether or not to share them. If you disable sharing, the user records that others don&amp;#39;t have access to aren&amp;#39;t displayed, but it may prevent them from duplicating them even if they can&amp;#39;t view the original.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Do you want to prevent the creation of duplicates? Warn users, or report it to admins&lt;/strong&gt; Your company must decide how stringent it wants to be when it comes to duplication, and this should be considered alongside your matching standards. If you have stringent matching restrictions, it&amp;#39;s easy to decide whether to prevent people from making duplicates, but if you don&amp;#39;t, you might only want to notify them. If you don&amp;#39;t want to annoy your users, simply report the duplicate and let them make or change it.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;to-set-up-a-duplicate-rule-follow-these-steps&quot;&gt;To set up a Duplicate Rule, follow these steps:&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;In Salesforce Setup, search for Duplicate Rules on the left menu.&lt;/li&gt;
&lt;li&gt;Click New Rule and choose an object or edit an existing rule. To edit a rule, you have to deactivate it first.&lt;/li&gt;
&lt;li&gt;Name the rule - if you plan to have a lot of rules, consider a naming convention so it’s easier to find the rule you need to edit.&lt;/li&gt;
&lt;li&gt;Bypass sharing rules if needed - if you want to match on all records, change Record-Level Security to Bypass sharing rules.&lt;/li&gt;
&lt;li&gt;Choose what happens on Create and Edit. If you want to prevent duplicates, choose Block. Otherwise, choose if you want to Alert the user or Report the duplicate. Enter your Alert message if needed.&lt;/li&gt;
&lt;li&gt;Choose your matching rules. Note that you can use multiple matching rules and can even compare records with a different object (for example Contacts with Person Accounts).&lt;/li&gt;
&lt;li&gt;Specify your conditions, if applicable. This is a good place to filter out any automated processes, for example, you could avoid blocking the web-to-lead records by setting a condition for Lead Source not equal to “Website”.&lt;/li&gt;
&lt;li&gt;Save and Activate.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That’s it, now go test your new rule and see if it works correctly.&lt;/p&gt;
&lt;h1 id=&quot;viewing-duplicates&quot;&gt;Viewing Duplicates&lt;/h1&gt;
&lt;p&gt;Now that you have your duplicate rules set up, you might want to view the duplicates.&lt;/p&gt;
&lt;h2 id=&quot;viewing-duplicates-on-reports&quot;&gt;Viewing Duplicates on Reports&lt;/h2&gt;
&lt;p&gt;To report on the duplicates, you’ll need to create a new report type and then create a report.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to Report Types in Setup&lt;/li&gt;
&lt;li&gt;Create a new Report Type&lt;/li&gt;
&lt;li&gt;Choose the object that has duplicates as the primary object (i.e. Leads, Contacts, Your Custom Object)&lt;/li&gt;
&lt;li&gt;Relate Duplicate Record Sets to the primary object.&lt;/li&gt;
&lt;li&gt;Save the report type and create a report.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;viewing-duplicates-on-records&quot;&gt;Viewing Duplicates on Records&lt;/h2&gt;
&lt;p&gt;One of the best ways to keep up with duplicates is to display them prominently on the records so that users can see them and merge them if they are allowed. In Lightning Experience, Accounts, Contacts, and Leads come with a pre-built component for this. If you’re trying to use a custom object, or just want a little more control over the component, install our free &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&quot;&gt;Potential Duplicates Component&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you don’t see potential duplicates on a page, here’s what to do:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If you haven’t already, install our &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=duplicate_records_in_sf&quot;&gt;potential duplicates component&lt;/a&gt; from the AppExchange.&lt;/li&gt;
&lt;li&gt;Open up a record that you want to see duplicates on.&lt;/li&gt;
&lt;li&gt;Click the gear icon in the top right and click Edit Page to launch the Lightning App Builder.&lt;/li&gt;
&lt;li&gt;Drag the Potential Duplicates component onto the page wherever you’d like.&lt;/li&gt;
&lt;li&gt;If desired, specify the columns that you want to display on the component or on the merge screen.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The Potential Duplicates Component&lt;/p&gt;
&lt;h2 id=&quot;merging-duplicates&quot;&gt;Merging Duplicates&lt;/h2&gt;
&lt;p&gt;If you happen to be on Performance or Enterprise edition, you can use &lt;a href=&quot;https://help.salesforce.com/articleView?err=1&amp;amp;id=sf.duplicate_jobs_run_and_manage.htm&amp;amp;type=5&quot;&gt;Salesforce’s Duplicate Jobs&lt;/a&gt; to leverage your Duplicate Rules and merge records. If not, you’ll have to decide if you want to develop a tool to merge duplicates, use something from the AppExchange, or let users merge the records.&lt;/p&gt;
&lt;p&gt;If you installed the &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=duplicate_records_in_sf&quot;&gt;Potential Duplicates Component&lt;/a&gt; in the last section or have the standard duplicates component on Leads, Accounts, or Contacts then you can start merging records immediately. Just open any record that has a duplicate and click the Review and Merge button to open the merge screen. You can start from a report on potential duplicates from the last section then click into one of the records to merge from the potential duplicates component. Otherwise, users can view and merge duplicates as they are working in the system.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Maintaining a CRM system with accurate data is critical for any business to succeed. Removing duplicates is one of the easier ways to improve data quality and a huge benefit to the users and the businesses’ financials. For those just getting started with duplicate management, start with setting up Duplicate Rules and Matching Rules to prevent or identify duplicates, then figure out a plan to merge them and keep it clean moving forward.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Designing User Security and Visibility in Salesforce]]></title><description><![CDATA[Trust and security are at the top of Salesforce's priority list. The platform has everything you need if you're looking to construct a robust user security paradigm. However, this security approach has flaws that an attacker can exploit to gain access to your data. The Salesforce Architect has the duty to ensure that these features are set up correctly.]]></description><link>https://cloudanswers.com/blog/designing-user-security-and-visibility-in-salesforce</link><guid isPermaLink="false">/blog/designing-user-security-and-visibility-in-salesforce</guid><pubDate>Wed, 16 Mar 2022 23:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/designing-user-security-and-visibility-top-banner.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Trust and security are at the top of Salesforce&amp;#39;s priority list. The platform has everything you need if you&amp;#39;re looking to construct a robust user security paradigm. However, this security approach has flaws that an attacker can exploit to gain access to your data. The Salesforce Architect has the duty to ensure that these features are set up correctly.&lt;/p&gt;
&lt;p&gt;Design security in Salesforce is an architecture that is scalable and maintainable while ensuring that users can only access what they need to complete their work. This article discusses what works and how you can define your security system.&lt;/p&gt;
&lt;p&gt;When most people think of security they think of authentication, or gaining access to a system. This is a critical part to the system security, but it is just the start. Furthermore, it is essential to note that Objects, Fields, and records are all types of data in Salesforce. A comprehensive Salesforce security data model is required to protect the many individuals and data that are in the system.&lt;/p&gt;
&lt;h2 id=&quot;data-access&quot;&gt;Data access&lt;/h2&gt;
&lt;p&gt;Presently, there are four degrees of data access:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Organizational or system-level security.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Object-level security.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Field-level security.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Record-level security.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/salesforce-security-model-view01.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Organizational or system-level security&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Salesforce&amp;#39;s highest degree of security is its system level, where you keep a list of allowed users, password regulations, login IP ranges, limiting login access to specific hours, Session Security, Login Flows, and Network Access restrictions. &lt;/p&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;&lt;strong&gt;Object-level Security&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A profile or permission set based approach to Object Security in Salesforce involves assigning permissions to specific objects such as Accounts, Contacts, or Opportunities. You can grant the user access to editing, creating, deleting, or viewing records in that object. &lt;/p&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;&lt;strong&gt;Field-level security&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In Salesforce, field-level security is a setting that allows administrators to control who has access to certain organizational information. The administrator can choose which profiles or permission sets have access to view, update, and save data in specific fields. Everyone in the organization does not always have access to all of Salesforce&amp;#39;s data. Depending on the users that require it, certain data must be kept confidential. This is also a great way to simplify a user&amp;#39;s view by removing visibility to fields that they don&amp;#39;t need for their job. You can also take fields off of page layouts and other views, but then the user may still see these fields when creating reports or list views. &lt;/p&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;&lt;strong&gt;Record-level Security&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In Salesforce, when you have to allow access to specific records within the object, it is done with the assistance of Record-level security. For example, object-level security says a User can see Contacts, but record-level security controls whether or not they can see the record for John Doe. Record-level security is affected by the most things - profiles, permission sets, sharing settings, sharing rules, role hierarchy, and even apex and manual record sharing. Record-level security cannot override object-level or field-level security, so if someone doesn&amp;#39;t have permission to Opportunities at the object-level, it doesn&amp;#39;t matter if you setup a sharing rule to share certain Opportunities with them. &lt;/p&gt;
&lt;h2 id=&quot;creating-a-security-model&quot;&gt;Creating a security model&lt;/h2&gt;
&lt;p&gt;When creating a security model, you may want to think about the following steps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Creating personas.&lt;/li&gt;
&lt;li&gt;Creating base profiles.&lt;/li&gt;
&lt;li&gt;Adding permission sets.&lt;/li&gt;
&lt;li&gt;Defining the sharing model.&lt;/li&gt;
&lt;li&gt;Accounting for certain access kinds.&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Creating Identities.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A persona/identity represents a group of users who access the platform in the same way. First, you need to create an exhaustive list of these personalities. This will assist define the scope of the security model and guarantee that there are no holes in the system&amp;#39;s protection.  &lt;/p&gt;
&lt;p&gt;Human users are the initial type of persona. In most cases, these users log in using a user interface and an authentication method like identifier/password or single sign-on (SSO). An internal or external user can be referred to as a &amp;quot;human&amp;quot; here. Internal users include business users, the platform, and administrative users.&lt;/p&gt;
&lt;p&gt;The second kind of persona is the non-human persona. Technical operations such as integration, registration, or record ownership use these kinds of user accounts. Logging in to the platform with one of these accounts is optional.&lt;/p&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;&lt;strong&gt;Lockdown your base profiles&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Profiles and permissions sets are the most common methods for granting access to various resources. As a result, Salesforce does not recommend relying on profiles for permission management. Instead, it would be best to utilize permission sets and set groups for everything other than base profile settings.&lt;/p&gt;
&lt;p&gt;However, presently, profiles are the only way to use these settings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Page layouts&lt;/li&gt;
&lt;li&gt;Default record type&lt;/li&gt;
&lt;li&gt;IP ranges and logs in hours&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also, remember that only one type of user license can be issued per profile because permits are granted through profiles. So if you need a profile with the same permissions for two types of licenses you will need two profiles. &lt;/p&gt;
&lt;p&gt;Technically, profiles and permission sets are usable, but as many basic profiles as feasible should be avoided. The only capabilities for which base profiles should be used are those not included in permission sets, such as authorized IP ranges. Permission sets should be used for any remaining permissions.&lt;/p&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;&lt;strong&gt;Extend Permission sets and permission set groups&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Create a set of access permissions relevant to your business for each persona. You can then create one or more permission sets based on the access rights you&amp;#39;ve granted. The permission sets are then divided into permission set groups, each corresponding to a specific persona in the system. Permission sets can be assigned to multiple personas, and it&amp;#39;s simple to keep track of each user&amp;#39;s access privileges.&lt;/p&gt;
&lt;p&gt;It&amp;#39;s a good idea to establish permission sets that encompass data access rights (objects and fields), assigned applications, and access to technical components (including Apex, Visualforce pages, flows, custom metadata types, and custom settings).&lt;/p&gt;
&lt;p&gt;System-level rights, such as Lightning users&amp;#39; access or session settings, can also be specified with specific permission sets. Permission sets would grant admin and developer access in non-production environments such as sandboxes.&lt;/p&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;&lt;strong&gt;Set up your sharing model&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To implement record-level access controls, you must first determine which objects and fields require which types of access. Access to all objects should be restricted as much as possible without hindering system usage, both to simplify the user experience and to avoid unnecessary data access that could pose a security risk.&lt;/p&gt;
&lt;p&gt;After the profiles and permission sets have given users access to the correct objects and fields, we recommend the following steps to evaluate your record-level sharing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Setup your default sharing settings. Starting with public read/write is the easiest for small companies, but think about what data should be Private or Public Read Only to start, especially in complex organizations.&lt;/li&gt;
&lt;li&gt;Then review the role hierarchy, this is the easiest way to share records with managers or supervisors&lt;/li&gt;
&lt;li&gt;Setup sharing rules to share records across a role hierarchy, for example sharing Opportunities owned by Sales People with the Operations team. &lt;/li&gt;
&lt;li&gt;For admins, adjust their profiles so they should have View All or Modify All permissions to certain objects on their profile or a permission set.&lt;/li&gt;
&lt;li&gt;Finally, if this doesn&amp;#39;t handle all of your sharing needs, look into a custom solution using Apex sharing records (requires code).&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;5&quot;&gt;
&lt;li&gt;&lt;strong&gt;Account for certain access types&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Some objects managed exclusively at the profile or permission set level should also be treated as part of the security model. Access to these items should be allowed by permission settings as stated above:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;External objects&lt;/li&gt;
&lt;li&gt;Custom settings and custom metadata types&lt;/li&gt;
&lt;li&gt;Apex classes and Visualforce Pages&lt;/li&gt;
&lt;li&gt;Apps, including related apps&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;&quot;&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Complex security models are more challenging to maintain and more prone to security vulnerabilities. In large enterprises, the performance of a platform can be negatively impacted by complex security approaches. The best thing to avoid this security loophole is to work with a solid governance system. You can develop a workable security model over time.&lt;/p&gt;
&lt;p&gt;Feel free to &lt;a href=&quot;https://appexchange.salesforce.com/appxSearchKeywordResults?keywords=CloudAnswers&amp;amp;searchType=simpleSearch&quot;&gt;check the apps &lt;/a&gt;that CloudAnswers developed to help Salesforce users work easier, and faster.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Creating automated reports in Salesforce]]></title><description><![CDATA[Creating automated reports in salesforce. Schedule and send reports to non-salesforce users, to any email, in Excel format.]]></description><link>https://cloudanswers.com/blog/creating-automated-reports-in-salesforce</link><guid isPermaLink="false">/blog/creating-automated-reports-in-salesforce</guid><pubDate>Thu, 10 Mar 2022 07:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/blog-post-201912_report_sender.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h2 id=&quot;creating-automated-reports-in-salesforce-is-a-challenge-for-you&quot;&gt;Creating automated reports in Salesforce is a challenge for you?&lt;/h2&gt;
&lt;h6 id=&quot;blog-post-updated-on-the-10032022&quot;&gt;&lt;em&gt;Blog post updated on the 10.03.2022&lt;/em&gt;&lt;/h6&gt;
&lt;p&gt;New to Salesforce? Here’s something you should know- you can create reports within Salesforce and even schedule them, without installing any additional app. Salesforce’s &lt;a href=&quot;https://trailblazer.salesforce.com/&quot;&gt;Trailblazer Community&lt;/a&gt; provides rich &lt;a href=&quot;https://help.salesforce.com/articleView?id=rd_reports_overview.htm&amp;amp;type=5&quot;&gt;building reports documentation&lt;/a&gt; on that.&lt;/p&gt;
&lt;p&gt;However, with Salesforce only, you may experience some limitations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can only schedule a limited number of reports&lt;/li&gt;
&lt;li&gt;Reports cannot be sent as an attached file&lt;/li&gt;
&lt;li&gt;No custom email templates/ Salesforce email automation&lt;/li&gt;
&lt;li&gt;No report sending to external emails (non-salesforce users)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And that is why many Salesforce users prefer exploring other options to solve these challenges – this is easier and more effective than building something from scratch. Besides, not every user has the necessary developer skills.&lt;/p&gt;
&lt;p&gt;On the &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=creating_automated_reports_in_sf&quot;&gt;Appexchange&lt;/a&gt;, you can get our free &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=creating_automated_reports_in_sf&quot;&gt;Report Sender&lt;/a&gt; app. But first, these are some of the things you can expect from the app.&lt;/p&gt;
&lt;h2 id=&quot;setting-up-report-sender&quot;&gt;Setting up Report Sender&lt;/h2&gt;
&lt;p&gt;In the following I’d like to walk you through how easy you schedule reports with the Report Sender App:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start by clicking on your App Launcher, which is the icon in the top left of your Salesforce dashboard (see the yellow arrow on the below screenshot).&lt;/li&gt;
&lt;li&gt;Click on the CloudAnswers Report Sender box and we will begin to schedule your report. The report automation saves time by sending automated reports to your clients( salesforce and non-Salesforce users).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Screenshot-2019-12-09-at-07.44.42-1024x554.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To create a new report, or your first one, click the New Schedule button. Once you&amp;#39;ve created reports, you can manage them from here with “edit”, “send now”, and “delete.”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Screenshot-2019-12-09-at-07.59.45-1024x285.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Now, you can set your report for frequent delivery by adding a name, selecting the report you want to send from your report folder, and adding further details like recipient(s), time, and how often you want the report to be sent.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Screenshot-2019-12-14-at-08.41.12-1024x571.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can enter a custom email subject and body.&lt;/li&gt;
&lt;li&gt;After saving, you&amp;#39;re done ✅. The report will be sent at the scheduled time(s).&lt;/li&gt;
&lt;li&gt;Click on the send now button if you want to send the report immediately.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;settings&quot;&gt;Settings&lt;/h2&gt;
&lt;p&gt;A good tip here is to set up the report with your own email&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Click “send now” when you’re satisfied with the outcome.&lt;/li&gt;
&lt;li&gt;Then change the email addresses to the client’s or whoever you want it to go to and set up the schedule.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Screenshot-2019-12-09-at-08.10.32-1024x413.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;now-you-can-email-reports-to-salesforce-and-non-salesforce-users&quot;&gt;Now, you can email reports to Salesforce and non-Salesforce users&lt;/h2&gt;
&lt;p&gt;With our &lt;a href=&quot;https://cloudanswers.com/report-sender/&quot;&gt;Report Sender App&lt;/a&gt;, you can send reports to any email address including non-salesforce users. The recipient gets the report as an attached file in user-friendly Excel format. All you need to do is add one or multiple email addresses when editing your report before clicking on the “Send now” button.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Screenshot-2019-12-09-at-08.16.06-1024x158.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;In our product video you can see Report Sender works live:&lt;/p&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/5QGeePb08mI&quot; width=&quot;560&quot; height=&quot;315&quot; frameborder=&quot;0&quot; allowFullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;In case you have problems with &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=creating_automated_reports_in_sf&quot; title=&quot;Report Sender - appexchange&quot;&gt;Report Sender &lt;/a&gt;installation or settings, please visit the &lt;a href=&quot;https://help.cloudanswers.com/en/collections/1885035-report-sender&quot; title=&quot;Report Sender - help center&quot;&gt;help center&lt;/a&gt; that is dedicated to that app.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[The truth about duplicates in Salesforce]]></title><description><![CDATA[How do I manage duplicates in Salesforce?
Duplicate records in your database are inescapable - between list imports, employees entering data, and all the automated inbound sources, there will inevitably be duplicate records. It is critical to have a plan to evaluate and correct these duplicates regularly.
Salesforce duplicate management offers built-in capabilities to help users avoid entering the same data across several devices or sources. Salesforce's duplication management rules assist in discovering possible duplicate records across accounts (business and person), contacts, leads, and custom object records.]]></description><link>https://cloudanswers.com/blog/the-truth-about-duplicates-in-salesforce</link><guid isPermaLink="false">/blog/the-truth-about-duplicates-in-salesforce</guid><pubDate>Mon, 21 Feb 2022 23:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/true-about-the-duplicates-top-banner.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Maintaining a clean and consistent database is essential to the success of your organization. &lt;a href=&quot;http://www.salesforce.com&quot;&gt;Salesforce &lt;/a&gt;duplicates obstruct your ability to have a clear knowledge of your database and adequately communicate with prospects, customers, and partners. For example, multiple representations of a single connection will give you an erroneous figure of how many leads you have within the funnel.&lt;/p&gt;
&lt;p&gt;Furthermore, suppose the duplicates are qualified and routed differently. In that case, the same individual (as in lead or contact) may be handled by numerous employees or get information tailored to various lifecycle phases simultaneously. Internal inefficiencies will result, and the prospect will have a negative experience.&lt;/p&gt;
&lt;h2 id=&quot;how-do-i-manage-duplicates-in-salesforce&quot;&gt;&lt;strong&gt;How do I manage duplicates in Salesforce?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Duplicate records in your database are inescapable - between list imports, employees entering data, and all the automated inbound sources, there will inevitably be duplicate records. It is critical to have a plan to evaluate and correct these duplicates regularly.&lt;/p&gt;
&lt;p&gt;Salesforce duplicate management offers built-in capabilities to help users avoid entering the same data across several devices or sources. Salesforce&amp;#39;s duplication management rules assist in discovering possible duplicate records across accounts (business and person), contacts, leads, and custom object records.&lt;/p&gt;
&lt;p&gt;How to find duplicates in Salesforce - to identify duplicate records, set up matching rules. Salesforce is pre-configured with basic matching criteria for accounts, contacts, and leads. These standard matching criteria are simple to set up, but they may not cover every circumstance that may arise in your business, and the error message may not apply to all of your users. You can also use our Potential Duplicates app which leverages the Salesforce duplicate rules to show duplicates to your users.&lt;/p&gt;
&lt;h2 id=&quot;what-are-duplicate-rules&quot;&gt;&lt;strong&gt;What are Duplicate Rules?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;In Salesforce, a Duplicate Rule specifies when the Matching Rule can be used and what action should be taken if a duplicate is found using the Matching Rule.&lt;/p&gt;
&lt;p&gt;The same rules can lead to one of two outcomes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For the user who creates a duplicate, an alert or/and a report&lt;/li&gt;
&lt;li&gt;Preventing the creation of a duplicate record&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If sales reps are ready to produce a duplicate, they will receive an alert or be prohibited from doing so entirely, depending on how duplication rules are configured. If the duplicate rules are just set to report, you can view the duplicates in Duplicate Record Sets or in a component like the Potential Duplicates component or the standard duplicates component on Leads.&lt;/p&gt;
&lt;p&gt;Following matching rules in finding potential duplicates, duplicate rules take over and decide what to do with them. As the administrator, you may choose whether to prevent your sales teams from creating duplicates or allow them to do so.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/screenshot-2022-02-22-at-15-08-54.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;The criteria used to identify potential duplicate records are determined by matching rules. To make the determination, these rules use matching keys and equations. Before the matching equation is implemented, the key combines data values for the referred fields to create duplicate keys. The equation then includes criteria logic, such as OR/AND, and whether a precise match is required or fuzzy logic should take precedence. Accounts, Contacts, and Leads all have standard rules for the software. You can also make matching rules that are tailored to your needs and your custom fields.&lt;/p&gt;
&lt;p&gt;The most critical element of the duplicate rule for our reporting discussion is ensuring that the report&amp;#39;s box is checked on creation and edit unless the rule blocks the duplicate altogether. There is no way to run duplicate reports based on the rules without this. Duplicate rules for Accounts, Contacts and Leads are included right out of the box. You can also make your own rules that are tailored to your needs.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tip: Matching rules are only evaluated when records are edited or created to become a duplicate, so set this up BEFORE doing lots of imports/record creation. If you already have records, set up duplicates ASAP and use a component like Potential Duplicates or another AppExchange partner to clean up existing duplicates.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;how-to-find-duplicates-in-salesforce&quot;&gt;&lt;strong&gt;How to find duplicates in Salesforce?&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id=&quot;object-cross-matching&quot;&gt;&lt;strong&gt;Object cross-matching&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This hack looks at the data in a report. You won&amp;#39;t be able to use cross-object matching because you&amp;#39;ll be counting the unique records by the object. You could want to do more advanced matching, such as comparing leads to leads and contacts to contacts. Cross-object matching is allowed because of Salesforce duplication rules.&lt;/p&gt;
&lt;h3 id=&quot;duplication-on-purpose&quot;&gt;&lt;strong&gt;Duplication on Purpose&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This solution is ideal for small or mid-sized businesses with a straightforward org data sharing strategy. Duplicates are allowed since they must be handled as two different records, known as &amp;#39;deliberate duplication.&amp;#39; For example, in some organizations, they allow duplicate Leads because they want one Lead for every form submission or lead event, but then they merge them all into one Contact after following up with them. In this instance, you would not want to set up duplicate rules to block duplicates on the Lead since you know there are duplicates. In these scenarios, duplicate rules are set to report duplicates, and the Salesforce duplicates component can help salespeople know that there are other versions of this record without requiring them to be merged.&lt;/p&gt;
&lt;h2 id=&quot;how-to-merge-duplicates-in-salesforce&quot;&gt;&lt;strong&gt;How to Merge Duplicates in Salesforce?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;To merge duplicates you need to Read and delete Permissions on the records.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Permissions of related objects may be changed.&lt;/li&gt;
&lt;li&gt;Be a Salesforce Admin, Owner of Record, or User in the role hierarchy above the owner.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In Salesforce, here&amp;#39;s how to merge records using the standard duplicates component on Accounts, Contacts, or Leads:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Select see records for a record that has the warning notice &amp;quot;duplicates exist for this record.&amp;quot;&lt;/li&gt;
&lt;li&gt;Choose the records you want to merge in the display duplicates box and click Next.&lt;/li&gt;
&lt;li&gt;Review each column in the compare &amp;#39;object&amp;#39; box and choose the field value you wish to preserve as the master record.&lt;/li&gt;
&lt;li&gt;Verify and merge&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Tip: If you want this same functionality on custom objects, install the CloudAnswers Potential Duplicates Component from the AppExchange.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;how-to-remove-duplicates-in-a-salesforce-report&quot;&gt;&lt;strong&gt;How to remove duplicates in a Salesforce report?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Create a Salesforce dashboard to track duplicates. You may construct dashboards that report on Duplicate Record Sets to get a quick overview of the cleanliness of your Salesforce information.&lt;/p&gt;
&lt;p&gt;Create a custom report that includes the &amp;quot;duplicate record set&amp;quot; and &amp;quot;duplicate record item&amp;quot; to track duplicates and the rules that cause them to be detected. If you&amp;#39;re having trouble recognizing duplicates in Salesforce, this might assist you in further personalizing your duplication rules. Reporting how frequently users disregard duplicate reports might help you figure out whether your duplication rules need to be tweaked or if workers need to be trained on how to deal with the problem.&lt;/p&gt;
&lt;p&gt;While this is an option, the better and less stressful approach is to use a tailored app developed by CloudAnswers - &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=the_truth_about_duplicates&quot;&gt;Potential Duplicates.&lt;/a&gt;&lt;br&gt;Potential Duplicates is an automated system that highlights duplicates and merges them according to your requirements. Potential Duplicates uses the duplicate and matching rules that you’ve already configured in Salesforce to show duplicates to users. This allows people to merge duplicates as they’re working since the users are most often the ones that know which records and values to keep.&lt;/p&gt;
&lt;p&gt;For teams across your business, the data integrity of your CRM is critical. These teams all require a thorough grasp of contact data to accomplish their duties correctly. Therefore, you must establish a procedure for finding and resolving duplicates in your CRM.&lt;/p&gt;
&lt;p&gt;While there is no one-size-fits-all solution, your organization&amp;#39;s particular demands and how you design your platforms will influence the actions you need to take. Fortunately, the Potential Duplicates component is responsive to your demands. It is ideal for leads, contacts, and custom objects.&lt;/p&gt;
&lt;p&gt;For more information about “duplicates” in Salesforce visit other articles:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/blog/how-to-coordinate-marketing-and-sales-by-avoiding-duplicates-in-salesforce&quot;&gt;How to coordinate marketing and sales by avoiding duplicates in Salesforce?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/blog/duplicate-records-in-salesforce&quot;&gt;Duplicated records in Salesforce&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Interested in seeing more of what we’ve built? Feel free to &lt;a href=&quot;https://appexchange.salesforce.com/appxSearchKeywordResults?keywords=CloudAnswers&amp;amp;searchType=simpleSearch&quot;&gt;check out the AppExchange apps&lt;/a&gt; that CloudAnswers developed to help Salesforce users work easier and faster.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Does reporting really matter?]]></title><description><![CDATA[What are the benefits of reporting?
Business reports provide essential information to management, such as spending, profit, and growth. Reports deliver valuable information that the business can utilize to generate future predictions, marketing plans, assist budget planning, and improve decision-making.]]></description><link>https://cloudanswers.com/blog/does-reporting-really-matter</link><guid isPermaLink="false">/blog/does-reporting-really-matter</guid><pubDate>Fri, 21 Jan 2022 23:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/does-reporting-really-matters-top-banner.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Regardless of the size of a business or industry, business reports are vital tools for any organization. They allow for the tracking and analysis of business performance and overall health and identify areas for development and growth.&lt;/p&gt;
&lt;h2 id=&quot;what-are-the-benefits-of-reporting&quot;&gt;&lt;strong&gt;What are the benefits of reporting?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Business reports &lt;strong&gt;provide essential information to management&lt;/strong&gt;, such as spending, profit, and growth. Reports deliver valuable information that the business can utilize to generate future predictions, marketing plans, assist budget planning, and improve decision-making.&lt;/p&gt;
&lt;p&gt;Managers &lt;strong&gt;use company reports to track development and growth, discover trends, and investigate abnormalities&lt;/strong&gt;. In addition to guiding crucial decisions, &lt;strong&gt;corporate reports aid in creating an audit trail of business activity&lt;/strong&gt;, such as reports that track annual budgets, sales, meetings, and planning initiatives.&lt;/p&gt;
&lt;p&gt;Business reporting promotes transparency, and for many public firms, an annual report is a legal duty to reveal financial statistics and ownership information about the business to shareholders. Furthermore, reporting throughout the fiscal year allows organizations in the same industry to measure and compare their performance to others.&lt;/p&gt;
&lt;h2 id=&quot;what-are-the-objectives-of-the-business-report&quot;&gt;&lt;strong&gt;What are the objectives of the Business Report?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/does-reporting-really-metters-photo-inside-the-blog-post.jpg&quot; alt=&quot;&quot; title=&quot;Businessman reviewing his company report&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A business report&amp;#39;s goal is to provide a critical analysis of how the company is performing in all areas of the organization.&lt;/strong&gt; Enterprise reports are essential tools for guiding decision-making and allowing business owners and senior management to examine and resolve any highlighted concerns.&lt;/p&gt;
&lt;p&gt;Reporting is accomplished by collecting and examining information within a certain functional area such as finance, sales, operations, inventory control, or any other business area where performance is monitored and measured.&lt;/p&gt;
&lt;p&gt;After gathering and reviewing information, conclusions and recommendations can be formed. The report&amp;#39;s findings may explain why an issue happened or identify performance issues, and it will generally propose a course of action.&lt;/p&gt;
&lt;h2 id=&quot;what-are-the-different-types-of-reports-in-salesforce&quot;&gt;&lt;strong&gt;What are the different types of reports in Salesforce?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://trailhead.salesforce.com/content/learn/modules/reports_dashboards/reports_dashboards_overview&quot;&gt;Salesforce&lt;/a&gt; allows you to generate four different sorts of reports. Each report type is ideally suited for displaying various data in multiple forms. When picking which kind of report to run, you should determine the goal value you want to uncover or express through the reports.&lt;/p&gt;
&lt;p&gt;Salesforce reporting consists of diverse predefined templates that the user cannot edit or modify.&lt;/p&gt;
&lt;h3 id=&quot;tabular-report&quot;&gt;&lt;strong&gt;Tabular Report&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Tabular Reports are the most basic kind of Salesforce Report. They display your data in rows and are especially useful for exporting it.&lt;/p&gt;
&lt;h3 id=&quot;matrix-report&quot;&gt;&lt;strong&gt;Matrix Report&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Matrix Reports are more complex than Tabular Reports in that they can display data in rows and columns. They are used to showcase a large amount of complex data.&lt;/p&gt;
&lt;h3 id=&quot;summary-report&quot;&gt;&lt;strong&gt;Summary Report&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Summary Reports are the most widely used reports in Salesforce and are designed to display data groups. They allow you to arrange data by accounts and then do calculations to view totals, maximums, minimums, and averages. These statistics simplify discovering which accounts generate the most money and which products or services are sold the most.&lt;/p&gt;
&lt;h3 id=&quot;joined-report&quot;&gt;&lt;strong&gt;Joined Report&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Salesforce&amp;#39;s Joined Reports feature allows you to generate two independent reports and compare their respective data. It&amp;#39;s less common, but it can be useful when learning specific differences between accounts.&lt;/p&gt;
&lt;h2 id=&quot;salesforce-report-limitations&quot;&gt;Salesforce Report limitations&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Reports are sent only within the Salesforce environment&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Salesforce Reports can only be sent to other premium users. You&amp;#39;ll have to go through multiple hoops to get your report to a board member if they do not have a Salesforce license.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Accessing historical data is difficult&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One of the better features of CRM software is analyzing past data and producing precise forecasts based on it. Salesforce&amp;#39;s snapshotting capabilities enable this, with one caveat: they must be planned and established well in advance. This necessitates sales managers having the foresight to anticipate the information they require; before they need it! Furthermore, once these snapshots have been scheduled, the user cannot modify them. They are out of luck if management has established monthly shots, and the need is to look at weekly data.&lt;/p&gt;
&lt;p&gt;Salesforce provides many excellent capabilities as a CRM that should make life easier for both sales reps and sales managers. Unfortunately, the inability to create and use reports in Salesforce naturally restricts the power of all the data gathered.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Visualization is limited&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Your Salesforce limits data visualization in that people that are not part of your team cannot access information. While there are several data visualization templates, they could be too technical for regular users.&lt;/p&gt;
&lt;h2 id=&quot;salesforce-reports-delivery&quot;&gt;&lt;strong&gt;Salesforce reports delivery&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id=&quot;on-salesforce-reporting-and-dashboard&quot;&gt;&lt;strong&gt;On Salesforce reporting and dashboard&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;You can distribute the report URL, share it in Chatter feeds, or export the data to another tool such as Excel. You can also schedule regular sending out of the report to keep it up to date.&lt;/p&gt;
&lt;p&gt;Administrators or users can create custom reports with the &amp;quot;Manage Public Reports&amp;quot; and &amp;quot;Create and Customize Reports&amp;quot; rights. They can also organize reports by creating custom report folders and controlling who has access.&lt;/p&gt;
&lt;h3 id=&quot;sent-by-using-reporting-apps&quot;&gt;&lt;strong&gt;Sent by using reporting apps&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Unlike the traditional Salesforce reporting limitations, the &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=does_reporting_really_matter&quot;&gt;Report Sender app &lt;/a&gt;is one of the apps that has been developed to help Salesforce users send and access Salesforce reports inside and outside the Salesforce environment. It handles scheduling in excel or CSV formats so that you can reach several people at once.&lt;/p&gt;
&lt;p&gt;The Software interface is straightforward. This is how it works:&lt;/p&gt;
&lt;p&gt;All of the report schedules you have access to are on the tab &amp;quot;Report Sender.&amp;quot;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Click Send Now or amend them using the Edit or Delete links to send any reports. Click New Schedule to create a new report.&lt;/li&gt;
&lt;li&gt;Select a report and include the information you want in the email. You can schedule the report if you can see it, and it does not violate any Salesforce-imposed constraints.&lt;/li&gt;
&lt;li&gt;Choose your recipients, the report format, and the delivery schedule. If you wish to disable it while testing it, uncheck the Active field. Save your work, and you&amp;#39;re done.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-are-reporting-and-analytics-important-for-business&quot;&gt;Why are reporting and analytics important for business?&lt;/h2&gt;
&lt;p&gt;An organization can improve communication, productivity, accuracy, and timeliness by installing an effective reporting and analytics system. This will help create a long-term climate in which management can make well-informed decisions to expand the company.&lt;/p&gt;
&lt;p&gt;Business analytic is a necessary tool when making a critical strategic choice.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Companies that invest in data and analytics initiatives can reap substantial financial benefits.&lt;/li&gt;
&lt;li&gt;Analytics may be used to fine-tune business processes in addition to financial gains.&lt;/li&gt;
&lt;li&gt;If adequately implemented, reporting, analytics, and information dissemination can have a transformative impact on a company.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more information about reporting in Salesforce visit other articles:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/blog/salesforce-custom-report-types-what-are-they-when-are-they-useful&quot;&gt;Salesforce custom report types - what are they, when are they useful&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/blog/how-to-get-salesforce-data-into-csv-or-excel-files&quot;&gt;How to get Salesforce data into CSV or Excel files&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/blog/creating-automated-reports-in-salesforce&quot;&gt;Creating automated reports in Salesforce&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Feel free to &lt;a href=&quot;https://appexchange.salesforce.com/appxSearchKeywordResults?keywords=CloudAnswers&amp;amp;searchType=simpleSearch&quot;&gt;check the apps &lt;/a&gt;that CloudAnswers developed to help Salesforce users work easier, and faster.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[How to coordinate marketing and sales by avoiding duplicates in Salesforce]]></title><description><![CDATA[ 
If you are in charge of handling client data, you have almost certainly dealt with the hassles that duplicate data causes. Whether the duplicate data entered your system due to clients filling out forms, manually inputting data, or importing it from other platforms, the implications are the same and highly expensive.]]></description><link>https://cloudanswers.com/blog/how-to-coordinate-marketing-and-sales-by-avoiding-duplicates-in-salesforce</link><guid isPermaLink="false">/blog/how-to-coordinate-marketing-and-sales-by-avoiding-duplicates-in-salesforce</guid><pubDate>Sun, 12 Dec 2021 23:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/how-to-coordinate-marke-top-banner.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;If you are in charge of handling client data, you have almost certainly dealt with the hassles that duplicate data causes. Whether the duplicate data entered your system due to clients filling out forms, manually inputting data, or importing it from other platforms, the implications are the same and highly expensive.&lt;/p&gt;
&lt;p&gt;In reality, the costs of duplicating data are more than you would think. According to &lt;a href=&quot;https://www.dmnews.com/data/news/13086153/study-poor-data-quality-costs-600b-yearly&quot;&gt;Data Warehouse Institute&lt;/a&gt;, data integrity issues cost U.S. firms more than $600 billion every year. In your CRM, duplicate contacts, companies, and sales may be the most costly data-quality-related issues, and they are detrimental to customer relationships. They&amp;#39;re widespread in most CRM systems, and their influence on your marketing, sales, and support operations is often apparent.&lt;/p&gt;
&lt;h2 id=&quot;influence-of-duplicates&quot;&gt;&lt;strong&gt;Influence of Duplicates&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Duplicates have a significant influence on sales teams more than others. Reps often want to change their usual sales procedures to incorporate duplicated checks in databases with high duplication rates. Otherwise, they risk engaging prospects and accounts without crucial context, harming client relationships. They wreak havoc on your marketing processes by making humiliating blunders that damage your brand&amp;#39;s image and squander your marketing budget.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/duplacates-in-sales-and-marketing-processes-in-salesforcejpg.jpg&quot; alt=&quot;&quot; title=&quot;Duplacated data and its influence in sales and marketing processes&quot;&gt;&lt;/p&gt;
&lt;p&gt;Duplicate contact data can negatively influence your capacity to provide a satisfying customer support experience. When a client contacts you by phone, email, or live chat, your service will be slower and less effective since they will have to sift through several customer records to identify the proper customer profile. They must have quick access to the data.&lt;/p&gt;
&lt;p&gt;Anyone involved in duplicate data cleaning knows that, in reality, you may be leaving the majority of duplicates in your database. It’s easy to de-dupe based on key fields like email or exact company name, but cleaning up duplicates based on a few fields matching exactly rarely removes all of them.&lt;/p&gt;
&lt;p&gt;It would be best to go further to master deduplication in your CRM. When you delve behind the surface-level duplicates, you&amp;#39;ll see that there are many potential duplicates in the ordinary CRM database that fall outside of the apparent exact matches, where the waters get murkier. One of the challenges in this scenario is that admins don’t want to merge duplicates automatically if they’re not 100% certain they are a match. But these duplicates still cause problems for marketing, sales, and support.&lt;/p&gt;
&lt;p&gt;With an app like our &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=how_to_coordinate_marketing_and_sales&quot;&gt;free Potential Duplicates Component&lt;/a&gt; or potential duplicate reports, you can get to the next level of de-duplication. You can set up matching rules that might get more false positives (detect a duplicate when it’s not an actual duplicate) but will let users see potential duplicates and decide for themselves if they should be merged. With this setup, most companies end up with two types of matching rules:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Strict matching rules:&lt;/strong&gt; Rules such as “exact email address match” are unlikely to show false positives, so they are good to use in automated processes. Admins can use these rules to show an error when someone tries to create a duplicate or use them in a de-duping tool that allows you to de-dupe records in bulk.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Looser matching rules:&lt;/strong&gt; Rules that can still find duplicates but might occasionally display a record that is not a duplicate should be used sparingly in any automation. For these rules, it’s best to have some sort of user review in the process or don’t automate the merging but display potential duplicates to the user.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;types-of-duplicates&quot;&gt;&lt;strong&gt;Types of Duplicates&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id=&quot;1-common-phrases-expressed-in-various-ways&quot;&gt;1. Common Phrases Expressed in Various Ways&lt;/h3&gt;
&lt;p&gt;Prevalent phrases presented in various ways are one of the most common ways for duplicate client data to go unnoticed in a database. Assume you&amp;#39;re running a contact data de-duplication process in Salesforce. And your users are using the &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=how_to_coordinate_marketing_and_sales&quot;&gt;Potential Duplicates&lt;/a&gt; app to merge duplicates that were identified. One of the main methods to match duplicate entries inside your database is a firm name.&lt;/p&gt;
&lt;p&gt;On the other hand, the company name may be represented differently in various customer entries that are true duplicates.&lt;/p&gt;
&lt;p&gt;For Example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;International Business Machines&lt;/li&gt;
&lt;li&gt;IBM&lt;/li&gt;
&lt;li&gt;IBM, Inc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Having the organization name presented in many ways is likely to induce you to overlook the same information, even though they may be redundant data is evident. For this, you can set up a matching rule using a fuzzy match on the Company Name. This is better than an exact match since it’ll automatically remove common terms like Inc, normalize company names, and match in more scenarios than an exact match.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/screenshot-2021-12-13-at-11-39-01.png&quot; alt=&quot;&quot; title=&quot;matching criteria in salesforce&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;2-nicknames-and-short-names&quot;&gt;2. Nicknames and short names&lt;/h3&gt;
&lt;p&gt;People are often recognized by more than one name. They may go by a nickname, use initials, or use a shorter, more informal version of their first name.&lt;/p&gt;
&lt;p&gt;For example, if a man&amp;#39;s name were William Adam Jones, you would see it displayed in a variety of ways across many duplicate CRM contact records:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Jones, William Adam&lt;/li&gt;
&lt;li&gt;Jones, Bill A&lt;/li&gt;
&lt;li&gt;WA Jones&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To ensure these types of records match, use a fuzzy match on the name fields when creating matching rules for Leads or Contacts. Then let your users decide which ones are actually duplicates and merge them.&lt;/p&gt;
&lt;h3 id=&quot;3-typos&quot;&gt;3. Typos&lt;/h3&gt;
&lt;p&gt;When people are in charge of data entry, typos are unavoidable. So, suppose you have a client or employee-facing forms (i.e., you don&amp;#39;t gather all data automatically). You can be sure that you have duplicate data in your database that skips your checks due to typos.&lt;/p&gt;
&lt;p&gt;For example&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lucy&lt;/li&gt;
&lt;li&gt;Luc6&lt;/li&gt;
&lt;li&gt;Luyc&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is another situation where fuzzy name matching helps. The matching algorithm for keyboard distance often finds typos that an exact match, or even a human, might miss.&lt;/p&gt;
&lt;h3 id=&quot;4-suffixes-titles&quot;&gt;4. Suffixes/ Titles&lt;/h3&gt;
&lt;p&gt;Contact data with a suffix title might potentially induce you to overlook otherwise evident duplicate entries in your customer database. Title and suffix are important factors regardless of where the data comes from — whether it was input by the individual or received from a third-party list.&lt;/p&gt;
&lt;p&gt;E.g&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Engineer Pete John Paul&lt;/li&gt;
&lt;li&gt;Mr. Pete John Paul&lt;/li&gt;
&lt;li&gt;Pete John Paul Sr&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;5-considerations-for-website-urls&quot;&gt;5. Considerations for Website URLs&lt;/h3&gt;
&lt;p&gt;Using a website URL to discover duplicate entries is standard practice for businesses using a CRM. The field between two customer entries may or may not have &amp;quot;www.&amp;quot; or &amp;quot;HTTP://&amp;quot; in the URL, leading you to overlook duplicate data.&lt;/p&gt;
&lt;p&gt;Alternatively, various customer records may have distinct top-level domains.&lt;/p&gt;
&lt;p&gt;For example, compare .com vs .co.uk.&lt;/p&gt;
&lt;p&gt;Subdomains are another significant source of overlooked duplicate data.&lt;/p&gt;
&lt;p&gt;Examining these website URL aspects is critical to verify that your database is free of possible problems.&lt;/p&gt;
&lt;p&gt;For this, we often recommend copying the email domain to a new custom field. Employees often share one email domain even at larger companies with multiple websites. So if you set up a Flow or Apex Trigger that copies the email domain to another field, it becomes a much better field to use for matching.&lt;/p&gt;
&lt;h2 id=&quot;dealing-with-duplicates&quot;&gt;&lt;strong&gt;Dealing with Duplicates&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Everyone has duplicates at some point. The question for your business is: How bad is it? Finding a strategy for dealing with duplicates can change from year to year, but you need to have some plan.&lt;/p&gt;
&lt;p&gt;We recommend starting by setting up your matching rules and duplicate rules in Salesforce. Once you’ve set these up, they will immediately begin blocking duplicates from being created (if you’ve chosen that option). These rules will also identify duplicates already in the system, but only as the fields used in the matching rules are edited.&lt;/p&gt;
&lt;p&gt;After you have duplicate rules set up, you can evaluate whether you want to look on the AppExchange for some solutions for cleaning up existing duplicates or if you want to use the tools Salesforce provides. Either way, we recommend using our Potential Duplicates component to let users see which records might have duplicates. The app uses Salesforce duplicate rules to identify records that might duplicate whatever someone has in front of them.&lt;/p&gt;
&lt;h2 id=&quot;how-does-it-work&quot;&gt;&lt;strong&gt;How does it work?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. You create matching rules for an account, contacts, leads, or any custom object&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can look at &lt;a href=&quot;https://help.salesforce.com/s/articleView?id=sf.managing_duplicates_overview.htm&amp;amp;type=5&quot;&gt;Salesforce Help&lt;/a&gt; for more information on setting up duplicate rules.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Add the component to the lightning record page&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Once your duplicate rules are in place, drop the component on a lightning record page to begin seeing potential duplicates. You may also choose which columns to show on the component and merge screens.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Check out the duplicates&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When users utilize the system, they will see possible duplicates.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Merge&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Choose which records to merge and click Merge. Select the master record and the values to maintain. The software shows you the fields that are different and any fields that are configured to always display.&lt;/p&gt;
&lt;h2 id=&quot;in-conclusion&quot;&gt;&lt;strong&gt;In Conclusion&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Duplicates can be costly for any sales, marketing, or support team. Don’t ignore this problem; take a proactive approach to clean up your database and your teams will thank you. Think carefully through the types of duplicates in your database and how to remove them methodically. Start with the duplicates that are easy to identify, but don’t stop there - continue looking for the hard-to-find duplicates and get your teams involved in merging or approving records for merge. In the end, a clean database is a goldmine to any CRM team and will quickly pay back the effort you put in.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[How to edit the Opportunity Team in Salesforce?]]></title><description><![CDATA[An Opportunity Team is precisely what it sounds like: a group of individuals working together on a single opportunity. It gives you 100% control over who is working on what contact/deal/transaction and their responsibilities.]]></description><link>https://cloudanswers.com/blog/how-to-edit-the-opportunity-team-in-salesforce</link><guid isPermaLink="false">/blog/how-to-edit-the-opportunity-team-in-salesforce</guid><pubDate>Sat, 27 Nov 2021 23:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/how-to-edit-opportunity-team-top-banner.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;An &lt;strong&gt;Opportunity Team&lt;/strong&gt; is precisely what it sounds like: a group of individuals working together on a single opportunity. It gives you 100% control over who is working on what contact/deal/transaction and their responsibilities. To provide the team an easier way to work together, you may provide your &lt;strong&gt;Opportunity Team members&lt;/strong&gt; unique access to the Opportunity and its associated documents.&lt;/p&gt;
&lt;p&gt;Even though they share a set of potential positions, &lt;strong&gt;Opportunity&lt;/strong&gt; and &lt;strong&gt;Account Teams&lt;/strong&gt; are not identical. Account managers, sales representatives, and pre-sales consultants are typical members of an opportunity team. Members of the teamwork together to keep tabs on the situation and close the Opportunity. These people might be from inside the organization or from a third party. The opportunity team may have varying access levels to different aspects of the Opportunity, account, and related information. As a result of the &amp;quot;team selling&amp;quot; function, sales representatives may work together to close deals.&lt;/p&gt;
&lt;h2 id=&quot;what-is-an-opportunity-split&quot;&gt;&lt;strong&gt;What is an Opportunity Split?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;As the name suggests, opportunity split is Opportunity divide. You may split revenue from an opportunity among your team members by using opportunity splitting. Individual sales credits from team members, working on an option, can be rolled into quota and pipeline reports for the whole team.&lt;/p&gt;
&lt;h2 id=&quot;&quot;&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;How to use the Opportunity Split&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Click Edit Opportunity Splits in the Opportunity Splits related list on an Opportunity. Fill in the blanks. Members of the team who are directly accountable for opportunity income are credited. Your administrator can do revenue splits, and other split kinds always add up to 100% of the opportunity amount.&lt;/p&gt;
&lt;h3 id=&quot;splits-are-categorized&quot;&gt;Splits are categorized:&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Revenue&lt;/strong&gt;  - this allows you to divide income among Opportunity Team members.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Overlay&lt;/strong&gt; - enables you to provide credit to supporting team members by using Splits that total more than 100%.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Navigate to Setup -&amp;gt; Opportunity Splits -&amp;gt; Settings to set this up.&lt;/p&gt;
&lt;h3 id=&quot;adding-team-members-to-an-opportunity-team&quot;&gt;&lt;strong&gt;Adding team members to an Opportunity Team.&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Each member&amp;#39;s position should be listed on the Opportunity. Just be clear about which team members have read/write access and which ones do not.&lt;/li&gt;
&lt;li&gt;Opportunity Team changes do not affect your default opportunity team or any opportunity teams you&amp;#39;ve already created.&lt;/li&gt;
&lt;li&gt;In &lt;strong&gt;Salesforce&lt;/strong&gt;, if your administrator has allowed Opportunity Splits, you may divide credit for an Opportunity among members of an Opportunity Team.&lt;/li&gt;
&lt;li&gt;Access to the Opportunity must be read/write to make any changes to the Opportunity Team members.&lt;/li&gt;
&lt;li&gt;Private Opportunities cannot be managed using Opportunity Teams.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When you add changes to Salesforce, you may update your records as transactions advance, stall, or fade away. Working with your Opportunities eventually leads to collecting information that you wish to preserve immediately in the Opportunity record. Remember to update your record every time you acquire crucial data about your Opportunity by performing the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;On the Opportunity, press the Edit button.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You may also modify a field by hovering your cursor over it. If a pencil icon appears to the right of the area, double-click it to change it. (If you see a padlock icon instead, it signifies the field is not editable on purpose.) Continue to the following field to be updated.)&lt;/p&gt;
&lt;p&gt;Alternatively, if you&amp;#39;re already in an account or contact record that&amp;#39;s linked to the Opportunity, scroll down to the Opportunities associated list and select the Edit link to the left of the desired Opportunity. The Opportunity Edit page appears. The end outcome is the same.&lt;/p&gt;
&lt;p&gt;2. &lt;strong&gt;Update the fields as needed&lt;/strong&gt;, paying particular care to maintain Amount, Close Current, and Stage up to date. Nine times out of ten, those fields are essential in your company&amp;#39;s sales pipeline reports. You and other users may receive a realistic picture of the Opportunity&amp;#39;s development by keeping your information updated.&lt;/p&gt;
&lt;p&gt;3. &lt;strong&gt;When you&amp;#39;ve finished, click Save.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In Saved mode, the Opportunity reappears. The fields that you modified have been updated.&lt;/p&gt;
&lt;p&gt;Using the Stage History associated list, you may keep track of some crucial alterations to your Opportunity record. Suppose you or a team member with read-write access to your record changes the Stage, Probability, Close Date, or Amount fields. In that case, you can quickly check this at the bottom of the Opportunity record page to identify who changed the record and when.&lt;/p&gt;
&lt;h2 id=&quot;who-can-edit-opportunity-team-members&quot;&gt;&lt;strong&gt;Who can edit Opportunity Team members?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;A direct selling representative who has been assigned central ownership of an Opportunity is known as an Opportunity owner. When a new Opportunity is generated, the owner is automatically assigned to the user who created it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/team-edit-override.jpg&quot; alt=&quot;&quot; title=&quot;Succesful women, working with Salesforce CRM&quot;&gt;&lt;/p&gt;
&lt;p&gt;One of the app&amp;#39;s limitations is that it gives you only one custom way to grant additional users access. Presently, only the Opportunity owner can manage the account by removing or adding users to the team. Therefore, anyone that is not the opportunity owner cannot edit the team.&lt;/p&gt;
&lt;h1 id=&quot;opportunity-team-edit-override&quot;&gt;&lt;a href=&quot;https://cloudanswers.com/products/opportunity-team-edit-override&quot;&gt;&lt;strong&gt;Opportunity Team Edit Override&lt;/strong&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;An Opportunity lost may never be regained. Therefore, team members shouldn’t have to wait for the Opportunity owner to edit the team. While Salesforce does not allow for this functionality, the &lt;a href=&quot;https://appexchange.salesforce.com/listingDetail?listingId=a0N3A00000DrzmuUAB&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=how_to_edit_the_opportunity_team_in_salesforce&quot;&gt;Opportunity Team Edit Override Salesforce app&lt;/a&gt; has been developed for that purpose.&lt;/p&gt;
&lt;p&gt;The most obvious reason to consider the &lt;a href=&quot;https://cloudanswers.com/products/opportunity-team-edit-override&quot; title=&quot;Opportunity teamt edit override, product page&quot;&gt;&lt;strong&gt;Opportunity Team Edit Override&lt;/strong&gt;&lt;/a&gt; is that it helps other members of the teamwork efficiently in the absence of the Opportunity owner. Also, it saves time hence allowing the team to make the right decisions at the right time.&lt;/p&gt;
&lt;p&gt;Furthermore, it removes the hassle of accessibility by allowing quicker &lt;strong&gt;Opportunity updates&lt;/strong&gt;. You also get to bypass the custom page on your Opportunity team while saving money. To use the edit override app, install it first. Then;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add the new &amp;quot;Opportunity Team Edit&amp;quot; action to your Opportunity page layout. To minimize confusion, you may also delete the buttons from the Opportunity Team linked list.&lt;/li&gt;
&lt;li&gt;Click the new button to add or delete persons from the team. Now, you&amp;#39;re good to go.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Luckily, the &lt;a href=&quot;https://appexchange.salesforce.com/listingDetail?listingId=a0N3A00000DrzmuUAB&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=how_to_edit_the_opportunity_team_in_salesforce&quot;&gt;Opportunity Team Edit Override app &lt;/a&gt;comes with unique perks that enable everyone to get it free. Also, it has live chat support where you can get all the answers you need. You don&amp;#39;t need additional services to use the app; it works within Salesforce.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Flows vs Workflows vs Process Builder - Process Automation in Salesforce]]></title><description><![CDATA[Historically, providing a smooth customer experience has been difficult, time-consuming, and frustrating with manual procedures and disparate systems. However, with a 360 degree view of the customer and a bit of automation, it is all easier. This article discusses process automation in Salesforce, how it can help businesses, and actionable tips.]]></description><link>https://cloudanswers.com/blog/flows-vs-workflows-vs-process-builder-process-automation-in-salesforce</link><guid isPermaLink="false">/blog/flows-vs-workflows-vs-process-builder-process-automation-in-salesforce</guid><pubDate>Thu, 18 Nov 2021 23:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/flows-vs-top-banner.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;How does Salesforce help your business? Is it just a tool where some people enter data and other people view that data? Or does it make everyone’s job easier by saving them time, simplifying processes, or providing clients with an experience that impresses them and strengthens your brand?&lt;/p&gt;
&lt;p&gt;If a client interacts with a business, whether to purchase something, pay bills, or get support, they want a smooth, customized experience. If this doesn’t sound like your business, or you’re struggling with Salesforce adoption, then perhaps you haven’t looked into automating enough of your business (or any of it)!&lt;/p&gt;
&lt;p&gt;The company responding to a client’s needs must work with something to give them the experience they want. For example, the typical service representative needs some information. Like what does the customer need? How do they need it? How does the representative solve their problem?&lt;/p&gt;
&lt;p&gt;Historically, providing a smooth customer experience has been difficult, time-consuming, and frustrating with manual procedures and disparate systems. However, with a 360 degree view of the customer and a bit of automation, it is all easier. This article discusses process automation in Salesforce, how it can help businesses, and actionable tips.&lt;/p&gt;
&lt;h2 id=&quot;what-is-process-automation-in-salesforce&quot;&gt;&lt;strong&gt;What is process automation in Salesforce?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http:///salesforce.com/&quot; title=&quot;Salesforce&quot;&gt;Salesforce&lt;/a&gt; is the most popular CRM program globally for providing businesses with world-class features that help their operations run smoothly. The function of Salesforce’s process automation is to allow admins to create automatic and customized services that would traditionally require programmers and developers.&lt;/p&gt;
&lt;p&gt;Process automation on the lightning platform includes a robust collection of declarative and programmatic automation capabilities that enable anybody to use applications to automate complicated business operations regardless of department, position, or company size.&lt;/p&gt;
&lt;h1 id=&quot;types-of-process-automation-tools&quot;&gt;&lt;strong&gt;Types of process automation tools&lt;/strong&gt;&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;1. Workflow Rule&lt;/strong&gt;&lt;img src=&quot;/uploads/workflow-rules.webp&quot; alt=&quot;Screenshot of the window with the process workflow rules setup&quot; title=&quot;Workflow Rule&quot;&gt;Workflow Rules were Salesforce’s original automation tool for admins. Capable of automating simple operations that could update fields, send emails, send messages to external systems, or create tasks.&lt;/p&gt;
&lt;p&gt;These activities may either be Immediate Actions that occur right away or Time-Dependent Actions that occur at a specified time. In the case of a Time-Dependent Action, the criterion is re-evaluated at the given time before the action takes place. If the requirements are determined to be false, it will not perform time-dependent action; otherwise, it will be done.&lt;/p&gt;
&lt;p&gt;While workflow rules can still be used in certain situations, these simple automations are being phased out in favor of Flows. As early as 2022 Salesforce might remove the ability to create new Workflow Rules.&lt;/p&gt;
&lt;h2 id=&quot;2-process-builder&quot;&gt;&lt;strong&gt;2. Process Builder&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/flows.jpg&quot; alt=&quot;&quot; title=&quot;Process builder image credential Salesforce.com&quot;&gt;&lt;/p&gt;
&lt;p&gt;Process Builder was Salesforce’s second tool for administrators to automate actions. Like workflow rules, processes created in Process Builder run in the background if they meet the criteria set up in the process.&lt;/p&gt;
&lt;p&gt;It has the full features of workflows except the ability to send outbound messages without using Apex code. It can handle numerous if/then statements and execute different-different actions depending on conditional statements in a single process, while multiple workflows would be required.&lt;/p&gt;
&lt;p&gt;The process builder can kick-off when a record is generated or changed, or initiated by another process or a platform event. It may generate new records, tasks, emails, chatter messages, submit documents for approval, change any associated records, and invoke Apex code. Process Builder cannot delete records without using Apex code.&lt;/p&gt;
&lt;p&gt;Like Workflow Rules though, Process Builder is getting phased out according to the latest news from Salesforce. So keep reading to hear about the way of the future - Flows.&lt;/p&gt;
&lt;h3 id=&quot;3-flows&quot;&gt;&lt;strong&gt;3. Flows&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Salesforce Flow Builder is one of the most powerful automation features, and now is the best time to incorporate it into your business. Flows can do (almost) everything that you can do in Workflow Rules and Process Builder, plus a whole host of new features.&lt;/p&gt;
&lt;p&gt;The few small features that Flows are missing are outlined on the &lt;a href=&quot;https://architect.salesforce.com/design/decision-guides/trigger-automation&quot;&gt;architect website&lt;/a&gt; and Salesforce is actively working on building those features. One of the bigger gaps has been addressed with the inclusion of the ability to utilize ISCHANGED(), ISNEW(), and PRIORVALUE() formulas in Record-Triggered Flows.&lt;/p&gt;
&lt;p&gt;Flows can do record-triggered automation similar to process builder and workflow rules. When doing record-triggered automation you can lookup other records (like find Opportunities on the Account that was just changed), perform more complicated functions like looping through a list of records, use all the standard formula functions from workflows and process builder, and even send outbound emails.&lt;/p&gt;
&lt;p&gt;Flows also have some new, powerful features. Screen flows can be used to guide a user through a process like signing up a new customer or issuing a refund. With fully customizable screens, record lookups, and updates, screen flows can seem like creating a full custom application! Flows can also be triggered by Omni-channel, apex, API calls, platform events, or even on a set schedule.&lt;/p&gt;
&lt;p&gt;If you find that you can’t do something inflow, you can even have it call Apex or use a Lightning Web Component in a screen flow. The AppExchange also has a number of apps that can be embedded in your flow, like our free &lt;a href=&quot;https://cloudanswers.com/products/fast-flow-form&quot;&gt;Fast Flow Form&lt;/a&gt; component that speeds up creating forms in screen flows.&lt;/p&gt;
&lt;h3 id=&quot;which-automation-software-should-i-use&quot;&gt;&lt;strong&gt;Which Automation Software Should I Use?&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Salesforce made it clear at Dreamforce this year that Flows are the way of the future. There are still a few scenarios that might make you need a workflow or process builder, but at this point in time you should be trying to use Flows first. If you find that you can’t build what you want in Flows, check out the AppExchange for other types of apps that make automation easier (like our &lt;a href=&quot;https://cloudanswers.com/products/fast-flow-form&quot;&gt;Fast Flow Form&lt;/a&gt;, &lt;a href=&quot;https://cloudanswers.com/products/approval-process-reminders&quot;&gt;Approval Process Reminders&lt;/a&gt; or &lt;a href=&quot;https://cloudanswers.com/products/report-sender&quot;&gt;Report Sender&lt;/a&gt; apps). If you still can’t find what you want, then you can still use a code solution like Apex or Lightning Web Components to build it.&lt;/p&gt;
&lt;h3 id=&quot;where-do-i-start&quot;&gt;&lt;strong&gt;Where Do I Start?&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Put your product manager hat on and pretend your users are your customers and they’re going to buy from someone else if you don’t build them a system that helps them do their job. Then, talk to your users and start finding out what you can automate:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Where do people spend a bunch of time without getting much value? These are great areas for automation - especially repetitive, mind-numbing tasks that make users want to do anything but their work.&lt;/li&gt;
&lt;li&gt;Where do things get held up during processing? For example, nudging customers to move along a sales process, reminding people of pending approvals, or scheduling tasks to remind people to do things.&lt;/li&gt;
&lt;li&gt;Where are people double-entering data? Any place where people have to enter the same thing in two different places is an easy win for automation - just identify what data and when it should be copied to another place it is needed.&lt;/li&gt;
&lt;li&gt;What can we do to wow the users or our customers? They say the best software is like magic, so what is your “rabbit in the hat”?&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;conclusion&quot;&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Knowing how to utilize a CRM tool in most companies opens up a world of possibilities.&lt;/p&gt;
&lt;p&gt;Customers get a better experience and your team can focus on customers instead of spending all their time entering data into systems that don’t help them.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Salesforce Marketing Intelligence Report - Key Insights.]]></title><description><![CDATA[Without question, turning to data to help develop and maintain businesses is vital. Intelligent data is the lifeline and facilitator of success, whether it’s reacting to changing consumer behavior during and after the COVID-19 epidemic...]]></description><link>https://cloudanswers.com/blog/salesforce-marketing-intelligence-report-key-insights</link><guid isPermaLink="false">/blog/salesforce-marketing-intelligence-report-key-insights</guid><pubDate>Fri, 22 Oct 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/marketing-intelligence-report-key-insights-supporting-pc.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Without question, turning to data to help develop and maintain businesses is vital. &lt;/p&gt;
&lt;p&gt;Intelligent data is the lifeline and facilitator of success, whether it’s reacting to changing consumer behavior during and after the COVID-19 epidemic or making smarter business choices in marketing.&lt;/p&gt;
&lt;p&gt;However, for several reasons, leveraging data remains challenging. These issues vary from data access and integration to technological proliferation and insufficient data collection methods. This is what the latest Salesforce marketing intelligence report shows. &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.salesforce.com/content/dam/web/en_us/www/documents/reports/global-marketing-intelligence-report.pdf&quot;&gt;&lt;strong&gt;The Marketing intelligence report:&lt;/strong&gt;&lt;/a&gt; Data and Analytics Trends to Drive Future Growth is Salesforce’s latest release. This report based its findings on data from a double-blind online survey where over 1,050 marketing personnel across the world took part. Some of the critical questions that the study considered were;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How are marketers putting growth requirements into action, increasing visibility into marketing ROI, and using data to support business goals? &lt;/li&gt;
&lt;li&gt;The most challenging aspects of integrating marketing data? &lt;/li&gt;
&lt;li&gt;What function does cross-channel marketing play?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The study has a wealth of helpful information for marketing teams, but three topics, in particular, are distinct in terms of what they imply for businesses in the future:&lt;/p&gt;
&lt;h2 id=&quot;planning-execution-and-maintenance-are-all-critical&quot;&gt;&lt;strong&gt;Planning, execution, and maintenance are all critical.&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Marketers that are fully happy with their investments and results are 4.8 times more likely to be satisfied with data integration, according to Salesforce. &lt;/p&gt;
&lt;p&gt;This planning component has always been important, but it is much more so today, given the rapid digital changes that most companies have seen in the last 12-18 months.&lt;/p&gt;
&lt;h2 id=&quot;connecting-marketing-activities-to-business-outcomes-is-critical&quot;&gt;&lt;strong&gt;Connecting marketing activities to business outcomes is critical.&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;To measure anything, teams must first have the appropriate data in the right location and linked in such a manner that you can obtain an accurate picture and result of all marketing efforts. &lt;/p&gt;
&lt;p&gt;This argument emphasizes the necessity of obtaining a 360-degree picture of the client, which is usually via a customer data platform (CDP).&lt;/p&gt;
&lt;h2 id=&quot;collaboration-with-cross-functional-stakeholders-is-critical&quot;&gt;&lt;strong&gt;Collaboration with cross-functional stakeholders is critical.&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Sharing and collaborating on data analysis, linking marketing efforts to business results (which goes far beyond system connections), and applying what you learned to plans are some of the top obstacles, according to Salesforce. &lt;/p&gt;
&lt;p&gt;All of these issues revolve around cross-departmental collaboration. Customers don’t care whether data is held by various departments and utilized for multiple reasons; they want consistency no matter where, when, or why they engage with an organization.&lt;/p&gt;
&lt;p&gt;Furthermore, the study also shows some critical insights into;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;h3 id=&quot;growth-is-a-predetermined-goal&quot;&gt;&lt;strong&gt;Growth is a predetermined goal.&lt;/strong&gt;&lt;/h3&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;According to the study, two-thirds of marketers have aligned their objectives with leading growth, and 96% think marketing plays a crucial role in generating ROI and development for their companies.&lt;/p&gt;
&lt;p&gt;This is it; the world is transitioning from simply being ‘chief marketing’ to ‘chief growth,’ pushing in ROI and company development”. &lt;/p&gt;
&lt;p&gt;That’s a significant departure from what businesses have seen in the past. &lt;/p&gt;
&lt;p&gt;It used to be all about getting your marketing message out there, on every channel, and in every location. Now it’s all about sending the appropriate signals to promote company growth.&lt;/p&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;&lt;h3 id=&quot;the-need-for-analytics-speed-and-intricacy-of-marketing-reporting&quot;&gt;&lt;strong&gt;The need for analytics speed and intricacy of marketing reporting&lt;/strong&gt;&lt;/h3&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;One of the underlying truths is that consumer tastes are transient, and marketers must adapt to meet them. And without the appropriate systems, marketers have less access to real-time or cross-channel marketing performance data-not leaving out automated cross-channel reporting.&lt;/p&gt;
&lt;p&gt;Marketers want more access to data and at a faster rate so they can make an informed choice. However, only a small percentage of marketers have access to real-time or timely data. Perhaps the reason for this is poor data integration. &lt;/p&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;&lt;h3 id=&quot;data-integration-across-many-channels-is-a-common-problem&quot;&gt;&lt;strong&gt;Data integration across many channels is a common problem.&lt;/strong&gt;&lt;/h3&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Possibly due to the recent pandemic, just one-third of marketers in the Marketing Intelligence Report rate their company’s marketing data management and integration as “good.”&lt;/p&gt;
&lt;p&gt;“What makes data integration such a problem? Not everyone utilizes the same platforms or a single stack to power their whole marketing strategy. For instance, Facebook, Instagram, TikTok, and other new social media platforms pop up often. &lt;/p&gt;
&lt;p&gt;That generates more data, making it more challenging for marketers to regularly maintain a high level of data integration.&lt;/p&gt;
&lt;h2 id=&quot;looking-at-it-on-a-broader-scale&quot;&gt;&lt;strong&gt;Looking at it on a broader scale&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Integrations, planning, and maintenance can make or break a program. That is possibly one of the most vital lessons that many businesses have learned recently. More than ever after, many companies, particularly those in the consumer goods industry, completed digital transformations in months rather than years.&lt;/p&gt;
&lt;p&gt;The next step in a future where most, if not all, activities are digital is to improve how systems are interconnected. Importantly, just because systems are linked digitally does not imply that they are efficient. Teams should keep track of efficiency and inefficiencies to improve the areas that matter most to their customers’ satisfaction.&lt;/p&gt;
&lt;p&gt;Teams should assess where data is stored (distributed or centralized) and linked as part of this endeavor. It is also essential to link marketing efforts to business objectives as you build that framework. That is because linking marketing efforts to business results helps determine how much money you’re making. It also allows teams to make better choices about what they should do next.&lt;/p&gt;
&lt;p&gt;To get to this stage, you must first map data points and their corresponding systems to see how they are related. Then it’s a matter of learning how to link data in the most efficient way possible to build a comprehensive picture of the client profile while avoiding any blind spots. Overall, a CDP is the most accurate method for businesses to link data to marketing efforts and specific consumers.&lt;/p&gt;
&lt;p&gt;Data cleanliness is one of the most often asked topics questions in a team. &lt;/p&gt;
&lt;p&gt;How can they keep data clean after it’s in the proper location? The answer is that data cleaning begins with the design and implementation of procedures that reduce manual, time-consuming tasks. &lt;/p&gt;
&lt;p&gt;However, this isn’t enough. You should also examine existing practices regularly to discover inefficiencies and see whether they can be modified or replaced with newer, superior ones. It should be a continuous endeavor since previously efficient methods may soon become inefficient in today’s fast-paced world.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Salesforce custom report types - what are they, when are they useful]]></title><description><![CDATA[Reporting on your Customer Relationship Management (CRM) data can give you real-time data-driven insights into your business]]></description><link>https://cloudanswers.com/blog/salesforce-custom-report-types-what-are-they-when-are-they-useful</link><guid isPermaLink="false">/blog/salesforce-custom-report-types-what-are-they-when-are-they-useful</guid><pubDate>Sat, 18 Sep 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/CREATING-CUSTOMIZE-REPORTE-TYPES-SUPPORTING-PC-1.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Reporting on your Customer Relationship Management (CRM) data can give you real-time data-driven insights into your business such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Who are your best-fit customers?&lt;/li&gt;
&lt;li&gt;Where do your best-fit leads come from?&lt;/li&gt;
&lt;li&gt;How different types of prospects move through your marketing and sales process.&lt;/li&gt;
&lt;li&gt;The effectiveness of your customer support.&lt;/li&gt;
&lt;li&gt;And anything else you are tracking in Salesforce.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Reporting is perhaps the most powerful benefit of CRM, giving a clear picture of what&amp;#39;s going on in the company. &lt;/p&gt;
&lt;p&gt;When creating a report in Salesforce, the first step is to choose the report type - this is the foundation of the report and determines what information will be available to generate the report. &lt;a href=&quot;http://www.salesforce.com&quot;&gt;Salesforce&lt;/a&gt; has basic report types that may meet most business needs right out of the box. However, this article discusses custom report types and why they are helpful. &lt;/p&gt;
&lt;h2 id=&quot;what-are-report-types&quot;&gt;What are Report Types?&lt;/h2&gt;
&lt;p&gt;Salesforce report types act as the template(s) while defining:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Objects: what Objects the report can view (e.g., Accounts, Contacts, Opportunities, etc.) &lt;/li&gt;
&lt;li&gt;Object Relationships: Add up to four objects related to the primary object.&lt;/li&gt;
&lt;li&gt;Fields that are available for the report.&lt;/li&gt;
&lt;li&gt;Fields checked by default: Which fields will automatically show on your new report?&lt;/li&gt;
&lt;li&gt;Field display names: There are a few situations where you might want to change a field label.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Salesforce has many pre-defined Report Types, which is fantastic but may not always offer you exactly what you need. You can&amp;#39;t change Salesforce&amp;#39;s preset Report Types, however, you  can build a Custom Report Type that allows you to specify what you want to view in terms of objects and fields and modify it whenever changes are required.&lt;/p&gt;
&lt;h2 id=&quot;when-are-custom-report-types-useful&quot;&gt;When are Custom Report Types Useful?&lt;/h2&gt;
&lt;p&gt;Custom report types are often the solution if you go to create a report and run into one of the following issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The objects you want don’t have a standard report type.&lt;/li&gt;
&lt;li&gt;The fields you want aren’t available in a standard report type.&lt;/li&gt;
&lt;li&gt;You want to rename any of the fields that are in a report without renaming them everywhere in Salesforce.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you want to create any of these, just go to Setup &amp;gt; Custom Report Types in Salesforce and try it out. &lt;/p&gt;
&lt;h2 id=&quot;multi-level-object-relationships&quot;&gt;Multi-Level Object Relationships&lt;/h2&gt;
&lt;p&gt;One of the benefits of custom report types is that you can define up to four levels of related objects. So if you’ve ever wanted a report that has more levels than the standard reports - such as Accounts with Opportunities with Contacts with Tasks - then a custom report type may be for you. &lt;/p&gt;
&lt;h2 id=&quot;objects-without-child-records&quot;&gt;Objects without Child Records&lt;/h2&gt;
&lt;p&gt;With custom report types you can also report on Objects that may not have a related object. For example, Opportunities with or without Activities - so you can see all Opportunities and their related activities, but still, see Opportunities that have no activity.&lt;/p&gt;
&lt;h2 id=&quot;adding-fields-via-lookup&quot;&gt;Adding Fields via Lookup&lt;/h2&gt;
&lt;p&gt;Another common issue when creating reports is that you want more information from something related to the records you’re reporting on. Maybe you want more information related to the owner of a record, or you’re reporting on something like a Case and you want more details for the related records like a Product or Account. With a custom report type, it’s easy to add all kinds of details from a related object: As you can see, you now have access to all of the fields for anything related to the object you are working on, so now you can add any of those fields to the report type and they’ll be usable in reports. You can even traverse up several lookup fields (see how Account Owner has another link in the above picture). &lt;/p&gt;
&lt;h2 id=&quot;modifying-field-names-or-default-fields&quot;&gt;Modifying Field Names or Default Fields&lt;/h2&gt;
&lt;p&gt;Sometimes when creating reports people get confused by the Salesforce field formatting. Or sometimes you just want a shorter name in the report. On the Edit Layout screen you can click on a field and then click Edit Properties and change how it will display on the report or whether or not it will be on the report by default. Small changes like this can make it much easier for users to create their own reports. &lt;/p&gt;
&lt;h2 id=&quot;takeaways&quot;&gt;Takeaways&lt;/h2&gt;
&lt;p&gt;There are many possibilities in creating custom report types. If you’ve mastered the basic reports, custom report types can allow you to create reports that will amaze your co-workers and generate reports that you used to do in Excel or another tool.&lt;/p&gt;
&lt;p&gt;Next time you get stuck creating a report, see if a custom report type fixes your issue or unlocks any extra information you can get. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;If you need help sharing the reports that you create with all these custom report types, try out our app,&lt;/em&gt; &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=salesforce_custom_report_types&quot;&gt;&lt;em&gt;Report Sender&lt;/em&gt;&lt;/a&gt;&lt;em&gt;. &lt;a href=&quot;/report-sender/&quot;&gt;Report Sender&lt;/a&gt; lets you send these reports in a variety of formats, to any email address, and on a schedule you specify.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Interested in more topics that are connected to Salesforce reports, check other blog posts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/blog/run-salesforce-reports-in-apex/&quot;&gt;Run Salesforce Reports in Apex&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/blog/7-popular-reporting-apps-for-salesforce/&quot;&gt;7 Popular Reporting Apps for Salesforce&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/blog/salesforce-reporting-tips-and-best-practices/&quot;&gt;Salesforce Reporting Tips and Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/blog/salesforce-reports-run-faster/&quot;&gt;How to Make Your Salesforce Reports Run Faster&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title><![CDATA[Marketing campaigns - how to plan, execute and report]]></title><description><![CDATA[Marketing is about establishing objectives and delivering tangible outcomes, not simply flashy advertising and amusing commercials. A campaign may provide quantifiable indications of such results, but only if it is well-designed. The initial step is to define a set of objectives. ]]></description><link>https://cloudanswers.com/blog/marketing-campaigns-how-to-plan-execute-and-report</link><guid isPermaLink="false">/blog/marketing-campaigns-how-to-plan-execute-and-report</guid><pubDate>Sun, 12 Sep 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/marketing-campaign-supporting-pc02.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;&lt;strong&gt;Marketing&lt;/strong&gt; is about establishing objectives and delivering tangible outcomes, not simply flashy advertising and amusing commercials. A campaign may provide quantifiable indications of such results, but only if it is well-designed. The initial step is to define a set of objectives.&lt;/p&gt;
&lt;p&gt;Some important reasons for creating campaigns are attracting new consumers, improving brand loyalty and repeat business, boosting average sales, or offering new products and services to your customer.&lt;/p&gt;
&lt;p&gt;Determine what you can do to advance your company and set specific objectives based on your findings. The more precise you can be (rather than, say, declaring a goal to improve profit), the easier it will be to quantify, initiate, and track the campaign&amp;#39;s performance&lt;/p&gt;
&lt;p&gt;Planning a marketing campaign may be daunting. However, delivering a consistent message across various platforms to reach your target demographic could even be more tasking. The truth is that without a well-thought-out plan and established procedures, it may rapidly devolve into a disorganized jumble. But it does not have to go that way. Here are some simple tactics to make it easier.&lt;/p&gt;
&lt;h2 id=&quot;decide-what-youre-going-to-promote&quot;&gt;&lt;strong&gt;Decide what you&amp;#39;re going to promote&lt;/strong&gt;.&lt;/h2&gt;
&lt;p&gt;Every marketing effort promotes a product or service. You don&amp;#39;t have to scratch your brain to come up with a marketing strategy since you can work something out with the team.&lt;/p&gt;
&lt;p&gt;Businesses often conduct &lt;strong&gt;marketing campaigns&lt;/strong&gt; to promote a new product, feature, or service, as well as a resource (such as a blog post, webinar, or video) or a brand message. It&amp;#39;s the most straightforward aspect of your marketing strategy, but it&amp;#39;s also the most crucial.&lt;/p&gt;
&lt;h2 id=&quot;create-a-campaign-concept-or-theme---brainstorm-ideas-with-your-team&quot;&gt;&lt;strong&gt;Create a campaign concept or theme - brainstorm ideas with your team.&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Your &lt;strong&gt;marketing strategy&lt;/strong&gt; should have an overall theme that binds everything together, even if you know what you&amp;#39;re advertising. How do you come up with a campaign theme or a campaign idea? Make sure you know what you&amp;#39;re going to promote.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What message will your campaign go out into the world?&lt;/li&gt;
&lt;li&gt;Is there a new feature in the product?&lt;/li&gt;
&lt;li&gt;Is there a new subscription pricing plan in the works?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use the checklist to ensure you don&amp;#39;t forget anything throughout the preparation phase.&lt;/p&gt;
&lt;p&gt;Consider your target audience&amp;#39;s interests and problems. What issues do they have, and what would pique their interest?&lt;/p&gt;
&lt;h2 id=&quot;create-marketing-channels---make-a-list-of-what-youll-need-to-make-for-each-channel&quot;&gt;&lt;strong&gt;Create Marketing Channels - Make a list of what you&amp;#39;ll need to make for each channel.&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;You have a clearer picture of what you aim to accomplish at this point. You&amp;#39;ve identified the consumers you want to target and created a message to appeal to them. It would be best if you now chose how and where your marketing messages will be delivered.&lt;/p&gt;
&lt;p&gt;In real life, this involves understanding where to produce and distribute information so that your target audience can see it.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Are there any media outlets where you&amp;#39;ve had a lot of success in the past Examine previous data and go to locations where you know your folks are.&lt;/li&gt;
&lt;li&gt;Do you have any channels where you need to grow your audience? It may be beneficial to design campaigns around weak channels with great potential to develop better resources for your brand.&lt;/li&gt;
&lt;li&gt;Are there any resource or time constraints? Suppose you don&amp;#39;t have a budget for a TV commercial, a social media campaign, or a magazine ad. In that case, you&amp;#39;ll have to limit your options. Keep both your human and financial budgets in check.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;set-campaign-goals&quot;&gt;&lt;strong&gt;Set campaign goals&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Creating content just for the sake of creating it is a waste of time and money. Suppose you want your business to maintain a positive cash flow. In that case, you need to demonstrate that your efforts are producing measurable results. The best way is to meet or exceed campaign goals.&lt;/p&gt;
&lt;h2 id=&quot;use-a-marketing-calendar-to-plan-out-the-execution-of-your-campaign&quot;&gt;&lt;strong&gt;Use a marketing calendar to plan out the execution of your campaign.&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;There are plenty of essential elements in a marketing effort. If you depend on your mental capacity to keep track of what&amp;#39;s going on, you&amp;#39;ll never be able to keep up. Consider it your all-in-one project management solution for developing, planning, and executing marketing campaigns, and not only.&lt;/p&gt;
&lt;p&gt;It is vital to note that the &lt;a href=&quot;http://www.salesforce.com&quot;&gt;&lt;strong&gt;Salesforce&lt;/strong&gt;&lt;/a&gt; CMS, which is a part of Marketing Cloud, may come in handy when you use a marketing calendar for your campaign. Salesforce CMS serves as the respiratory organ of your business, making it easier for multiple team members to access any file you need for the campaign.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/schedule-table-event-planner-concept.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;The Salesforce Content Management System (CMS) is used to store and retrieve documents, pictures, videos, knowledge articles, and more. It&amp;#39;s now integrated into many aspects of the Salesforce user experience, particularly in the **&lt;a href=&quot;https://trailhead.salesforce.com/en/content/learn/trails/create-compelling-content-with-content-builder&quot;&gt;Content &lt;strong&gt;Builde&lt;/strong&gt;&lt;/a&gt;**&lt;strong&gt;r&lt;/strong&gt;Additionally, if you track the campaign start and end dates in Salesforce, we developed a tool that makes marketing teams easier &lt;strong&gt;work with the&lt;/strong&gt; &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000003Io4WEAS&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=marketing_campaigns_how_to&quot;&gt;&lt;strong&gt;marketing calendar.&lt;/strong&gt;&lt;/a&gt; It&amp;#39;s as if you&amp;#39;re sharing your mind with your colleagues.&lt;/p&gt;
&lt;h2 id=&quot;creating-campaign-reports&quot;&gt;&lt;strong&gt;Creating campaign reports&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Now that you know how to reach your campaign goals, you should also know that creating campaign reports is part of the concept. A good campaign report provides all of the information you need to make an informed choice and take action. The quantity of data you have is typically less than the amount of information you need to make a choice. To put it in another way, there&amp;#39;s no need to include everything in the report.&lt;/p&gt;
&lt;p&gt;Luckily, since the &lt;a href=&quot;/marketing-calendar/&quot;&gt;&lt;strong&gt;marketing calendar&lt;/strong&gt;&lt;/a&gt; gives an overview of your campaigns, you can get one planning report quickly. Then use other reports to create a method to visualize the data for easy understanding. Visualizing data usually entails converting raw data (numbers) into graphs or charts. Pictures tell a thousand stories, and diagrams make tons of points. You can put all these charts together into a dashboard to give you one place to go to understand campaign effectiveness - a great starting point when discussing campaigns in meetings.&lt;/p&gt;
&lt;p&gt;These reports aim to give all of the data necessary to determine the effectiveness of campaigns in a timely way. You undermine the point of reporting in the first place if you spend hours each week producing and updating them. Your reporting procedure should, ideally, be as automatic as feasible. Even though your Salesforce generally comes with report types that make it easier, you may consider the &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000000pvspEAA&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=marketing_campaigns_how_to&quot;&gt;report sender app&lt;/a&gt; for sharing the data with other team members. It allows you to send the report to Salesforce and non-Salesforce users in an excel file.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[How to get Salesforce data into CSV or Excel files]]></title><description><![CDATA[Salesforce is a customizable multipurpose CRM platform that millions of users use to handle complicated company operations, improve sales, customer care, marketing, etc.]]></description><link>https://cloudanswers.com/blog/how-to-get-salesforce-data-into-csv-or-excel-files</link><guid isPermaLink="false">/blog/how-to-get-salesforce-data-into-csv-or-excel-files</guid><pubDate>Sat, 24 Jul 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/2358.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;&lt;a href=&quot;http://www.salesforce.com&quot;&gt;&lt;strong&gt;Salesforce&lt;/strong&gt;&lt;/a&gt; is a customizable multipurpose CRM platform that millions of users use to handle complicated company operations, improve sales, customer care, marketing, etc. &lt;/p&gt;
&lt;p&gt;On the other hand, &lt;strong&gt;Microsoft Excel&lt;/strong&gt; is an application that is so familiar and convenient for many users across the globe. In business, accessing data through a cloud service user interface is often preferable to dealing directly with the spreadsheet given the ability to collaborate with other people, report on the data, and solve many other business problems. But for certain operations, or for certain people that don’t have access, spreadsheets are still the tool of choice. That’s why data exporting becomes necessary. &lt;/p&gt;
&lt;p&gt;Salesforce’s documentation and the partner network is extensive, so you have a bunch of options on extracting data. Trying to figure out what you need every time someone asks you to “export the data” can be daunting. To understand the many options for exporting data from Salesforce, you need to know about some of the most common export methods. In this post, we present to you how you can work through it.&lt;/p&gt;
&lt;h2 id=&quot;salesforce-data-export&quot;&gt;&lt;strong&gt;Salesforce Data Export&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id=&quot;typical-use-case-backing-up-data&quot;&gt;&lt;strong&gt;&lt;em&gt;Typical use case: backing up data&lt;/em&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Data export by Salesforce is the extraction of system data. This extraction system typically serves one of a few objectives: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Data backup &lt;/li&gt;
&lt;li&gt;Integration with other systems&lt;/li&gt;
&lt;li&gt;Excel-based data analytics&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Data Export is accessed from your Salesforce setup menu and typically you back up all of the tables in the org. You can schedule this to automatically generate the files on a weekly or monthly basis, or just request the files when needed (but not more often than weekly). The data is packaged as a series of CSV files up to 150 MB each and then packaged in a 512 MB .zip file (or multiple). You have to be a Salesforce admin to schedule or download data exports. You also have to check your email and make sure to download the files to a secure backup location when you get notified that the file(s) are ready. &lt;/p&gt;
&lt;p&gt;Export data and files are ready for download 48 hours after completion. After this, when files have been deleted from the ‘Setup’ area, they cannot be recovered or re-downloaded.&lt;/p&gt;
&lt;p&gt;If you want an automated way to do backups that don’t require a manual download or have more advanced features like easy ways to restore data, then there are a number of paid options on the AppExchange.&lt;/p&gt;
&lt;h2 id=&quot;salesforce-report-export&quot;&gt;&lt;strong&gt;Salesforce Report Export&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id=&quot;typical-use-case-report-manipulation-or-sharing&quot;&gt;&lt;strong&gt;&lt;em&gt;Typical use case: report manipulation or sharing&lt;/em&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;If you have a report in Salesforce you want to bring it into Excel so you can do some more data manipulation or share it with another person that doesn’t have access to the report in Salesforce then you can use the built-in Salesforce data export.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Click Report or Dashboard Actions menu | Export next to the report you want to export.&lt;/li&gt;
&lt;li&gt;Select an export view.&lt;/li&gt;
&lt;li&gt;If you export as Details, choose &lt;strong&gt;Excel Format .xlsx&lt;/strong&gt;, &lt;strong&gt;Excel Format .xls&lt;/strong&gt; or &lt;strong&gt;Comma Delimited .csv&lt;/strong&gt; as the format. &lt;/li&gt;
&lt;li&gt;For.xls and.csv, choose the language and local encoding option.&lt;/li&gt;
&lt;li&gt;Click Export. After, choose a location where you want to save the file when asked in a browser window.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additionally, if you want to send this report to yourself via email, you can use the Subscribe button on the report to subscribe to email notifications. This will send you a report on a daily, weekly, monthly, or condition-based basis with the report details. &lt;/p&gt;
&lt;p&gt;A couple of limits to keep in mind: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Each user can only subscribe to 5 reports&lt;/li&gt;
&lt;li&gt;The report can only be sent to the subscribing user&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;report-sender&quot;&gt;&lt;a href=&quot;https://cloudanswers.com/report-sender/&quot;&gt;&lt;strong&gt;Report Sender&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;typical-use-case-sending-reports-to-multiple-people-or-non-salesforce-users&quot;&gt;&lt;strong&gt;&lt;em&gt;Typical use case: Sending reports to multiple people or non-Salesforce users&lt;/em&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Full disclosure: We built this app, and there is a paid version available (but there’s also a 100% free version).&lt;/em&gt;  &lt;/p&gt;
&lt;p&gt;You successfully made a report and maybe exported it? Great! What next? You want to share or send the report to clients or team members. Exporting data from Salesforce to Excel and CSV files is helpful because you can quickly transfer data with coworkers. But, you are likely to face several restrictions using Salesforce. They include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Report has to be manually exported or forwarded from your email&lt;/li&gt;
&lt;li&gt;Many non-Salesforce users within and outside your company may wish to access Salesforce reports, but only Salesforce users may access and send reports.&lt;/li&gt;
&lt;li&gt;Reports continue to be delivered without data (zero records)&lt;/li&gt;
&lt;li&gt;A limited amount of reports may be planned (Only 5 per user, 200 per org)&lt;/li&gt;
&lt;li&gt;No personalized email templates available&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While these concerns may seem unavoidable, they cannot stop you from utilizing exported data. With &lt;a href=&quot;https://cloudanswers.com/report-sender/&quot;&gt;CloudAnswers’ Report sender&lt;/a&gt;, you reach everyone when you want and as often as you wish. This is a completely native Salesforce app, so your reports never leave Salesforce until the email is sent to the recipients you choose.  It’s straightforward, time-saving, and an alternative to building something from scratch. Furthermore, the app provides a friendly interface that every user can access. &lt;/p&gt;
&lt;h3 id=&quot;how-report-sender-works&quot;&gt;&lt;strong&gt;How Report Sender works&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;First, &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=how_to_get_sf_data_into_csv_or_excel_files&quot;&gt;install Report Sender from the AppExchange&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start with the icon on the upper left of your Salesforce dashboard, which is the App Launcher. This opens a window with all your available applications. &lt;/li&gt;
&lt;li&gt;Click the Report Sender icon for CloudAnswers, and you’re ready to work on your reports.&lt;/li&gt;
&lt;li&gt;Click the New Schedule option to create a new report schedule. &lt;/li&gt;
&lt;li&gt;Choose the report, fill out the email template, choose your schedule and report format, then click save. &lt;/li&gt;
&lt;li&gt;Click Send Now if you want to test it or wait for the schedule to send it automatically.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Salesforce undoubtedly dominates the CRM market because it is designed to meet the needs of a wide variety of businesses. However, it is important to understand how to export your data to solve problems that are unique to your business. To save time, stress, and resources, the report sender helps you stay in control of your reports. If you need any help finding the solution that is right for you, please let us know. &lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Batch Apex Error Event - CloudAnswers Hackathon]]></title><description><![CDATA[A hackathon is an event usually put together by a tech organization. The event brings programmers together over a specific period to collaborate on a project.]]></description><link>https://cloudanswers.com/blog/batch-apex-error-event-cloudanswers-hackathon</link><guid isPermaLink="false">/blog/batch-apex-error-event-cloudanswers-hackathon</guid><pubDate>Mon, 28 Jun 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/supporting-pc-back-apex.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h2 id=&quot;what-is-a-hackathon&quot;&gt;&lt;strong&gt;What is a Hackathon?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;A hackathon is an event usually put together by a tech organization. The event brings programmers together over a specific period to collaborate on a project. It is typically a competition that brings out the creative prowess of the individuals involved. To learn more about hackathons, check out our blog post on &lt;a href=&quot;/blog/how-and-why-we-run-hackathons/&quot;&gt;how and why we run hackathons&lt;/a&gt;. In this post we’ll highlight Paul Fox’s entry from the February hackathon focused specifically on the Salesforce Spring ‘21 release. &lt;/p&gt;
&lt;h2 id=&quot;batch-apex-error-handling&quot;&gt;&lt;strong&gt;Batch Apex Error Handling&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;In Spring ‘21 Salesforce added the BatchApexErrorEvent to ISV applications (apps for the AppExchange). Since CloudAnswers has a handful of apps on the AppExchange, and is constantly building apps, Paul decided to build a library that would make this easier for us to use on all of our projects. &lt;/p&gt;
&lt;h2 id=&quot;what-is-batch-apex&quot;&gt;&lt;strong&gt;What is Batch Apex?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If the last paragraph was completely confusing, here’s a quick summary of how batch apex works and how batch apex error handling is accomplished with and without this functionality. If you’re a seasoned Apex developer, you can skip this section.&lt;/p&gt;
&lt;p&gt;Hopefully you’re familiar with Apex, which is the language Salesforce uses for server-side code. Batch Apex is code that runs asynchronously and facilitates processing large volumes of records. For example, if you wanted to automatically merge all the duplicate contacts on a weekly basis you might write a batch class that queries all the duplicate record sets and merges them. If you tried to do this without batch apex you may hit a lot of Salesforce errors due to the amount of queries and other database changes that happen when you merge each group. With batch apex you can split it up into batches (one group of duplicates, for example) and use batch apex to process all of the batches and reduce the chance of hitting any limits.&lt;/p&gt;
&lt;h2 id=&quot;the-general-syntax-of-batch-apex&quot;&gt;&lt;strong&gt;The General Syntax of Batch Apex&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Start Method&lt;/strong&gt;- the start method defines what records to process and often initializes some data that is needed during execution. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Execute Method&lt;/strong&gt;- This is typically where most of the logic resides, and this code determines what happens with each batch of records. It’s important to catch any errors here and then process them in the finalize method for most error handling. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finish Method&lt;/strong&gt; – this is mostly the post-processing details. Usually this is where we put our error handling, creating records or sending an email whenever something happens.&lt;/p&gt;
&lt;h2 id=&quot;error-handling-in-batches&quot;&gt;&lt;strong&gt;Error Handling in Batches&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;The best practice when writing batch apex is to try and anticipate any errors that could happen and catch them within the execute or finish methods and handle them appropriately. However, there are two main problems with that:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Not all errors can be caught&lt;/li&gt;
&lt;li&gt;No developer is perfect and can anticipate every error, especially since new problems can be added with any release or package installation.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So, what’s a developer to do? Well, check out BatchApexErrorEvent. &lt;/p&gt;
&lt;h2 id=&quot;features-of-batch-apex-error-event&quot;&gt;&lt;strong&gt;Features of Batch Apex Error Event&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;It is a platform event that contains details about asynchronous processes that failed (batch and scheduled jobs).&lt;/li&gt;
&lt;li&gt;It is automatically created if an asynchronous process fails, &lt;strong&gt;as long as that class implements Database.RaisesPlatformEvents.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;building-a-batch-error-framework&quot;&gt;&lt;strong&gt;Building a Batch Error Framework&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Since platform events allow triggers and other workflows, that means we can automatically have logic fire when these platform events are created. Looking at how a lot of people do error handling already, Paul came up with the following features that most people would want when doing batch error handling.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Email batch errors to the admin or support team for evaluation and processing.&lt;/li&gt;
&lt;li&gt;Stores batch errors in a custom object, including the class that failed, full stack trace, and the records that were in the Batch.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And all that with just a few set up steps. &lt;/p&gt;
&lt;h2 id=&quot;setup-instructions&quot;&gt;&lt;strong&gt;Setup Instructions&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Deploy the contents of the &lt;a href=&quot;https://github.com/cloudanswers/batch-apex-error-handling&quot;&gt;batch apex error handling repo&lt;/a&gt; into your org.&lt;/li&gt;
&lt;li&gt;In the batch class of interest, implement Database.RaisesPlatformEvents. This causes the BatchApexErrorEvent to fire when something fails.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;public with sharing class YourSampleBatchJob implements

Database.Batchable&amp;lt;SObject&amp;gt;, 
Database.RaisesPlatformEvents { 
  // class implementation 
} 
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Set up at least one org-wide email address; you&amp;#39;ll need to use this from the address on the emails.&lt;/li&gt;
&lt;li&gt;Go to Setup &amp;gt; Custom Settings and create a new record for the Batch Apex Error Settings and specify how you want the errors to be handled.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That’s it, now you’re on your way to better error handling!&lt;/p&gt;
&lt;h2 id=&quot;using-the-tool&quot;&gt;&lt;strong&gt;Using the Tool&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Once you get a batch to fail, you should get an email or have a record created with the error details. If you set it up to create custom objects then check out the Batch Apex Error tab to see the errors, otherwise check your email. &lt;/p&gt;
&lt;p&gt;If you&amp;#39;re interested in seeing how you could customize this product for your organization, contact us, and let&amp;#39;s see what we can build!&lt;/p&gt;
&lt;p&gt;Lastly, if you haven’t seen them yet, check out some of the apps that we developed for Salesforce (some of these will be using this code in the future)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/report-sender/&quot;&gt;Report Sender&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/marketing-calendar/&quot;&gt;Marketing Calendar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/merge-duplicates/&quot;&gt;Potential Duplicates Component&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/opportunity-team-edit-override/&quot;&gt;Opportunity Team Edit Override&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/approval-process-reminders/&quot;&gt;Approval Process Reminder&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title><![CDATA[Tips for effective online sales]]></title><description><![CDATA[Technology has changed the approach to daily living. One of the main areas it has significantly impacted is e-commerce across the globe.]]></description><link>https://cloudanswers.com/blog/tips-for-effective-online-sales</link><guid isPermaLink="false">/blog/tips-for-effective-online-sales</guid><pubDate>Sun, 13 Jun 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/tips-for-effective-online-sales-supporting-pc.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Technology has changed the approach to daily living. One of the main areas it has significantly impacted is e-commerce across the globe. Business has moved from a more physical exchange of goods and services to online sales where you can summon any product at your fingertips, and get it delivered conveniently and reliably. &lt;/p&gt;
&lt;p&gt;According to a &lt;a href=&quot;https://blogs.adobe.com/digitaleurope/digital-marketing/the-adobe-2016-digital-trends-report/&quot;&gt;recent study&lt;/a&gt;, many customers believe that the changes noted in the past few years have changed the history of eCommerce. Indeed, this transformation has taken a dramatic turn since Covid-19 hit the World. Even companies like &lt;a href=&quot;https://www.bigcommerce.com/blog/offline-to-online-business-advice-digital-transformation/#defcon-brings-the-heat-to-their-online-store&quot;&gt;Defcon sauces and Kintec Finds&lt;/a&gt; took to a digital transformation to expand their reach.&lt;/p&gt;
&lt;p&gt;While this article provides valuable tips for effective online sales, here are some ways eCommerce is changing the World one website per time; &lt;/p&gt;
&lt;h2 id=&quot;ecommerce-strategy&quot;&gt;&lt;strong&gt;Ecommerce strategy&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Mobile friendly purchase:&lt;/strong&gt; A recent study found that &lt;a href=&quot;https://techcrunch.com/2017/03/03/u-s-consumers-now-spend-5-hours-per-day-on-mobile-devices/&quot;&gt;mobile users&lt;/a&gt; spend an average of 5 hours daily on their phones. Therefore, they are more likely to use their phones for purchase instead of heading to a store. This approach provides accessibility and availability while allowing the consumer to browse through several products simultaneously.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Voice commerce&lt;/strong&gt;- eCommerce has opened the door to voice interaction so that you can ask your digital assistant to make an order for you. Amazon Alexa, Google phones, and Microsoft Cortana are in this category.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;ecommerce-software-and-tools&quot;&gt;&lt;strong&gt;Ecommerce software and tools&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;In 2019, e-commerce hit $547 billion in the US alone. By &lt;a href=&quot;https://www.census.gov/retail/mrts/www/data/pdf/ec_current.pdf&quot;&gt;2020&lt;/a&gt;, it reached $791.7 billion. There is no doubt that it is a lucrative venture. However, running an eCommerce business comes with much competition. For effective online sales, consider using e-commerce tools. &lt;/p&gt;
&lt;p&gt;These tools help automate and simplify every task about your business. They help your management time, customers, and yourself effectively.&lt;/p&gt;
&lt;h2 id=&quot;what-are-the-best-e-commerce-tools&quot;&gt;&lt;strong&gt;What are the best e-commerce tools?&lt;/strong&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;h3 id=&quot;customer-relationship-management-software&quot;&gt;&lt;strong&gt;Customer Relationship Management software&lt;/strong&gt;&lt;/h3&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;CRM ensures efficient interaction with customers and consumers to maximize profits. Since the tools in this category gather data from several channels, detailed purchase information helps you understand customer behavior.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.salesforce.com&quot;&gt;Salesforce&lt;/a&gt;, a brand dedicated to bringing customers and businesses together through cloud-based solutions, has the tools that could help you.&lt;/p&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;&lt;h3 id=&quot;online-stores&quot;&gt;&lt;strong&gt;Online stores&lt;/strong&gt;&lt;/h3&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In a booming industry like eCommerce, several online eCommerce platforms are setting the pace. Since there are a number of platforms, it is essential to consider fees, technical skills, logistics, mobile-friendliness, and many other factors before you choose one.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Shopify:&lt;/strong&gt; an all-in-one solution for eCommerce startups. It is shopping made easy for everyone. Luckily they support third-party marketplaces, social media sales, and POS software. One of the reasons Shopify stands out is its versatility and accessibility on mobile devices. It has three payment plans; basic ($29 monthly), Shopify ($79 per month), and advanced ($299 per month). Again, with the BuildFire tool, you can build a Shopify mobile app for your business.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BigCommerce&lt;/strong&gt;: since its inception till date, this platform has processed over $25 billion in sales. It is presently used in over 120 countries in the World, and it comes with pre-loaded features. Furthermore, it has exceptional inventory management, SEO, and conversion tools. You are also sure of responsive customer support on a 24-hour basis. B2B favors the platform because it provides enterprise-grade solutions. With $29.95, $79.95, and $299.95 per month, you can enjoy the standard, plus, and pro plans, respectively.&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;&lt;h3 id=&quot;delivery-experience&quot;&gt;&lt;strong&gt;Delivery experience&lt;/strong&gt;&lt;/h3&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;According to a report by &lt;a href=&quot;http://www.bizreport.com/2015/06/77-of-online-shoppers-say-free-shipping-most-important-optio.html&quot;&gt;BizReport&lt;/a&gt;, 77% of online shoppers prefer to choose free shipping for their purchases. Therefore, it is clear that unreasonably high shipping costs may turn customers off, causing them to leave their carts. It may potentially reduce conversion rates. So, it is best if you considered low shipping costs, a good return policy, fast delivery, and periodical sales.&lt;/p&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;&lt;h3 id=&quot;marketing&quot;&gt;&lt;strong&gt;Marketing&lt;/strong&gt;&lt;/h3&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SEO and SEM&lt;/strong&gt;- online sellers never finish it all in their businesses. They continue to optimize things until its better. Therefore, you should consider this. You want to be sure your business is visible. The best way to ensure this is to have a solid content plan and employ SEO and SEM. &lt;/li&gt;
&lt;li&gt;Build a trusted brand- a picture is worth a thousand words. It is valid for online sales. To provide value by staying true to what you promise. Consider testimonials and rewards for referrals.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Email marketing&lt;/strong&gt;- marketing will always be vital for online businesses, so you want to stay with it. Email marketing is a personalized approach that helps you keep in touch with existing customers while providing them with information. Also, consider affiliate marketing with influencers on Social Media platforms. These guys get your active business engagement for the right price. You might consider featuring your brand in their posts too. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User recommendation&lt;/strong&gt; (sharing buttons, testimonials on the website)- referrals and recommendations are a traditional but effective way to increase your online sales. Potential customers are more likely to trust you more when they have heard good things about you. Also, encouraging customers to click your sharing button on social media helps you reach more people. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ads-&lt;/strong&gt; ads increase visibility and help funnel your audience. They raise awareness of your product and ultimately improve the traffic on your website. These help sales and conversions. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Study the data-&lt;/strong&gt; knowing what your audience thinks of your business goes a long way in improving their experience. Google Analytics and other available on the market analytic tools help you to keep optimizing your shopping experience.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;wrapping-it-up&quot;&gt;&lt;strong&gt;Wrapping it up&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;There are several effective ways to improve your online sales. Technology has come to stay, and it will continue to make life easier for you and your customers.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Improving your Sales strategy during a pandemic]]></title><description><![CDATA[Currently, businesses have settled into the reality of virtual meetings, remote work, online marketing, and other remote approaches to getting work done at a distance. The fact is that Covid-19 changed the whole world.]]></description><link>https://cloudanswers.com/blog/improving-your-sales-strategy-during-a-pandemic</link><guid isPermaLink="false">/blog/improving-your-sales-strategy-during-a-pandemic</guid><pubDate>Thu, 06 May 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/supporting-pc-1.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;It is clear that the World is not going back to business as usual. The past year has ushered businesses and organizations into changes that will affect them forever. Even though we had to endure staying at home for several months, the pandemic changed the face of business activities completely.&lt;/p&gt;
&lt;p&gt;Currently, businesses have settled into the reality of virtual meetings, remote work, online marketing, and other remote approaches to getting work done at a distance. The fact is that Covid-19 changed the whole world. Even people with packed pipeline management had to adjust to this new lease of life. While certain businesses have been hit so hard, others like technology, e-commerce, and marketing have been able to turn the tide in their favor. Since more people had to stay at home, online businesses got a nudge forward.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/workers-uniforms-protecting-against-corona-virus.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;how-is-the-pandemic-currently-impacting-sales&quot;&gt;&lt;strong&gt;How is the Pandemic currently impacting sales?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;According to a &lt;a href=&quot;https://cmosurvey.org/results/&quot;&gt;CMO survey&lt;/a&gt;, B2B companies did better than B2C companies. On average, B2B product companies recorded about a 14.28% decline in sales. The survey also shows sales impact across several industry verticals- technology recorded a mean sales impact of -9.36%, Banking -17.54%, retail -29.73%, and health care -13.47%.&lt;/p&gt;
&lt;p&gt;The National Federation of Independent Business &lt;a href=&quot;https://www.nfib.com/content/news/healthcare/nfib-study-coronavirus-impact-on-small-businesses-2/&quot;&gt;NFIB&lt;/a&gt;, on the other hand, reports that about one-quarter of small business owners reported a negative impact in terms of slow sales (42%), supply chain disruptions (39%), and sick workers (4%). As a result, many businesses have recorded a massive decline in sales.&lt;/p&gt;
&lt;h2 id=&quot;what-you-can-do-to-make-it-better&quot;&gt;&lt;strong&gt;What you can do to make it better&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If you’re experiencing a decline in sales, you’re not alone. Several companies are experiencing the same. However, since people turned more to digital tools and online marketing, there are more ways to stay connected with customers during the Pandemic while keeping your business on its A-game. In the following section, you will see many actionable ways to make your sales better during a pandemic.&lt;/p&gt;
&lt;h2 id=&quot;1-crm&quot;&gt;&lt;strong&gt;1. CRM&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;CRM means Customer Relationship Management. This refers to all the techniques, tools, software, and strategies businesses use to retain customers and increase their sales. In most cases, you need CRM software for a CRM system. The software runs sales, marketing, and service management services.&lt;/p&gt;
&lt;p&gt;On the upside, a CRM helps simplify the several activities involved in a business. It allows you to monitor your business while allowing for digital transparency. Additionally, it enables the assessment and management of the sales pipeline.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/arrange-white-letters-as-crm.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;features-of-a-good-crm-platform-or-software&quot;&gt;&lt;strong&gt;Features of a good CRM platform or software&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Responsiveness and interactive features&lt;/li&gt;
&lt;li&gt;Customer interaction via diverse channels&lt;/li&gt;
&lt;li&gt;Data management&lt;/li&gt;
&lt;li&gt;Sales acceleration&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can refer to CRM software as a database of information because it monitors daily activities, records sales interactions, and manages the task. If you’d consider a CRM platform, it is best if you thought;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The simplicity of use&lt;/li&gt;
&lt;li&gt;The cost and features&lt;/li&gt;
&lt;li&gt;Its analytic strength&lt;/li&gt;
&lt;li&gt;Popularity etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Currently, one of the top platforms in the market is &lt;a href=&quot;http://www.salesforce.com/&quot;&gt;Salesforce&lt;/a&gt;. The Salesforce CRM provides a myriad of features that gives your business the right push when you take advantage of it.&lt;/p&gt;
&lt;p&gt;First of all, you have a complete and overall view of your business. With Salesforce dashboards, you can determine what part of the business requires immediate consideration. Thus, fostering customer satisfaction and ultimately a boost in sales. With this, it is evident that sales opportunity management in Salesforce is robust and promising.&lt;/p&gt;
&lt;p&gt;You also get access to a customer data management component that allows you to personalize and profile customers according to their unique needs. You can integrate this tool with existing customer information to have a comprehensive engagement and view.&lt;/p&gt;
&lt;p&gt;Salesforce reports make lead generation hassle-free by creating reports that outline specific details for every lead. You can also trust Salesforce to integrate your contacts and secure their data. All communications within the platform are secure from end to end with an authentication system.&lt;/p&gt;
&lt;h2 id=&quot;2-stay-connected-with-your-customers&quot;&gt;&lt;strong&gt;2. Stay connected with your Customers&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;One of the ideal ways to stay connected to customers during the pandemic is to utilize the internet. The pandemic showed a sharp increase in the number of internet users and the time people spent online. By integrating your business into social media platforms like TikTok, Facebook, Instagram, and Twitter, you can increase your sales. People constantly check on the latest updates; consider posting related pieces on your website, social media pages, and even emails. This is what you know as digital marketing.&lt;/p&gt;
&lt;p&gt;Another way to connect is by letting your customers know what you’re doing to prevent the spread of the virus. Additionally, consider providing promotional offers, including holiday sales, price slash, free deliveries, and more. One customer that got a sales offer is very likely to tell others about it. That way, you have more customers and more sales.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/vlogger-recording-video-social-media-channel.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;3-remote-work&quot;&gt;&lt;strong&gt;3. Remote Work&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;With the new era in business life, office work will never be the same again. Many people have embraced the remote work culture; it may be time to do the same. Working remotely keeps the workforce safe and the business at less risk. The fact remains that remote work provides; flexibility, productivity, work-life balance, less stress, and so much more. One of the main ways to foster a productive remote work team is to make sure they have access to the correct equipment, data, people, and software needed to be effective. We’ve seen an increase in the number of Salesforce optimization projects and app installs because these tools can make up for the face-to-face interactions that we used to fall back on for coordinating.&lt;/p&gt;
&lt;p&gt;Many teams have collaborated from home using &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000003Io4WEAS&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=improving_your_sales_strategy_during_a_pandemic&quot;&gt;Salesforce’s marketing calendar&lt;/a&gt; to schedule their work. Also, team leaders have been able to monitor productivity by using the &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=improving_your_sales_strategy_during_a_pandemic&quot;&gt;Report Sender&lt;/a&gt;, which helps everyone stay in sight of the goal even though they’re out of sight. If you need to edit an opportunity on the team, you can use the &lt;a href=&quot;https://cloudanswers.com/opportunity-team-edit-override/&quot;&gt;Opportunity Team Edit Override&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;With the right tools and motivated team members, remote work is not only achievable, it is easier. Furthermore, it makes work-from-home as effective as the traditional method. Many employees report that information and communication technology like Sales reports helps them do their work effectively. Additionally, they get to spend more time with family.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/woman-making-video-call-laptop.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Indeed the pandemic could be a trying period, but it is also a time when you can strategize to stay ahead of your sales. You can navigate through it by optimizing tools that would support your team and increase sales. By doing this, you’re setting your business up for success and more productivity.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Getting familiar with Salesforce dashboards]]></title><description><![CDATA[Salesforce dashboard visually provides information- quickly and easily. Dashboards can be created for anything that you are tracking in Salesforce. They can be customized for different business units or job roles. I]]></description><link>https://cloudanswers.com/blog/getting-familiar-with-salesforce-dashboards</link><guid isPermaLink="false">/blog/getting-familiar-with-salesforce-dashboards</guid><pubDate>Wed, 28 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/supporting-pc.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Data is always talking and changing, it&amp;#39;s your job to listen and listen well. Data is the fundamental language of Salesforce. When reporting and dashboards are properly configured and used, the Salesforce cloud fosters effective management, optimal resource utilization, proactive finances, and other good behaviors that are vital for businesses.&lt;/p&gt;
&lt;p&gt;Much like your car&amp;#39;s dashboard, a Salesforce dashboard visually provides information- quickly and easily. Dashboards can be created for anything that you are tracking in Salesforce. They can even be customized for different business units or job roles. In this post, we’ll explain some basics of Dashboards in Salesforce and then review some common elements in a Sales dashboard.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/screenshot-2021-05-30-at-13-19-07.png&quot; alt=&quot;&quot; title=&quot;salesforce dashboard&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;understanding-salesforce-dashboards&quot;&gt;&lt;strong&gt;Understanding Salesforce Dashboards&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;The first step in building or customizing your dashboards is to understand your goals. So first answer the following questions. And if you’re not building the dashboard for yourself, make sure to ask the people that will use it for their input.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What is the purpose of the dashboard?&lt;ul&gt;
&lt;li&gt;Putting together dashboards for no reason essentially dooms them to go unused. Before starting this process make sure you’re clear on why you’re creating the dashboard.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Who needs to see it?&lt;ul&gt;
&lt;li&gt;This helps set up the correct sharing in the dashboard folder but also can help you when you’re deciding exactly how to filter a report.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;How often will it be used?&lt;/li&gt;
&lt;li&gt;Designing dashboards around metrics that are needed in regular meetings can be one way to ensure they are used. If your team has a status call ask if you can sit in and see what metrics are already being shared.&lt;/li&gt;
&lt;li&gt;What time period is relevant for the reports?&lt;/li&gt;
&lt;li&gt;A lot of dashboards will have some reports about the present state and some historical metrics. Make sure you clarify what time period may be relevant for any historical data. Too short of a period and you may not have any data, too much of a period and there may be too much to easily analyze.&lt;/li&gt;
&lt;li&gt;What business questions will it answer?&lt;ul&gt;
&lt;li&gt;This is really the key way to think about all the components on the dashboard. List out the questions that people want to be answered and then figure out the right data to support it.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After you answer these questions we recommend drawing a mockup of a dashboard. A spreadsheet, whiteboard, or a piece of paper and pencil all work well as easy ways to mock-up dashboard ideas.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/screenshot-2021-05-30-at-13-19-24.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;example-setting-up-a-sales-dashboard&quot;&gt;&lt;strong&gt;Example: Setting up a Sales dashboard&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Sales dashboards can vary drastically from one organization to another. If you’re a field sales organization you may be measuring meetings set, if you’re doing inside sales you may care more about calls, emails, and converting leads. We’ve probably set up thousands of dashboards at this point and rarely see two dashboards that look similar.&lt;/p&gt;
&lt;p&gt;To streamline what you want on your dashboard, consider the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Which metrics come up often in your reports?&lt;/li&gt;
&lt;li&gt;In your meetings with the team, do workers consider one metric as more important than another?&lt;/li&gt;
&lt;li&gt;Do you have multiple teams?&lt;/li&gt;
&lt;li&gt;What do you consider as your key performance indicator?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You may also consider including the following in your dashboard;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Individual salesperson performance&lt;/li&gt;
&lt;li&gt;Product performance&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here are some ideas for dashboard components that can help your sales and marketing team.&lt;/p&gt;
&lt;h3 id=&quot;won-opportunities&quot;&gt;&lt;strong&gt;Won Opportunities&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Won Opportunities can be displayed in a number of ways and is always one of the metrics used for sales results. You can add it as a simple revenue figure for a certain period of time (e.g. Won opportunities this quarter), you can list out the biggest deals you’ve won recently, or show a trend report of closed deals over time. This is also a good report for grouping by salesperson, region, or product line to show variations between groups.&lt;/p&gt;
&lt;h3 id=&quot;open-opportunities&quot;&gt;&lt;strong&gt;Open Opportunities&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;AKA the Sales Pipeline, this is another very common metric for a sales dashboard. If you group open opportunities by stage you can easily create a pipeline chart, or group by close date and sum the revenue to create a forecasted revenue chart.&lt;/p&gt;
&lt;h3 id=&quot;opportunities-past-due&quot;&gt;&lt;strong&gt;Opportunities past due&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Particularly for salespeople that handle a large volume of deals, past-due opportunities are a possibility. Your aim should be to keep this as minimal as possible so that you can use the close dates for forecasting.&lt;/p&gt;
&lt;h3 id=&quot;open-activities&quot;&gt;&lt;strong&gt;Open activities&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This includes your to-do list, open tasks, and routines. These could include activities that ensure the smooth running of day-to-day business. It helps stay proactive in your sales efforts and schedule your time more effectively.&lt;/p&gt;
&lt;h3 id=&quot;leads-via-their-source&quot;&gt;&lt;strong&gt;Leads via their source&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Having an understanding of where customers are coming from is vital. For instance, does your clientele come from referrals, sign-ups, conferences, meetings, or personal conversions? Gaining this information is vital to classifying which leads come first and how you should handle them.&lt;/p&gt;
&lt;h3 id=&quot;sales-forecast&quot;&gt;&lt;strong&gt;Sales Forecast&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Adding forecast categories to an Opportunity report helps businesses to know the sales forecast per time. It also helps to track the current progress and where they want to be. This does require that you set up one of Salesforce’s forecasting tools and have reps and managers fill out the forecasts.&lt;/p&gt;
&lt;h3 id=&quot;sales-leadership-charts&quot;&gt;&lt;strong&gt;Sales Leadership Charts&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This fosters healthy competitiveness or competition amongst employees in the display of the current top sales personnel. In addition to this, it makes day-to-day activities less boring. The purpose of a leaderboard dashboard is to focus on sales performance that keeps managers and their teams closer.&lt;/p&gt;
&lt;h3 id=&quot;conclusion&quot;&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://trailhead.salesforce.com/en/content/learn/modules/reports_dashboards/reports_dashboards_visualizing_data#:~:text=Salesforce%20dashboards%20allow%20you%20to,and%20displayed%20for%20each%20component.&quot;&gt;Salesforce dashboards&lt;/a&gt; help in the daily activities of any business- from low-level businesses to top-tier management. A downside of the dashboards is that they are almost always based on available data from the database. On the market, you will find numerous software that provides consistent and reliable solutions to data management. They ensure that there is data in the desired destination per time. Furthermore, they expose weak points and how to turn them into strengths effectively. By taking advantage of this, you can make informed decisions and more sales.&lt;/p&gt;
&lt;p&gt;With the dashboards reports are always connected. If you want to explore more on this topic please visit the &lt;a href=&quot;https://cloudanswers.com/blog/salesforce-reports-can-help-your-business/&quot;&gt;“Salesforce reports can help your marketing and sales team” blog post.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you would look for the tool that is sending unlimited reports outside Salesforce, check the &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=getting_familiar_with_salesforce_dashboards&quot;&gt;Report Sender app on AppExchange&lt;/a&gt;.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Hackathon Highlights: Shipment Scanner]]></title><description><![CDATA[Hackathon Highlights: Shipment Scanner. new API for barcode scanning in Lightning Web Components combined with a third-party library for generating QR codes to create a better way to generate shipping labels and receive packages.]]></description><link>https://cloudanswers.com/blog/hackathon-highlights-shipment-scanner</link><guid isPermaLink="false">/blog/hackathon-highlights-shipment-scanner</guid><pubDate>Wed, 21 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/shipment-scanner-supporting-pc.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;At CloudAnswers we regularly run internal hackathons. If you haven’t read about how we do this, check out our blog post: How and Why We Run Hackathons. Read on to hear about our hackathon winner from our February 5th hackathon, Avinava’s Shipment Scanner.&lt;/p&gt;
&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The hackathon theme this time was “Salesforce Spring ‘21 release.” In other words, competitors had to build a solution that used at least one feature from the new release. Avinava decided to use the new API for barcode scanning in Lightning Web Components combined with a third-party library for generating QR codes to create a better way to generate shipping labels and receive packages. Scanning is essentially a non-destructive method of identifying and inspecting any goods (items). On a broader scale, security in the commercialization of goods and services has never been more crucial. This app can be customized and plugged into any Salesforce system and makes it easier for everyone to track packages.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/contactless-payment-qr-code-smartphone-screen.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;If you look closely at most shipping/courier services, they have their API that you can integrate to track the shipped packages. These integrated systems come as a barcode and other shipping information on the packages. With our new shipment scanner app, we want to curtail the need for manual entry of shipments received. Hence, removing errors and inconsistencies from the picture.&lt;/p&gt;
&lt;h2 id=&quot;processing-a-shipment&quot;&gt;&lt;strong&gt;Processing a Shipment&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;To process a shipment with the app, you simply scan the packing slip that is attached to the item. If your organization is providing the shipping labels the QR code generator can be used to add an easily scannable QR code to the shipping label. Otherwise, the scanner app can be connected to the appropriate API to get details about the scanned item. Here’s an example of how it would work for a company processing returns:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A customer requests a return&lt;/li&gt;
&lt;li&gt;The company generates a packing slip that has a QR code and the other necessary info such as their receiving address.&lt;/li&gt;
&lt;li&gt;The customer prints out the shipping label and mails the returned item.&lt;/li&gt;
&lt;li&gt;An employee at the receiving address opens the shipment scanner app on their device.&lt;/li&gt;
&lt;li&gt;They click on the scan button and point the camera at the package.&lt;/li&gt;
&lt;li&gt;Within a few moments, they have all the information about the item on the screen.&lt;/li&gt;
&lt;li&gt;They can now accept the return, submit it for processing, or whatever next actions would be appropriate for the workflow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/qr-code-scaning.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;In the end, this scanning workflow can be used for a wide variety of applications even beyond sending and receiving shipments. We’re excited to see this scanner library available for Lightning Web Components and we hope to customize this app for some customers in the very near future.&lt;/p&gt;
&lt;h2 id=&quot;features-of-the-app&quot;&gt;&lt;strong&gt;Features of the App&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Significantly reduce the amount of time needed to accept shipments.&lt;/li&gt;
&lt;li&gt;Reduce costs and avoid customer issues by skipping manual data entry.&lt;/li&gt;
&lt;li&gt;Risk reduction for customers and sellers.&lt;/li&gt;
&lt;li&gt;Creates a shipping alternative that lets your business work with as many logistics companies as you desire.&lt;/li&gt;
&lt;li&gt;A user-friendly interface follows a step-by-step pattern that helps you focus on what to do per time.&lt;/li&gt;
&lt;li&gt;Scanning apps within the Salesforce apps allow companies to leverage all of their existing pages and workflows to process the shipment, notify the right parties, and update other information in the system.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;learn-more&quot;&gt;&lt;strong&gt;Learn More&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If you’re interested in seeing how this could be customized for your organization, contact us, and let’s see what we can build! Here you can find the apps that we developed for Salesforce: -&lt;a href=&quot;https://cloudanswers.com/report-sender/&quot;&gt;Report Sender&lt;/a&gt; &lt;a href=&quot;https://cloudanswers.com/marketing-calendar-2/&quot;&gt;-Marketing Calendar&lt;/a&gt; -&lt;a href=&quot;https://cloudanswers.com/potential-duplicates-component/&quot;&gt;Potential Duplicates Component&lt;/a&gt; &lt;a href=&quot;https://cloudanswers.com/opportunity-team-edit-override/&quot;&gt;-Opportunity Team Edit Override&lt;/a&gt; &lt;a href=&quot;https://cloudanswers.com/approval-process-reminders/&quot;&gt;-Approval Process Reminder&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Find us on &lt;a href=&quot;https://appexchange.salesforce.com/appxSearchKeywordResults?keywords=CloudAnswers&quot;&gt;AppExchange&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Salesforce reports can help your business]]></title><description><![CDATA[A Salesforce report is a document that contains organized data from Salesforce. Salesforce has several options for formatting tabular data within the report. Reports can include charts, graphs that summarize the report data.]]></description><link>https://cloudanswers.com/blog/salesforce-reports-can-help-your-business</link><guid isPermaLink="false">/blog/salesforce-reports-can-help-your-business</guid><pubDate>Wed, 14 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/supporting-pc.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Since Salesforce came into the scene, it has helped businesses measure their growth and other key metrics. Shared reporting has also helped to create a sense of unity amongst team members. If you’re not in on it yet, this article will show you reporting basics that could help your team.&lt;/p&gt;
&lt;h2 id=&quot;what-is-a-report&quot;&gt;&lt;strong&gt;What is a Report?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;We know that information helps a business to thrive. That’s why presenting information in an accessible format is vital. When data is presented in an easy and clear format, the essential details become hard to miss. Presenting a data set with ease is precisely what a report does.&lt;/p&gt;
&lt;p&gt;A Salesforce report is a document that contains organized data from Salesforce. Salesforce has several options for formatting tabular data within the report. Salesforce reports can also include charts or graphs that summarize the report data.&lt;/p&gt;
&lt;p&gt;There are many reporting tools out there, Salesforce even has multiple options like Einstein Analytics and Tableau. For this article, we’ll be mostly talking about the capabilities of Salesforce’s built-in reporting tool.&lt;/p&gt;
&lt;h2 id=&quot;what-are-the-standard-reports-in-salesforce&quot;&gt;&lt;strong&gt;What are the standard reports in Salesforce?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;When presenting data in the form of a Salesforce report, you want to be sure that you’re using the best format for your business. There are four types of Salesforce reports, and each performs distinct functions and is more suited for different forms. Before you decide which works best for you, determine what you’re trying to communicate through your reports. These four enable you to pull, send, and review data. Below, we discuss the types of reports in Salesforce in detail.&lt;/p&gt;
&lt;h3 id=&quot;tabular&quot;&gt;&lt;strong&gt;Tabular&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The tabular format is the simplest and basic form of salesforce reporting. This will be the default format when creating a report in Lightning Experience. It is essentially a display of records in a tabular form. These are most effective when you want to export the data. However, don’t consider them for data manipulation like calculations or groups of data.&lt;/p&gt;
&lt;h3 id=&quot;summary&quot;&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Summary reports are most suitable for grouping rows of data. That means you can group data according to any field and proceed to calculations: totals, maximums, minimums, averages, or custom formulas. If you want to specify the accounts that bring more revenue, what services and products clients purchase more, the summary reports are the best option.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Matrix&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This report type is very much like the summary option. However, while a summary report is done according to rows, matrix reports function according to rows and columns. It is better to use them for more complex data since you can use them to determine several totals. They are effective for large data or huge amounts of complex information.&lt;/p&gt;
&lt;h3 id=&quot;joined&quot;&gt;&lt;strong&gt;Joined&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Joined reports are best for comparison. They help create separate reports and then compare individual datum. Although they are not common, they are most effective for learning the differences between accounts.&lt;/p&gt;
&lt;h2 id=&quot;how-to-use-reports-in-salesforce&quot;&gt;&lt;strong&gt;How to use reports in Salesforce&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Effective report management includes careful attention to details, data quality, security, and more. So to use reports in Salesforce, make sure you’re providing answers to questions and offer solutions. How?&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/hpw-to-use-reports-in-salesforce.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;how-to-create-salesforce-reports&quot;&gt;&lt;strong&gt;How to create Salesforce reports&lt;/strong&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Login to Salesforce&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/login.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;2. Select the reports tab. If you don’t see it, use the app launcher to search for it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/report-tab.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;3. Click New Report&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/new-report.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;4. Choose the Report Type. This is a critical step because the report type determines the objects and fields that will be available in your report. If you don’t see the right option, look into creating a &lt;a href=&quot;https://help.salesforce.com/articleView?id=sf.reports_defining_report_types.htm&amp;amp;type=5&quot;&gt;Custom Report Type&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/report-type.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;5. Click on Continue to go to the report builder.&lt;/p&gt;
&lt;p&gt;Now you will be in edit mode, with a preview. The edit mode allows you to add and remove fields, elements, group rows, and columns. You can also filter report data and show or hide a chart or tailor the report according to your needs.&lt;/p&gt;
&lt;p&gt;6. To add new columns, click on the “Add column” feature. Search and select field status - either scroll or type in the desired field. You can also expand or contrast the Fields pane. Then drag-and-drop or double-click a field.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/add-column.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;7. For record grouping, choose the element “Add group” and select the field to group by. Or from the preview window, find the rows you want to group and select “Group Rows”. You now have a Summary report.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/add-group.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;8. After you’ve grouped by rows or columns you can choose any numeric fields to be able to aggregate them. Just click the drop-down next to a field and click Summarize then choose Sum/Average/Max/Min.&lt;/p&gt;
&lt;p&gt;9. To be sure that you’re viewing the desired data by updating your filters: Click on filters. Change the default filters if needed. Often you’ll want to change the date filter and the “Show Me” filter. Add any additional filters needed.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/filters.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;10. Save and name your report.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/save.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;11. Folders determine who can see the report, so put it in the correct folder. Private reports are only visible to the user that saved them. Public reports are visible to anyone that can run reports. Keep in mind that reports always respect user permissions so people cannot see data in a report that they can’t see normally.&lt;/p&gt;
&lt;h2 id=&quot;sharing-salesforce-reports&quot;&gt;&lt;strong&gt;Sharing Salesforce reports&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Now that you have a fancy new report, how do you make it available to the people that need it? Well, that depends a lot on how the report will be used, so here are some of your options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Setup the report to be sent on a schedule&lt;/strong&gt;: One of the best ways to make sure a report is used is to automatically send it to the right people. If you just want to send it to yourself, click the Subscribe button and choose your schedule. If you want to send it to other people you’ll have to do it manually or use an AppExchange app like the &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=salesforce_reports_can_help_your_business&quot;&gt;CloudAnswers Report Sender&lt;/a&gt;. Our app lets you schedule the report to be delivered to any email address on a schedule you choose.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Send people a link to the report&lt;/strong&gt;: The easiest way to share, just to email someone a link to the report and they can open it as long as they have a login to Salesforce, access to the report folder, and access to the objects and fields that are used in the report.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Put it on a dashboard&lt;/strong&gt;: Dashboards are a great way to gather multiple report charts into one organized view. Put several reports together into a dashboard that people can explore and drill into the reports.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;what-now&quot;&gt;&lt;strong&gt;What Now?&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Need help with reporting? Contact Us&lt;/li&gt;
&lt;li&gt;Want to check out Report Sender? &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=salesforce_reports_can_help_your_business&quot;&gt;See it on the AppExchange&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Want to learn more about reporting? &lt;a href=&quot;https://trailhead.salesforce.com/en/content/learn/modules/lex_implementation_reports_dashboards&quot;&gt;Check out Trailhead&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Check also: &lt;a href=&quot;https://cloudanswers.com/blog/salesforce-reporting-tips-and-best-practices/&quot;&gt;Salesforce reporting tips and best practices&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Save DOM Element As Image Attachment In Salesforce]]></title><description><![CDATA[Use a dom-to-image Javascript library that can turn arbitrary DOM nodes into a vector (SVG) or raster (PNG or JPEG) image in Salesforce.]]></description><link>https://cloudanswers.com/blog/save-dom-element-as-image-attachment-in-salesforce</link><guid isPermaLink="false">/blog/save-dom-element-as-image-attachment-in-salesforce</guid><pubDate>Thu, 08 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/Screenshot-2021-04-08-at-20.28.04-1.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Did you ever have to capture a screenshot of a widget that displays some financial numbers in tabular format and then email those to a customer? Or maybe copy and paste the snapshot of financial numbers in a proposal document? If yes, in this article, we will see how to automate the process of capturing the snapshot and save it to Salesforce record for later use.&lt;/p&gt;
&lt;p&gt;We will be using a &lt;a href=&quot;https://www.npmjs.com/package/dom-to-image&quot;&gt;dom-to-image&lt;/a&gt; Javascript library that can turn arbitrary DOM nodes into a vector (SVG) or raster (PNG or JPEG) image. I have uploaded that library as a Static Resource in my dev org. It would be best if you did the same before trying out the code I have shared below.&lt;/p&gt;
&lt;p&gt;The key steps and gotchas are explained in the following steps are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Capture the DOM element: This part is pretty straightforward. We can capture the DOM element using the standard document.getElementById() Javascript method.&lt;/li&gt;
&lt;li&gt;Convert DOM element to Image: We have added a &lt;strong&gt;dom-to-image&lt;/strong&gt; Javascript library for this step. This library has methods to convert the DOM node into a vector (SVG) or raster (PNG or JPEG) image. I’ve usedtoPng() the way it returns a promise and provides results in a promise callback. This method returns the image in &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs&quot;&gt;Data URIs&lt;/a&gt; format. We need to extract (dataUrl.split(,)image: /uploads/) the data from Data URI before saving it as an Attachment body.&lt;/li&gt;
&lt;li&gt;Save it as Attachment in Salesforce: I’m using Javascript remoting to send the data to the Apex controller. Since the &lt;strong&gt;dom-to-image&lt;/strong&gt; library returns base64 encoded image data, we need to decode that before saving it in the Attachment record.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The scenario which I came across was to pull data from a Matrix report into a Conga document. Since &lt;a href=&quot;https://documentation.conga.com/cpsfwin20cg/gathering-data-for-composer/using-salesforce-reports-with-conga-composer/use-salesforce-reports-with-conga-composer&quot;&gt;Conga Composer only supports the Tabular reports&lt;/a&gt;, I decided to go with a custom solution to &lt;a href=&quot;https://cloudanswers.com/blog/run-salesforce-reports-in-apex/&quot;&gt;run the report and export report data.&lt;/a&gt; Then, I used a Visualforce component to render the data in the same format as that of a Salesforce Matrix report.&lt;/p&gt;
&lt;p&gt;Once the report data is rendered in a Visualforce component, capture the DOM element, convert it into a PNG and save that as an Attachment on the Salesforce record as shown in the below snippet.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/dom-element.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/dome-element2.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;The saved attachment looks like as below for me:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/image-from-dom.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;If you need help with Salesforce or have something a little more complex that might require some advanced developer knowledge? We can help. Contact us at &lt;a href=&quot;mailto:help@cloudanswers.com&quot;&gt;help@cloudanswers.com&lt;/a&gt; or chat with us.&lt;/p&gt;
&lt;p&gt;Read also &lt;a href=&quot;https://cloudanswers.com/hack-test-loaddata-to-accept-relational-data/&quot;&gt;&lt;strong&gt;Hack Test.loadData() to accept relational data&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[How and Why We Run Hackathons]]></title><description><![CDATA[CloudAnswers team every month or two, run 24-hour hackathons. They have been a big success: we have received great feedback from the team, launched several products, solved customer problems and our own. So we thought we’d share why and how we run these.]]></description><link>https://cloudanswers.com/blog/how-and-why-we-run-hackathons</link><guid isPermaLink="false">/blog/how-and-why-we-run-hackathons</guid><pubDate>Mon, 29 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/hackhatlon-supporting-pc.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;As a consulting company with a growing AppExchange portfolio, we rarely have a shortage of things to do at CloudAnswers. But every month or two, we adjust one of our sprints slightly so that everyone can take a day and work on something new. Usually, we run 24-hour hackathons. They have been a big success: we have received great feedback from the team, launched several products, solved customer problems and our own. So we thought we’d share why and how we run these.&lt;/p&gt;
&lt;h1 id=&quot;what-is-a-hackathon&quot;&gt;What Is a Hackathon?&lt;/h1&gt;
&lt;p&gt;In case anyone has not heard of a hackathon, it’s a small competition where we try to build the best software within the constraints and timeframe provided. For example, in January, we did a hackathon where individuals had 24 hours to create something using at least one of the Salesforce Spring ‘21 release features. The results were judged based on pre-defined criteria that we’ll explain later, and a winner was chosen. In this case, the winner just won bragging rights, but often we’ll throw in prizes for some extra incentive.&lt;/p&gt;
&lt;h1 id=&quot;why-do-hackathons&quot;&gt;Why Do Hackathons?&lt;/h1&gt;
&lt;p&gt;If you read this and say, “this will never work at my company”, then this paragraph is for you. Because at first, we had no idea if this would work for us. The concept of taking most, or all, of our team and telling them to stop doing customer work and to just build something, anything, is a decision that took some consideration. But after doing these semi-regularly for a few years, we’ve realized more value than we expected, and we plan to keep doing these.&lt;/p&gt;
&lt;p&gt;First of all, it has been great for teamwork and morale. We are a distributed company with offices around the world, and the hackathons have been a way to bring everyone together for a short period. When we do team hackathons, people get to work together that might not communicate much during their everyday work. And since hackathons typically deal with new technology and don’t have to be production-ready, it’s an excellent way to take the pressure off since we are otherwise shipping code almost daily.&lt;/p&gt;
&lt;p&gt;Secondly, we realized that our team has many great ideas, and sometimes they need the space to work on them. When you’re constantly working on products and customers’ projects, sometimes you never take the time to build that great idea that nobody has asked for. But with our hackathons, those ideas have become products on the AppExchange, tools we’ve provided to clients, and internal tools to help speed up our workflow. It’s been quite amazing to see what people build when giving them only a few constraints and letting them make whatever they want.&lt;/p&gt;
&lt;p&gt;Lastly, and probably most importantly, it’s a great time to learn. One thing that often separates great developers from the rest is that they naturally try things - often spending a large portion of their free time just “hacking” on things. A hackathon can be a way to get all developers to set aside some time and try something new. More often than not, the hackathon demos include some lesson about how the team tried to build X but ended up building Y because of something they learned. We also use the hackathon themes to encourage particular learning topics; for example, we have a hackathon for almost every Salesforce release where you have to use at least one new feature.&lt;/p&gt;
&lt;h1 id=&quot;how-do-we-do-hackathons&quot;&gt;How do we do Hackathons?&lt;/h1&gt;
&lt;p&gt;We take a pretty lightweight approach to hackathons. We’ve found that you need a certain amount of constraints to get the best ideas, but beyond that, any rules you add can limit the output and make it harder for new employees to understand and participate. And if you make a complex process for running the hackathons, you’re less likely to do them. So as much as possible, keep this process simple. Here’s a summary of our process.&lt;/p&gt;
&lt;h2 id=&quot;planning-the-hackathon&quot;&gt;Planning the Hackathon&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Choose someone to organize it&lt;/strong&gt;. For large hackathons, this can be a group of people. Feel free to rotate who’s in charge. For us, it’s usually our founder James picking the date, and then we organize it together.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pick a good time and duration.&lt;/strong&gt; Talk to the team and figure out what time and duration work best for your team and your customer demands. Some organizations do theirs after work one evening; some dedicate a weekend. Since we’re a distributed team, we’ve found it works best to schedule ours for Thursday at 9 AM EST to Friday at 9 AM EST. This gives everyone 24 hours, aligns with the teams’ standups, and allows people worldwide to join the same hackathon.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pick a theme.&lt;/strong&gt; You can do a hackathon without a theme, but we’ve found it’s often more challenging for teams to decide what to build when there are no constraints. So we ask for ideas in Slack and consider everyone’s input when planning hackathon themes. Some themes we’ve done and ideas that we’ve heard: Industry-specific solutions, Salesforce new features from a release, client-specific solutions, health and wellness, and non-profit solutions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Plan your judging.&lt;/strong&gt; Judging comes down to two things: judges and scoring method. For judges, you can either have teams vote for each other or invite guest judges that are not in the competition. We’ve done both, and while it’s always nice having a guest panel, sometimes it’s just easier to skip that extra step.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;hackathon-rules&quot;&gt;Hackathon Rules&lt;/h2&gt;
&lt;p&gt;We recommend keeping the rules as simple as possible. Both to make sure that you can enforce them and to make sure that everyone knows them. Here is an example of our rules:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;All code must be written during the hackathon period unless the code was freely available to all participants before starting. In other words, you can use shared libraries or open-source libraries, but you can’t start working on your project ahead of time.&lt;/li&gt;
&lt;li&gt;Your solution must meet the theme. For our Salesforce Spring ‘21 hackathon, the solution had to include at least one feature from the new release.&lt;/li&gt;
&lt;li&gt;Code must be submitted to a GitHub repo for review by judges/other teams. This doesn’t have to be done until the end but helps us verify that no one is cheating.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For an example of what this looks like when it’s all put together, you can check out one of our old hackathons where we invited other companies to join: &lt;a href=&quot;https://hackathon.cloudanswers.com/&quot;&gt;CloudAnswers Open Hackathon&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&quot;what-next&quot;&gt;What Next?&lt;/h1&gt;
&lt;p&gt;If you’re looking to run internal hackathons at your company, share this article with the people who can approve it and ask for a simple experiment. Getting everyone to agree can be a bit of work at first, but believe us, it’s worth it. Try starting with a small hackathon - even a few hours one afternoon can be a great way to prove that it’s worth doing. If management doesn’t approve, see if some of the team members want to do a hackathon outside of work hours anyway and then see if management changes their mind after showing them some demos.&lt;/p&gt;
&lt;p&gt;If you can’t get it approved or don’t work at a company with enough developers to host an internal hackathon, there are plenty of other hackathons to join. You can check &lt;a href=&quot;https://medium.com/@jonathanallengrant/the-7-best-websites-to-find-a-hackathon-the-hacklife-guide-3e420f2a565b&quot;&gt;a variety of online websites&lt;/a&gt; or look for local developer groups that might host hackathons.&lt;/p&gt;
&lt;p&gt;If you’re interested in hearing more about our Hackathons, stay tuned for future blog posts on our hackathon results.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[How to create a working marketing calendar in Salesforce for your business]]></title><description><![CDATA[A marketing calendar is a written blueprint that keeps your marketing activities on track. With one, it is easier to organize, visualize, and execute your activities. Consequently, it is an actionable tool that works towards achieving goals over a stipulated period.]]></description><link>https://cloudanswers.com/blog/how-to-create-a-working-marketing-calendar-in-salesforce-for-your-business</link><guid isPermaLink="false">/blog/how-to-create-a-working-marketing-calendar-in-salesforce-for-your-business</guid><pubDate>Thu, 11 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/how-to-create-a-working-marketing-calendar-in-salesforce-for-your-business-supporting-pc.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;If you’ve ever been a part of a marketing team, you know how easy it is to get carried away by business tasks and plans. Without an organized schedule, several hours could pass without you achieving much. The result of this is unhappy results, frustration, and even failure. If you’re in a fix and need urgent strategies, you’re where you should be.&lt;/p&gt;
&lt;p&gt;This article discusses how to create a working marketing calendar and some marketing techniques that produce results. A fundamental and required tool in marketing is a marketing calendar. A marketing calendar is essentially a marketing assistant that guides you in a manner that leaves nothing out of the plan.&lt;/p&gt;
&lt;h2 id=&quot;what-is-a-marketing-calendar&quot;&gt;&lt;strong&gt;What is a Marketing Calendar?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;A marketing calendar is a written blueprint that keeps your marketing activities on track. With one, it is easier to organize, visualize, and execute your activities. Consequently, it is an actionable tool that works towards achieving goals over a stipulated period.&lt;/p&gt;
&lt;p&gt;Usually, several marketing calendar templates can plan activities yearly, monthly, weekly, and daily. The marketing calendar planner you use is solely based on preference. Of course, other factors like your goals, needs, and more could affect your choice; it ultimately takes time and resources to create a working marketing calendar.&lt;/p&gt;
&lt;p&gt;A significant advantage of a marketing calendar is that it helps you meet deadlines. Furthermore, it fosters coordination amongst teams and managers too. Presently, several tools can help you organize your activities, some of them are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;PDFs&lt;/strong&gt; – editorial calendar template that integrates several kinds of content&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Excel/ Google Sheets&lt;/strong&gt;- easy to adapt and customizable templates. Useful for collaborations&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Word/Google Docs&lt;/strong&gt; – a word and spreadsheet template in Google&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google Calendar&lt;/strong&gt; – sets reminders for upcoming events. Schedule meetings and events&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Software:&lt;/strong&gt; Calendar software like our &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000003Io4WEAS&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=how_to_create_a_working_marketing_calendar_in_salesforce&quot;&gt;Free Marketing Calendar for Salesforce&lt;/a&gt; can provide a readymade calendar that allows scheduling and visualizing content, budgets, goals, and events.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/laptop-coworking-space-wth-schedule.jpg&quot; alt=&quot;&quot; title=&quot;monthly marketing calendar&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;the-ideal-marketing-calendar&quot;&gt;&lt;strong&gt;The Ideal Marketing Calendar&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Marketing calendars are tailored towards addressing specific needs. Therefore, a successful marketing calendar should incorporate marketing activities in detail. A calendar is best used for its particular purpose:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Spelling out individual event&lt;/li&gt;
&lt;li&gt;Spelling out the marketing cost for each result&lt;/li&gt;
&lt;li&gt;It should include an estimated time frame for the completion of the event.&lt;/li&gt;
&lt;li&gt;Expected results&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The above elements help you see events at a glance while helping you work towards your goal per time. In the future, it aids planning and marketing. A marketing calendar should follow the following purposes;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Plan&lt;/strong&gt; each event to meet specific goals- planning helps you fine-tune your strategies in advance. It also affords you ample time to achieve each goal and keeps you within the time frame.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A hub for team activities&lt;/strong&gt; – as long as you document each detail on your marketing calendar, every team member stays aware of their roles. This helps them to work effectively and remain productive.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Measures progress and workflow&lt;/strong&gt;- you should be able to rely on your calendar for progress reports, workflow, and coordination. This fosters discipline and responsibility with a team as well as harmonization of efforts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Information&lt;/strong&gt;-sharing- you can use a marketing calendar to share relevant information with team members. This feature is available in online Apps like &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000003Io4WEAS&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=how_to_create_a_working_marketing_calendar_in_salesforce&quot;&gt;CloudAnswers Marketing Calendar&lt;/a&gt;, supporting communication with people and free campaign calendar views.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Track marketing actions-&lt;/strong&gt; it is no surprise that a marketing calendar should track marketing actions. Since you clearly state your goals before each campaign, keeping track of your performance is ideal. While working on each event, you should know how far you’ve gone, what’s working, and what needs improvement.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Be futuristic&lt;/strong&gt;- a marketing calendar is a pointer to the future. Knowing what comes next is vital because it keeps you grounded in your goals. Therefore, staying aware of your next move is consistency in planning, a value that many successful businesses possess.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;what-a-marketing-calendar-should-include&quot;&gt;&lt;strong&gt;What a marketing calendar should include&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Before you get into scheduling and brainstorming ideas for your calendar, be sure that your goals are in place. It should cover your brand’s values, your audience’s likes, and what your product or service provides.&lt;/p&gt;
&lt;p&gt;Consider the following;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The channels that engage your audience most – email, social media, blog posts, etc.&lt;/li&gt;
&lt;li&gt;The metrics you intend to improve on – engagement, followership, conversions, etc.&lt;/li&gt;
&lt;li&gt;How sales campaigns help your brand&lt;/li&gt;
&lt;li&gt;Brand awareness campaign options&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;types-of-marketing-calendars&quot;&gt;&lt;strong&gt;Types of Marketing Calendars&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;The right marketing calendar is not just a document. It contains all the information about your marketing events in one place. As a result, it impacts your marketing performance by helping you curtail lapses. Here are some of the types of marketing calendars in the market;&lt;/p&gt;
&lt;h2 id=&quot;content-marketing-calendar&quot;&gt;&lt;strong&gt;CONTENT MARKETING CALENDAR&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;A marketing content calendar is popular amongst content creators, strategists, and marketers because it helps the organization of content &lt;strong&gt;marketing plans&lt;/strong&gt;. As the need for content continues to grow, multiple people can create content for a common purpose. Therefore, having a &lt;strong&gt;content marketing calendar&lt;/strong&gt; helps the group by providing timely information to everyone at once. Expectedly, a bigger project with more people requires more details. So, the calendar can receive as many details and updates as needed.&lt;/p&gt;
&lt;p&gt;Overall, a content calendar that keeps a successful schedule helps you to plan ahead. For example, you can quickly deliver the former program to customers requesting samples. It saves time and brings more customers to your corner. To create a content marketing calendar, it is best if you considered content marketing calendar templates. Rather than create a calendar from scratch. All you do is fill in the details based on preference. Currently, there are tons of content calendar templates online. Some are SEO-focused, while others favor social media.&lt;/p&gt;
&lt;h2 id=&quot;blog-calendars&quot;&gt;&lt;strong&gt;BLOG CALENDARS&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;A blog calendar is one of the best ways to keep your blogging habits and productivity on track. If you prefer a customized calendar, several engagement metrics could help. A blog calendar works significantly to develop consistency in the writer and produce engaging content. A blog calendar works to build a blogging strategy that delivers results.&lt;/p&gt;
&lt;p&gt;In addition to helping you connect with readers, it attracts new customers. Furthermore, you can curate blog post ideas and a schedule. What’s more, it enables you to stay within the deadline.&lt;/p&gt;
&lt;h2 id=&quot;social-media-marketing-calendar&quot;&gt;&lt;strong&gt;SOCIAL MEDIA MARKETING CALENDAR&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;In a world where billions of people engage with social media daily, a social media marketing calendar helps you plan posts ahead of time. For instance, if you post many times in a day, the calendar organizes your tasks. Also, it gives an overview of which content performs better.&lt;/p&gt;
&lt;p&gt;A typical social media calendar has a spreadsheet or an app where you can schedule posts. If you need to meet a deadline, it helps you manage your campaign effectively. Since needs differ, no calendar fits all categories or needs. Brands utilizing large volumes of posts may favor specialized software over spreadsheets.&lt;/p&gt;
&lt;h2 id=&quot;why-a-marketing-calendar-is-important&quot;&gt;&lt;strong&gt;Why a marketing Calendar is important&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Recent research reports show that &lt;strong&gt;marketer&lt;/strong&gt;s who have deployed the marketing calendar tool &lt;strong&gt;538%&lt;/strong&gt;, due to the research by &lt;a href=&quot;https://www.evinex.com/marketing-calendar/&quot;&gt;Evinex&lt;/a&gt;, were likely to &lt;strong&gt;finish on time&lt;/strong&gt;. &lt;strong&gt;About 81% of goal-setters&lt;/strong&gt; achieved their goals as well. Ultimately, a marketing calendar helps hit the goal while giving you an overview.&lt;/p&gt;
&lt;p&gt;Marketing is not just a series of dates or a pattern of salesforce marketing. It is an intentional scheme that shapes the presence of any business or brand. Consequently, a marketing calendar keeps track of this scheme. To keep a business running, combining sales with awareness boost engagement. While sales tell people what you sell or offer, awareness focuses on brand promotion.&lt;/p&gt;
&lt;h2 id=&quot;marketing-calendar-salesforce-app&quot;&gt;&lt;a href=&quot;https://cloudanswers.com/marketing-calendar/&quot;&gt;&lt;strong&gt;&lt;img src=&quot;/uploads/NEW-product-pics-marketing-calendar.png&quot; alt=&quot;marketing calendar salesforce app&quot;&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h2 id=&quot;how-to-create-a-marketing-calendar&quot;&gt;&lt;strong&gt;HOW TO CREATE A MARKETING CALENDAR&lt;/strong&gt;&lt;/h2&gt;
&lt;h2 id=&quot;know-your-customers&quot;&gt;&lt;strong&gt;Know your Customers&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Every business is peculiar, and the target audience is equally unique. Your &lt;strong&gt;marketing strategy&lt;/strong&gt; should revolve around reaching your audience. When you don’t know who your customers are, running a successful marketing campaign becomes difficult. For example, a company targeting college students can plan around their interests. You can create contents that match their requirements. When planning activities on your marketing calendar, you may consider these questions.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What does our audience need?&lt;/li&gt;
&lt;li&gt;How can I reach them?&lt;/li&gt;
&lt;li&gt;When is the ideal time to reach out?&lt;/li&gt;
&lt;li&gt;How does my content interact with their needs?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;define-the-role-of-each-team-member&quot;&gt;&lt;strong&gt;Define the role of each team member&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Now that you know what your calendar should have, you should define each member’s role according to their skills. The following are typical roles;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Team leader – works on the planning and approval of each step&lt;/li&gt;
&lt;li&gt;Content creator – creates content like a blog post, social media copies, guest posts, etc. Generally transforms ideas into written content&lt;/li&gt;
&lt;li&gt;Social media manager – responsible for social media correspondence&lt;/li&gt;
&lt;li&gt;Designer- responsible for the visual representation of contents, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Remember to share the calendar with everyone. You can add the email addresses of everyone that should have access to it. Overall, you get to decide how much information they see and whether they can make changes on the calendar or not.&lt;/p&gt;
&lt;h2 id=&quot;determine-content-quantity-and-ideas&quot;&gt;&lt;strong&gt;Determine content quantity and ideas&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Investing time in the content of your event is vital. Many successful businesses avoid publishing content randomly. Quality content from great ideas has a strong impact on your online presence. Thus, it would help if you carefully create content. Then, you can determine the frequency. Also, consider your marketing budget.&lt;/p&gt;
&lt;h2 id=&quot;make-a-rough-draft&quot;&gt;&lt;strong&gt;Make a rough draft&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Before you create a detailed calendar, it could help make a draft that serves as a guide to the real thing. For example, you may print a free monthly calendar and use it first. Here, you can learn how to schedule while putting vacation times, special days, and holidays into consideration.&lt;/p&gt;
&lt;h2 id=&quot;know-the-important-marketing-dates-in-your-industry&quot;&gt;&lt;strong&gt;Know the Important Marketing Dates in Your Industry&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Every industry has that period when they tweak their marketing strategies. For example, based on holidays, school calendars, and other events, businesses develop specific promotional offers and even sales. Knowing these will help you plan your calendar better.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;January – New Year’s Day and Resolution&lt;/li&gt;
&lt;li&gt;February- Valentine’s, African American History Month&lt;/li&gt;
&lt;li&gt;March – St Patrick’s Day, Women’s History Month&lt;/li&gt;
&lt;li&gt;April- Earth Day&lt;/li&gt;
&lt;li&gt;My- Mother’s Day&lt;/li&gt;
&lt;li&gt;June- Father’s Day, Summer&lt;/li&gt;
&lt;li&gt;July- 4th of July, Reunions&lt;/li&gt;
&lt;li&gt;August – End of Summer&lt;/li&gt;
&lt;li&gt;September- Sports, Parenting&lt;/li&gt;
&lt;li&gt;October- Halloween, Breast Cancer Month&lt;/li&gt;
&lt;li&gt;November- Thanksgiving&lt;/li&gt;
&lt;li&gt;December- End of the year Sales, Holiday.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since holidays are almost always fixed, most marketing campaigns plan them early in preparation for the influx of customers.&lt;/p&gt;
&lt;h2 id=&quot;create-a-backlog&quot;&gt;&lt;strong&gt;Create a Backlog&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;A backlog ensures that you document ideas for upcoming campaigns and events. When planning a marketing calendar, you may discover that certain activities are more suited for later. Hence, a backlog helps you to think ahead.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Google sheets&lt;/strong&gt; are a marketing calendar example for creating backlogs. Many apps and software have the same features, and they often include headlines, priority level, and estimated deadline. On the other hand, on the market, you find a calendar board that allows you to organize tasks in a list. Then, it provides a calendar view of each task and deadline per time.&lt;/p&gt;
&lt;p&gt;Also, you can&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add members and assign them tasks.&lt;/li&gt;
&lt;li&gt;Add attachments&lt;/li&gt;
&lt;li&gt;Create new campaigns, subtasks, and more.&lt;/li&gt;
&lt;li&gt;Add description and deadlines.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;execute-your-strategies&quot;&gt;&lt;strong&gt;Execute Your Strategies&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Now, it’s time to create your calendar and test the strategies. There are several calendar tools in the market, so knowing what works for you is best. As you move forward, keep records and feedback.&lt;/p&gt;
&lt;p&gt;Lastly, analyze your marketing strategies. This is crucial to improving your performance because it helps to determine how to make improvements. Check if;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You missed any detail on the calendar&lt;/li&gt;
&lt;li&gt;Team members missed a deadline and why&lt;/li&gt;
&lt;li&gt;Communication was effective&lt;/li&gt;
&lt;li&gt;The team has complaints or suggestions about the calendar&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;wrapping-it-up&quot;&gt;&lt;strong&gt;Wrapping it Up&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Building a marketing calendar involves an elaborate plan. It helps determine how far you’re willing to go to fulfill each goal while hitting the mark. Consider tweaking calendar details until you get something that sticks. Since creating a &lt;a href=&quot;http://www.salesforce.com&quot;&gt;Salesforce&lt;/a&gt; calendar from scratch can be daunting and time-consuming, &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000003Io4WEAS&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=how_to_create_a_working_marketing_calendar_in_salesforce&quot;&gt;CloudAnswers&lt;/a&gt; can make your job easier. Set it up now and begin to explore!&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Embed Image In Conga Document Using Salesforce ID]]></title><description><![CDATA[Learn how you can embed an image uploaded as a Salesforce Attachment in a Conga Document. Use the Conga IMAGE tag you can embed images.]]></description><link>https://cloudanswers.com/blog/embed-image-in-conga-document</link><guid isPermaLink="false">/blog/embed-image-in-conga-document</guid><pubDate>Thu, 25 Feb 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/supporting-pc-2.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Have you come across a scenario where you were required to dynamically pull the customer logo from Salesforce Documents or Attachments while creating a proposal, invoice, etc for a customer? This article explains how to do that.&lt;/p&gt;
&lt;p&gt;I’m going to demonstrate how we can embed an image uploaded as an Attachment or Salesforce Document into a Conga document. As per the &lt;a href=&quot;https://documentation.conga.com/cpsfwin20cg/creating-composer-templates/word-templates/advanced-word-templates/merge-images-with-salesforce-id-in-word&quot;&gt;official Conga docs&lt;/a&gt;, this approach works with images uploaded as Salesforce Documents or Attachments to a record.&lt;/p&gt;
&lt;p&gt;For this article, let’s suppose we want to create a proposal for a customer from a Salesforce Quote. And, we want to dynamically pull the customer logo from the related Account record and embed it into the generated Conga document.&lt;/p&gt;
&lt;p&gt;Now, let’s go through each step one by one.&lt;/p&gt;
&lt;h2 id=&quot;create-a-conga-query&quot;&gt;Create A Conga Query&lt;/h2&gt;
&lt;p&gt;The first step is to create a Conga Query to fetch the Attachment record. Here is the Conga Query which I have set up for this example:&lt;/p&gt;
&lt;p&gt;select Id from Attachment where Description = ‘Logo’ and ParentId IN (select AccountId from Quote where Id =
‘{pv0}’) order by CreatedDate desc limit 1&lt;/p&gt;
&lt;p&gt;The above query will fetch the most recent Attachment record related to the Account related to the Quote record. And, it has another condition to filter the records by Description field to make sure it pulls the customer logo. The record, Quote in our case, from which we invoke Conga Composer, will replace &lt;strong&gt;‘{pv0}’&lt;/strong&gt; with the Id of that record. You can change the &lt;strong&gt;where clause&lt;/strong&gt; as per your need to fetch the correct record. We just need the Id of the Attachment record, so just query that field.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; If you copy and paste the above query, make sure your Attachment record’s Description is set to &lt;strong&gt;Logo.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;create-proposal-button-on-quote-object&quot;&gt;Create Proposal Button on Quote Object&lt;/h2&gt;
&lt;p&gt;In this step, we are going to create a button on the Quote object and add it to the page layout. I have set up the following button for this example and added it to the appropriate page layout.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Create Proposal (Lightning Version)&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&quot;url-for-salesforce-lightning-button&quot;&gt;URL for Salesforce Lightning button&lt;/h3&gt;
&lt;p&gt;/apex/APXTConga4__Conga_Composer?serverUrl={!API.Partner_Server_URL_290}&amp;amp;id=
{!Quote.Id}&amp;amp;QueryId=[Attachment]a1b63000005d8MHAAY&amp;amp;WordStripIfs=1&amp;amp;SC0=1&amp;amp;SC1=SalesforceFile&amp;amp;OFN={!Quote.Name}&lt;/p&gt;
&lt;p&gt;The above button works for the Lightning Experience. For Salesforce Classic you would need to set up a different button which looks like as shown below and makes sure this button shows up for users in Salesforce Classic.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Create Proposal (Classic Version)&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&quot;url-for-salesforce-classic-button&quot;&gt;URL for Salesforce Classic button&lt;/h3&gt;
&lt;p&gt;/apex/APXTConga4__Conga_Composer?serverUrl={!API.Partner_Server_URL_290}&amp;amp;id=
{!Quote.Id}&amp;amp;QueryId=[Attachment]a1b63000005d8MHAAY&amp;amp;WordStripIfs=1&amp;amp;SC0=1&amp;amp;SC1=SalesforceFile&amp;amp;OFN={!Quote.Name}&lt;/p&gt;
&lt;h4 id=&quot;lets-test-what-we-have-so-far&quot;&gt;Let’s Test What We Have So Far&lt;/h4&gt;
&lt;p&gt;Before we proceed further, let’s make sure we can retrieve the attachment record in the Conga Composer with the Conga Query which we have setup. For that follow the following steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create or go to an existing Account record&lt;/li&gt;
&lt;li&gt;Upload a customer logo as an attachment to Account (&lt;em&gt;Tip: You may need to switch to Salesforce Classic to upload the file as an Attachment)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;On the Quote detail page, click on the Create Proposal button. This will open Conga Composer&lt;/li&gt;
&lt;li&gt;On Conga Composer, click Template Builder under Tools &amp;amp; Settings&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If everything is set up correctly, we should see the query result for the &lt;strong&gt;Attachment&lt;/strong&gt; query as shown below&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Template Builder&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If you were able to see the Attachment record in Template Builder as shown above, let’s go ahead with next steps. Otherwise, revisit the previous steps and make sure everything is setup correctly.&lt;/p&gt;
&lt;h2 id=&quot;add-image-tag-to-conga-template&quot;&gt;Add IMAGE Tag To Conga Template&lt;/h2&gt;
&lt;p&gt;In this step, we are going to add the Conga IMAGE tag to a Conga Template and see end result in the generated document. Here is a &lt;a href=&quot;https://drive.google.com/file/d/1Kbq9UPc9DUreReFm4upLU0STeU97rBZe/view?usp=sharing&quot;&gt;sample template&lt;/a&gt; that we have created for this article.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; You can try with the above template or copy and paste the tags from our template into your template.&lt;/p&gt;
&lt;p&gt;Now, let’s test the above template in Conga Composer.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On Conga Composer, choose the Local Template tab and select the Conga Template as shown below.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Select template&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;After selecting the file, click on the Preview button.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Preview Template&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Here is how the generated doc looks for me.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Generated doc with embedded customer logo from Account.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;We can use the Conga IMAGE tag to embed images uploaded as attachments to a Salesforce record. We can extend this example to different real-world use cases and the possibilities are endless.&lt;/p&gt;
&lt;p&gt;If you need help with Salesforce or have something a little more complex that might require advanced developer knowledge? We can help. Contact us at &lt;a href=&quot;mailto:help@cloudanswers.com&quot;&gt;help@cloudanswers.com&lt;/a&gt; or chat with us.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Read also&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/effective-data-storage-in-salesforce-for-every-business-size/&quot;&gt;Effective data storage in Salesforce for every business size&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/custom-domains-and-free-ssl-on-force-com-sites/&quot;&gt;Custom domains and free SSL on Force.com Sites&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Top reasons Why you should use Salesforce for your business?]]></title><description><![CDATA[Salesforce for business is cloud-based CRM software, with standalone applications for sales, customer service, and marketing.]]></description><link>https://cloudanswers.com/blog/top-reasons-why-you-should-use-salesforce-for-your-business</link><guid isPermaLink="false">/blog/top-reasons-why-you-should-use-salesforce-for-your-business</guid><pubDate>Thu, 18 Feb 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/spc.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;There are many systems on the market that help businesses manage customer relationships seamlessly. They are known as Customer Relationship Management (CRM) tools. And one of the best-known and most recommended methods used by more than 150,000 companies worldwide is Salesforce.&lt;/p&gt;
&lt;p&gt;Salesforce is &lt;strong&gt;cloud-based CRM software&lt;/strong&gt;, with standalone applications for sales, customer service, marketing, commerce, partner management, and industry-specific solutions. Customers can extend Salesforce through their configuration and development tools, &lt;strong&gt;AppExchange apps&lt;/strong&gt;, and a large community of consultants. It helps organizations function efficiently and profitably by reducing the cost of managing hardware infrastructure.&lt;/p&gt;
&lt;p&gt;As Salesforce consultants and AppExchange partners, we may be a little biased, but here are some of the reasons why we work with Salesforce and recommend that you do too.&lt;/p&gt;
&lt;h2 id=&quot;one-platform-for-all-business-needs&quot;&gt;&lt;strong&gt;One platform for all business needs&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Given the extent of the Salesforce platform, businesses can move a large portion of their infrastructure to Salesforce. Salesforce’s architecture ensures that the platform is continuously updated and the customer’s data is secured, without having to staff a large portion of a traditional IT team.&lt;/p&gt;
&lt;p&gt;Salesforce offers a &lt;strong&gt;360º view&lt;/strong&gt; of the customer, and there are a wide variety of ways to connect it to other systems and databases. When set up correctly, every staff member can have precisely the customer information needed to do their job and build effective and long-lasting customer relationships.&lt;/p&gt;
&lt;h2 id=&quot;extremely-customizable&quot;&gt;&lt;strong&gt;Extremely customizable&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;One of the most significant advantages, and something that can overwhelm customers, is the amount you can customize the platform. Salesforce decided early on that they could never build solutions for every business, so they have developed an extensive feature set for solving any business challenge through clicks, code, and partner apps.&lt;/p&gt;
&lt;p&gt;With just a few clicks, you can build workflows, design unique pages for team members, create reports and dashboards, and automate business processes.&lt;/p&gt;
&lt;p&gt;With their extensive &lt;a href=&quot;https://developer.salesforce.com/docs/&quot;&gt;developer tools&lt;/a&gt;, you can completely customize the application - build tailor-made user interfaces for employees to streamline workflows, automate complicated business processes, integrate with almost any kind of application, and whatever else you can dream up.&lt;/p&gt;
&lt;p&gt;If you don’t want to do it yourself, check out the &lt;a href=&quot;https://appexchange.salesforce.com/&quot;&gt;AppExchange&lt;/a&gt; for thousands of options that vary from open-source to fully managed subscription apps. You can even check out &lt;a href=&quot;https://appexchange.salesforce.com/appxSearchKeywordResults?keywords=cloudanswers&amp;amp;searchType=simpleSearch&quot;&gt;the apps that we’ve published&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;integrate-with-external-platforms&quot;&gt;&lt;strong&gt;Integrate with external platforms&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Salesforce can integrate various external apps with &lt;a href=&quot;https://help.salesforce.com/articleView?id=sf.integrate_what_is_api.htm&amp;amp;type=5&quot;&gt;their suite of APIs&lt;/a&gt; (application programming interfaces) plus an extensive network of partners that provide integration tools and pre-built connectors. The AppExchange is a great place to start - just search for the app you want to integrate and see if there are pre-built integrations.&lt;/p&gt;
&lt;h2 id=&quot;powerful-reporting-tools&quot;&gt;&lt;strong&gt;Powerful reporting tools&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;With both the standard &lt;strong&gt;Lightning Reports&lt;/strong&gt; and &lt;strong&gt;Dashboards&lt;/strong&gt; and the optional &lt;strong&gt;Einstein Analytics&lt;/strong&gt;, Salesforce offers several reporting tools. The analytics and reporting can be real-time, and you can customize based on the needs and company goals. If Salesforce is not covering your reporting needs, don’t worry. There are many reporting partners and free dashboard packs on &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000000pvspEAA&quot;&gt;the AppExchange&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;collaborate-easily&quot;&gt;&lt;strong&gt;Collaborate easily&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Salesforce Chatter&lt;/strong&gt; is a built-in communication tool. It allows employees to collaborate at work to network, share files, solve problems, share ideas, and exchange status updates. Since it’s built-in to the system, people can collaborate directly on records that they’re working on, another way to make sure all the information is in one place. With Chatter, you can follow up on projects, inform people about events, project status, and all in a private and secure environment.&lt;/p&gt;
&lt;p&gt;Salesforce also recently spent a large sum acquiring &lt;strong&gt;Slack&lt;/strong&gt;, one of the more prevalent business chat platforms. We are excited to see how they incorporate the technology.&lt;/p&gt;
&lt;h2 id=&quot;marketing-made-easier&quot;&gt;&lt;strong&gt;Marketing made easier&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Marketers handle various responsibilities every day, like creating and editing tasks, tracking prospects, following on offers, managing customer relationships, and supporting customers. As a result of all the repetitive tasks, they lose focus on core tasks like campaign building and optimizing, lead qualification, lead nurturing, sending follow-up, etc. By integrating marketing automation with Salesforce, marketers can easily manage the tasks mentioned above, and they get time to concentrate on their goals and objectives.&lt;/p&gt;
&lt;h2 id=&quot;great-for-non-profits&quot;&gt;&lt;strong&gt;Great for non-profits&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Salesforce for non-profits has many inviting aspects. One of them is the price: for qualified organizations, it is for free for up to 10 users and significantly discounted for more users or add-on products. And no matter how big or small an organization is, Salesforce Nonprofit Success Pack is the perfect tool for any non-profit institution. It can be customized and configured to help track campaigns, accounts, donor contacts, opportunities, and more.&lt;/p&gt;
&lt;p&gt;Salesforce is also a big proponent for non-profits. They operate an organization called the &lt;a href=&quot;https://www.salesforce.com/company/philanthropy/salesforce-foundation/&quot;&gt;Salesforce Foundation&lt;/a&gt; that focuses on education, workforce development, and community projects. They also started the 1% pledge to donate 1% of equity, time, product, and profit to non-profit projects and encourage other businesses to do the same.&lt;/p&gt;
&lt;h2 id=&quot;security-is-a-priority&quot;&gt;&lt;strong&gt;Security is a priority&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;One of the most valuable assets that each company has is &lt;strong&gt;data,&lt;/strong&gt; in many cases sensitive customer data. No matter what software or tool an organization chooses, one question should always come up: is it secure? With the industry’s best security tools, extensive options to customize your system settings, and the comprehensive security requirements for AppExchange apps, the answer with Salesforce is a resounding YES. Data security is and always has been one of the priorities for Salesforce.&lt;/p&gt;
&lt;h2 id=&quot;mobile-crm&quot;&gt;&lt;strong&gt;Mobile CRM&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Salesforce was one of the first companies that brought mobile CRM to the market. So no matter where you are, you can use the full potential of Salesforce on your phone.&lt;/p&gt;
&lt;p&gt;The list goes on and on. Since Salesforce began over 22 years ago, it has helped many businesses better manage their customers and grow.If you’d like to hear additional reasons as to why Salesforce might be the right CRM provider for you, or about any of the services CloudAnswers provides, reach out to us at &lt;a href=&quot;mailto:help@cloudanswers.com&quot;&gt;help@cloudanswers.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Read also &lt;a href=&quot;https://cloudanswers.com/7-popular-reporting-apps-for-salesforce/&quot;&gt;7 Popular Reporting Apps for Salesforce&lt;/a&gt; and &lt;a href=&quot;https://cloudanswers.com/why-business-owners-should-know-appexchange/&quot;&gt;Why business owners should know AppExchange?&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Salesforce Power Admin]]></title><description><![CDATA[Salesforce Admin is the captain for maintaining the business structure and data quality, helping users develop reports, adding fields, running backups.]]></description><link>https://cloudanswers.com/blog/salesforce-power-admin</link><guid isPermaLink="false">/blog/salesforce-power-admin</guid><pubDate>Tue, 26 Jan 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/supporting-pc-SF-power-admin.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;&lt;strong&gt;Salesforce&lt;/strong&gt; is an essential tool for many companies. The companies that implement &lt;a href=&quot;http://www.salesforce.com&quot;&gt;Salesforce&lt;/a&gt; in their business don’t need any additional infrastructure, as it is a cloud-based service. You are not the owner of the infrastructure, but the data you store is a crucial resource, and it has a high value. So you need a professional administration crew.&lt;/p&gt;
&lt;p&gt;Satisfied, productive users depend upon the system framework and data quality, and that means the Salesforce admins can’t be random. To be a &lt;strong&gt;Salesforce admin&lt;/strong&gt; is not an easy task. They must be familiar with every tool and every platform that is pertaining to Salesforce.&lt;/p&gt;
&lt;p&gt;Salesforce admins are responsible for tasks ranging from helping users develop reports and reset passwords to maintaining data quality, adding fields, and managing backups, among many others.&lt;/p&gt;
&lt;p&gt;So have a look at the infographic below where we gather the most important information about the Salesforce admins.Salesforce Administrator is the captain for maintaining the business structure in Salesforce. So, we can imagine the importance of a Salesforce Administrator’s responsibilities and duties for executing a successful business.Read also &lt;a href=&quot;https://cloudanswers.com/7-popular-reporting-apps-for-salesforce/&quot;&gt;&lt;strong&gt;7 Popular Reporting Apps for Salesforce&lt;/strong&gt;&lt;/a&gt;image: /uploads/&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Hack Test.loadData() to accept relational data]]></title><link>https://cloudanswers.com/blog/hack-test-loaddata-to-accept-relational-data</link><guid isPermaLink="false">/blog/hack-test-loaddata-to-accept-relational-data</guid><pubDate>Tue, 19 Jan 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/supporting-pc2.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;As a Salesforce Developer, you have encountered this scenario many times: Your unit tests depend on objects with lookup values populated. This means multiple DML statements during test setup and tests that are often broken when admins change validation rules or process builders.&lt;/p&gt;
&lt;p&gt;This will show you how to make tests with complex data more reliable by using &lt;em&gt;Test.loadData&lt;/em&gt; to load records &lt;strong&gt;that are linked to each other&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;how-most-people-use-testloaddata&quot;&gt;How most people use Test.loadData()&lt;/h2&gt;
&lt;p&gt;You might be using &lt;em&gt;Test.loadData&lt;/em&gt; method to load records from Static Resources (&lt;a href=&quot;https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_testing_load_data.htm&quot;&gt;Official salesforce docs on Test.loadData&lt;/a&gt;), but the official docs don’t explain how to link records.&lt;/p&gt;
&lt;p&gt;Most often, developers fix this by doing DML on the records after running Test.loadData(). This, unfortunately, erodes the benefit of even using this test data harness because now you have &lt;em&gt;some&lt;/em&gt; test setup data in CSV and &lt;em&gt;some&lt;/em&gt; in Apex.&lt;/p&gt;
&lt;h2 id=&quot;how-to-fix-it-populate-ids-in-your-test-data-files&quot;&gt;How to fix it: Populate IDs in your test data files&lt;/h2&gt;
&lt;p&gt;The key to populating relationship fields through Test.loadData method is setting the value of the lookup field to the Id of the linked record. This might sound obvious, but you’re probably wondering “how will I know the id??”.&lt;/p&gt;
&lt;p&gt;This is the part that needs a bit of explaining: Test.loadData will accept ID values for your data, so you can know in advance what the IDs will be! Even better, is that they don’t have to be valid salesforce IDs so that you can invent your own IDs (any text) so you can use values that are easier to read for you, the developer. I have used integer values for Ids and they worked well for me.&lt;/p&gt;
&lt;p&gt;The main gotcha here is that all IDs must be unique across all static resources in the transaction. If you load Accounts and Opportunities, then you can’t have an Opportunity with ID=1 and Account with ID=1, they must be globally unique IDs.&lt;/p&gt;
&lt;h2 id=&quot;a-real-world-example&quot;&gt;A Real-World Example&lt;/h2&gt;
&lt;p&gt;Here is a walk-through to explain the above point further:&lt;/p&gt;
&lt;p&gt;Let’s try to understand this with help of an example using the above schema. and say I want to create:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;One Account record.&lt;/li&gt;
&lt;li&gt;One Project record and link this record to the Account record created in step 1.&lt;/li&gt;
&lt;li&gt;Three Milestone records and link these records to the Project record created in step 2.&lt;/li&gt;
&lt;li&gt;Two Milestone Task records for each of the three Milestone records created in Step 3. Also, link them to both the Milestone records from Step 3 and the Project record from Step 2.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;setup-data-and-populate-relationship-fields&quot;&gt;Setup Data and Populate Relationship Fields&lt;/h2&gt;
&lt;p&gt;As we know, we load the data from CSV files uploaded as Static Resources using Test.loadData method, so we need to setup CSV files with data that we will upload as Static Resources.&lt;/p&gt;
&lt;p&gt;Here is how the data looks like:&lt;/p&gt;
&lt;p&gt;Image 1: Account record with Id field value set an Integer&lt;/p&gt;
&lt;p&gt;Image 2: Project record with Account__c lookup set to the Id the record from Image 1&lt;/p&gt;
&lt;p&gt;Image 3: Milestone records with Project__c lookup set to the Id of the record from Image 2&lt;/p&gt;
&lt;p&gt;Image 4: Milestone Task records having unique Id for each record; Project__c field set to the Id of record from Image 2 and Milestone__c field set to the Id of records from Image 3.&lt;/p&gt;
&lt;p&gt;The data shown in the above screenshots are available in this &lt;a href=&quot;https://docs.google.com/spreadsheets/d/1uGXls7S6JIbgBB31DVJZ5AEKNQP6liW3eGyE3uklWaI/edit?usp=sharing&quot;&gt;Google Spreadsheet&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Key things to note in the above screenshots:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;All the records (even for different type of objects) have a unique Integer value for Id field.&lt;/li&gt;
&lt;li&gt;Relationship fields are set to Id field values of that particular type of object.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Create Static Resources&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The next step is to export the above data into different CSV fields and upload them into your Org as Static Resources.&lt;/p&gt;
&lt;p&gt;Here is how it looks like in my dev org:&lt;/p&gt;
&lt;h2 id=&quot;loading-test-data&quot;&gt;Loading Test Data&lt;/h2&gt;
&lt;p&gt;We have setup the data, the relationship fields, and uploaded the CSV files as Static Resources. Now, we can start using this data in our test classes. All the source code including object schema, static resources, and test class is available in this &lt;a href=&quot;https://github.com/cloudanswers/populating-relationship-fields&quot;&gt;GitHub repo&lt;/a&gt; for you to try out in your Org.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;We can populate relationship fields with Test.loadData to simplify the apex test setup and make our tests more reliable. We need to make sure that all records (across all different tables) have unique IDs, and make sure the ID is already loaded in a previous step.&lt;/p&gt;
&lt;p&gt;If you have a scaling challenge or need help optimizing your salesforce systems, we can help! Contact us at &lt;a href=&quot;mailto:&amp;#x68;&amp;#101;&amp;#x6c;&amp;#112;&amp;#x40;&amp;#99;&amp;#x6c;&amp;#111;&amp;#x75;&amp;#x64;&amp;#97;&amp;#110;&amp;#115;&amp;#x77;&amp;#x65;&amp;#x72;&amp;#x73;&amp;#46;&amp;#x63;&amp;#x6f;&amp;#109;&quot;&gt;&amp;#x68;&amp;#101;&amp;#x6c;&amp;#112;&amp;#x40;&amp;#99;&amp;#x6c;&amp;#111;&amp;#x75;&amp;#x64;&amp;#97;&amp;#110;&amp;#115;&amp;#x77;&amp;#x65;&amp;#x72;&amp;#x73;&amp;#46;&amp;#x63;&amp;#x6f;&amp;#109;&lt;/a&gt; or chat with us.&lt;/p&gt;
&lt;p&gt;Read also &lt;a href=&quot;https://cloudanswers.com/custom-domains-and-free-ssl-on-force-com-sites/&quot;&gt;Custom domains and free SSL on Force.com Sites&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Deploy a Hasura GraphQL API for Salesforce in minutes]]></title><description><![CDATA[Salesforce API limits can stop you from using Salesforce data. Get around that, by using open-source Hasura GraphQL API for Salesforce.]]></description><link>https://cloudanswers.com/blog/deploy-a-hasura-graphql-api-for-salesforce-in-minutes</link><guid isPermaLink="false">/blog/deploy-a-hasura-graphql-api-for-salesforce-in-minutes</guid><pubDate>Tue, 12 Jan 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/hasura-supporting-pc.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Salesforce API limits can prevent you from using Salesforce data at scale in your other public web projects. As a Salesforce customer, you only get 1,000 api calls per user per 24h period when you use the Salesforce APIs directly.&lt;/p&gt;
&lt;p&gt;This article will show you how to get around that by using the &lt;strong&gt;open-source Hasura GraphQL engine in front of Salesforce&lt;/strong&gt; to maximize developer happiness and data throughput.&lt;/p&gt;
&lt;h2 id=&quot;overview&quot;&gt;Overview&lt;/h2&gt;
&lt;p&gt;We will create a GraphQL API for Salesforce using Heroku and the open-source version of Hasura. You need access to Heroku and Salesforce to make this work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;The following steps will take you between 10-30 minutes depending on your skill level.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;step-1-launch-a-new-hasura-heroku-instance&quot;&gt;Step 1: Launch a new Hasura Heroku instance&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Time Required: 2 minutes&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is the fastest way to getting everything configured because the people at Hasura already prepared a &lt;a href=&quot;https://github.com/hasura/graphql-engine-heroku&quot;&gt;heroku deploy button based on their docker images&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Click this link to deploy the app to Heroku:&lt;/strong&gt; &lt;a href=&quot;https://heroku.com/deploy?template=https://github.com/hasura/graphql-engine-heroku&quot;&gt;https://heroku.com/deploy?template=https://github.com/hasura/graphql-engine-heroku&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Just &lt;a href=&quot;https://xkcd.com/910/&quot;&gt;pick name&lt;/a&gt; and click “Deploy”:&lt;/p&gt;
&lt;h2 id=&quot;step-2-heroku-connect&quot;&gt;Step 2: Heroku Connect&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Time Required: 5–10 minutes&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The Heroku marketplace has an add-on called “Heroku Connect” (Salesforce acquired the company that offers this app, so it is officially supported and sold by Salesforce). The free level of Heroku Connect allows for 10,000 records which has enough space for many use cases. The paid levels don’t have prices listed, but they’re about $4k/mo from the recent deals I’ve seen done.&lt;/p&gt;
&lt;p&gt;“enterprise” means you need to talk to *humans* to get the prices :)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Add the free version:&lt;/strong&gt; In your app, click the “Resources” tab at the top, then search and add “Heroku Connect”:After the add-on is installed you will connect (OAuth) to your Salesforce instance and select a table to synchronize. It’s self-explanatory for many users, but the official trailhead has explicit steps if you need them: &lt;a href=&quot;https://trailhead.salesforce.com/content/learn/projects/develop-heroku-applications/set-up-heroku-connect#create-heroku-mappings&quot;&gt;https://trailhead.salesforce.com/content/learn/projects/develop-heroku-applications/set-up-heroku-connect#create-heroku-mappings&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In my example I mapped a custom object in Salesforce called “Content__c”:&lt;/p&gt;
&lt;p&gt;Table mapping example in Heroku&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Do NOT enable “Database -&amp;gt; Salesforce” unless you understand the consequences!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;step-3-hasura-table-tracking&quot;&gt;Step 3: Hasura Table Tracking&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Time Required: 5 minutes&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The last step is to tell Hasura to expose our newly mapped table!&lt;/p&gt;
&lt;p&gt;Load the Heroku Hasura app in your browser, click “Data” at the top, switch the schema to “Salesforce” and then click “track” next to your object:&lt;/p&gt;
&lt;p&gt;Large, vibrantly colored arrows on a screenshot, how condescending!&lt;/p&gt;
&lt;p&gt;With the table “tracked” we can now query it from GraphQL, our setup is done!&lt;/p&gt;
&lt;h2 id=&quot;use-the-api&quot;&gt;Use the API&lt;/h2&gt;
&lt;p&gt;Switch back to the “GraphQL” tab, select your object in the left panel named “explorer” and execute live queries of your salesforce data:&lt;/p&gt;
&lt;p&gt;This UI shown above is just a wrapper on top of the GraphQL APIs that are provided, which means that integrating into existing projects is a snap:You now have a scalable API: Your limits on this setup are probably closer to 1k requests per &lt;strong&gt;second&lt;/strong&gt; instead of 1k per day (the salesforce limit). And even better, your developers can use GraphQL!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This post is part of a series on how to leverage your existing Salesforce data in external tools: &lt;a href=&quot;https://cloudanswers.com/build-fast-static-sites-with-salesforce-and-netlify/&quot;&gt;https://cloudanswers.com/build-fast-static-sites-with-salesforce-and-netlify/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Avoid the Salesforce Data Storage Limit]]></title><description><![CDATA[Use the free Google Drive and liberate your files in Salesforce by an CloudAnswers Google Drive Integration App. Avoid salesforce data storage limit.]]></description><link>https://cloudanswers.com/blog/avoid-the-salesforce-data-storage-limit</link><guid isPermaLink="false">/blog/avoid-the-salesforce-data-storage-limit</guid><pubDate>Wed, 06 Jan 2021 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/liberate_files_sf2.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;The &lt;a href=&quot;https://help.salesforce.com/articleView?id=admin_monitorresources.htm&amp;amp;type=5&quot;&gt;Salesforce Data Storage Limits&lt;/a&gt; are allocated &lt;strong&gt;10GB max&lt;/strong&gt; for data storage, plus incrementally added user storage.&lt;/p&gt;
&lt;p&gt;Unlike Google Drive, which is used by so many teams and users, where the available data storage counts for the uploaded document files only. Salesforce in comparison also is counting in site assets, like Email messages, Accounts, Tasks and more into the data storage limit.&lt;/p&gt;
&lt;p&gt;Depending on to which extend you are setting up your Salesforce space, this can shrink the available space for your documents significantly and faster than expected.&lt;/p&gt;
&lt;p&gt;While the default &lt;a href=&quot;https://help.salesforce.com/articleView?id=collab_files_size_limits.htm&amp;amp;type=5&quot;&gt;file size limit in Salesforce&lt;/a&gt; for attachments is 25 MB, on Google Drive we’re starting with 50 MB for text documents, up 5 TB for ‘other’ files like PDF, video, zip and similar. Google offers you 15 GB free data storage out of the box, a generous 5 GB more than Salesforce.&lt;/p&gt;
&lt;h2 id=&quot;how-to-avoid-the-salesforce-data-storage-limit&quot;&gt;&lt;strong&gt;How to avoid the Salesforce Data Storage Limit?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;One option is to &lt;strong&gt;purchase additional data storage space from Salesforce.&lt;/strong&gt; Another way of upgrading is to take advantage of higher per-user data storage limits, but this applies only to Performance and Unlimited edition users. In any way, it results in a decent amount of cost.&lt;/p&gt;
&lt;p&gt;If that doesn’t seem the right solution for you. Our recommendation is to use &lt;strong&gt;the free space offered by Google Drive and liberating your files&lt;/strong&gt; by an external application, like for instance our &lt;a href=&quot;http://powerpack.cloudanswers.com/en/articles/582104-google-drive-integration&quot;&gt;CloudAnswers Google Drive Integration&lt;/a&gt;, to incorporate Google Drive into Salesforce.&lt;/p&gt;
&lt;h2 id=&quot;this-plugin-can-help-you-if-you&quot;&gt;&lt;strong&gt;This plugin can help you if you:&lt;/strong&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Have files bigger than the size limit in Salesforce&lt;/li&gt;
&lt;li&gt;Have too many files to store in salesforce (storage limits)&lt;/li&gt;
&lt;li&gt;Want to share Google Drive files across other teams (eg. contracts/legal)&lt;/li&gt;
&lt;li&gt;Like the convenience of Google Drive because you can view and edit documents on your phone or desktop easily&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;what-it-does&quot;&gt;What it does&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Allows you to drag and drop files from your desktop into a salesforce object to make it easier to attach files&lt;/li&gt;
&lt;li&gt;Creates a Google Drive folder for each record automatically keeping you more organized&lt;/li&gt;
&lt;li&gt;Frees up Salesforce storage&lt;/li&gt;
&lt;li&gt;Allows collaborators without additional salesforce licenses&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This plugin can help you to overcome the size and storage limits in Salesforce. So it actually can turn into a real cost saver.&lt;/p&gt;
&lt;p&gt;Read also the article &lt;a href=&quot;https://cloudanswers.com/effective-data-storage-in-salesforce-for-every-business-size/&quot;&gt;Effective data storage in Salesforce for every business size&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Salesforce Lightning components overview]]></title><description><![CDATA[What is Salesforce Lightning? Salesforce Lightning is a component-based framework for app development from Salesforce.com that is designed to simplify processes for business users, who typically do not have programming experience.Lightning contains a set of tools and technologies behind a significant upgrade to the Salesforce1 Platform (formal App Cloud), which is the Salesforce mobile app development platform.]]></description><link>https://cloudanswers.com/blog/salesforce-lightning-components-overview</link><guid isPermaLink="false">/blog/salesforce-lightning-components-overview</guid><pubDate>Tue, 15 Dec 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/lightning-components-supporting-pc.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;There’s a lot of noise around Salesforce Lightning Components usage for &lt;strong&gt;Salesforce App&lt;/strong&gt; solutions among developers these days.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Salesforce Lightning&lt;/strong&gt; and Lightning Components were created as an answer to the rise in popularity of both mobile device use and responsive web development. And one thing we can tell you, the possibilities of what you can develop with Salesforce Lightning are endless.&lt;/p&gt;
&lt;h2 id=&quot;what-is-salesforce-lightning&quot;&gt;&lt;strong&gt;What is Salesforce Lightning?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Salesforce Lightning&lt;/strong&gt; is a component-based framework for app development from &lt;a href=&quot;https://searchcustomerexperience.techtarget.com/definition/Salesforcecom&quot;&gt;Salesforce.com&lt;/a&gt; that is designed to simplify processes for business users, who typically do not have programming experience.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lightning&lt;/strong&gt; contains a set of tools and technologies behind a significant upgrade to the Salesforce1 Platform (formal App Cloud), which is the Salesforce mobile app development platform.&lt;/p&gt;
&lt;p&gt;The main features of Lightning are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Experience&lt;/strong&gt;, a graphical user interface (GUI) that is optimized for web speed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lightning App Builder&lt;/strong&gt;, which provides drag and drop possibilities to enable seamless app creation and customization.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lightning Component Framework&lt;/strong&gt;, which includes tools and extensions that empower the development of reusable components and standalone apps and also customization of the Salesforce1 Mobile App.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://searchcustomerexperience.techtarget.com/definition/Salesforce-AppExchange&quot;&gt;&lt;strong&gt;AppExchange&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;for Components&lt;/strong&gt;, where you find components that are available in the App Builder.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Design System&lt;/strong&gt;, which offers style guides and user experience best practices for app development.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lightning Connect&lt;/strong&gt;, an integration tool that makes it easier for Force.com apps to consume data from any external source that conforms to the OData specification&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;what-are-lightning-components&quot;&gt;&lt;strong&gt;What are Lightning Components?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Lightning Components&lt;/strong&gt; are a user interface (&lt;strong&gt;UI&lt;/strong&gt;) framework that is used to create attractive applications for desktop and mobile technologies. Lightning Components are self-contained and reusable units of an application.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Salesforce Admins&lt;/strong&gt; deploy these components to construct single-page web applications that provide an end-to-end experience on the platform for a variety of functions.&lt;/p&gt;
&lt;p&gt;It is worth to remember that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lightning components have .cmp extensions.&lt;/li&gt;
&lt;li&gt;Lightning components are based on the concept of web components.&lt;/li&gt;
&lt;li&gt;It uses Apex, JavaScript, Html, and CSS to build the Salesforce lightning app.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Lightning Components can be very easily created, divided, and integrated with other components, which lets you create highly customized pages. Instead of just creating separate components throughout the application, developers can extend lightning web components, allowing new components to be built on top of one another.&lt;/p&gt;
&lt;h2 id=&quot;3-types-of-lightning-components&quot;&gt;&lt;strong&gt;3 Types of Lightning Components&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;There are three different types of Lightning Components you should know about.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Standard Lighting Components&lt;/strong&gt; These come pre-installed in your salesforce object page layouts. You can hide them, or choose not to use them, but you can’t get rid of them. That’s why they are called Standard Lighting Components.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Custom Developed Lighting Components&lt;/strong&gt; These are advanced lightning components and they are developed based on custom needs of the organization.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AppExchange Lightning Components&lt;/strong&gt; Some of the components you might need, may have already been built and are available in the AppExchange marketplace. You just need to install them, then drag and drop them into the space you want to use it.&lt;/p&gt;
&lt;h2 id=&quot;lightning-component-framework&quot;&gt;&lt;strong&gt;Lightning Component Framework&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;It&amp;#39;s a structure used for building single-page applications with dynamic, responsive User Interface for Lightning Platform applications.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Structure of Lightning Component&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In a nutshell Lightning Web Components are just custom HTML elements that are built using HTML, JavaScript and CSS on the front end with the ability to connect to Apex on the backend as a controller. The great thing is that both Lightning Web Components and Aura Components can coexist on the same page.Once working with the lightning component framework you will notice that it has many advantages. Here are a few:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Salesforce Lightning framework helps to build and develop applications faster.&lt;/li&gt;
&lt;li&gt;These components can be shared with other Salesforce users.&lt;/li&gt;
&lt;li&gt;This Lightning framework supports all browser technologies like HTML5, CSS, and more.&lt;/li&gt;
&lt;li&gt;It offers more user interaction.&lt;/li&gt;
&lt;li&gt;It used JSON to exchange data between the server and the client.&lt;/li&gt;
&lt;li&gt;It provides reusability with responsive and attractive designs.&lt;/li&gt;
&lt;li&gt;It provides an attractive user interface.&lt;/li&gt;
&lt;li&gt;This framework helps in building different apps for mobile devices and desktop purposes.&lt;/li&gt;
&lt;li&gt;It helps in applications fast performance.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;how-to-start-building-lighting-components&quot;&gt;&lt;strong&gt;How to start building lighting components?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;To create Salesforce Lightning Components, you must:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Log into your Salesforce developer account and navigate to &lt;strong&gt;Developer Console&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then go to &lt;strong&gt;File | New | Lightning Component.&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Name the lightning component with your desired name, describe the component. and click on the Save button.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add component configurations to the new component. You can select as many options in the Component Configuration section as you wish&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Submit&lt;/strong&gt; to create the component.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;where-you-can-use-lightning-components&quot;&gt;&lt;strong&gt;Where You Can Use Lightning Components&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;With Lightning, the CRM software is responding to demands for a faster, simpler application development process and more streamlined cycles between IT, business, and clients. You can use Lightning components to customize your Salesforce org in many different ways. You can use it to create stand-alone apps that are hosted on Salesforce.&lt;/p&gt;
&lt;p&gt;Once you begin to understand Lightning Components you will begin to better understand Salesforce itself. Soon you will realize that you can pretty much do anything in Salesforce.&lt;/p&gt;
&lt;p&gt;If you need help with &lt;strong&gt;Salesforce Lightning Components Builder&lt;/strong&gt; or have something a little more complex that might require some advanced developer knowledge? We can help. Contact us at &lt;a href=&quot;mailto:help@cloudanswers.com&quot;&gt;help@cloudanswers.com&lt;/a&gt; and let us know about your project.&lt;/p&gt;
&lt;p&gt;Read also &lt;a href=&quot;https://cloudanswers.com/how-to-use-lightning-components-in-flows/&quot;&gt;How to use Lightning Components in Flows&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Custom domains and free SSL on Force.com Sites]]></title><description><![CDATA[You are using a force.com site with a custom domain, but browsers are now preferring SSL (https) and users might even be warned if they visit your force.com site if it doesn’t use SSL. Built a custom domain and free SSL on Force.com - in this article we show you how]]></description><link>https://cloudanswers.com/blog/custom-domains-and-free-ssl-on-force-com-sites</link><guid isPermaLink="false">/blog/custom-domains-and-free-ssl-on-force-com-sites</guid><pubDate>Fri, 11 Dec 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/force_com_grey-logo.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;This article is for running a force.com site to get data in or out of your salesforce database.&lt;/p&gt;
&lt;p&gt;You might already be using a force.com site with a custom domain, but browsers are now preferring SSL (https) and users might even be warned if they visit your force.com site if it doesn’t use SSL.&lt;/p&gt;
&lt;h2 id=&quot;create-an-ssl-certificate&quot;&gt;Create an SSL Certificate:&lt;/h2&gt;
&lt;h2 id=&quot;download-the-certificate-signing-request-csr&quot;&gt;Download the Certificate Signing Request (CSR)&lt;/h2&gt;
&lt;p&gt;This will download a text file to your computer. Make sure you can open it in notepad (or a text editor of your choice) because later you will need to copy and paste the content.&lt;/p&gt;
&lt;h2 id=&quot;create-an-ssl-certificate-with-zerossl&quot;&gt;Create an SSL Certificate with ZeroSSL&lt;/h2&gt;
&lt;p&gt;Sign up for a free account at &lt;a href=&quot;https://zerossl.com/?fpr=james37&quot;&gt;ZeroSSL.com&lt;/a&gt; which includes 3 free SSL certificates. Once you reach the dashboard, click “New Certificate”:&lt;/p&gt;
&lt;p&gt;At the step “CSR &amp;amp; Contact” you should “paste existing csr” instead of creating a new one:After you’ve finalized your order and confirmed you own the domain name, you will be able to download the certificate file (zip):&lt;/p&gt;
&lt;h2 id=&quot;combine-certificate-chain&quot;&gt;Combine Certificate Chain&lt;/h2&gt;
&lt;p&gt;The zip file you downloaded from ZeroSSL contains two files: certificate.crt and ca_bundle.crt. These are both text files and you need to copy and paste them together like this ( certificate.crt on top, ca_bundle.crt on bottom).&lt;/p&gt;
&lt;p&gt;Here I’m using Sublime Text, but you can use Notepad.exe, VSCode, or any editor you like:&lt;/p&gt;
&lt;h2 id=&quot;upload-certificate-to-salesforce&quot;&gt;Upload Certificate to Salesforce&lt;/h2&gt;
&lt;p&gt;The combined certificate can now be uploaded to your certificate record in salesforce (where we generated the CRT earlier):&lt;/p&gt;
&lt;p&gt;The upload form will reject your certificate file if you copy and paste the values in the wrong order, so you will know immediately if you did it right.&lt;/p&gt;
&lt;h2 id=&quot;update-your-domain-from-your-forcecom-site&quot;&gt;Update your domain from your force.com site&lt;/h2&gt;
&lt;p&gt;If you are already using a custom domain, then your DNS should already be correct, but double check in case it’s an old domain.&lt;/p&gt;
&lt;h2 id=&quot;wait-for-provisioning-status&quot;&gt;Wait for Provisioning Status&lt;/h2&gt;
&lt;p&gt;This step can be as fast as 30 mins, but can also take hours…&lt;/p&gt;
&lt;p&gt;Wait for the “Activate” button to be clickable, then click it to deploy the certificate. The “Provisioning Status” will change from “Awaiting Custom URL” to “Provisioning”.&lt;/p&gt;
&lt;h2 id=&quot;update-your-forcecom-site-to-prefer-https&quot;&gt;Update your force.com site to prefer https&lt;/h2&gt;
&lt;p&gt;At this point, your domain will start to show with HTTPS and you’ll get that nice little pad lock on the address bar!If you have any questions or need help in marching Salesforce to your business needs, contact us at &lt;a href=&quot;mailto:help@cloudanswers.com&quot;&gt;help@cloudanswers.com&lt;/a&gt; or by email or phone  &lt;a href=&quot;https://cloudanswers.com/contact/&quot;&gt;www.cloudanswer.com/contact/&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Effective data storage in Salesforce for every business size]]></title><description><![CDATA[In today’s digital times, the growth and the future of organizations are highly dependent on their policy to collect, store, retain, access, and use data. What’s more, this enormous volume of data is coming with plenty of challenges like high storage costs, reduced application performance, quality issues, but also security and scalability.Sometimes, when working with Salesforce, the amount of data may grow too big. And for this reason, you have to come up with the right ways to handle such numbers of data, to avoid a degradation in Salesforce performance by optimizing Salesforce data storage.]]></description><link>https://cloudanswers.com/blog/effective-data-storage-in-salesforce-for-every-business-size</link><guid isPermaLink="false">/blog/effective-data-storage-in-salesforce-for-every-business-size</guid><pubDate>Tue, 01 Dec 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/supporting-pc-e1607682719323.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;In today’s digital times, the growth and the future of organizations are highly dependent on their policy to collect, store, retain, access, and use data. What’s more, this enormous volume of data is coming with plenty of challenges like high storage costs, reduced application performance, quality issues, but also security and scalability.&lt;/p&gt;
&lt;p&gt;Sometimes, when working with &lt;strong&gt;Salesforce&lt;/strong&gt;, the amount of data may grow too big. And for this reason, you have to come up with the right ways to handle such numbers of data, to avoid a degradation in Salesforce performance by optimizing Salesforce data storage.&lt;/p&gt;
&lt;p&gt;And in this article, I will show you how to optimize &lt;strong&gt;Salesforce data storage&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;the-salesforce-database&quot;&gt;&lt;strong&gt;The Salesforce database&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Salesforce runs on the Force.com platform, which provides a powerful relational database. In a relational database, data is stored in tables. Each table is created out of any number of columns that represent a type of data (for example date or a number). Each row is a group of related data values. So the database is very much like a spreadsheet.&lt;/p&gt;
&lt;p&gt;In Salesforce a table is named an &lt;strong&gt;&lt;em&gt;object&lt;/em&gt;**&lt;/strong&gt;,** a column is a &lt;strong&gt;&lt;em&gt;field&lt;/em&gt;&lt;/strong&gt;, and a row is a **&lt;em&gt;record&lt;/em&gt;**&lt;em&gt;.&lt;/em&gt; Each object is made up of a number of fields, and the data for that object is stored in records. Objects are associated with each other through certain types of fields.&lt;/p&gt;
&lt;h2 id=&quot;the-salesforce-storage-types&quot;&gt;&lt;strong&gt;The Salesforce storage types&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Salesforce storage contains two category: -&lt;strong&gt;File storage&lt;/strong&gt;, as the name suggests, that’s the space to store files like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Files in attachments&lt;/li&gt;
&lt;li&gt;Files home&lt;/li&gt;
&lt;li&gt;Salesforce CRM Content&lt;/li&gt;
&lt;li&gt;Chatter files, this includes user photos&lt;/li&gt;
&lt;li&gt;Documents tab&lt;/li&gt;
&lt;li&gt;Custom file field on Knowledge articles&lt;/li&gt;
&lt;li&gt;Site.com assets&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;-&lt;strong&gt;Data storage&lt;/strong&gt;, that’s the space to store the records you create and edit in Salesforce like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leads&lt;/li&gt;
&lt;li&gt;Accounts&lt;/li&gt;
&lt;li&gt;Contacts&lt;/li&gt;
&lt;li&gt;Opportunities&lt;/li&gt;
&lt;li&gt;Quotes&lt;/li&gt;
&lt;li&gt;Orders&lt;/li&gt;
&lt;li&gt;Contracts&lt;/li&gt;
&lt;li&gt;Email messages&lt;/li&gt;
&lt;li&gt;Notes&lt;/li&gt;
&lt;li&gt;Tasks and Events&lt;/li&gt;
&lt;li&gt;Custom objects&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;your-data-storage-usage&quot;&gt;&lt;strong&gt;Your data storage usage&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;To understand how your data storage is being used, you will want to analyze it. The analysis of it and File Storage in Salesforce can be executed by looking at which objects are taking the most storage space. To do this, go to Setup&amp;gt;Storage Usage.&lt;/p&gt;
&lt;p&gt;Please note that each record stored in Salesforce has a size of 2 KB. Apart from a few exceptions: :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Person Accounts are 4 KB.&lt;/li&gt;
&lt;li&gt;Campaigns are 8 KB.&lt;/li&gt;
&lt;li&gt;Articles are 4 KB.&lt;/li&gt;
&lt;li&gt;Email Messages are based on the actual size of the email, so a 100 KB email will tie up 100 KB storage.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;how-much-salesforce-storage-do-you-have&quot;&gt;&lt;strong&gt;How much Salesforce storage do You have?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;The amount of storage any customer has in Salesforce depends on their edition and number of users. At a minimum, each Salesforce org gets 1GB of storage. If you are not sure how much data you have available or how much you’re using, you can check this in: &lt;strong&gt;SETUP &amp;gt; Administration &amp;gt; Data &amp;gt; Storage Usage&lt;/strong&gt;.Here is a breakdown of the data storage limits by edition:&lt;/p&gt;
&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;
        &lt;span style={{color: &quot;#2c80c0&quot;}}&gt;&lt;b&gt;SALESFORCE EDITION&lt;/b&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td&gt;
        &lt;span style={{color: &quot;#2c80c0&quot;}}&gt;&lt;b&gt;DATA STORAGE MINIMUM PER ORG&lt;/b&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td&gt;
        &lt;span style={{color: &quot;#2c80c0&quot;}}&gt;&lt;b&gt;DATA STORAGE ALLOCATION PER USER LICENSE&lt;/b&gt;&lt;/span
        &gt;
      &lt;/td&gt;
      &lt;td&gt;
        &lt;span style={{color: &quot;#2c80c0&quot;}}&gt;&lt;b&gt;FILE STORAGE ALLOCATION PER ORG&lt;/b&gt;&lt;/span
        &gt;
      &lt;/td&gt;
      &lt;td&gt;
        &lt;span style={{color: &quot;#2c80c0&quot;}}&gt;&lt;b&gt;FILE STORAGE ALLOCATION PER USER LICENSE&lt;/b&gt;&lt;/span
        &gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;
        &lt;span style={{color: &quot;#000000&quot;}}&gt;&lt;strong&gt;Contact Manager&lt;/strong&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;10 GB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;20 MB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;10 GB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;612 MB&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;
        &lt;span style={{color: &quot;#000000&quot;}}&gt;&lt;strong&gt;Group&lt;/strong&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;10 GB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;20 MB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;10 GB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;612 MB&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;
        &lt;span style={{color: &quot;#000000&quot;}}&gt;&lt;strong&gt;Professional&lt;/strong&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;10 GB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;20 MB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;10 GB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;612 MB&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;
        &lt;span style={{color: &quot;#000000&quot;}}&gt;&lt;strong&gt;Enterprise&lt;/strong&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;10 GB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;20 MB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;10 GB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;2 GB&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;
        &lt;span style={{color: &quot;#000000&quot;}}&gt;&lt;strong&gt;Performance&lt;/strong&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;10 GB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;
        &lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;120 MB&lt;/span&gt;
        &lt;div&gt;&lt;/div&gt;
        &lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;20 MB for Lightning Platform Starter user licenses&lt;/span
        &gt;
      &lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;10 GB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400, color: &quot;#000000&quot;}}&gt;2 GB&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;
        &lt;span style={{color: &quot;#000000&quot;}}&gt;&lt;strong&gt;Unlimited&lt;/strong&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400}}&gt;10 GB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;
        &lt;span style={{fontWeight: 400}}&gt;120 MB&lt;/span&gt;
        &lt;div&gt;&lt;/div&gt;
        &lt;span style={{fontWeight: 400}}&gt;20 MB for Lightning Platform Starter user licenses&lt;/span
        &gt;
      &lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400}}&gt;10 GB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400}}&gt;2 GB&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;
        &lt;span style={{color: &quot;#000000&quot;}}&gt;&lt;strong&gt;Developer&lt;/strong&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400}}&gt;5 MB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400}}&gt;N/A&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400}}&gt;20 MB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400}}&gt;N/A&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;
        &lt;span style={{color: &quot;#000000&quot;}}&gt;&lt;strong&gt;Personal&lt;/strong&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td&gt;
        &lt;span style={{fontWeight: 400}}&gt;20 MB (approximately 10,000 records)&lt;/span
        &gt;
      &lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400}}&gt;N/A&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400}}&gt;20 MB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400}}&gt;N/A&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;
        &lt;span style={{color: &quot;#000000&quot;}}&gt;&lt;strong&gt;Essentials&lt;/strong&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400}}&gt;10 GB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400}}&gt;N/A&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400}}&gt;1 GB&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400}}&gt;N/A&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h6 id=&quot;source-httpshelpsalesforcecomarticleviewidoverview_storagehtmtype5&quot;&gt;Source &lt;a href=&quot;https://help.salesforce.com/articleView?id=overview%5C_storage.htm&amp;amp;type=5&quot;&gt;https://help.salesforce.com/articleView?id=overview\_storage.htm&amp;amp;type=5&lt;/a&gt;&lt;/h6&gt;
&lt;p&gt;NOTE In most cases, the allocation is enforced and records can’t be added once the allocation is exceeded. For active production org, the allocation of big object records is enforced contractually.&lt;/p&gt;
&lt;h2 id=&quot;how-can-you-optimize-your-salesforce-data-storage-plan&quot;&gt;&lt;strong&gt;How can you optimize your Salesforce data storage plan?&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id=&quot;develop-effective-archiving-and-reporting-strategy&quot;&gt;&lt;strong&gt;Develop effective archiving and reporting strategy&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Companies manage millions of records per day across all the Salesforce products. With so much information, it’s crucial to have set up processes for managing data throughout its lifecycle from creation and storage to when it becomes obsolete and deleted.&lt;/p&gt;
&lt;h4 id=&quot;data-management-lifecycle&quot;&gt;Data management lifecycle&lt;/h4&gt;
&lt;h3 id=&quot;choose-a-data-management-tool&quot;&gt;&lt;strong&gt;Choose a Data Management Tool&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Salesforce has plenty of tools that are helping companies with big data volumes to be managed. Examples of such tools are the Data Storage Optimizer, which was designed for Salesforce.org customers, and big objects, which help Salesforce users to archive their data without the need for an external application.&lt;/p&gt;
&lt;p&gt;In case the Data Storage Optimized is not really fulfilling your needs to go on  #AppExchange, where you find everything that’s needed to manage and store your data.&lt;/p&gt;
&lt;h3 id=&quot;remove-unnecessary-data-manually&quot;&gt;&lt;strong&gt;Remove unnecessary data manually&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;If there is unnecessary data stored in your Salesforce account, you are advised to delete it of course. There are a number of tools that you can use to delete some of your data manually:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Salesforce’s Mass Delete Wizard -&lt;/strong&gt; This is a native deletion wizard for Salesforce. Simply go to Setup&amp;gt;Mass Delete Records to access the tool. This wizard allows you to delete Accounts, Leads, Activities, Contacts, Cases, Solutions, Products, and Reports. Notice that Mass Delete is limited to 250 records and also is limited to the named objects. This feature is available in all Salesforce editions, except for Database.com where it is only available by the API.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ETL (Extract Transform Loading) Tools&lt;/strong&gt; - These tools are mostly used for data migration but they can also be used for data removal. An excellent example of an ETL tool is the Salesforce Data Loader, which can delete data from Salesforce and access all Custom and Standard objects.  It is supported in Enterprise, Performance, Unlimited, Developer, and Database.com editions. There are also other popular ETL tools. Just that most of them are paid and require investment and evaluation to ensure they meet your requirements. These solutions will work for you but are not the most efficient option. You will have to regularly rerun your backup and deletion processes manually and if you make a mistake it could have negative consequences.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;remove-unneeded-data-automatically&quot;&gt;&lt;strong&gt;Remove unneeded data automatically&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;If you don’t want to spend much of your time on removing data, you can automate the process using Storage Helper, which is a native Salesforce AppExchange app.&lt;/p&gt;
&lt;h3 id=&quot;purchase-salesforce-data-storage-space&quot;&gt;&lt;strong&gt;Purchase Salesforce data storage space&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;If you don’t want to delete your data at all, you can decide to buy additional storage space and so keep everything in your archives.&lt;/p&gt;
&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style={{textAlign: &quot;center&quot;}}&gt;
        &lt;strong&gt;&lt;span style={{color: &quot;#2c80c0&quot;}}&gt;Storage type&lt;/span&gt;&lt;/strong&gt;
      &lt;/td&gt;
      &lt;td style={{textAlign: &quot;center&quot;}}&gt;
        &lt;strong&gt;&lt;span style={{color: &quot;#2c80c0&quot;}}&gt;US $&lt;/span&gt;&lt;/strong&gt;
      &lt;/td&gt;
      &lt;td&gt;
        &lt;p style={{textAlign: &quot;center&quot;}}&gt;
          &lt;strong&gt;&lt;span style={{color: &quot;#2c80c0&quot;}}&gt;EUR&lt;/span&gt;&lt;/strong&gt;
        &lt;/p&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;
        &lt;strong&gt;&lt;span style={{color: &quot;#000000&quot;}}&gt;Data Storage&lt;/span&gt;&lt;/strong&gt;
      &lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400}}&gt;$1,500 per 500 MB per year&lt;/span&gt;&lt;/td&gt;
      &lt;td&gt;&lt;span style={{fontWeight: 400}}&gt;€1,407 per 500 MB per year&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style={{textAlign: &quot;center&quot;}}&gt;
        &lt;span style={{color: &quot;#000000&quot;}}&gt;&lt;strong&gt;File Storage&lt;/strong&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td style={{textAlign: &quot;center&quot;}}&gt;
        &lt;span style={{fontWeight: 400}}&gt;$60 per 1GB per year&lt;/span&gt;
      &lt;/td&gt;
      &lt;td&gt;
        &lt;p style={{textAlign: &quot;center&quot;}}&gt;
          &lt;span style={{fontWeight: 400}}&gt;€56 per 1 GB per year&lt;/span&gt;
        &lt;/p&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;But be aware that data storage on Salesforce is expensive. And for good reason. Salesforce needs to put some effort to host the data, in particular: monitor the changes to the data, take a backup and ensure that it is secure.&lt;/p&gt;
&lt;h2 id=&quot;dont-forget-about-the-data-backup&quot;&gt;&lt;strong&gt;Don’t forget about the data backup&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If you do register the data that you don’t need anymore and want to do a cleanup, it is critical that you first backup your data in case you ever need to return it to your org.&lt;/p&gt;
&lt;p&gt;There are applications available on the AppExchange that can backup and restore your data.&lt;/p&gt;
&lt;p&gt;The free available option is the Salesforce Data Export service. It is a monthly export service that will backup your data from the entire org. The data is housed by Salesforce for a period of time, and the backup can be scheduled to run monthly. Salesforce delivers the data as CSV files in case you ever need to bring them back to the org. To do so, download the files to a safe area within 48 hours of a backup running. Please note that these files cover most of your data, but it does not back up everything – It is not covering Account Contact Relations, protected custom settings and other details.&lt;/p&gt;
&lt;p&gt;If you have any questions or need help in marching Salesforce to your business needs, contact us at &lt;a href=&quot;mailto:help@cloudanswers.com&quot;&gt;help@cloudanswers.com&lt;/a&gt; or simply write a message on our chat &lt;a href=&quot;http://www.cloudanswers.com&quot;&gt;www.cloudanswers.com&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Build Fast Static Sites with Salesforce and Netlify]]></title><description><![CDATA[Learn how to get your data from Salesforce into your epicly fast jamstack sites. and see common patterns for quickly extracting key data from salesforce without adding too much complexity and maintenance overheadhow to build your own CMS for dynamic sites using records in salesforce.]]></description><link>https://cloudanswers.com/blog/build-fast-static-sites-with-salesforce-and-netlify</link><guid isPermaLink="false">/blog/build-fast-static-sites-with-salesforce-and-netlify</guid><pubDate>Fri, 27 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/supporting-pc-James-article.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Your developers want to use jamstacks on &lt;a href=&quot;https://netlify.com/&quot;&gt;Netlify&lt;/a&gt; to save time and money, and the rest of your business users are working in Salesforce. This article covers how to build your own CMS for dynamic sites using records in salesforce.&lt;/p&gt;
&lt;h2 id=&quot;data-model&quot;&gt;Data Model&lt;/h2&gt;
&lt;p&gt;Your data model will be up to your business requirements, but this pattern is one we’ve re-used a few times:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/1st.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;If you don’t need multiple sites or complex rules on content types (or just want to start simple) then you can start with a single object named “Content” (Content__c) with a single field named “Body” (rich text).&lt;/p&gt;
&lt;h2 id=&quot;exposing-the-data-to-your-static-site-generator&quot;&gt;Exposing the data to your static site generator&lt;/h2&gt;
&lt;p&gt;This is the complex part because we have many options which should be picked based on your available skill set and how much data is being managed:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a force.com site with an unauthenticated rest API to expose just the data you need. &lt;strong&gt;&lt;em&gt;This API call is not metered&lt;/em&gt;&lt;/strong&gt;, which is where most developers stub their toes dealing with the salesforce platform. (can scale to many, many sites with many thousands of content records per site)&lt;/li&gt;
&lt;li&gt;Create a Heroku app and use Heroku Connect to sync your data to a Postgres Database and then use a tool like &lt;a href=&quot;https://hasura.io/&quot;&gt;https://hasura.io/&lt;/a&gt; to create GraphQL endpoints (handles a lot more records, but Heroku Connect costs $4k per month)&lt;/li&gt;
&lt;li&gt;Create a web service on the platform of your choice which will query salesforce (live via rest API or replicate data to a local database) and expose data in a way your sites need to use (like GraphQL above)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;We will work on future blog posts covering each of these approaches, but if you want a developer to help you work through any of these options please come chat with us at&lt;/em&gt; &lt;a href=&quot;https://www.cloudanswers.com/&quot;&gt;&lt;em&gt;www.cloudanswers.com&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Today’s example will keep it very simple. Our setup will have only the “Content” table and only a Body field (rich text). We will use the “Content Name” as the key the developer can use to include the content on the site. Note here that we’ve even included an image in the rich text field:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/2nd.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;To expose this data (in the simplest way possible) we are using an Unauthenticated Apex Rest Webservice hosted on a Force.com site:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/3rd.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;As a developer, this is what you will see when doing an http get:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/4th.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;&lt;em&gt;very&lt;/em&gt;&lt;/strong&gt; minimal example for illustration only. It will give you a way to edit rich text on a site, add attachments, etc. and a full system will include the full data model pictured above. However, you can also map any other object from your system to be included in your websites: Product2, Order, Case, etc.&lt;/p&gt;
&lt;h2 id=&quot;create-a-static-site&quot;&gt;Create a Static Site&lt;/h2&gt;
&lt;p&gt;Finally, we can start building the site. For our example, we ran the &lt;a href=&quot;https://nextjs.org/learn/basics/create-nextjs-app/setup&quot;&gt;nextjs project starter tutorial&lt;/a&gt; to get a basic site:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/5th.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Because we exposed the content from salesforce as a rest endpoint returning json, it’s very easy to use this data in static site generators like hugo, nextjs, and eleventy.&lt;/p&gt;
&lt;p&gt;In our nextjs example, we added the following 10 lines to the bottom of the index page so when the site is built, the API will be queried and data will be populated into our template:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/6th.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;As soon as you save the file (assuming you’re running &lt;code&gt;npm run dev&lt;/code&gt;) you will see salesforce content show up immediately, not even needing to reload your browser:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/8th.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;You now know how to get your data from Salesforce into your epicly fast jamstack sites.&lt;/li&gt;
&lt;li&gt;You can see common patterns for quickly extracting key data from salesforce without adding too much complexity and maintenance overhead&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;relevant-links&quot;&gt;Relevant Links&lt;/h2&gt;
&lt;p&gt;The example repo with the nextjs site code can be found here: &lt;a href=&quot;https://github.com/cloudanswers/cloudanswerscms-nextjs-example&quot;&gt;https://github.com/cloudanswers/cloudanswerscms-nextjs-example&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The above example site is deployed here: &lt;a href=&quot;https://cloudanswerscms-nextjs-example.netlify.app/&quot;&gt;https://cloudanswerscms-nextjs-example.netlify.app/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Interested in doing something similar? Looking for some salesforce development help? Come chat with us at &lt;a href=&quot;https://www.cloudanswers.com/&quot;&gt;www.cloudanswers.com&lt;/a&gt; or contact us by phone or email at &lt;a href=&quot;https://cloudanswers.com/contact/&quot;&gt;www.cloudanswers.com/contact&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Run Salesforce Reports in Apex]]></title><description><![CDATA[How to describe Salesforce reports in Apex? How to change report filter values through Apex? How to run reports to get data in Apex? Meet the answers in our article]]></description><link>https://cloudanswers.com/blog/run-salesforce-reports-in-apex</link><guid isPermaLink="false">/blog/run-salesforce-reports-in-apex</guid><pubDate>Tue, 24 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/supportic-pc-lightning-something.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;In this article, we are going to look into the following key areas&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How to describe Salesforce reports in Apex&lt;/li&gt;
&lt;li&gt;How to change report filter values through Apex&lt;/li&gt;
&lt;li&gt;How to run reports to get data in Apex&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let&amp;#39;s look into each of these topics one by one.&lt;/p&gt;
&lt;h2 id=&quot;describe-salesforce-reports-in-apex&quot;&gt;&lt;strong&gt;Describe Salesforce Reports in Apex&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;ReportManager&lt;/code&gt;&lt;/strong&gt; class is available in the &lt;code&gt;Reports&lt;/code&gt; namespace in Apex. This class has a method named &lt;strong&gt;&lt;code&gt;describeReport&lt;/code&gt;&lt;/strong&gt; which is used to retrieve the report, report type and extended metadata for a tabular, summary, or matrix report. This method takes the Salesforce Id of the report as an input parameter and returns an instance of &lt;strong&gt;&lt;code&gt;ReportDescribeResult&lt;/code&gt;**&lt;/strong&gt;.**&lt;/p&gt;
&lt;p&gt;// grab a valid report id from your Salesforce org
String reportId = &amp;#39;00O000000000000000&amp;#39;;
Reports.ReportDescribeResult rptDescribe = Reports.ReportManager.describeReport(reportId);&lt;/p&gt;
&lt;p&gt;Once you have an instance of &lt;code&gt;ReportDescribeResult&lt;/code&gt;, you can use the methods of this class to get report metadata. The following code snippet calls a method to retrieve an instance of &lt;code&gt;ReportMetadata&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;// get report metadata
Reports.ReportMetadata rptMetadata = rptDescribe.getReportMetadata();&lt;/p&gt;
&lt;p&gt;You can use the report metadata to do several things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Find out what fields and values you can filter on in the report type.&lt;/li&gt;
&lt;li&gt;Build custom chart visualizations/components by using the metadata information on fields, groupings, detailed data, and summaries.&lt;/li&gt;
&lt;li&gt;Change filters in the report metadata when you run a report.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;get-report-filters-and-change-filter-values-in-apex&quot;&gt;&lt;strong&gt;Get Report Filters And Change Filter Values in Apex&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;We can use the &amp;quot;get&amp;quot; methods in the &lt;code&gt;ReportMetadata&lt;/code&gt; class to access metadata values. We can use the &lt;code&gt;getReportFilters&lt;/code&gt; method to get a list of each custom filter in the report along with the field name, filter operator, and filter value.&lt;/p&gt;
&lt;p&gt;// get report filters
List&amp;lt;Reports.ReportFilter&amp;gt; rptFilters = rptMetadata.getReportFilters();&lt;/p&gt;
&lt;p&gt;Now, we can iterate through the list of filters and change the value for any filter. The code snippet given below does that. For example, my report has a filter with column name = TYPE and I&amp;#39;m going to change the filter value to &lt;em&gt;Prospect&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;// change the report filter value
for(Reports.ReportFilter rptFilter : rptFilters) {
    if(rptFilter.getColumn() == &amp;#39;TYPE&amp;#39;) {
        rptFilter.setValue(&amp;#39;Prospect&amp;#39;);
    }
}&lt;/p&gt;
&lt;p&gt;Please note that &lt;code&gt;getReportFilters&lt;/code&gt; method returns only the CUSTOM filters added to the report. If you want to access the standard filters on the report, you can use &lt;code&gt;getStandardFilters&lt;/code&gt; method or for accessing standard date filter, you can use &lt;code&gt;getStandardDateFilter&lt;/code&gt; method.&lt;/p&gt;
&lt;p&gt;One key thing to note here is that there is no way to access the Role Hierarchy standard filter. Let&amp;#39;s try to understand this with help of an example. Create a report by selecting Opportunities with Quotes and Quote Line Items. Open the Filters panel in Lightning Report Builder, and select some role for Show Me filter as presented below.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Screen-Shot-2020-10-25-at-7.29.15-pm.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Now, when we describe the report, iterate over custom filters, standard filters and standard date filters, we don&amp;#39;t see the role hierarchy filter in the results.&lt;/p&gt;
&lt;h2 id=&quot;get-report-data-in-apex&quot;&gt;&lt;strong&gt;Get Report Data in Apex&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;We have looked into how to describe &lt;strong&gt;Salesforce reports in Apex&lt;/strong&gt; and then change get filters and change their values. Now let’s look into how to run Salesforce reports in Apex to retrieve the report data.&lt;/p&gt;
&lt;p&gt;// get report data
Reports.ReportResults results = Reports.ReportManager.runReport(reportId, rptMetadata);&lt;/p&gt;
&lt;p&gt;Once we have report data, we can utilize it to build chart visualizations, rendering in custom lightning components, and many more as per the use cases.&lt;/p&gt;
&lt;p&gt;Are you trying to export and send Salesforce Report data to Non-Salesforce users? Check out the &lt;a href=&quot;https://cloudanswers.com/report-sender/&quot;&gt;Report Sender tool&lt;/a&gt; and download &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=run_salesforce_reports_in_apex&quot;&gt;it on Appexchange&lt;/a&gt; which is built to take care of that and many other things.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[How to calculate ARR and MRR]]></title><description><![CDATA[How to calculate Annual Recurring Revenue and Monthly Recurring Revenue with Salesforce Data. Focuse on the reports be easily pulled and calculated in Salesforce.]]></description><link>https://cloudanswers.com/blog/how-to-calculate-annual-reporting-revenue-and-monthly-reporting-revenue</link><guid isPermaLink="false">/blog/how-to-calculate-annual-reporting-revenue-and-monthly-reporting-revenue</guid><pubDate>Thu, 05 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/how-to-calculat-emrr-and-arr.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;For any SaaS (Software as a Service) or subscription-based business, measuring growth is key to success. Making decisions based on business data is another important factor for growth. The key data necessary for making decisions is sales data: who, when, and how much customers spend.&lt;/p&gt;
&lt;p&gt;For those businesses, Annual Reporting Revenue (ARR) and Monthly Reporting Revenue (MRR) are perhaps the most important performance metrics. Data that can be easily pulled and calculated in Salesforce.&lt;/p&gt;
&lt;h2 id=&quot;what-is-mrr-and-arr-and-why-are-they-so-important&quot;&gt;&lt;strong&gt;What is MRR and ARR and Why Are They So Important?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Annual Recurring Revenue (ARR)&lt;/strong&gt; gives you the yearly picture of how your business is performing and the revenue being generated. These revenues are predictable, stable, and can be counted on to occur at regular intervals going forward with a relatively high degree of certainty.&lt;/p&gt;
&lt;p&gt;ARR is very useful as a metric that helps organizations that work with Salesforce to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Increase in revenue. Tracking relationship gives valuable insight into what customers want and need, it helps to promote cross-selling and up-selling activities&lt;/li&gt;
&lt;li&gt;Retain top sales managers. Monitoring ARR encourages top management to focus on individual sales areas to judge what’s working and what needs changes. Compensation commensurate with productive job performance results in less turnover and cuts new employee training costs.&lt;/li&gt;
&lt;li&gt;Revenue predictability. Tracking the value of renewals and the cost of lost customers helps businesses to manage expenses and maintain cash resources. It helps to forecast revenue from potential customers.&lt;/li&gt;
&lt;li&gt;Quantifies the company’s growth ARR measures company performance in specific areas, showing where revenue is growing or being lost, and why. Knowing your ARR can help you make better decisions regarding employee assessment, compensation, operational planning, and financing to improve the bottom line and help increase company efficiency.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;how-to-calculate-annual-recurring-revenue&quot;&gt;&lt;strong&gt;How to Calculate Annual Recurring Revenue&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Calculating ARR doesn’t have to be difficult. You can easily do this by analyzing your Salesforce data. Divide the total contract value by the number of years. It includes only subscription fees, not one-time purchases.&lt;/p&gt;
&lt;p&gt;For example, if you consider a company with one customer who took up a two-year subscription for a total amount of $8,000. Calculate the company’s ARR by simply dividing the contract’s total amount by the contract’s length:&lt;/p&gt;
&lt;p&gt;ARR = $8,000 / 2 = $4,000&lt;/p&gt;
&lt;p&gt;Anyway, in real life, businesses, often enough,  organizations prefer breaking down the total number into some individual ARRs. The common Salesforce ARR components might include the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ARR added from new customers&lt;/li&gt;
&lt;li&gt;ARR added from renewals from current customers&lt;/li&gt;
&lt;li&gt;ARR added from upgrades from current customers&lt;/li&gt;
&lt;li&gt;ARR lost from downgrades from current customers&lt;/li&gt;
&lt;li&gt;ARR lost from churned customers&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;the-basic-formula-to-calculate-arr&quot;&gt;The basic formula to calculate ARR&lt;/h3&gt;
&lt;h2 id=&quot;monthly-recurring-revenue-mrr&quot;&gt;&lt;strong&gt;Monthly Recurring Revenue (MRR)&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;MRR measures the total amount of predictable revenue that is expected every month. It’s a way to average your various pricing plans and billing periods into a single, consistent number that you can track the trend of overtime.&lt;/p&gt;
&lt;h3 id=&quot;how-to-calculate-mrr&quot;&gt;&lt;strong&gt;How to calculate MRR?&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Calculating monthly recurring revenue on a high level is straight forward.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MRR = # of customers * average billed amount&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So 10 customers paying you an average of $100 per month would mean an MRR of $1,000.&lt;/p&gt;
&lt;h2 id=&quot;why-tracking-mrr-is-important&quot;&gt;&lt;strong&gt;Why tracking MRR is important&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Successful SaaS companies track their MRR in Salesforce for two main reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Financial forecasting and planning&lt;/li&gt;
&lt;li&gt;Measuring growth&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On the first look, MRR is a simple metric, it’s actually very diversified and can give a crucial picture of how the business is growing or not growing.&lt;/p&gt;
&lt;h3 id=&quot;there-are-five-types-of-mrr&quot;&gt;&lt;strong&gt;There are five types of MRR&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New MRR - from the new customers&lt;/li&gt;
&lt;li&gt;Expansion MRR - upgrades&lt;/li&gt;
&lt;li&gt;Reactivation MRR - from former customers&lt;/li&gt;
&lt;li&gt;Contraction MRR - downgrades&lt;/li&gt;
&lt;li&gt;Churned MRR - from lost customers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The reason knowing those types is important is that it gives you direct insight into the “why”. You get to see &lt;em&gt;exactly&lt;/em&gt; why your MRR went up or down in a given month. If you aren’t breaking out your MRR by type, you’re missing out on some crucial data points.&lt;/p&gt;
&lt;p&gt;For subscription businesses, in any given month, new customers will always be signing up and existing customers will upgrade, downgrade, or potentially even take their business elsewhere. As a result, your MRR will be under constant upward and downward pressure, so it’s important to track this metric to recognize the source of these changes. Compared to the traditional business model, a challenge of the recurring billing model is that you are not managing one-time sales, you are managing the customer life cycle.&lt;/p&gt;
&lt;p&gt;If you want to read more about the ARR and MRR Salesforce topic, click &lt;a href=&quot;https://www.salesforce.com/resources/articles/how-to-calculate-recurring-revenue/&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Check also &lt;a href=&quot;https://cloudanswers.com/what-operational-metrics-should-you-measure/&quot;&gt;What operational metrics you should measure&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;need-help-in-setting-your-salesforce-crm&quot;&gt;Need help in setting your Salesforce CRM?&lt;/h3&gt;
&lt;p&gt;Contact us, we will help you to get the most out of your CRM.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[7 Popular Reporting Apps for Salesforce]]></title><description><![CDATA[Since always proper reports have been a regular source of confusion among sales and marketing reps for as long as the customer relationship management software has been in praxis. Many teams who use the software to track their sales opportunities and activities have ranted about the numerous difficulties in producing reports from their Salesforce sales and marketing data. Let us introduce you the most popular Salesforce reporting apps.]]></description><link>https://cloudanswers.com/blog/7-popular-reporting-apps-for-salesforce</link><guid isPermaLink="false">/blog/7-popular-reporting-apps-for-salesforce</guid><pubDate>Tue, 27 Oct 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/supporting-pc-1.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Whether checking your business’s progress or presenting results to the executive board or business partners, precise reporting is critical to your Salesforce success.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/salesforce-logo-png.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;The profit of your entire Salesforce investment depends a lot on the business insights that you get. These insights get your team to generate more quality leads, close more deals, and serve customers with seamless customer service. It means that the power of creating and maintaining meaningful and accurate reports and dashboards can&amp;#39;t be exaggerated.&lt;/p&gt;
&lt;p&gt;Proper reports have always been a regular source of confusion among sales and marketing reps for as long as the customer relationship management software has been in practice. Many teams who use the software to track their sales opportunities and activities have ranted about the numerous difficulties in producing reports from their Salesforce sales and marketing data.&lt;/p&gt;
&lt;p&gt;In short, the challenges of Salesforce reporting within Salesforce are as follow:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It requires manual work, that can be repetitive and time-consuming&lt;/li&gt;
&lt;li&gt;You can’t join external data with SFDC (SalesForce Dot Com) data in a single SFDC report&lt;/li&gt;
&lt;li&gt;For the average user finding the right Salesforce data is difficult&lt;/li&gt;
&lt;li&gt;Salesforce allows to send 200 reports a month (Enterprise Edition), 50 a month (Professional Edition)&lt;/li&gt;
&lt;li&gt;Each person can subscribe to up to 5 reports and 5 dashboards&lt;/li&gt;
&lt;li&gt;Report subscriptions are still sent when there is no data.&lt;/li&gt;
&lt;li&gt;Only users can subscribe to reports, making it difficult to share with external stakeholders.&lt;/li&gt;
&lt;li&gt;Limited visualization options&lt;/li&gt;
&lt;li&gt;Problematic cross-object reporting&lt;/li&gt;
&lt;li&gt;Users without the new theme are unable to create, edit, or run joined reports.&lt;/li&gt;
&lt;li&gt;Difficulties in accessing historical data - a range of data must be planned upfront (before actually they are needed) and they are hard to change once they’ve been set&lt;/li&gt;
&lt;li&gt;Filtering is restricted in some dashboards that contain multiple components based on the different report type&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;More about Salesforce limitations &lt;a href=&quot;https://help.salesforce.com/articleView?id=faq_reports_common_limits.htm&amp;amp;type=5&quot;&gt;here.&lt;/a&gt;These limitations in reporting within Salesforce have created an opportunity for external reporting and dashboarding tools to step in.  As a result, most Salesforce customers choose to extend their reporting capabilities beyond what Salesforce can deliver.&lt;/p&gt;
&lt;p&gt;Let us quickly introduce you to a few of the most popular reporting apps that you can find on the &lt;a href=&quot;http://www.appexchange.com&quot;&gt;AppExchange&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/tablaue-logo.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tableau&lt;/strong&gt; is a good choice as a third-party analytics tool when your reporting requirements exceed the capabilities that are native to Salesforce.&lt;/p&gt;
&lt;p&gt;It offers multiple business benefits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Easy to use&lt;/li&gt;
&lt;li&gt;Full information availability. Tableau has built-in integration with Salesforce, allowing Tableau reports and dashboards to be embedded within the Salesforce. It can pull in data from the requested sources. It is not limited to only the data that is stored in Salesforce. Connect to almost any database.&lt;/li&gt;
&lt;li&gt;Many types of charts can be created including Sankey, Doughnut, Maps, etc&lt;/li&gt;
&lt;li&gt;Data blending and data extraction. Salesforce reporting is not able to combine data across Salesforce modules. For instance, it cannot display marketing engagements and pipeline growth on the same chart. Tableau does this type of data blending natively.&lt;/li&gt;
&lt;li&gt;Dashboards can be viewed on multiple devices: tablets, mobiles and laptops&lt;/li&gt;
&lt;li&gt;No data limits.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; starting from $70/month&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000009wsiDEAQ&quot;&gt;Tableau on AppExchange&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/klipfolio-logo-black-red.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Klipfolio&lt;/strong&gt; is a real-time data analytics tool for basic to intermediate data visualization / dashboards. It enables users to connect any data source, create data visualization, and share it. It is best used for live display of data from various sources in a consistent interface, but can also be used to a lesser extent for exploratory, self-service business intelligence.&lt;/p&gt;
&lt;p&gt;Key benefits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;White label solution&lt;/li&gt;
&lt;li&gt;Easy to add data from different remote sources like Dropbox to easily incorporate offline data such as targets in Excel files or call center data exported in CSV files&lt;/li&gt;
&lt;li&gt;Possibility to set dynamic variables&lt;/li&gt;
&lt;li&gt;Simple and user-friendly data visualization&lt;/li&gt;
&lt;li&gt;A lot of features and already built-in integrations with numerous data sources&lt;/li&gt;
&lt;li&gt;The hover effect showing the details of a particular data point is extremely helpful and enables the user to take a closer look at specifics if they choose.&lt;/li&gt;
&lt;li&gt;Multiple data source formats, you can make data sources in JSON, Summarized View, and Detailed View.&lt;/li&gt;
&lt;li&gt;Shared/permalink dashboards are perfect for allowing private access without requiring login&lt;/li&gt;
&lt;li&gt;Dashboards can be shared in a variety of formats: PDF, JPG, CSV&lt;/li&gt;
&lt;li&gt;Unlimited users&lt;/li&gt;
&lt;li&gt;Dashboards created in Klipfolio are automatically resized based on the device used&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Price&lt;/strong&gt;: starting from $29&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3000000B3e6EEAR&quot;&gt;Klipfolio on AppExchange&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/report-sender-articel.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Report Sender&lt;/strong&gt; &lt;strong&gt;-&lt;/strong&gt; an application that allows you to schedule and sent reports to any email address, in an Excel-friendly format. There are no restrictions on objects or fields, and all Salesforce sharing rules and field-level security for users are obeyed.&lt;/p&gt;
&lt;p&gt;How the Report Sender can help you in daily reporting duties:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can easily schedule and customize reports&lt;/li&gt;
&lt;li&gt;You can send reports to all email addresses including non-Salesforce users&lt;/li&gt;
&lt;li&gt;Reports can be sent as CSV or Excel file&lt;/li&gt;
&lt;li&gt;Unlimited number of reports&lt;/li&gt;
&lt;li&gt;Easy email body customization&lt;/li&gt;
&lt;li&gt;Multiple schedule options&lt;/li&gt;
&lt;li&gt;You can send just one-time email&lt;/li&gt;
&lt;li&gt;Premium users can skip sending blank reports&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Report Sender helps you in your daily business. It can for example, automatically send leads to co-marketing partners from Salesforce campaigns and lead reports. Or send the sales pipeline to the executive team. It keeps all interested parties up to date with business performance indicators, not just those with access to Salesforce.com&lt;/p&gt;
&lt;p&gt;Full disclosure: We built this app&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; free and premium&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=7_popular_reporting_apps&amp;amp;utm_content=report_sender&quot;&gt;Report Sender on AppExchange&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/conga-composer.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conga&lt;/strong&gt; is built for sales and marketing professionals who need to generate and send a presentation, proposal, report or contract. Conga allows users to combine data and merge data from external databases. Users can collaborate by setting up document templates and workflows and can access and sign documents remotely. The platform provides the tools to easily negotiate with key stakeholders and sign contracts on the go.  Conga also allows multiple people to work on a contract together, and redline the document.&lt;/p&gt;
&lt;p&gt;Conga composer benefits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Salesforce template integration.&lt;/li&gt;
&lt;li&gt;Complex pages pulling multiple objects&lt;/li&gt;
&lt;li&gt;Template based for reusability&lt;/li&gt;
&lt;li&gt;Multistep processes that saves time&lt;/li&gt;
&lt;li&gt;Flexible design&lt;/li&gt;
&lt;li&gt;Works well with other software like &lt;a href=&quot;https://www.trustradius.com/products/adobe-sign/reviews&quot;&gt;Adobe Sign&lt;/a&gt;, DocuSign and Financial Force.&lt;/li&gt;
&lt;li&gt;Flexible on how documents are configured&lt;/li&gt;
&lt;li&gt;Deals with complex merges of data into a document.&lt;/li&gt;
&lt;li&gt;Professional support&lt;/li&gt;
&lt;li&gt;Consistency in data&lt;/li&gt;
&lt;li&gt;Merging Salesforce data into easy to use format&lt;/li&gt;
&lt;li&gt;Supports many different output formats; PDF, DOCX, PPTX, XLSX, etc&lt;/li&gt;
&lt;li&gt;PDFs are completely customizable to meet branding&lt;/li&gt;
&lt;li&gt;Automatically store details in the contact&amp;#39;s activity history so that you can see who has received what documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Price: starting at $20&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N300000016b7FEAQ&quot;&gt;Conga Composer on AppExchange&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Report-builder.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Report Builder by Cloud4J&lt;/strong&gt; is an app that enables users to download and schedule existing Salesforce reports and dashboards in a variety of formats. It includes charts, conditional formatting, and can query more than 2,000 records, including formula fields. There is no installation necessary, and it works with existing Salesforce reports.&lt;/p&gt;
&lt;p&gt;Let&amp;#39;s have a look at important features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Robust solution for sending reports and dashboards&lt;/li&gt;
&lt;li&gt;Multiple schedules can be set on a single report or dashboard&lt;/li&gt;
&lt;li&gt;Schedules can be set for one or more users, for Salesforce users and non-Salesforce users, at any scheduled time&lt;/li&gt;
&lt;li&gt;Sends generated documents (like Conga)&lt;/li&gt;
&lt;li&gt;Sends reports, dashboards, and/or documents in a single email&lt;/li&gt;
&lt;li&gt;PDF and HTML options for scheduling reports&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; $0-150/month. Free version cannot send reports.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.cloud4j.com/report-builder.html&quot;&gt;Report Builder page&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/smartsheet-logo.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Smartsheet&lt;/strong&gt; platform offers tools for&lt;/p&gt;
&lt;p&gt;Every successful business already uses spreadsheets, Smartsheet turns those familiar rows and columns of cells into an app. A result is a special tool that can handle workflow automation, content collaboration, forms management, project management, activity logging, scheduling, real-time data tracking. This cloud-based app certainly makes spreadsheets smarter, and for certain kinds of work, it might be preferable to a more traditional project management platform&lt;/p&gt;
&lt;p&gt;Smartsheets key features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Easy to use&lt;/li&gt;
&lt;li&gt;Multiple drop-down menus that allow to quickly and simply create a checklist of tasks for a project, assign team members to each task, and set deadlines.&lt;/li&gt;
&lt;li&gt;Unlimited possibilities for adding custom fields to the task&lt;/li&gt;
&lt;li&gt;Automatic reminders&lt;/li&gt;
&lt;li&gt;Gantt charts&lt;/li&gt;
&lt;li&gt;Customizable templates&lt;/li&gt;
&lt;li&gt;Milestone tracking&lt;/li&gt;
&lt;li&gt;Idea management&lt;/li&gt;
&lt;li&gt;Portfolio management&lt;/li&gt;
&lt;li&gt;Time &amp;amp; expense tracking&lt;/li&gt;
&lt;li&gt;User-friendly interface&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; starting at $14&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000003JSACEA4&quot;&gt;Smartsheet on AppExchange&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/insightsquared-vector-logo.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;InsightSquared&lt;/strong&gt; helps revenue operations professionals make better decisions by equipping them with actionable, real-time intelligence on sales and marketing KPIs. InsightSquared Tiles is an analytics platform that provides sales with the insights they need to drive performance and close deals. According to the vendor, the comprehensive set of reports provide sales leaders with ready access to all the analysis they need to assess their progress, diagnose performance gaps, and formulate action and coaching plans.&lt;/p&gt;
&lt;p&gt;Top features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Easy to set up, user-friendly interface&lt;/li&gt;
&lt;li&gt;Powerful, intuitive pre-built dashboards to analyze sales team performance&lt;/li&gt;
&lt;li&gt;Graphical view of the reports&lt;/li&gt;
&lt;li&gt;Customizable dashboard&lt;/li&gt;
&lt;li&gt;Data source connectors&lt;/li&gt;
&lt;li&gt;Drag and drop&lt;/li&gt;
&lt;li&gt;Graphical flexibility and customization, and the ability to pivot&lt;/li&gt;
&lt;li&gt;The Slate report tool allows building SQL reports based on SFDC data&lt;/li&gt;
&lt;li&gt;Automated reports&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; starting at $1 USD&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000005uuY8EAI&quot;&gt;InsightSquared on AppExchange&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Improving your Salesforce reporting can help you make more informed decisions about your sales and marketing strategies, your internal operations, and your customer service. The metrics can help you identify weaknesses. But, proper reports can help you find what’s working and resonating with your customers. So improve your reporting results with one of the plenty of plug-ins.&lt;/p&gt;
&lt;p&gt;Still stuck? Send us a chat message and we&amp;#39;d be happy to talk about your reporting needs.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Top 10 Salesforce apps of 2020]]></title><description><![CDATA[Businesses use the Salesforce AppExchange to research, download and install apps that can help better run their businesses. Check the list of ten best reporting apps for Salesforce.]]></description><link>https://cloudanswers.com/blog/top-10-salesforce-apps-of-2020</link><guid isPermaLink="false">/blog/top-10-salesforce-apps-of-2020</guid><pubDate>Tue, 13 Oct 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/10-best-apps-supporting-pc.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h1 id=&quot;top-10-salesforce-apps-of-2020&quot;&gt;Top 10 Salesforce apps of 2020&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;The Salesforce AppExchange&lt;/strong&gt; platform is a magic B2B marketplace. So if you are a developer who is passionate about producing apps for Salesforce, then your solutions should be listed there.&lt;/p&gt;
&lt;p&gt;The AppExchange is a vast marketplace with solutions for all kinds of industries and challenges. 80% of Salesforce customers are using AppExchange and the platform has more than 6.5 million app downloads.&lt;/p&gt;
&lt;p&gt;In this post, we want to bring you closer to the 10 most popular Salesforce apps based on user reviews.An easy and fast &lt;strong&gt;document generator&lt;/strong&gt;. - This application allows Salesforce users to pull data directly from Salesforce and by using pre-built templates they can automatically generate documents like quotes, proposals, account plans, invoices/receipts, contracts, orders, and more in different formats.Price: starting at $20 USD per user, per month&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N300000016b7FEAQ&quot;&gt;Go to Conga Composer on AppExchange&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Salesforce reports are powerful, but Salesforce doesn’t allow you to send reports outside the Salesforce organization. This app makes it possible! The &lt;a href=&quot;https://cloudanswers.com/report-sender/&quot;&gt;&lt;strong&gt;Reports Sender&lt;/strong&gt;&lt;/a&gt; allows you to schedule and send an unlimited number of reports to any email address as a CSV file. The upgraded version can also send XLSX files, skip sending when blank, and more:Price: free, premium&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=top_10_salesforce_apps_2020&quot;&gt;Go to Report Sender on AppExchange&lt;/a&gt;image: /uploads/&lt;img src=&quot;/uploads/dataloader-logo-300x63.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;import-and-export-data&quot;&gt;Import and export data&lt;/h4&gt;
&lt;p&gt;Dataloader, &lt;strong&gt;allows users to import, export, and delete data&lt;/strong&gt; in an easy way. It can map your data from the source file to Salesforce. And the more advanced version includes additional options like insert, update, export, or upsert records for standard and custom objects.image: /uploads/Dataloader is offered in 3 versions based on the user needs: basic for free, professional, and enterprise&lt;/p&gt;
&lt;p&gt;Price: free, premium&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000009w8ZBEAY&quot;&gt;Go to Data Loader on AppExchange&lt;/a&gt;image: /uploads/&lt;/p&gt;
&lt;h4 id=&quot;&quot;&gt;&lt;strong&gt;&lt;img src=&quot;/uploads/docusign_logo_white_text_on_black-300x115.png&quot; alt=&quot;&quot;&gt;&lt;/strong&gt;&lt;/h4&gt;
&lt;h4 id=&quot;electronic-signature&quot;&gt;&lt;strong&gt;Electronic signature&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Docusign has 4602 reviews and it is the &lt;strong&gt;most download electronic signature app&lt;/strong&gt; on AppExchange. It enables you to create and send agreements for signatures directly from Salesforce. Customers can sign contracts on any device. You can trigger actions, track status, and automatically store agreements to the original record with Lightning integration.&lt;/p&gt;
&lt;p&gt;Price: starting at $30 USD (requires Docusign subscription)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000001taX4EAI&quot;&gt;Go to DocuSign on AppExchange&lt;/a&gt;image: /uploads/&lt;/p&gt;
&lt;h2 id=&quot;-1&quot;&gt;&lt;strong&gt;&lt;img src=&quot;/uploads/sms-magic-300x86.png&quot; alt=&quot;&quot;&gt;&lt;/strong&gt;&lt;/h2&gt;
&lt;h4 id=&quot;business-messaging&quot;&gt;&lt;strong&gt;Business Messaging&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;SMS-Magic is an &lt;strong&gt;omnichannel text messaging solution.&lt;/strong&gt; A great tool that enables businesses to have fluent communication with customers through different channels. The app allows you to receive and manage messages from channels like Facebook, SMS, WhatsApp in one inbox. It includes intuitive alerts to new conversations, simple worklists, auto-response templates, and 360º lead conversation history. It also has a function that matches routing rules and automation processes to assign conversations to sales executives or sales teams and sends a personalized first response to new opportunities instantly.&lt;/p&gt;
&lt;p&gt;Price: starting at $9 USD&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N300000024XvyEAE&quot;&gt;Go to SMS Magic on AppExchange&lt;/a&gt;image: /uploads/&lt;/p&gt;
&lt;h2 id=&quot;-2&quot;&gt;&lt;strong&gt;&lt;img src=&quot;/uploads/inside-view-logo-300x40.png&quot; alt=&quot;&quot;&gt;&lt;/strong&gt;&lt;/h2&gt;
&lt;h4 id=&quot;data-and-intelligence&quot;&gt;Data and intelligence&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;InsideView&lt;/strong&gt; helps sales and marketing teams to better target and engage with opportunities. It delivers the “right message to the right person at the right time”. It does this by generating events and analyzing your social network connections. What’s more, it visualizes the addressable markets and helps you discover new business segments that can be targeted. Salesforce users can benefit from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;appends and updates account data on an ongoing basis,&lt;/li&gt;
&lt;li&gt;powers improved segmentation and targeting with key account data like industry, revenue, employee count, corporate hierarchy, company status, location, website.&lt;/li&gt;
&lt;li&gt;includes a self-assessment tool to determine the match rate and visualize the distribution of data based on the selected metrics.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your existing Salesforce contact database is a bit lacking, you’ll love InsideView’s updating and importing features.&lt;/p&gt;
&lt;p&gt;Price: $99 USD&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N300000016a6MEAQ&quot;&gt;Go to InsideView on AppExchange&lt;/a&gt;&lt;/p&gt;
&lt;h4 id=&quot;b2b-database&quot;&gt;B2B database&lt;/h4&gt;
&lt;p&gt;ZoomInfo combines a comprehensive business database with advanced technology to fuel go-to-market strategy from start to finish, From understanding your ideal customers to targeting the companies who visit your website in real-time and provide a precise, 360-degree view of customers, prospects, and opportunities.Mainly dedicated to sales and marketing teams that allow them to have the information they need to effectively prospect and grow relationships without wasting time tracking down phone numbers or emails. It allows us to have valuable information on prospects and also information on companies within a targeted industry.&lt;/p&gt;
&lt;p&gt;Price: free of charge&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000G0vErUAJ&quot;&gt;Go to Zoominfo on AppExchange&lt;/a&gt;image: /uploads/&lt;/p&gt;
&lt;h2 id=&quot;-3&quot;&gt;&lt;strong&gt;&lt;img src=&quot;/uploads/demandtools-logo-300x158.png&quot; alt=&quot;&quot;&gt;&lt;/strong&gt;&lt;/h2&gt;
&lt;h4 id=&quot;demandtools-administrative-and-data-quality-management&quot;&gt;&lt;strong&gt;DemandTools Administrative and Data Quality Management&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Administrative tasks on a Salesforce database can be annoying. There are individual modules to remove and prevent poor quality data, control, standardize, verify, deduplicate, import, and generally control data. DemandTools makes all these time-consuming, monotonous tasks a thing of the past, and also it goes well beyond Salesforce’s built-in data loader to provide a more enhanced structure and improved usability while automating some of the more tedious administrative duties.&lt;/p&gt;
&lt;p&gt;For CRM admins and data managers, DemandTools is one of the best software suites to ensure high-quality CRM data, so that business can make confident data-driven.&lt;/p&gt;
&lt;p&gt;Price: starting at &lt;strong&gt;$10 USD&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N300000016bXjEAI&quot;&gt;Go to Demand Tools on AppExchange&lt;/a&gt;image: /uploads/&lt;/p&gt;
&lt;h2 id=&quot;-4&quot;&gt;&lt;strong&gt;&lt;img src=&quot;/uploads/groove_blogo-300x103.png&quot; alt=&quot;&quot;&gt;&lt;/strong&gt;&lt;/h2&gt;
&lt;h4 id=&quot;email--calendar-integration-for-salesforce-gmail--microsoft-365&quot;&gt;&lt;strong&gt;Email &amp;amp; Calendar Integration for Salesforce (Gmail + Microsoft 365)&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Groove is a sales engagement platform that automates non-sales activities so that sales teams can spend more time on finding new customers and maintaining relations with existing customers. This solution empowers the entire sales organization to plan and execute personalized outreach at scale with targeted campaigns, engage top accounts with smart account based sales features, and drive productivity using actionable analytics.&lt;/p&gt;
&lt;p&gt;Features that are included:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Two-way integration between Salesforce, Gmail and Google Calendar&lt;/li&gt;
&lt;li&gt;Email open, click tracking &amp;amp; send later&lt;/li&gt;
&lt;li&gt;Create, edit &amp;amp; enrich any SFDC object&lt;/li&gt;
&lt;li&gt;Automated email sequencing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Price: $30 USD&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000009wgl9EAA&quot;&gt;Go to Groove on AppExchange&lt;/a&gt;image: /uploads/&lt;/p&gt;
&lt;h2 id=&quot;-5&quot;&gt;&lt;strong&gt;&lt;img src=&quot;/uploads/taskray-logo-300x150.jpg&quot; alt=&quot;&quot;&gt;&lt;/strong&gt;&lt;/h2&gt;
&lt;h4 id=&quot;customer-onboarding&quot;&gt;&lt;strong&gt;Customer onboarding&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;An enterprise customer onboarding solution that includes all that companies need to onboard new customers. It includes access, purpose-built, and fully customizable templates to manage repeatable processes, and gain valuable insights into customer behavior and preferences.&lt;/p&gt;
&lt;p&gt;Price: starting at $25 USD&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N300000055lKwEAI&quot;&gt;Go to Taskray on AppExchange&lt;/a&gt;Did we miss any app you think should be on this list? Let us know in the comments!&lt;/p&gt;
&lt;p&gt;If you need support in development or maintenance Salesforce works contact us via chat or write an email at &lt;a href=&quot;https://cloudanswers.com/contact/&quot;&gt;www.cloudanswers.com/contact&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Why business owners should know AppExchange?]]></title><description><![CDATA[Business owners, who implemented the Salesforce solution, should be familiar with the AppExchange. Marketplace products and services help organizations configure their CRMs to fit their business needs. And AppExchange is more than business apps only. You can find components, consulting partners, and developers to help you extend the power of Salesforce and run your business with apps.]]></description><link>https://cloudanswers.com/blog/why-business-owners-should-know-appexchange</link><guid isPermaLink="false">/blog/why-business-owners-should-know-appexchange</guid><pubDate>Thu, 24 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/appexchange-supportin-pc.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Salesforce is one of the most robust CRM platforms. But they’ve always known they can’t solve every problem. For this reason, in 2005, Salesforce launched AppExchange – an online marketplace for apps, components, consulting and developer services.&lt;/p&gt;
&lt;p&gt;Today AppExchange hosts more than 3,400 apps, 5,000 listings, eight million customer installs and 90,000 peer reviews. AppExchange is the most comprehensive source of cloud, mobile, social, IoT, analytics and artificial intelligence technologies for businesses. Business owners, who implemented the Salesforce solution, should be familiar with the AppExchange. Marketplace products and services help organizations configure their CRMs to fit their business needs best and helps them solve business challenges. And AppExchange is more than business apps only. You can find components, consulting partners, and developers to help you extend the power of Salesforce and run your business with apps.&lt;/p&gt;
&lt;h2 id=&quot;what-is-the-appexchange-used-for&quot;&gt;&lt;strong&gt;What is the AppExchange used for?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;The marketplace offers a mix of free and paid apps, organized into categories and industry solutions that comprises a variety of fields – for example, small business, customer service, education, manufacturing and real estate. These apps have been developed to solve all kinds of business challenges. If you have an idea that will help your business, there’s probably an app for it.&lt;/p&gt;
&lt;h2 id=&quot;the-main-advantages-of-using-appexchange-products-are&quot;&gt;&lt;strong&gt;The main advantages of using AppExchange products are:&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;You don&amp;#39;t have to take on the risk and delay of building something from scratch.&lt;/li&gt;
&lt;li&gt;You can see what other companies have said about the company or solution.&lt;/li&gt;
&lt;li&gt;You know that the solution passed salesforce.com’s extensive security review.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Salesforce AppExchange products come in two flavors:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;- &lt;strong&gt;Managed packages&lt;/strong&gt; - These behave like a typical app on your phone. You can customize it as much as the app provider has allowed, but the solutions are fully upgradable and are distributed together with licenses to them. The majority of the AppExchange is managed packages.&lt;/p&gt;
&lt;p&gt;- &lt;strong&gt;Unmanaged packages&lt;/strong&gt; - are used to distribute open-source solutions that, once installed, can be modified to suit your needs. Be careful though, these solutions can not be automatically upgraded or otherwise refined over time by the developer who published it.&lt;/p&gt;
&lt;p&gt;The significant benefits of plugging in an AppExchange app are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ready to use functionality&lt;/li&gt;
&lt;li&gt;Reliable and secure&lt;/li&gt;
&lt;li&gt;Enterprise-grade reliability&lt;/li&gt;
&lt;li&gt;Sandbox and production are separate&lt;/li&gt;
&lt;li&gt;No maintenance costs&lt;/li&gt;
&lt;li&gt;No need to build any functionality from scratch&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;here-are-five-steps-for-getting-started-on-appexchange&quot;&gt;&lt;strong&gt;Here are five steps for getting started on AppExchange&lt;/strong&gt;&lt;/h2&gt;
&lt;h4 id=&quot;1-define-the-reason-for-the-app&quot;&gt;&lt;strong&gt;1. Define the reason for the app&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Know your requirements by setting your goals and expectations before you begin shopping. Additionally, make a plan for the successful use of the app. What would it take for the app to be a success? Who will use it?&lt;/p&gt;
&lt;p&gt;Once you know your goals and your budget, the AppExchange site&amp;#39;s search field, top-of-page filters, and navigation tools on the left will help you to narrow your search.&lt;/p&gt;
&lt;h4 id=&quot;2-read-reviews&quot;&gt;&lt;strong&gt;2. Read reviews&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Check out the app reviews. Always look for indicators such as company size that used the app, the industry they operate in, or the customer they serve.&lt;/p&gt;
&lt;h4 id=&quot;3-try-out-before-you-buy&quot;&gt;&lt;strong&gt;3. Try out before you buy&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Free trials are a great way to help you evaluate the app. In the best case, use a Salesforce sandbox environment, so you can check if the chosen app will be a good fit for your organization.&lt;/p&gt;
&lt;h4 id=&quot;4-get-to-know-your-community&quot;&gt;&lt;strong&gt;4. Get to know your community&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;There are more than 14 million members in the Salesforce community, including hundreds of dedicated MVPs and customers who can share their knowledge and expertise.&lt;/p&gt;
&lt;h4 id=&quot;5-log-in-to-salesforce-appexchange&quot;&gt;&lt;strong&gt;5. Log in to Salesforce AppExchange&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/&quot;&gt;https://appexchange.salesforce.com/&lt;/a&gt; using your Salesforce credentials. It will bring you a truly personalized experience and will show you great app recommendations based on your profile, install history, previous searches, and more. Find more relevant apps under the “Recommended for You” tab.&lt;/p&gt;
&lt;p&gt;AppExchange has come a long way since its inception from being just an app-provider to include solutions of various kinds (bolts, components, flows, etc.) for different business types. It continues to grow and surely it will expand into new domains.&lt;/p&gt;
&lt;p&gt;We recommend you to check apps that had been developed by the CloudAnswer team and published on the AppExchange:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/report-sender/&quot;&gt;Report Sender&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/marketing-calendar/&quot;&gt;Marketing Calendar&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/merge-duplicates/&quot;&gt;Merge Duplicates Component&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/opportunity-team-edit-override/&quot;&gt;Opportunity Team Edit Override&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/approval-process-reminders/&quot;&gt;Approval Process Reminders&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[What operational metrics should you measure?]]></title><description><![CDATA[Operational metrics are key performance indicators that display a measurable value that shows what's going on in the business in real-time.]]></description><link>https://cloudanswers.com/blog/what-operational-metrics-should-you-measure</link><guid isPermaLink="false">/blog/what-operational-metrics-should-you-measure</guid><pubDate>Tue, 08 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/what-operational-metrics-should-you-measure-banner.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Following gut feeling is not the way to measure organization performance and it takes a lot more than that to run a successful business. What you need is a deep analysis of the sales, marketing, support, and financial results. And the only way to achieve it is to track &lt;strong&gt;relevant operational metrics&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The three departments that are most associated with the influence of &lt;a href=&quot;https://www.salesforce.com/&quot;&gt;&lt;strong&gt;CRM systems,&lt;/strong&gt;&lt;/a&gt; utilize a whole range of different operational metrics to measure their related performance. By department, these include:&lt;/p&gt;
&lt;h2 id=&quot;sales&quot;&gt;SALES&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Number of prospects&lt;/li&gt;
&lt;li&gt;Number of new customers&lt;/li&gt;
&lt;li&gt;Number of retained customers&lt;/li&gt;
&lt;li&gt;Close rate&lt;/li&gt;
&lt;li&gt;Renewal rate&lt;/li&gt;
&lt;li&gt;Number of sales calls made&lt;/li&gt;
&lt;li&gt;Number of sales calls per opportunity&lt;/li&gt;
&lt;li&gt;Amount of new revenue&lt;/li&gt;
&lt;li&gt;Number of open opportunities&lt;/li&gt;
&lt;li&gt;Sales stage duration&lt;/li&gt;
&lt;li&gt;Sales cycle duration&lt;/li&gt;
&lt;li&gt;Number of proposals given&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;marketing&quot;&gt;MARKETING&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Number of campaigns&lt;/li&gt;
&lt;li&gt;Number of campaign responses&lt;/li&gt;
&lt;li&gt;Number of campaign purchases&lt;/li&gt;
&lt;li&gt;Revenue generated by the campaign&lt;/li&gt;
&lt;li&gt;Number of new customers acquired by campaign&lt;/li&gt;
&lt;li&gt;Number of customer referrals&lt;/li&gt;
&lt;li&gt;Number of web page views&lt;/li&gt;
&lt;li&gt;User goal completion rate on the web&lt;/li&gt;
&lt;li&gt;Time per website visit&lt;/li&gt;
&lt;li&gt;Customer lifetime value&lt;/li&gt;
&lt;li&gt;Cross-sell ratio&lt;/li&gt;
&lt;li&gt;Up-sell ratio&lt;/li&gt;
&lt;li&gt;Email list growth rate&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;service&quot;&gt;SERVICE&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Number of cases handled&lt;/li&gt;
&lt;li&gt;Number of cases closed the same day&lt;/li&gt;
&lt;li&gt;Average time to resolution&lt;/li&gt;
&lt;li&gt;The average number of service calls per day&lt;/li&gt;
&lt;li&gt;Complaint time to resolution&lt;/li&gt;
&lt;li&gt;Number of customer callbacks&lt;/li&gt;
&lt;li&gt;Average service cost per service interaction&lt;/li&gt;
&lt;li&gt;Percentage compliance with SLAs&lt;/li&gt;
&lt;li&gt;Calls lost before being answered&lt;/li&gt;
&lt;li&gt;Average call handling time&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;operational-metrics-are-worth-implementing-in-all-areas&quot;&gt;&lt;strong&gt;Operational metrics&lt;/strong&gt; are worth implementing in all areas.&lt;/h3&gt;
&lt;p&gt;In addition, to these more traditional operational metrics, recent years have seen businesses expand their measurements outside of the strict business metrics. These are specifically incorporating Voice of the Customer feedback like customer satisfaction net promoter score, customer loyalty, social media metrics like sentiment, influence, reach but also Project Management, Innovation and Leadership.&lt;/p&gt;
&lt;h3 id=&quot;because-using-data-to-evaluate-what-is-working-and-what-isnt-is-a-very-valuable-management-process&quot;&gt;&lt;strong&gt;Because using data to evaluate what is working and what isn’t is a very valuable management process.&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;And it is still a habit that is used too less. It can play a giant role in identifying and tracking the progress of organizational goals and identifying opportunities for improvement. That is an important step in formulating business direction and reducing declines in business performance.&lt;/p&gt;
&lt;p&gt;Check also:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/how-to-calculate-annual-reporting-revenue-and-monthly-reporting-revenue/&quot;&gt;How to calculate Annual Recurring Revenue and Monthly Recurring Revenue&lt;/a&gt;&lt;/p&gt;
&lt;h4 id=&quot;trusted-and-reliable-salesforce-partner-your-support-and-help-in-salesforce-crm-implementation-with-all-functions-that-your-business-requires-get-in-touch&quot;&gt;Trusted and reliable Salesforce partner. Your support and help in Salesforce CRM implementation with all functions that your business requires. &lt;strong&gt;Get in touch!&lt;/strong&gt;&lt;/h4&gt;
</content:encoded></item><item><title><![CDATA[Salesforce - Reporting Tips and Best Practices]]></title><description><![CDATA[Reports are needed to understand the data you have in Salesforce or any other CRM. But how the report should be built might be challenging.]]></description><link>https://cloudanswers.com/blog/salesforce-reporting-tips-and-best-practices</link><guid isPermaLink="false">/blog/salesforce-reporting-tips-and-best-practices</guid><pubDate>Tue, 25 Aug 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/salesforce-reporting-tips-and-best-practices.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Within the &lt;a href=&quot;https://www.salesforce.com/&quot;&gt;Salesforce platform&lt;/a&gt;, there are many measurement tools that allow the decision-makers to take a wide-angle view of their team’s performance and simultaneously grasp the important details that may go unnoticed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Salesforce reports&lt;/strong&gt; allow a business to understand its current revenue pulse, make decisions for the future, and set goals for advancement. The information provided by reports and dashboards is very important in today’s environment, where it’s critical to be proactive, rather than reactive. And business leaders have questions that reports can answer. But if your Salesforce reports are not configured in a manner that responds to your inquiries – how will you be able to make decisions?A good report should contain all the information necessary to support decision-making. Furthermore, it should lead directors and top management to ask the right questions and initiate a series of actions. That will increase the ability of the organization to achieve it&amp;#39;s short- and long-term goals and create sustainable value.&lt;/p&gt;
&lt;h2 id=&quot;good-quality-information-should-be&quot;&gt;Good quality information should be:&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;RELEVANT&lt;/strong&gt; - presented information should be focused and match the defined objectives and the strategy. In other words, does it answer the questions your team is asking?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;INTEGRATED&lt;/strong&gt; - reported information should be produced for a range of internal and external purposes. It should be used in your presentations and in meetings.  It should be based on data that is updated regularly through normal business processes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IN PERSPECTIVE&lt;/strong&gt; - all the information should be presented in relevant time frames and appropriately filtered for the audience.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TIMELY&lt;/strong&gt; - recurring reports should be received always on time. It is crucial that monthly board reports that contain performance information are ready and available when they are needed. Even better if all reports are available on demand and the most important ones are scheduled for automatic delivery.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CONCRETE&lt;/strong&gt; - it should contain needed information. For example, monthly board reports should contain performance information relating to key operational issues, the critical success factors (CSFs), and key performance indicators (KPIs).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RELIABLE&lt;/strong&gt; - People need to trust the data in the report. This requires good data governance and accurate report building. And checking your reports.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;COMPARABLE&lt;/strong&gt; - some of the reports like the ones for the board, are performance reports and they cover financial and non-financial aspects of performance. For financial performance, comparing actual data with forecast (budget/plan/rolling forecast), or in some cases, past data (last month/year), is very essential.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CLEAR&lt;/strong&gt; - reports should always be written clearly and simply. Everyday language should be used and jargon or acronyms should be avoided. Avoid adding too much information to a report as people may miss the point.&lt;/p&gt;
&lt;h2 id=&quot;reporting-rules-worth-following&quot;&gt;&lt;strong&gt;Reporting Rules Worth Following&lt;/strong&gt;&lt;/h2&gt;
&lt;h4 id=&quot;1-know-your-audience&quot;&gt;&lt;img src=&quot;/uploads/speech-and-audience-1-150x150.png&quot; alt=&quot;&quot;&gt;1. Know your audience&lt;/h4&gt;
&lt;p&gt;Every report has a purpose and a specific audience. Identify what questions the report will answer. Make sure the report does that and no more. It’s important that your report is catered to the needs of each receiver.&lt;/p&gt;
&lt;h4 id=&quot;2-capture-the-right-data&quot;&gt;&lt;strong&gt;&lt;img src=&quot;/uploads/data-sheet-150x150.png&quot; alt=&quot;&quot;&gt;2.&lt;/strong&gt; &lt;strong&gt;Capture the right data&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Reports and dashboards are only as good as the data behind them. Align metrics with company vision, take your business objectives, set the metrics that measure those objectives and map them to the capabilities of Salesforce CRM. The recommendation is planning reports first and then configure the application by adding custom fields, formulas, and other changes to capture the data you need.&lt;/p&gt;
&lt;h4 id=&quot;3-make-reports-easily-accessible&quot;&gt;&lt;strong&gt;&lt;img src=&quot;/uploads/security-data-150x150.png&quot; alt=&quot;&quot;&gt;3. Make reports easily accessible&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Once the report is created make sure that all, who should see it and have the interest to see it, have access to it. Choose a clear name and add a helpful description. Or schedule it to get automatically delivered to the right people.&lt;/p&gt;
&lt;h4 id=&quot;4-automate-workflow&quot;&gt;&lt;img src=&quot;/uploads/remote-control-150x150.png&quot; alt=&quot;&quot;&gt;4. Automate workflow&lt;/h4&gt;
&lt;p&gt;Automate everything to save time. Salesforce report subscriptions and &lt;a href=&quot;https://cloudanswers.com/report-sender/&quot;&gt;Report Sender&lt;/a&gt; provide two different ways to schedule and automatically send results to stakeholders and managers. With automation you will have more time to focus on critical projects instead of building the same reports and sending them out over and over.&lt;/p&gt;
&lt;h2 id=&quot;reports-provide-visibility&quot;&gt;&lt;strong&gt;Reports provide visibility&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;If you are running an important initiative, you use reports to present how your project or program is doing.&lt;/li&gt;
&lt;li&gt;If you are facing challenges, risks, issues, then you use reporting to bring this to management’s attention – so you can get the help you need.&lt;/li&gt;
&lt;li&gt;If the team is doing an excellent job, your reports will present this – and get you and the team&amp;#39;s attention and appreciation.&lt;/li&gt;
&lt;li&gt;You also need reports to manage team projects better. Reports help you regularly monitor your team’s progress against goals.&lt;/li&gt;
&lt;li&gt;Regulators, auditors, senior management – all of them look for reports to understand progress against goals and targets.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Reports can provide insight at all levels of the company. So why not improve your reports today? Reports and dashboards are designed to be iterative – it is important to keep them current and relevant. To successfully roll out business metrics good communication is key. Make it easy for your users to find, view, and access the dashboards relevant to them. Then see how much your business transforms.&lt;/p&gt;
&lt;p&gt;Check also other articles that are related to :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/run-salesforce-reports-in-apex/&quot;&gt;Run Salesforce reports in Apex&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/7-popular-reporting-apps-for-salesforce/&quot;&gt;7 Popular Reporting Apps for Salesforce&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/tips-for-faster-reports/&quot;&gt;How To Make Your Salesforce Reports Run Faster&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;cloudanswers-provides-free-apps-that-help-you-work-faster-and-more-efficient-with-salesforce&quot;&gt;&lt;strong&gt;CloudAnswers provides free apps that help you work faster and more efficient with Salesforce&lt;/strong&gt;&lt;/h3&gt;
&lt;h3 id=&quot;check-it-now&quot;&gt;&lt;a href=&quot;http://www.cloudanswers.com&quot;&gt;&lt;strong&gt;Check it now!&lt;/strong&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;image: /uploads/&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Waterbury PAL, nonprofit organization, helps more children with Salesforce]]></title><description><![CDATA[Salesforce’s nonprofit success pack allows PAL organization, whose goal is to help kids, to reach their full potential as productive, responsible citizens.]]></description><link>https://cloudanswers.com/blog/salesforce-nonprofit-success-pack-helps-reach-organizations-goals</link><guid isPermaLink="false">/blog/salesforce-nonprofit-success-pack-helps-reach-organizations-goals</guid><pubDate>Tue, 18 Aug 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/blog-feature-pic-case-study.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;When working with at-risk youth, the more you can do the better. In the town of Waterbury, Connecticut, a group of volunteers and donors felt like they could be doing more to help the children in their community.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.waterburypal.org/&quot;&gt;The Police Activity League of Waterbury, Inc. (PAL)&lt;/a&gt;, led by volunteer Police Officers, runs summer sports leagues, subsidizes meals, sponsors park cleaning, and supports kids headed to school. This is a group of public servants that wanted to do more in their free time.&lt;/p&gt;
&lt;h2 id=&quot;the-need-to-keep-all-information-and-processes-in-one-place&quot;&gt;&lt;strong&gt;The need to keep all information and processes in one place.&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Last year, 2019, Waterbury PAL hired Mara Ford. With over 25 years of experience in nonprofit management and fundraising, she was ready to help Waterbury PAL. Her aim became to expand its reach and impact with kids who needed it the most.&lt;/p&gt;
&lt;p&gt;During her first year on the job, she quickly realized that, in order to support children and families, she needed &lt;strong&gt;to see relevant information more easily.&lt;/strong&gt; From how much money was coming in, to where families were moving, to who was volunteering. In order to be proactive, she needed more information and all of them in one place.&lt;/p&gt;
&lt;h2 id=&quot;implementation-of-salesforce-nonprofit-success-pack&quot;&gt;Implementation of Salesforce Nonprofit Success Pack&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/&quot;&gt;&lt;strong&gt;CloudAnswers&lt;/strong&gt;&lt;/a&gt; worked closely with Mara Ford to understand the challenges they were facing. Where the pain points were, and where they are heading so that the solution would meet these needs as fast as possible.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.salesforce.org/nonprofit/&quot;&gt;&lt;strong&gt;Salesforce’s Nonprofit Success Pack&lt;/strong&gt;&lt;/a&gt; was turned on just a few months into the job and started making immediate improvements. By using Campaigns to track outreach, reports, and dashboards to see trends, and Opportunities to increase communication, they were able to coordinate and strategize.&lt;/p&gt;
&lt;h2 id=&quot;no-more-filing-cabinets&quot;&gt;&lt;strong&gt;No More Filing Cabinets&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;During previous years, without a platform, it was impossible to report on revenue, fundraising, and goals without a substantial amount of effort. Documents were split between filing cabinets, spreadsheets, and Quickbooks. This required manually copying data from paper into spreadsheets.&lt;/p&gt;
&lt;p&gt;Over the past 6 months, Mara and her team have transitioned to recording all of their donor information in Salesforce&amp;#39;s nonprofit success pack. They can now schedule daily and weekly reports to track incoming donations as well as longer-term Grant writing.&lt;/p&gt;
&lt;p&gt;By managing their pipeline consistently, they are able to optimize their efforts. From tracking the number of people called during a campaign, to who got the “Thank You” letters, they can make their personal touch more productive.&lt;/p&gt;
&lt;h3 id=&quot;it-is-critical-for-nonprofit-organizations-to-track-donors-and-fundraising-dollars-while-measuring-their-impact&quot;&gt;&lt;strong&gt;&lt;em&gt;It is critical for Nonprofit organizations to track donors and fundraising dollars while measuring their impact.&lt;/em&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;h2 id=&quot;tracking-their-outreach&quot;&gt;&lt;strong&gt;Tracking Their Outreach&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;CloudAnswers helped the Waterbury PAL meets its objectives. They are able to track and maintain important relationships, get better visibility on their donation pipeline, increase user uptake, gather better data, measure, track, and create reports from its programs like never before.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[How To Make Your Salesforce Reports Run Faster]]></title><description><![CDATA[Get some some known tips and tricks which can make your Salesforce reports run faster. Most reports load in a matter of seconds.]]></description><link>https://cloudanswers.com/blog/salesforce-reports-run-faster</link><guid isPermaLink="false">/blog/salesforce-reports-run-faster</guid><pubDate>Tue, 28 Jul 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/reports-run-faster-supporting-pc-1.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;In this article, we are going to share some known tips and tricks which can make your &lt;strong&gt;Salesforce reports&lt;/strong&gt; run faster. Most reports load in a matter of seconds. In certain cases, it can take longer. On very rare occasions, reports can hit the timeout limits. This can happen due to any of the following reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Querying too many columns&lt;/li&gt;
&lt;li&gt;Querying objects with too many records&lt;/li&gt;
&lt;li&gt;Using inefficient filters / operators&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now, let&amp;#39;s focus on keys areas on which we can work and how we can leverage various options available on Salesforce platform to overcome the above problems.&lt;/p&gt;
&lt;h2 id=&quot;exclude-unnecessary-data&quot;&gt;Exclude unnecessary data&lt;/h2&gt;
&lt;p&gt;We should only query data that is relevant to the report we are building. We can take note of the following key points to exclude any unnecessary data from our reports:&lt;/p&gt;
&lt;p&gt;1. Choose a report type that only includes the objects you need.&lt;/p&gt;
&lt;p&gt;2. Remove any unnecessary columns from the report.&lt;/p&gt;
&lt;p&gt;3. Whenever possible, use &amp;quot;My…&amp;quot; or &amp;quot;My Team&amp;#39;s…&amp;quot; option rather than &amp;quot;All…&amp;quot;. For example, My Accounts.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Screen-Shot-2020-07-20-at-9.09.01-pm.png&quot; alt=&quot;Screen Shot 2020-07-20 at 9.09.01 pm.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;4. When you are only interested in the summary data, click on the Hide Details button under Advanced Filters to hide detail rows.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Screen-Shot-2020-07-20-at-9.12.55-pm.png&quot; alt=&quot;Screen Shot 2020-07-20 at 9.12.55 pm&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;use-efficient-filters--operators&quot;&gt;&lt;strong&gt;Use efficient filters / operators&lt;/strong&gt;&lt;/h2&gt;
&lt;h5 id=&quot;narrow-your-filters&quot;&gt;&lt;strong&gt;Narrow your filters&lt;/strong&gt;&lt;/h5&gt;
&lt;p&gt;Use &lt;em&gt;equal to&lt;/em&gt; or &lt;em&gt;not equal to&lt;/em&gt; instead of &lt;em&gt;contains&lt;/em&gt; or &lt;em&gt;does not contains&lt;/em&gt; filters. For example, use the Contact Owner equal to John Smith instead of the Contact Owner contains John. This limits the amount of data retrieved and makes the report load faster.&lt;/p&gt;
&lt;h5 id=&quot;focus-on-the-right-time-period&quot;&gt;&lt;strong&gt;Focus on the right time period&lt;/strong&gt;&lt;/h5&gt;
&lt;p&gt;Queries with fixed time frames run faster than open-ended queries. We should always set a start and end date values to limit the report data. If that’s not possible, then try using relative date values such as - THIS WEEK, LAST MONTH or YESTERDAY. This works well for saved reports. Also, this becomes very handy for activity reports to eliminate future recurring activities.&lt;/p&gt;
&lt;h2 id=&quot;&quot;&gt;&lt;strong&gt;&lt;img src=&quot;/uploads/Screen-Shot-2020-07-20-at-9.14.06-pm.png&quot; alt=&quot;&quot;&gt;&lt;/strong&gt;&lt;/h2&gt;
&lt;h2 id=&quot;optimize-your-salesforce-environment&quot;&gt;&lt;strong&gt;Optimize your Salesforce environment&lt;/strong&gt;&lt;/h2&gt;
&lt;h5 id=&quot;consider-the-storage-size-of-your-objects&quot;&gt;&lt;strong&gt;Consider the storage size of your objects&lt;/strong&gt;&lt;/h5&gt;
&lt;p&gt;Do you know how many records exist for each object in your report queries? The more records, the bigger the object&amp;#39;s storage size and the longer the report takes to run. To determine the size of an object, from &lt;strong&gt;Setup&lt;/strong&gt;, enter &lt;strong&gt;Storage Usage&lt;/strong&gt; in the &lt;strong&gt;Quick Find&lt;/strong&gt; box, then select &lt;strong&gt;Storage Usage&lt;/strong&gt; and see each object&amp;#39;s Storage value in the &lt;strong&gt;Current Data Storage Usage&lt;/strong&gt; section. As storage usage increases, reports that include that object will take longer.&lt;/p&gt;
&lt;h5 id=&quot;empty-your-recycle-bin&quot;&gt;&lt;strong&gt;Empty your Recycle Bin&lt;/strong&gt;&lt;/h5&gt;
&lt;p&gt;Data you&amp;#39;ve deleted still gets queried when you run your report unless you permanently delete it by emptying the Recycle Bin. Make sure to empty the Recycle Bin after pruning your data.&lt;/p&gt;
&lt;h5 id=&quot;filter-on-fields-that-are-optimized-for-search&quot;&gt;&lt;strong&gt;Filter on fields that are optimized for search&lt;/strong&gt;&lt;/h5&gt;
&lt;p&gt;There are some standard fields that are optimized for a search like Id, Name, OwnerId, CreatedDate, SystemModStamp, RecordType. Master-detail and lookup fields are also optimized for search. Unique and External Id fields are also optimized for search. By using optimized fields in the filters, we can save some time during the report runs.&lt;/p&gt;
&lt;h2 id=&quot;schedule-reports-and-dashboards&quot;&gt;&lt;strong&gt;Schedule reports and dashboards&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;A dashboard refreshes data for everyone who has access to it whenever anyone clicks the Refresh button. If you have a report which takes a long time to run, add it in a dashboard. This way you will have more people seeing fresh data with fewer report runs. Also, encourage your users who have &amp;quot;Schedule Dashboards&amp;quot; permission to have their dashboards refresh on a &lt;strong&gt;scheduled basis daily, weekly, or monthly&lt;/strong&gt;, so that users don&amp;#39;t always have to wait for data to refresh.&lt;/p&gt;
&lt;p&gt;Try the above tips to make your reports more efficient and load faster. If you have any other tricks which worked for you, we would like to hear from you in the comments section.&lt;/p&gt;
&lt;p&gt;Looking for more knowledge, check also other articles that are covering Salesforce reporting topics&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/effective-data-storage-in-salesforce-for-every-business-size/&quot;&gt;Effective data storage in Salesforce for every business size&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/salesforce-reporting-tips-and-best-practices/&quot;&gt;Salesforce – Reporting Tips and Best Practices&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/creating-automated-reports-in-salesforce/&quot;&gt;Creating automated reports in Salesforce&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=salesforce_reports_run_faster&quot;&gt;Report Sender&lt;/a&gt; - app for quick scheduling and sending Salesforce reports&lt;/p&gt;
&lt;h2 id=&quot;report-sender-plus-lets-you-easily-schedule-and-send-reports-to-any-email-address&quot;&gt;&lt;strong&gt;Report Sender Plus lets you easily schedule and send reports to any email address.&lt;/strong&gt;&lt;/h2&gt;
</content:encoded></item><item><title><![CDATA[10 CRM metrics you should measure]]></title><description><![CDATA[Customer relationship management, is necessary for enhancing the customer’s experience. Meet the 10 CRM metrics you should measure.]]></description><link>https://cloudanswers.com/blog/10-crm-metrics-you-should-measure</link><guid isPermaLink="false">/blog/10-crm-metrics-you-should-measure</guid><pubDate>Fri, 17 Jul 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/10-crm-metrics-featured-pc.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;&lt;strong&gt;CRM technology&lt;/strong&gt; can deliver benefits to your business in lots of different ways. You can use it for lead management purposes to help you increase the number of leads you are getting and the percentage of conversions. It can be used to manage your existing customers more effectively and to sell more to them. Furthermore, it can help you with marketing communications, improve production speed, services, and support.&lt;/p&gt;
&lt;p&gt;It goes without question that CRM – Customer relationship management, is necessary for enhancing the customer’s experience. It refers to the set of practices, principles and guidelines which an organization follows during their interaction with customers.&lt;/p&gt;
&lt;h2 id=&quot;learn-how-to-measure-your-business&quot;&gt;&lt;strong&gt;Learn how to measure your business&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;If you want to improve the quality of your customer relationships, you need to quantify them first, with the data from your CRM: &lt;strong&gt;The CRM Metrics&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://help.salesforce.com/articleView?id=workcom_create_metric.htm&amp;amp;type=5&quot;&gt;Metrics&lt;/a&gt; give you better control over your sales and marketing efforts. They allow you to track performance more closely than a seat-of-the-pants approach. By following what is actually happening, we can react more effectively to what is going on, understand, and take influence on how it affects our overall performance. Metrics provide ‘precision’ to sales and marketing, enabling them to respond to changes or to initiate them and measure the results.&lt;/p&gt;
&lt;p&gt;However, applying the correct standard of measurement to your activities and campaigns can be challenging. Which metrics indicate success? How do you find them? What do these numbers actually mean?&lt;/p&gt;
&lt;h2 id=&quot;let-me-introduce-you-to-the-10-most-popular-crm-metrics&quot;&gt;&lt;strong&gt;Let me introduce you to the 10 most popular CRM metrics.&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/10-CRM-metrics.jpg&quot; alt=&quot;&quot;&gt;
&lt;img src=&quot;/uploads/10-CRM-metrics-1.jpg&quot; alt=&quot;&quot;&gt;
&lt;img src=&quot;/uploads/10-CRM-metrics-2.jpg&quot; alt=&quot;&quot;&gt;
&lt;img src=&quot;/uploads/10-CRM-metrics-3.jpg&quot; alt=&quot;&quot;&gt;
&lt;img src=&quot;/uploads/10-CRM-metrics-4.jpg&quot; alt=&quot;&quot;&gt;
&lt;img src=&quot;/uploads/10-CRM-metrics-5.jpg&quot; alt=&quot;&quot;&gt;
&lt;img src=&quot;/uploads/10-CRM-metrics-6.jpg&quot; alt=&quot;&quot;&gt;
&lt;img src=&quot;/uploads/10-CRM-metrics-7.jpg&quot; alt=&quot;&quot;&gt;
&lt;img src=&quot;/uploads/10-CRM-metrics-8.jpg&quot; alt=&quot;&quot;&gt;
&lt;img src=&quot;/uploads/10-CRM-metrics-9.jpg&quot; alt=&quot;&quot;&gt;
&lt;img src=&quot;/uploads/10-CRM-metrics-10.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;There is a whole world of information when it comes to CRM data. These are just a few points that will get you headed in the right direction with your sales team. But once you have a handle on these, it is worth it to expand to other areas as well.&lt;/p&gt;
&lt;p&gt;Measuring the right metrics can be the difference between a success story and a cautionary tale. If you know how to measure your CRM success, you can keep track of how close you are to reaching your goals.&lt;/p&gt;
&lt;p&gt;Companies should use these formulas to benchmark campaigns, optimize efforts, and predict revenue. If the results are supported by hard data, that means that the company, CEO, clients, or anyone else can be confident in future success.&lt;/p&gt;
&lt;p&gt;When the organization is measuring results, they’re bound to improve. The metrics available in CRM are essential to assess how the company is doing.&lt;/p&gt;
&lt;p&gt;More on this topic&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/what-operational-metrics-should-you-measure/&quot;&gt;What operational metrics should you measure&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/3-fundamental-sales-kpis-that-can-be-automated-find-holes-in-your-funnel/&quot;&gt;3 fundamental sales KPIs that can be automated – find holes in your funnel&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/3-fundamental-sales-kpis-that-can-be-automated-new-opportunities/&quot;&gt;3 fundamental sales KPIs that can be automated – new opportunities&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Avoiding Salesforce Report Subscription Limitations]]></title><description><![CDATA[Report Sending limitations in Salesforce. Find out how to walk around Salesforce Report Subscription Limitations. Challenges in reporting.]]></description><link>https://cloudanswers.com/blog/report-sending-limitations-in-salesforce</link><guid isPermaLink="false">/blog/report-sending-limitations-in-salesforce</guid><pubDate>Tue, 02 Jun 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/supporting-pic.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h2 id=&quot;salesforce-report-subscription-limitation-and-report-sending-limitations-how-to-walk-around-them&quot;&gt;Salesforce Report Subscription Limitation and Report Sending limitations. How to walk around them?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Salesforce&lt;/strong&gt; dominates the CRM market, that is a fact. It is powerful, customizable, scalable, all this to meet the needs of a diverse range of businesses.&lt;/p&gt;
&lt;p&gt;One of the most valuable features Salesforce provides is the ability to report on data points that matter to users on various levels. &lt;strong&gt;Reporting and analytics&lt;/strong&gt; drive informed decision-making at organizations. Executives rely heavily on reported information and leverage metrics to best support their organization’s strategy.&lt;/p&gt;
&lt;p&gt;But the truth is that Salesforce has some limitations in creating, scheduling, and sending the reports, which for most organizations is a very essential part of the business cycle.&lt;/p&gt;
&lt;h2 id=&quot;in-short-the-challenges-of-reporting-within-salesforce-are&quot;&gt;In short, the challenges of reporting within Salesforce are:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Subscription is limited to only 5 reports per user, 200 reports per organization monthly&lt;/li&gt;
&lt;li&gt;You can’t send one report right now in Salesforce, you only can schedule it for recurring delivery&lt;/li&gt;
&lt;li&gt;It is not possible to send an explanation (email text or note) with the report&lt;/li&gt;
&lt;li&gt;You can’t send the report as an attachment&lt;/li&gt;
&lt;li&gt;To view the report, logging into Salesforce is mandatory&lt;/li&gt;
&lt;li&gt;There is no possibility to send the reports to non-Salesforce users&lt;/li&gt;
&lt;li&gt;Reports are sent even when there is no data (zero records)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Gone are the days when Sales Managers can afford to be reactive, producing, and distributing backward-looking reports within a siloed Sales department.&lt;/p&gt;
&lt;p&gt;Today’s leading Sales and Marketing Managers are proactive, strategic, and collaborative; they work alongside leaders from across the organization to continuously improve sales and business outcomes. That’s why the demand for powerful &lt;a href=&quot;https://cloudanswers.com/report-sender/&quot;&gt;&lt;strong&gt;Salesforce&lt;/strong&gt; reporting tools&lt;/a&gt; is so high.&lt;/p&gt;
&lt;p&gt;Imagine the situation, you are head of sales and at the board meeting, the CEO is asking you to share with all participants (including business partners) a quarterly sales report. Should be easy, right?–  Well in Salesforce it is not possible to send one report instantly to recipients without a licensed Salesforce account.&lt;/p&gt;
&lt;h2 id=&quot;there-is-a-solution-for-all-the-above-mentioned-difficulties&quot;&gt;There is a solution for all the above mentioned difficulties.&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=report_sending_limitations_in_salesforce&quot;&gt;Report Sender&lt;/a&gt; is an app created specifically for overcoming these challenges in Salesforce CRM, available on the Salesforce &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=report_sending_limitations_in_salesforce&quot;&gt;AppExchange.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Report Sender allows you to select any of your Salesforce reports in CSV or excel file format, it enables you to customize the email message body and subject, to send out reports to any external email address on a regular schedule. So you are empowered to keep full control over your reports, just the way it should be.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Load test builds in expo ]]></title><link>https://cloudanswers.com/blog/load-test-builds-in-expo</link><guid isPermaLink="false">/blog/load-test-builds-in-expo</guid><pubDate>Sun, 31 May 2020 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/expo-project.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Have expo project, want public testing URL&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://expo.dev/&quot; title=&quot;expo.dev&quot;&gt;The expo&lt;/a&gt; has restricted loading of apps from the public for ios, but here&amp;#39;s a workaround that we use to let users test our apps when we do rapid-prototyping...&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;create a GitHub action to build the expo app with a unique app name for each PR, so you don&amp;#39;t accidentally do anything to your production app and so comments are stamped to specific feature branches&lt;/li&gt;
&lt;li&gt;run &lt;strong&gt;&lt;code&gt;npx expo publish --non-interactive&lt;/code&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;look for the output URL which looks like this:&lt;br&gt;image: /uploads/ 📝 Manifest: &lt;a href=&quot;https://exp.host/@***/***-pr-40/index.exp?sdkVersion=40.0.0&quot;&gt;https://exp.host/@***/***-pr-40/index.exp?sdkVersion=40.0.0&lt;/a&gt; Learn more: &lt;a href=&quot;https://expo.fyi/manifest-url&quot;&gt;https://expo.fyi/manifest-url&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Copy that URL into a QR code generator like this one:&lt;br&gt;&lt;a href=&quot;http://goqr.me/#t=url&quot; title=&quot;http://goqr.me/#t=url&quot;&gt;http://goqr.me/#t=url&lt;/a&gt;&lt;br&gt;Or use a CLI script to do it at the end of the build process:&lt;br&gt;&lt;a href=&quot;&quot;&gt;https://www.npmjs.com/package/qrcode&lt;/a&gt;&lt;br&gt;And then email it to the users that you want to test!&lt;/li&gt;
&lt;li&gt;Scan the code on your iPhone!&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title><![CDATA[GDPR can turn into an opportunity]]></title><description><![CDATA[GDPR can be a real opportunity for you. To be upfront competitors and building trust amongst your customers, update your website to comply the regulations.]]></description><link>https://cloudanswers.com/blog/gdpr-can-turn-into-an-opportunity</link><guid isPermaLink="false">/blog/gdpr-can-turn-into-an-opportunity</guid><pubDate>Wed, 25 Sep 2019 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/gdpr190922.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h3 id=&quot;is-your-website-gdpr-compliant&quot;&gt;Is your website GDPR compliant?&lt;/h3&gt;
&lt;p&gt;The &lt;strong&gt;General Data Protection Regulation (GDPR)&lt;/strong&gt; ushers in a new era in data privacy and accordingly it is highly recommended to ensure your website is GDPR compliant – even if you are not located in the EU (Europe). You might wonder now why is that and why you should care, what is happening in Europe. In this case GDPR can be an opportunity. We will explain in this article why. First let us go through in a nutshell what GPDR means and what it is about:&lt;/p&gt;
&lt;h3 id=&quot;what-is-gdpr&quot;&gt;What is GDPR?&lt;/h3&gt;
&lt;p&gt;The main concern of GDPR are the privacy rights of EU citizens and providing these internet users more control over their data.&lt;/p&gt;
&lt;p&gt;For companies, governments and other entities GPDR establishes rules how to process data of individuals from the EU. While most regulations already existed in EU countries, GDPR looks to align them.&lt;/p&gt;
&lt;p&gt;Furthermore to modernize the regulations to today&amp;#39;s needs, referring here to the modern internet and how the usage overall has developed. Some regulations simply haven’t been up to date anymore.&lt;/p&gt;
&lt;h3 id=&quot;who-does-gdpr-apply-to&quot;&gt;Who does GDPR apply to?&lt;/h3&gt;
&lt;p&gt;The GDPR not only applies to companies and organizations located within the EU but also applies to those located outside of the EU if they offer goods or services to, or monitor the behaviour of, EU data subjects.&lt;/p&gt;
&lt;h3 id=&quot;&quot;&gt;&lt;img src=&quot;/uploads/man-at-gdpr-pc.jpg&quot; alt=&quot;&quot;&gt;&lt;/h3&gt;
&lt;h3 id=&quot;what-happens-if-you-are-not-gdpr-compliant&quot;&gt;What happens if you are not GDPR compliant?&lt;/h3&gt;
&lt;p&gt;Let us not talk about fines here, we all know that and I don&amp;#39;t want to scare you. Failure to comply will likely result in your organisation acquiring a poor reputation which could lead to a decline in consumer trust. Companies may even start to receive information requests from consumers, where you must state what personal data you hold on them up to fines from officials in worst case.&lt;/p&gt;
&lt;h3 id=&quot;gdpr-can-be-an-opportunity&quot;&gt;GDPR can be an opportunity&lt;/h3&gt;
&lt;p&gt;GDPR can turn into an opportunity for you, especially for businesses from outside the EU Zone. If you take steps to ensure that your business is compliant with the law, you are much better perceived in the EU and are secured of possible fines. To be upfront competitors and building trust amongst your customers, can be a real opportunity.&lt;/p&gt;
&lt;h3 id=&quot;so-how-to-get-gdpr-compliant-with-salesforce&quot;&gt;So how to get GDPR compliant with Salesforce?&lt;/h3&gt;
&lt;p&gt;Salesforce provides companies with the tools to achieve compliance and build trust amongst your customers. They are having a great &lt;a href=&quot;https://www.salesforce.com/gdpr/overview/#&quot;&gt;GDPR overview&lt;/a&gt; if you want to understand things quickly.&lt;/p&gt;
&lt;p&gt;Trailhead is another solid source of information and also offering learning units to understand GDPR better. Furthermore you can learn how to make your website compliant by implementing it properly. To get started I can recommend Trailhead’s &lt;a href=&quot;https://trailhead.salesforce.com/en/content/learn/trails/learn-privacy-and-data-protection-law&quot;&gt;Learn Privacy and Data Protection Law&lt;/a&gt; and &lt;a href=&quot;https://trailhead.salesforce.com/en/content/learn/modules/european-union-privacy-law-basics/implement-a-gdpr-compliance-program&quot;&gt;Implement a GDPR Compliance Program&lt;/a&gt;.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Why you should use a marketing calendar]]></title><description><![CDATA[Read about the benefits of using a marketing calendar and how to get started. Get some free templates to start right away.]]></description><link>https://cloudanswers.com/blog/why-you-should-use-a-marketing-calendar</link><guid isPermaLink="false">/blog/why-you-should-use-a-marketing-calendar</guid><pubDate>Tue, 27 Aug 2019 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/blogtop_marketing_calendar.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h2 id=&quot;why-you-should-use-a-marketing-calendar&quot;&gt;Why you should use a marketing calendar?&lt;/h2&gt;
&lt;p&gt;A short and general statement why you should use a marketing calendar is to ensure the big picture is realized. To do so, you need a birds eye on what is going to happen. And it’s not only about you, it’s essential and useful to: &lt;strong&gt;Keep stakeholders informed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;It doesn’t matter if it is your client, manager, CEO, at a certain stage people like to be informed and want to know what is going on. But also for cooperating with colleagues it comes in very handy to have a source that contains the key information in one overview.&lt;/p&gt;
&lt;p&gt;A marketing calendar provides exactly this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ongoing projects&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Starting dates &amp;amp; deadlines&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Estimated results&lt;/strong&gt; - Expectations solidified&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Estimated cost&lt;/strong&gt; - Keep track on the marketing budget&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Who is in charge&lt;/strong&gt; - Ownership clarified&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This overview allows anyone to get fast a good overview on what is happening, when and with which efforts and results. The who is in charge doesn’t make much sense if you’re a single marketer in a small company, but for larger corporations it can be useful to know whom to contact for further questions.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/marketing_meeting.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;In the end it is not only about keeping stakeholders informed, it is also very useful tool for your team and even yourself, having a single top level overview, containing all relevant key data.&lt;/p&gt;
&lt;h3 id=&quot;so-which-projects-and-tasks-should-be-displayed-now&quot;&gt;So which projects and tasks should be displayed now?&lt;/h3&gt;
&lt;p&gt;Breaking it down a little more about the projects and tasks which you can place on your marketing calendar. There’s usually no need to place each and every detailed task going on but rather top level information. To be considered that a marketing calendar also needs to be updated from time to time, you shouldn’t end up in spending significant time daily here.&lt;/p&gt;
&lt;p&gt;Giving a real life example - you can place how many social media posts you are doing within the month, displaying which day they will be published and adding the cost for promoting them. And also when you will operate paid campaigns or events will take place.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What to display on a marketing calendar:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Social media posts&lt;/li&gt;
&lt;li&gt;Blog posts&lt;/li&gt;
&lt;li&gt;Email newsletters&lt;/li&gt;
&lt;li&gt;Events&lt;/li&gt;
&lt;li&gt;Campaigns&lt;/li&gt;
&lt;li&gt;Key tasks (e.g. building a strategy)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is usually not a necessary must to add more detailed points like when the copywriting will be done, the graphics, how the promotion budget is split over the used channels and so on. But of course, if you want to add all these details, feel free to do so, it’s ‘your’ working tool and must work out to your needs.&lt;/p&gt;
&lt;h3 id=&quot;creating-your-own-marketing-calendar&quot;&gt;Creating your own marketing calendar&lt;/h3&gt;
&lt;p&gt;Solutions like our &lt;a href=&quot;https://cloudanswers.com/marketing-calendar/&quot;&gt;CloudAnswers Marketing Calendar&lt;/a&gt; can be installed in Salesforce, and is also coming with a free trial version. &lt;img src=&quot;/uploads/NEW-product-pics-marketing-calendar.png&quot; alt=&quot;marketing calendar salesforce app&quot;&gt; Here you are having all the benefits of Salesforce included, to keep your team and all stakeholders informed with ease, customize the settings and view to your company&amp;#39;s needs and further.&lt;/p&gt;
&lt;p&gt;And if you are not a Salesforce user? Then the most popular alternative is Excel and Google Sheets. There are many paid and free templates available, like Smartsheet’s free available &lt;a href=&quot;https://www.smartsheet.com/9-free-marketing-calendar-templates-excel&quot;&gt;Marketing Calendar templates&lt;/a&gt; just to name one example.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;So what are you waiting for? Create your own marketing calendar and give it a try.&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Sales Cycle Lengths]]></title><description><![CDATA[3 fundamental sales KPIs that can be automated - Sales Cycle Lengths. Opportunity age can be quickly calculated as days between CreatedDate and CloseDate.]]></description><link>https://cloudanswers.com/blog/sales-cycle-lengths</link><guid isPermaLink="false">/blog/sales-cycle-lengths</guid><pubDate>Wed, 14 Aug 2019 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/sales_cycle_3.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h2 id=&quot;3-fundamental-sales-kpis-that-can-be-automated---part-3&quot;&gt;3 fundamental sales KPIs that can be automated - Part 3&lt;/h2&gt;
&lt;h3 id=&quot;sales-cycle-lengths&quot;&gt;Sales Cycle Lengths&lt;/h3&gt;
&lt;p&gt;With the input and output of the sales engine measured, you now need to count the RPMs. In a combustion engine, RPM is short for &lt;strong&gt;Revolutions Per Minute&lt;/strong&gt; measured at the crank. For our purposes, this number will be how fast we’re processing opportunities and getting the real answer (yes, or not today).&lt;/p&gt;
&lt;p&gt;This one is the easiest to measure when your system is configured correctly. &lt;strong&gt;Opportunity age&lt;/strong&gt; can be quickly calculated as days between CreatedDate and CloseDate.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Age by won vs lost:&lt;/strong&gt; Are you dragging your feet thinking you can save a deal for too long? &lt;strong&gt;Age by closed month:&lt;/strong&gt; Are you getting faster or slower at identifying customer needs and closing? &lt;strong&gt;Age by team/rep:&lt;/strong&gt; Who in the team needs coaching and who can we all learn from? &lt;strong&gt;Age by lead source:&lt;/strong&gt; Are certain lead sources problematic time-wasters? &lt;strong&gt;Age by product of interest:&lt;/strong&gt; Do certain products require longer cycle times?&lt;/p&gt;
&lt;h3 id=&quot;automation-tips&quot;&gt;Automation Tips&lt;/h3&gt;
&lt;p&gt;Ensure that duplicates are managed with Salesforce built-in duplicate management and our lightning component for “&lt;a href=&quot;https://cloudanswers.com/merge-duplicates/&quot;&gt;Potential Duplicates Component&lt;/a&gt;”&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/NEW-product-pics-duplictaes.png&quot; alt=&quot;merge duplicates app&quot;&gt;&lt;/p&gt;
&lt;p&gt;Use &lt;a href=&quot;https://cloudanswers.com/report-sender/&quot;&gt;report-sender&lt;/a&gt; to make sure partners always know what you have in your pipeline for them.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/NEW-product-pics-report-sender.png&quot; alt=&quot;salesforce report sender app&quot;&gt;&lt;/p&gt;
&lt;p&gt;Ensure your validation rules are configured right so people will remember to enter the lost reason, competitors, etc. This can also be done with &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=sales_cycle_lengths&quot;&gt;Report Sender&lt;/a&gt; to send lost deals list with full details to the sales team ahead of your weekly sales status call. This will allow for a fast offline snapshot review of what is killing deals.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Read also:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/3-fundamental-sales-kpis-that-can-be-automated-find-holes-in-your-funnel/&quot;&gt;Part 2 - find holes in your funnel&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudanswers.com/3-fundamental-sales-kpis-that-can-be-automated-new-opportunities/&quot;&gt;Part 1 - new opportunities&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[3 fundamental sales KPIs that can be automated - find holes in your funnel]]></title><description><![CDATA[3 fundamental sales KPIs that can be automated. Find holes in your funnel and improve your sales engine by using the right tools.]]></description><link>https://cloudanswers.com/blog/3-fundamental-sales-kpis-that-can-be-automated</link><guid isPermaLink="false">/blog/3-fundamental-sales-kpis-that-can-be-automated</guid><pubDate>Thu, 25 Jul 2019 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/blog-post-20190725.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h2 id=&quot;3-fundamental-sales-kpis-that-can-be-automated---part-2&quot;&gt;3 fundamental sales KPIs that can be automated - Part 2&lt;/h2&gt;
&lt;h3 id=&quot;find-holes-in-your-funnel&quot;&gt;Find holes in your funnel&lt;/h3&gt;
&lt;p&gt;With the input of your sales engine measured, you can then identify what comes out of the engine. In the case of a car engine, it converts gas and air into motion but some waste comes out of the process which usually takes the form of heat and sound. Visualize yourself in a car on the highway, the car starts to make a lot of noise, smoke comes out from under the hood. When you get to the shop, your mechanic might ask what kind of sound it made before it broke down, or what color was the smoke.&lt;/p&gt;
&lt;p&gt;All great sales engines have constant monitoring of the byproduct of the sales process. Just as your mechanic asks what kind of sound it made, you need to ask “where did those lost opps come from”.&lt;/p&gt;
&lt;p&gt;Assuming that Salesforce is setup with standard reminders, the right list views, and managers are coaching users through their open pipeline on a regular basis, it will be easy to measure your outputs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Closed Opportunities&lt;/strong&gt; (compared to #1 New Opportunities): Is management pushing deals through the process?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Closed Lost Reasons by Month&lt;/strong&gt;: Are we within a budget cycle slowdown (selling to higher ed during admission season) or is an expected slowdown due to vacation season (summer) coming up?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Closed Lost vs Closed Won Opportunities&lt;/strong&gt;: Do NOT prominently display this number up front because non-sales people oversimplify the sales process and extrapolate ideas from it that simply are not true. For instance, you will often find that the best sales rep in your company has the lowest close ratio because they are calling the most people.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/find-opportunities-300x189.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;helpful-appexchange-apps-that-can-help-with-this&quot;&gt;&lt;strong&gt;Helpful AppExchange apps that can help with this:&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Report sender&lt;/strong&gt; to send lost deals list with full details to the sales team ahead of your weekly sales status call.  This will allow for a fast offline snapshot review of what is killing deals.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=3_fundamental_sales_kpis&amp;amp;utm_content=report_sender&quot;&gt;Get Report Sender on AppExchange&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[3 fundamental sales KPIs that can be automated - new opportunities]]></title><description><![CDATA[Learn how to get the right KPIs out of Salesforce. Get to know everything about the top of the funnel health and use it to...]]></description><link>https://cloudanswers.com/blog/3-fundamental-sales-kpis-that-can-be-automated-new-opportunities</link><guid isPermaLink="false">/blog/3-fundamental-sales-kpis-that-can-be-automated-new-opportunities</guid><pubDate>Mon, 08 Jul 2019 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/blog_ca_kpi.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h2 id=&quot;3-fundamental-sales-kpis-that-can-be-automated&quot;&gt;3 fundamental sales KPIs that can be automated&lt;/h2&gt;
&lt;p&gt;It’s hard when the whole business doesn’t use Salesforce because they don’t have access to the same rich data that you do. It’s even harder when they are looking for insight on the performance of your sales department. If you are a sales manager in a company where Salesforce is a silo (or island) or you are running a company and feel like you don’t get the right KPIs out of your Salesforce system, read on.&lt;/p&gt;
&lt;p&gt;The best way for independent teams to gain visibility into their each other’s activity is to collect and measure performance through KPIs that are aligned with the company’s vision. Luckily for us consultants, your company’s vision probably includes increasing the number of people that are benefiting from your solution (aka “sales”). There’s no one-size-fits-all approach to sales strategy, but there are certainly 3 fundamentals activities of sales: generating opportunities where relevant, communicating value, and showing prospective customers how benefits can start today.&lt;/p&gt;
&lt;h3 id=&quot;1-new-opportunities&quot;&gt;1. New Opportunities&lt;/h3&gt;
&lt;p&gt;Without a question, this number is already presented at board meetings and executive staff reviews. Opportunities are items which sit within the sales funnel, which is the domain of sales. You won’t see leads mentioned in this post since it’s not a marketing KPI article, this is just about sales.&lt;/p&gt;
&lt;p&gt;If your salespeople have been given training and your CRM is configured with appropriate validation rules to ensure data quality, then your new opportunities metric can be sliced to tell you about the health of many parts of the sales organization:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Group by Opportunity Source: Is marketing appropriately fueling the sales engine?&lt;/li&gt;
&lt;li&gt;Group by Month: Is there a yearly cyclical pattern being observed that we can overcome?&lt;/li&gt;
&lt;li&gt;Group by Owner/Team &amp;amp; Created Date: Monitor for an individual contributor or group issues&lt;/li&gt;
&lt;li&gt;Group by Account Type: Are we encountering a new market segment and are we prepared for it?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/kpi-example-chart.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;As you can see, grouping a simple KPI by other attributes can tell you a lot. Our suggestion is to add this number into a dashboard and copies of this KPI with filters until you feel like you know everything about top of the funnel health.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Automation tips:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ensure that duplicates are managed with Salesforce built-in duplicate management and our lightning component for “&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EcyysUAB&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=3_fundamental_sales_kpis&amp;amp;utm_content=potential_duplicates_component&quot;&gt;Potential Duplicates Component&lt;/a&gt;”&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/screenshot_no_duplictaes.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Use report-sender to make sure partners always know what you have in your pipeline for them.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/screenshot_report_sender.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[5 tricks to accelerate business with emailed reports using Report Sender]]></title><description><![CDATA[The top 5 tricks to accelerate business with emailed reports using Report Sender. #1 Disseminate Product Updates to Partners...]]></description><link>https://cloudanswers.com/blog/accelerate-business-with-emailed-reports-using-report-sender</link><guid isPermaLink="false">/blog/accelerate-business-with-emailed-reports-using-report-sender</guid><pubDate>Thu, 18 Apr 2019 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/412612_Blog-Post-for-April-18_1200x824_v1_041819-1.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;image: /uploads/image: /uploads/image: /uploads/You need it for agreements, reminders, sending files, meeting with colleagues, and so much more.  &lt;em&gt;&lt;strong&gt;Email.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Even though more people than ever have some form of access to your salesforce database through platform licenses, communities, etc, people still depend on emailing data for a surprising number of processes/workflows. Unfortunately, you are usually stuck with creating an email forward rule. And still don&amp;#39;t get the data in the format you need (attached as a file).&lt;/p&gt;
&lt;h3 id=&quot;click-here-to-learn-more-about-the-cloudanswers-report-sender&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=accelerate_business_with_emailed_reports&amp;amp;utm_content=click_here_to_learn_more&quot;&gt;Click here to learn more about the CloudAnswers Report Sender&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;It can be a challenge to keep processes working with outside partners or internal employees that don&amp;#39;t work daily in salesforce.  Also, making them login to salesforce isn&amp;#39;t always an option. To help make your admin life easier, we put together a new app that automatically emails your reports. On a schedule you decide, to any email address, not just those people with salesforce accounts (yes, inside and outside your company).&lt;/p&gt;
&lt;h2 id=&quot;here-are-our-top-5-recipes-to-accelerate-business-processes-using-cloudanswers-report-sender&quot;&gt;Here are our top 5 recipes to accelerate business processes using CloudAnswers Report Sender:&lt;/h2&gt;
&lt;h3 id=&quot;1-disseminate-product-updates-to-partners&quot;&gt;#1 Disseminate Product Updates to Partners&lt;/h3&gt;
&lt;p&gt;Partner selling is a reality of today&amp;#39;s hyper-connected business world but most companies don&amp;#39;t have the time and budget to build real integrations to synchronize their product catalogs.  A survey of our largest customers found that over 90% are distributing product catalogs using emailed spreadsheets that they must extract manually and send personally. That&amp;#39;s a huge time commitment when you scale to large numbers of partners.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Here&amp;#39;s how to solve this problem for free:&lt;/strong&gt; 1. Create a report for products that are public to partners (this might require creating a custom field like &amp;quot;Partner Visible&amp;quot;) 2. Create a report filtered to those products 3. Schedule the report using &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=accelerate_business_with_emailed_reports&amp;amp;utm_content=how_to_solve_the_problem_for_free&quot;&gt;Report Sender (free app)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As an added bonus, your partner might be able to automatically load your spreadsheet into their system, making the process totally automatic for everyone involved!  Just make sure to include your product code and/or salesforce id (case-safe id) of the product so they can detect updates reliably.&lt;/p&gt;
&lt;h3 id=&quot;2-connect-teams-without-salesforce-access&quot;&gt;#2 Connect Teams Without Salesforce Access&lt;/h3&gt;
&lt;p&gt;Here are some common scenarios where teams might not have full access to Salesforce but can benefit immensely from being pushed selective information. Implementation teams need to know about customer service issues for their projects, but they might be working in an ERP tool.  One customer service team might be using Jira self-hosted and can&amp;#39;t easily integrate tickets. Finance teams might want to knows what upcoming deals are likely to close this quarter so they can prepare documentation folders for complex sales.&lt;/p&gt;
&lt;p&gt;Currently, you might have one shared read-only account everyone uses to get information, but it still requires them to log in and get information on a pull-basis that requires your business users to login, remember where to go, and hopefully find the right information.&lt;/p&gt;
&lt;h3 id=&quot;3-get-rid-of-those-users-that-only-log-in-once-every-3-months&quot;&gt;#3 Get rid of those users that only log in once every 3 months&lt;/h3&gt;
&lt;p&gt;Give them a daily or weekly email subscription of the information that pertains to them.&lt;/p&gt;
&lt;p&gt;Each scenario above can usually be solved by creating scheduled reports targeted to the right individuals or mailing lists. Schedule a report of cases for a project manager&amp;#39;s client or related product tag for a support team using an outside customer support tool.  Schedule reports of upcoming deals (current CQ or next 90 days) with relevant fields included.&lt;/p&gt;
&lt;h3 id=&quot;4-provide-lead-lists-to-lead-sales-partners&quot;&gt;#4 Provide Lead Lists to Lead Sales Partners&lt;/h3&gt;
&lt;p&gt;A popular trend over the last 5 years has been to outsource the BDR or cold calling roles.  Companies create 1 user account under a false name, assign all the leads they want to be called, and then let them rip.  It sounds great in practice, but it&amp;#39;s sometimes hard to tell what kind of progress is being made over time since not everyone is familiar with how to build the reports, how to evaluate reports like &amp;quot;leads with converted lead information&amp;quot;. Sometimes merging duplicates can really change statistics.&lt;/p&gt;
&lt;p&gt;Solution:  Create a scheduled report to the partner and yourself that includes their assigned leads. This attached file will get sent every weekday or every week and will act as a poor man&amp;#39;s snapshot that you can always refer back to.&lt;/p&gt;
&lt;p&gt;However, some lower-cost cold-calling partners will want to call down a spreadsheet and won&amp;#39;t log in to your CRM (or maybe it&amp;#39;s just too time-consuming on your side to set that up).  It&amp;#39;s up to you to give them that spreadsheet on a regular basis - which can be fully automated by using &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=accelerate_business_with_emailed_reports&amp;amp;utm_content=provide_lead_lists&quot;&gt;CloudAnswers Report Sender&lt;/a&gt; (free app).  Your flow then becomes: 1.  The partner gets an emailed report of all their open leads 2.  They call down the list, update the spreadsheet, and email it back to you&lt;/p&gt;
&lt;p&gt;Now your whole process is automatic from your side and you don&amp;#39;t waste time emailing reports anymore.&lt;/p&gt;
&lt;h3 id=&quot;5-poor-mans-edi-integration&quot;&gt;#5 Poor-man&amp;#39;s EDI (integration)&lt;/h3&gt;
&lt;p&gt;The largest companies will negotiate API based connections, so each company&amp;#39;s system will communicate in real-time with each other.  Companies on Salesforce have an average user count of only 25, so the chances are that you aren&amp;#39;t having your IT department program integrations with partners at the moment!&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a way some of our middle size customers have actually integrated with partners with minimal IT involvement and without having to open firewall rules, involve security people, etc: a.  Identify the data you want to send to your partner using a report with filters b.  Schedule your report using &lt;a href=&quot;https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EJdlFUAT&amp;amp;utm_source=cloudanswers_website&amp;amp;utm_medium=blog&amp;amp;utm_campaign=accelerate_business_with_emailed_reports&amp;amp;utm_content=poor_mans_edi&quot;&gt;CloudAnswers Report Sender (free app)&lt;/a&gt; to your partner&amp;#39;s email address c.  If your partner is using salesforce, they can paste in code freely found online &lt;a href=&quot;https://developer.salesforce.com/forums?id=906F00000008vvmIAA&quot;&gt;here&lt;/a&gt;, &lt;a href=&quot;https://www.forcetalks.com/blog/email-service-inserting-data-in-salesforce-using-email-attachment/&quot;&gt;here&lt;/a&gt;, or &lt;a href=&quot;https://appexchange.salesforce.com/listingDetail?listingId=a0N30000001ssrYEAQ&quot;&gt;here&lt;/a&gt;. Or if they use another system, they can often write a script to process the file from an inbox automatically. (we also do consulting so let us know if you &lt;a href=&quot;https://cloudanswers.com/services/&quot;&gt;need help&lt;/a&gt;)image: /uploads/image: /uploads/&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Winners of the First CloudAnswers Open Hackathon]]></title><description><![CDATA[CloudAnswers open hackathon happens on a monthly basis. Teams are challenged to build apps that are related to Salesforce]]></description><link>https://cloudanswers.com/blog/winners-of-the-first-cloudanswers-open-hackathon</link><guid isPermaLink="false">/blog/winners-of-the-first-cloudanswers-open-hackathon</guid><pubDate>Wed, 09 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/blog_ca_2019-01-09.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h1 id=&quot;the-cloudanswers-open-hackathon&quot;&gt;The CloudAnswers open hackathon&lt;/h1&gt;
&lt;p&gt;At CloudAnswers we&amp;#39;ve been having 24 hour hackathons on a monthly basis for almost a year. It has proven to be a great way for developers to take a break from the normal customer projects, learn new technologies, and solve problems that affect many of our clients. And now several of the previous hackathon apps are going through the Salesforce security review process and will join our other &lt;a href=&quot;https://cloudanswers.com/products/&quot;&gt;AppExchange Apps&lt;/a&gt; online!&lt;/p&gt;
&lt;p&gt;Now that we&amp;#39;ve run this successfully internally, we wanted to invite others from outside the company for fresh ideas and to make it more fun and engaging. So we set up a website and invited some colleagues to join us in seeing what can be created. For the month of December, developers from around the world joined in on our &lt;a href=&quot;https://hackathon.cloudanswers.com/&quot;&gt;Open Hackathon&lt;/a&gt; to build Salesforce apps.&lt;/p&gt;
&lt;p&gt;Teams were challenged to build apps according to the following guidelines:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Projects must be open source.&lt;/li&gt;
&lt;li&gt;Projects must be related to Salesforce or use Salesforce technology.&lt;/li&gt;
&lt;li&gt;Projects must be committed to GitHub so that we can verify that contestants complied with the project guidelines.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On Friday, January 4th we held our judging webinar. Contestants from around the world had 5 minutes to present their projects to the judges. The judging panel was made up of people with extensive Salesforce experience, including several Salesforce MVPs and people who have experience publishing apps on the AppExchange. Contestants were judged on the following criteria:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;25% originality: please don’t make a slightly better de-dupe tool. Let&amp;#39;s see some creativity.&lt;/li&gt;
&lt;li&gt;25% tech chops: are you a true hacker?&lt;/li&gt;
&lt;li&gt;25% polish: is it easy to understand and use, or does it have errors everywhere?&lt;/li&gt;
&lt;li&gt;25% business viability: is this a real product?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After seeing lots of great demos, the judges chose the following two projects as our first and second place winners, getting $1,000 and $500 in prize money!&lt;/p&gt;
&lt;h2 id=&quot;first-place-james-sullivan-org-health-check&quot;&gt;First Place: James Sullivan, Org Health Check&lt;/h2&gt;
&lt;p&gt;James took first place with a comprehensive and super simple way to monitor changes to a Salesforce org. Using Amazon and JSforce, James created an app that anyone can sign up for in just a few seconds.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/DB-Saver-Website.png&quot; alt=&quot;DB Saver Website&quot;&gt;&lt;/p&gt;
&lt;p&gt;After they&amp;#39;ve given permission for the app to log in to their Salesforce org, the app will log in on a daily basis, run a variety of tests, and email the admin with important information about the security of their org.&lt;/p&gt;
&lt;p&gt;Some of the various things that it monitors:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Where people are logging in from (to detect unexpected locations)&lt;/li&gt;
&lt;li&gt;Newly installed apps (to monitor for unexpected installs)&lt;/li&gt;
&lt;li&gt;Unit test failures (in case configuration changes broke your code)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;image: /uploads/&lt;/p&gt;
&lt;h2 id=&quot;second-place-avinava-maiti-smart-alerts&quot;&gt;Second Place: Avinava Maiti, Smart Alerts&lt;/h2&gt;
&lt;p&gt;In a very close second, Avinava created a system for admins to create record alerts for their users. Sometimes, a validation rule is just too much, and you want to allow people to save the record but still get a warning of sorts. Well, with Smart Alerts you can setup formulas that display warnings to the users, like when they don&amp;#39;t have a Next Step on an Opportunity or don&amp;#39;t have a phone number for a Contact.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Smart-Alerts-List.png&quot; alt=&quot;Smart Alerts List&quot;&gt;&lt;/p&gt;
&lt;p&gt;Using a custom object and a lightning component, Avinava built a system that will use lightning data service to evaluate formulas and display alerts to the user. The system is fully customizable and works on any object with a little bit of setup.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Smart-Alerts.png&quot; alt=&quot;Smart Alerts&quot;&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[How to use Lightning Components in Flows]]></title><description><![CDATA[How to use Lightning Components in Flows? A flow is an application usually built by Salesforce administrators.]]></description><link>https://cloudanswers.com/blog/how-to-use-lightning-components-in-flows</link><guid isPermaLink="false">/blog/how-to-use-lightning-components-in-flows</guid><pubDate>Tue, 24 Jul 2018 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/salesforce-lightning-experience.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h3 id=&quot;who-is-this-for-salesforce-administrators&quot;&gt;Who is this for? Salesforce Administrators&lt;/h3&gt;
&lt;p&gt;A flow is an application usually built by Salesforce administrators that asks you for inputs and does something in Salesforce based on those inputs. Flows are designed using Cloud Flow Designer which has a bunch of tools that allow for automation of business processes without the use of custom code. You can do many things from a flow like execute logic, interact with Salesforce, call Apex classes, collect data from user with screen elements, etc. Recently, in Winter 18, a new feature was released to allow the use of Lightning Components in Flows which is the focus of this blog post.&lt;/p&gt;
&lt;h3 id=&quot;using-lightning-components-in-flows&quot;&gt;&lt;strong&gt;Using Lightning Components in Flows&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The ability to add Lightning Components in Flow means that the flow screens can do much more than just inputs, choices and outputs. With the use of Lightning Components inflows we can make the flow much more interactive and achieve more. Here are a few examples of what we can do with Lightning components inflows&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A progress tracker&lt;/li&gt;
&lt;li&gt;Ask different input based on previous values&lt;/li&gt;
&lt;li&gt;Record selection&lt;/li&gt;
&lt;li&gt;Displaying data&lt;/li&gt;
&lt;li&gt;Embedding video, images, etc&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;how-it-works&quot;&gt;&lt;strong&gt;How It Works&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Once the Lightning Component is developed and ready to use, you can follow the following steps to add a Lightning Component to your flows.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the flow screen on which we want to add the lightning component. The key points to make lightning components available for flow screens are as follows:&lt;ul&gt;
&lt;li&gt;Lightning component should implement &lt;strong&gt;lightning:availableForFlowScreens&lt;/strong&gt; interface&lt;/li&gt;
&lt;li&gt;To make an attribute’s value customizable in the Cloud Flow Designer, add it to the component&amp;#39;s design resource. This will allow the flow admins to pass values between that attribute and the flow when they configure the screen field.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Drag and drop the Lightning component element on to the screen.&lt;img src=&quot;/uploads/Screen-Shot-2018-07-23-at-2.43.14-pm.png&quot; alt=&quot;Screen Shot 2018-07-23 at 2.43.14 pm&quot;&gt;&lt;/li&gt;
&lt;li&gt;Map the flow variables to Lightning Component attributes&lt;ul&gt;
&lt;li&gt;Set a unique name for the component&lt;/li&gt;
&lt;li&gt;Select the lightning component&lt;/li&gt;
&lt;li&gt;Use the Inputs tab to set an attribute using values from the flow. Use the Outputs tab to store an attribute’s value in a flow variable.&lt;/li&gt;
&lt;li&gt;Save the screen, save and activate the flow.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Screen-Shot-2018-07-23-at-3.45.51-pm-1024x411.png&quot; alt=&quot;Screen Shot 2018-07-23 at 3.45.51 pm&quot;&gt;&lt;/p&gt;
&lt;p&gt;Here is how this flow looks when we run it using the Debug option.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Screen-Shot-2018-07-23-at-3.44.48-pm.png&quot; alt=&quot;Screen Shot 2018-07-23 at 3.44.48 pm.png&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;embed-flows-in-lightning-communities&quot;&gt;&lt;strong&gt;Embed flows in Lightning Communities&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;In Winter’18, there was another new feature that allows users to embed flows in Lightning Communities. There are multiple use cases for this feature. The ability to publish surveys for community users to complete is one such use case.&lt;/p&gt;
&lt;h3 id=&quot;using-quick-actions-to-launch-flows&quot;&gt;&lt;strong&gt;Using Quick Actions to launch Flows&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Lightning Flows with screens can also be launched using Action. Here are key points to keep in mind while setting up Quick Actions to launch Flows.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Flow Type&lt;/strong&gt;: Flow actions support only flows that include screens.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flow Status&lt;/strong&gt;: The flow must be active. If you later deactivate the flow, the action doesn’t appear at runtime.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action Types&lt;/strong&gt;: Flow actions are available only as object-specific actions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action Title&lt;/strong&gt;: The title that appears on the modal is the action’s label instead of the flow name. We recommend entering the flow name as the action label.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Input Variables&lt;/strong&gt;: Flow actions let you pass the value of the record&amp;#39;s ID field into the flow, but that&amp;#39;s it. If your flow has a Text input variable called recordId, the action passes the record&amp;#39;s ID into that variable at runtime. If not, it doesn&amp;#39;t and the flow tries to run anyway. This is a very useful feature that users can utilize to build flows using lightning components to accomplish lots of different things.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Help Text&lt;/strong&gt;: A flow action’s screen-level help text isn’t available for feed-based page layouts.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;resources&quot;&gt;&lt;strong&gt;Resources:&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/components_config_for_flow_screens.htm&quot;&gt;Configure Components for Flow Screens&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://trailhead.salesforce.com/en/modules/screen_flow_distribution/units/screen_flow_distribution_action&quot;&gt;Trailhead: Add a Flow As an Action on a Record&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Read also &lt;a href=&quot;https://cloudanswers.com/salesforce-lightning-components-overview/&quot;&gt;Salesforce Lightning components overview&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Salesforce Big Objects]]></title><description><![CDATA[Salesforce big objects allow you to store and manage a massive amount of data on the Salesforce platform.It provides a consistent performance]]></description><link>https://cloudanswers.com/blog/salesforce-big-objects</link><guid isPermaLink="false">/blog/salesforce-big-objects</guid><pubDate>Thu, 28 Jun 2018 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/blog_ca_2018-06-16.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h2 id=&quot;what-are-the-big-objects&quot;&gt;&lt;strong&gt;What are the Big Objects?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Big objects allow you to store and manage a massive amount (billions of rows) of data on the Salesforce platform. It provides a consistent performance with massive data for searching and returning results quickly.&lt;/p&gt;
&lt;p&gt;Big objects are accessible with a standard set of APIs to your org or external system.&lt;/p&gt;
&lt;h2 id=&quot;types-of-big-objects&quot;&gt;&lt;strong&gt;Types of Big Objects&lt;/strong&gt;:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Standard big objects&lt;/strong&gt; are defined by Salesforce and are included in Salesforce products. For example, FieldHistoryArchive stores the history of field changes on your Salesforce objects&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom big objects&lt;/strong&gt; are defined and deployed by you through the Metadata API.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;custom-big-objects&quot;&gt;&lt;strong&gt;Custom Big Objects&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Considerations&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You must use the Metadata API to define a big object or add a field to a custom big object.&lt;/li&gt;
&lt;li&gt;Big objects support custom Lightning and Visualforce components rather than standard UI elements.&lt;/li&gt;
&lt;li&gt;You can create up to 100 big objects per org.&lt;/li&gt;
&lt;li&gt;Features like triggers, flows, processes, and the Salesforce app are not available.&lt;/li&gt;
&lt;li&gt;You can&amp;#39;t use Salesforce Connect external objects to access big objects in another org.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;how-to-create-a-big-object&quot;&gt;&lt;strong&gt;How to Create a Big Object:&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Salesforce doesn&amp;#39;t provide the ability to define a custom big object from the Salesforce UI. The only way we have to build it is through the Metadata API. To create a big object, you need three files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;An object file&lt;/strong&gt;:  This file is required to create a big object. In this file, we define the custom big object&amp;#39;s fields and indexes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A permission set or profile file&lt;/strong&gt;: This file is not required, but we use this file to define user access for a custom big object. Here we define field permissions for a custom big object.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A package.xml file&lt;/strong&gt;: This file is also required. This is the same file that we use for salesforce component deployment and retrieval. Here we describe our custom object.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Sample big object file&lt;/strong&gt; (Rider_History__b.object):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&amp;lt;CustomObject xmlns=&amp;quot;http://soap.sforce.com/2006/04/metadata&amp;quot;&amp;gt;
   &amp;lt;deploymentStatus&amp;gt;Deployed&amp;lt;/deploymentStatus&amp;gt;
       &amp;lt;fields&amp;gt;
          &amp;lt;fullName&amp;gt;Start\_Location\_Lat\_\_c&amp;lt;/fullName&amp;gt;
          &amp;lt;label&amp;gt;Start Location Latitude&amp;lt;/label&amp;gt;
          &amp;lt;required&amp;gt;false&amp;lt;/required&amp;gt;
          &amp;lt;type&amp;gt;Number&amp;lt;/type&amp;gt;
          &amp;lt;scale&amp;gt;4&amp;lt;/scale&amp;gt;
          &amp;lt;precision&amp;gt;7&amp;lt;/precision&amp;gt;
          &amp;lt;unique&amp;gt;false&amp;lt;/unique&amp;gt;
       &amp;lt;/fields&amp;gt;
       &amp;lt;fields&amp;gt;
          &amp;lt;fullName&amp;gt;Start\_Location\_Long\_\_c&amp;lt;/fullName&amp;gt;
          &amp;lt;label&amp;gt;Start Location Longitude&amp;lt;/label&amp;gt;
          &amp;lt;required&amp;gt;false&amp;lt;/required&amp;gt;
          &amp;lt;type&amp;gt;Number&amp;lt;/type&amp;gt;
          &amp;lt;scale&amp;gt;4&amp;lt;/scale&amp;gt;
          &amp;lt;precision&amp;gt;7&amp;lt;/precision&amp;gt;
          &amp;lt;unique&amp;gt;false&amp;lt;/unique&amp;gt;
      &amp;lt;/fields&amp;gt;
      &amp;lt;fields&amp;gt;
          &amp;lt;fullName&amp;gt;Start\_Time\_\_c&amp;lt;/fullName&amp;gt;
          &amp;lt;label&amp;gt;Start Time&amp;lt;/label&amp;gt;
          &amp;lt;required&amp;gt;true&amp;lt;/required&amp;gt;
          &amp;lt;type&amp;gt;DateTime&amp;lt;/type&amp;gt;
          &amp;lt;unique&amp;gt;false&amp;lt;/unique&amp;gt;
      &amp;lt;/fields&amp;gt;
      &amp;lt;fields&amp;gt;
         &amp;lt;fullName&amp;gt;End\_Time\_\_c&amp;lt;/fullName&amp;gt;
         &amp;lt;label&amp;gt;End Time&amp;lt;/label&amp;gt;
         &amp;lt;required&amp;gt;false&amp;lt;/required&amp;gt;
         &amp;lt;type&amp;gt;DateTime&amp;lt;/type&amp;gt;
         &amp;lt;unique&amp;gt;false&amp;lt;/unique&amp;gt;
      &amp;lt;/fields&amp;gt;
      &amp;lt;fields&amp;gt;
         &amp;lt;fullName&amp;gt;Service\_Type\_\_c&amp;lt;/fullName&amp;gt;
         &amp;lt;label&amp;gt;Service Type&amp;lt;/label&amp;gt;
         &amp;lt;length&amp;gt;16&amp;lt;/length&amp;gt;
         &amp;lt;required&amp;gt;false&amp;lt;/required&amp;gt;
         &amp;lt;type&amp;gt;Text&amp;lt;/type&amp;gt;
         &amp;lt;unique&amp;gt;false&amp;lt;/unique&amp;gt;
      &amp;lt;/fields&amp;gt;
      &amp;lt;fields&amp;gt;
         &amp;lt;fullName&amp;gt;Rider\_Account\_\_c&amp;lt;/fullName&amp;gt;
         &amp;lt;label&amp;gt;Rider Account&amp;lt;/label&amp;gt;
         &amp;lt;length&amp;gt;16&amp;lt;/length&amp;gt;
         &amp;lt;required&amp;gt;true&amp;lt;/required&amp;gt;
         &amp;lt;type&amp;gt;Text&amp;lt;/type&amp;gt;
         &amp;lt;unique&amp;gt;false&amp;lt;/unique&amp;gt;
      &amp;lt;/fields&amp;gt;
      &amp;lt;fields&amp;gt;
         &amp;lt;fullName&amp;gt;Rider\_Rating\_\_c&amp;lt;/fullName&amp;gt;
         &amp;lt;label&amp;gt;Rider Rating&amp;lt;/label&amp;gt;
         &amp;lt;required&amp;gt;false&amp;lt;/required&amp;gt;
         &amp;lt;type&amp;gt;Number&amp;lt;/type&amp;gt;
         &amp;lt;scale&amp;gt;1&amp;lt;/scale&amp;gt;
         &amp;lt;precision&amp;gt;2&amp;lt;/precision&amp;gt;
         &amp;lt;unique&amp;gt;false&amp;lt;/unique&amp;gt;
      &amp;lt;/fields&amp;gt;
      &amp;lt;indexes&amp;gt;
         &amp;lt;fullName&amp;gt;Rider\_History\_Index&amp;lt;/fullName&amp;gt;
         &amp;lt;label&amp;gt;Rider History Index&amp;lt;/label&amp;gt;
      &amp;lt;fields&amp;gt;
         &amp;lt;name&amp;gt;Rider\_Account\_\_c&amp;lt;/name&amp;gt;
         &amp;lt;sortDirection&amp;gt;DESC&amp;lt;/sortDirection&amp;gt;
      &amp;lt;/fields&amp;gt;
      &amp;lt;fields&amp;gt;
         &amp;lt;name&amp;gt;Start\_Time\_\_c&amp;lt;/name&amp;gt;
         &amp;lt;sortDirection&amp;gt;DESC&amp;lt;/sortDirection&amp;gt;
      &amp;lt;/fields&amp;gt;
 &amp;lt;/indexes&amp;gt;
     &amp;lt;label&amp;gt;Rider History&amp;lt;/label&amp;gt;
     &amp;lt;pluralLabel&amp;gt;Rider Histories&amp;lt;/pluralLabel&amp;gt;
&amp;lt;/CustomObject&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;File location&lt;/strong&gt; (src-&amp;gt;objects): &lt;img src=&quot;/uploads/Rider-file.jpg&quot; alt=&quot;Rider file.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sample permission set file&lt;/strong&gt; (rider_history.permissionset)&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
   &amp;lt;PermissionSet xmlns=&amp;quot;http://soap.sforce.com/2006/04/metadata&amp;quot;&amp;gt;
      &amp;lt;fieldPermissions&amp;gt;
         &amp;lt;editable&amp;gt;true&amp;lt;/editable&amp;gt;
         &amp;lt;field&amp;gt;rider\_history\_\_b.Start\_Location\_Lat\_\_c&amp;lt;/field&amp;gt;
         &amp;lt;readable&amp;gt;true&amp;lt;/readable&amp;gt;
      &amp;lt;/fieldPermissions&amp;gt;
      &amp;lt;fieldPermissions&amp;gt;
         &amp;lt;editable&amp;gt;true&amp;lt;/editable&amp;gt;
         &amp;lt;field&amp;gt;rider\_history\_\_b.Start\_Location\_Long\_\_c&amp;lt;/field&amp;gt;
         &amp;lt;readable&amp;gt;true&amp;lt;/readable&amp;gt;
      &amp;lt;/fieldPermissions&amp;gt;
      &amp;lt;fieldPermissions&amp;gt;
         &amp;lt;editable&amp;gt;true&amp;lt;/editable&amp;gt;
         &amp;lt;field&amp;gt;rider\_history\_\_b.End\_Time\_\_c&amp;lt;/field&amp;gt;
         &amp;lt;readable&amp;gt;true&amp;lt;/readable&amp;gt;
      &amp;lt;/fieldPermissions&amp;gt;
      &amp;lt;fieldPermissions&amp;gt;
         &amp;lt;editable&amp;gt;true&amp;lt;/editable&amp;gt;
         &amp;lt;field&amp;gt;rider\_history\_\_b.Service\_Type\_\_c&amp;lt;/field&amp;gt;
         &amp;lt;readable&amp;gt;true&amp;lt;/readable&amp;gt;
      &amp;lt;/fieldPermissions&amp;gt;
      &amp;lt;fieldPermissions&amp;gt;
         &amp;lt;editable&amp;gt;true&amp;lt;/editable&amp;gt;
         &amp;lt;field&amp;gt;rider\_history\_\_b.Rider\_Rating\_\_c&amp;lt;/field&amp;gt;
         &amp;lt;readable&amp;gt;true&amp;lt;/readable&amp;gt;
      &amp;lt;/fieldPermissions&amp;gt;
      &amp;lt;label&amp;gt;Rider History Permission Set&amp;lt;/label&amp;gt;
&amp;lt;/PermissionSet&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;File location&lt;/strong&gt; (src-&amp;gt;permissionsets)&lt;img src=&quot;/uploads/permissionsets.jpg&quot; alt=&quot;permissionsets.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sample package.xml file:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
   &amp;lt;Package xmlns=&amp;quot;http://soap.sforce.com/2006/04/metadata&amp;quot;&amp;gt;
   &amp;lt;types&amp;gt;
      &amp;lt;members&amp;gt;\*&amp;lt;/members&amp;gt;
      &amp;lt;name&amp;gt;CustomObject&amp;lt;/name&amp;gt;
   &amp;lt;/types&amp;gt;
   &amp;lt;types&amp;gt;
      &amp;lt;members&amp;gt;\*&amp;lt;/members&amp;gt;
      &amp;lt;name&amp;gt;PermissionSet&amp;lt;/name&amp;gt;
   &amp;lt;/types&amp;gt;
   &amp;lt;version&amp;gt;41.0&amp;lt;/version&amp;gt;
&amp;lt;/Package&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;File location&lt;/strong&gt; (src)&lt;img src=&quot;/uploads/src.jpg&quot; alt=&quot;src.jpg&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;deployment-of-metadata-files-created-above&quot;&gt;&lt;strong&gt;Deployment of metadata files created above&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;We can use any metadata deployment tool like ant or &lt;a href=&quot;https://workbench.developerforce.com/&quot;&gt;workbench&lt;/a&gt; for the deployment of our components.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ll demonstrate here using workbench:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt;) Zip src folder.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt;) Login to the &lt;a href=&quot;https://workbench.developerforce.com/&quot;&gt;workbench&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt;) Go to migration -&amp;gt; Deploy&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt;) Upload your zip folder by clicking &amp;quot;choose file&amp;quot;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 5&lt;/strong&gt;) Check options as shown below and click next.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Workbench__Deploy-1.jpg&quot; alt=&quot;Workbench__Deploy.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;This is what your Rider History big object looks like after deployment:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Rider-History.jpg&quot; alt=&quot;Rider History.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;You can see your big object under the setup option &amp;quot;create -&amp;gt; big objects&amp;quot;&lt;/p&gt;
&lt;h3 id=&quot;apex-crud-operations-to-custom-big-objects&quot;&gt;&lt;strong&gt;Apex CRUD operations to custom big objects&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Create&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;public static List&amp;lt;Database.SaveResult&amp;gt; insertImmediate(List&amp;lt;SObject&amp;gt; sobjects)&lt;/li&gt;
&lt;li&gt;public static Database.SaveResult insertImmediate(SObject sobject)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Read&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;SOQL/ Async SOQL&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Re-inserting a record with the same index.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Delete&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;public static List&amp;lt;Database.DeleteResult&amp;gt; deleteImmediate(List&amp;lt;SObject&amp;gt; sobjects)&lt;/li&gt;
&lt;li&gt;public static Database.DeleteResult deleteImmediate(SObject sobject)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To query data, we have two options:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Async SOQL&lt;/li&gt;
&lt;li&gt;SOQL&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Use standard SOQL when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You want to display the results in the UI without having the user wait for results.&lt;/li&gt;
&lt;li&gt;You want results returned immediately for manipulation within a block of Apex code.&lt;/li&gt;
&lt;li&gt;You know that the query will return a small amount of data.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use Async SOQL when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You are querying against millions of records.&lt;/li&gt;
&lt;li&gt;You want to ensure that your query completes.&lt;/li&gt;
&lt;li&gt;You do not need to do aggregate queries or filtering outside of the index.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://trailhead.salesforce.com/modules/big_objects&quot;&gt;Big Object Basic trailhead&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://trailhead.salesforce.com/modules/big_objects&quot;&gt;Big Object Implementation Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.simplysfdc.com/2016/12/salesforce-deployment-with-unmanaged.html&quot;&gt;Deploy unmanaged package using workbench&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Happy coding&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Read also &lt;a href=&quot;https://cloudanswers.com/effective-data-storage-in-salesforce-for-every-business-size/&quot;&gt;Effective data storage in Salesforce&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Using Promises in Lightning]]></title><description><![CDATA[Salesforce introduced Lightning platform a co...]]></description><link>https://cloudanswers.com/blog/using-promises-in-lightning</link><guid isPermaLink="false">/blog/using-promises-in-lightning</guid><pubDate>Sat, 16 Jun 2018 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/blog_ca_33333.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Salesforce introduced Lightning platform a couple of years back and it&amp;#39;s been evolving and getting better with every release so far. Developers who used to work with Visualforce pages have started moving to the new Lightning component framework because it&amp;#39;s more flexible.&lt;/p&gt;
&lt;p&gt;Lightning is a JS-first platform based out of aura, and uses JS Controllers and Helpers to display and retrieve data from Salesforce. Because Lightning components can interact with server side Apex controllers using asynchronous calls, they generally need a callback function to handle the response.&lt;/p&gt;
&lt;p&gt;For example, say we have an apex controller &amp;quot;LightningCtrl&amp;quot; with a method &lt;strong&gt;getCurrentUser&lt;/strong&gt; that queries the current logged in user&amp;#39;s detail and returns it.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://gist.github.com/Avinava/b393633e9f2fafa862c3317c2946fcc8#file-LightningCtrl.cls&quot;&gt;https://gist.github.com/Avinava/b393633e9f2fafa862c3317c2946fcc8#file-LightningCtrl.cls&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To call the same thing from an sLightning component, you need have a lightning controller which looks something like this:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://gist.github.com/Avinava/b393633e9f2fafa862c3317c2946fcc8#file-LightningComponentController.js&quot;&gt;https://gist.github.com/Avinava/b393633e9f2fafa862c3317c2946fcc8#file-LightningComponentController.js&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So the JS controller calls the Apex controller methods to get the data back and then sets the data in a variable. So far, pretty simple.&lt;/p&gt;
&lt;p&gt;But what happens if we had another call along with it?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://gist.github.com/Avinava/b393633e9f2fafa862c3317c2946fcc8#file-LightningComponentExtendedController.js&quot;&gt;https://gist.github.com/Avinava/b393633e9f2fafa862c3317c2946fcc8#file-LightningComponentExtendedController.js&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As we add more dependent calls the nesting increases and makes the code very hard to read. With a lot of calls, it can get pretty ugly and unmanageable.&lt;/p&gt;
&lt;p&gt;So what&amp;#39;s the solution ?  &lt;strong&gt;Promises !&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&quot;promises&quot;&gt;Promises&lt;/h3&gt;
&lt;p&gt;Promises provides a simpler alternative for executing, composing, and managing asynchronous operations when compared to traditional callback-based approaches. It also allows you to handle asynchronous errors using an approach similar to synchronous try/catch. It makes the code much cleaner and easier to read and manage.&lt;/p&gt;
&lt;p&gt;So now, let&amp;#39;s reimagine the above controller code in Promises. First some housekeeping and restructuring to make sure we are reusing the code.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://gist.github.com/Avinava/b393633e9f2fafa862c3317c2946fcc8#file-LightningPromiseComponentHelper.js&quot;&gt;https://gist.github.com/Avinava/b393633e9f2fafa862c3317c2946fcc8#file-LightningPromiseComponentHelper.js&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And now we can rewrite the controller using the above refactored helper&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://gist.github.com/Avinava/b393633e9f2fafa862c3317c2946fcc8#file-LightningPromiseComponentController.js&quot;&gt;https://gist.github.com/Avinava/b393633e9f2fafa862c3317c2946fcc8#file-LightningPromiseComponentController.js&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pretty organised isn&amp;#39;t it ?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What did we do here ?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We essentially moved our code that calls the controller into a new function, to avoid repetitive code.&lt;/p&gt;
&lt;p&gt;Now let&amp;#39;s take a deep dive into the new “call” method.&lt;/p&gt;
&lt;p&gt;The call method uses Promises instead of the callbacks. A promise can be either rejected or fulfilled / resolved. So whenever we make a call to a server or the apex controller, it can be successful in which case it will be resolved, else it fails and will be rejected, with the reason why it failed.&lt;/p&gt;
&lt;p&gt;So the “call” method takes in the action to be called and the optional params if any are accepted by the controller method. If the status is success it calls resolve. Otherwise it calls reject.&lt;/p&gt;
&lt;p&gt;To summarize, the call method should invoke (something that usually takes time) and then call resolve or reject to change the state of the corresponding promise object.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Calling the promises&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The primary API for a promise is its “then” method, which registers callbacks to receive either the eventual value or the reason why the promise cannot be fulfilled. In the above code snippets we have a handler to handle the different state. For successes we are setting the user variable and for errors we are displaying an error message.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Handling Errors&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What if an error occurs while performing an asynchronous operation? We can handle it by using the error handler of the &amp;quot;then&amp;quot;, or we can use catch which is very similar to try / catch. Let&amp;#39;s rewrite the code using catch:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://gist.github.com/Avinava/b393633e9f2fafa862c3317c2946fcc8#file-LightningPromiseComponentCatchController.js&quot;&gt;https://gist.github.com/Avinava/b393633e9f2fafa862c3317c2946fcc8#file-LightningPromiseComponentCatchController.js&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pretty straightforward isn&amp;#39;t it? We add a catch handler which handles / catches the error.&lt;/p&gt;
&lt;h4 id=&quot;so-now-the-fun-part-how-do-we-handle-nested-calls-&quot;&gt;So now the fun part, how do we handle nested calls ?&lt;/h4&gt;
&lt;p&gt;In promises we don&amp;#39;t need nested callback. Instead we use &amp;quot;then&amp;quot; to chain different promises, like so:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://gist.github.com/Avinava/b393633e9f2fafa862c3317c2946fcc8#file-LightningPromiseComponentExtendedCatchController.js&quot;&gt;https://gist.github.com/Avinava/b393633e9f2fafa862c3317c2946fcc8#file-LightningPromiseComponentExtendedCatchController.js&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To sum up, Promises makes async code much more organized and easier to read. It also offers an easier way to handle errors and exceptions, without deep nested code. This should help you write more readable code.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Happy Coding !&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Track first response time on Cases using Entitlements]]></title><description><![CDATA[When working with Cases in Salesforce, a comm...]]></description><link>https://cloudanswers.com/blog/track-first-response-on-cases-using-entitlements</link><guid isPermaLink="false">/blog/track-first-response-on-cases-using-entitlements</guid><pubDate>Thu, 14 Jun 2018 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/Screen-Shot-2018-05-21-at-1.01.53-pm.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;When working with Cases in Salesforce, a common question is &amp;quot;How much time does it take our team to respond to incoming customer cases?&amp;quot; Often, customers have specific SLAs on required response times, and team managers want to understand how efficient their team is at addressing new issues. In this blog post, we are going to cover how we can use Entitlement Management with Cases to track this metric.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a step-by-step walk through of how to set this up in Salesforce:&lt;/p&gt;
&lt;h4 id=&quot;enable-entitlement-management&quot;&gt;Enable Entitlement management&lt;/h4&gt;
&lt;p&gt;Go to Setup -&amp;gt; Entitlement Management -&amp;gt; Entitlement Settings&lt;/p&gt;
&lt;p&gt;On this page, you will see a checkbox called Enable Entitlement Management. Check this and click Save. Once Entitlement Management is enabled, you will see other options on this page like Entitlement-Related Lookup Filters on Case Fields, Milestone Feed Items, Milestone Tracker Time Settings and Milestone Time Settings. These options aren&amp;#39;t relevant to this setup, but you can learn more about them from &lt;a href=&quot;https://help.salesforce.com/articleView?id=entitlements_about.htm&amp;amp;type=5&quot;&gt;Salesforce&amp;#39;s Help Docs&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&quot;setup-milestones-and-entitlement-process&quot;&gt;Setup milestones and entitlement process&lt;/h4&gt;
&lt;p&gt;Now we need to create the first response Milestone, create the Entitlement process and add the milestone to the Entitlement process.&lt;/p&gt;
&lt;p&gt;Go to Setup -&amp;gt; Entitlement Management -&amp;gt; Milestones -&amp;gt; Click New Milestone button&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Screen-Shot-2018-05-21-at-12.51.45-pm.png&quot; alt=&quot;Screen Shot 2018-05-21 at 12.51.45 pm.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;Set Name = First Response, Recurrence Type = No Recurrence and click Save to create the new milestone.&lt;/p&gt;
&lt;p&gt;Go to Setup -&amp;gt; Entitlement Management -&amp;gt; Entitlement Processes, create a new Entitlement process for Case. We are going to use a basic Entitlement process to demonstrate here:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Screen-Shot-2018-05-21-at-12.58.20-pm.png&quot; alt=&quot;Screen Shot 2018-05-21 at 12.58.20 pm.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;Next, add the Milestone to an Entitlement process.&lt;/p&gt;
&lt;p&gt;In this example, we are assuming that the first response should be sent within 4 hours of the arrival of the case. So, we have added a Milestone to our Entitlement process with the number of Minutes to Complete Milestone value.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Screen-Shot-2018-05-21-at-1.01.53-pm.png&quot; alt=&quot;Screen Shot 2018-05-21 at 1.01.53 pm.png&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;setup-trigger-to-assign-entitlement-process-to-incoming-cases&quot;&gt;&lt;strong&gt;Setup trigger to assign entitlement process to incoming cases&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;If you are using Email-to-Case functionality, the Entitlement from Account won’t be automatically assigned to the incoming cases. Therefore, we need to add a trigger to associate an active Entitlement from an Account to the incoming Case.&lt;/p&gt;
&lt;p&gt;Here is the sample code for this:&lt;/p&gt;
&lt;p&gt;// trigger on Case object&lt;/p&gt;
&lt;p&gt;trigger CaseTrigger on Case (before insert, before update) {
if(Trigger.isBefore){
if(Trigger.isInsert || Trigger.isUpdate){
CaseEntitlementHelper.applyEntitlements(Trigger.new);
}
}
}&lt;/p&gt;
&lt;p&gt;// helper class&lt;/p&gt;
&lt;p&gt;public with sharing class CaseEntitlementHelper {&lt;/p&gt;
&lt;p&gt;/** * Apply entitlements from contact or account.
*/
public static void applyEntitlements(List cases){
List contactIds = new List();
List acctIds = new List();
for (Case c : cases){
if (c.EntitlementId == null &amp;amp;&amp;amp; c.ContactId != null &amp;amp;&amp;amp; c.AccountId != null){
contactIds.add(c.ContactId);
acctIds.add(c.AccountId);
}
}
if(!contactIds.isEmpty() || !acctIds.isEmpty()){
List entitlementContacts = [
select e.EntitlementId, e.ContactId, e.Entitlement.AssetId from EntitlementContact e
where e.ContactId in :contactIds
and e.Entitlement.EndDate &amp;gt;= TODAY and e.Entitlement.StartDate &amp;lt;= TODAY
];
if(!entitlementContacts.isEmpty()){
for(Case c : cases){
if(c.EntitlementId == null &amp;amp;&amp;amp; c.ContactId != null){
for(EntitlementContact ec : entitlementContacts){
if(ec.ContactId==c.ContactId){
c.EntitlementId = ec.EntitlementId;
if(c.AssetId==null &amp;amp;&amp;amp; ec.Entitlement.AssetId!=null)
c.AssetId = ec.Entitlement.AssetId;
break;
}
}
}
}
} else {
List entitlements = [
select e.StartDate, e.Id, e.EndDate, e.AccountId, e.AssetId
from Entitlement e
where e.AccountId in :acctIds and e.EndDate &amp;gt;= TODAY and e.StartDate &amp;lt;= TODAY
];
if(!entitlements.isEmpty()){
for(Case c : cases){
if(c.EntitlementId == null &amp;amp;&amp;amp; c.AccountId != null){
for(Entitlement e : entitlements){
if(e.AccountId == c.AccountId){
c.EntitlementId = e.Id;
if(c.AssetId==null &amp;amp;&amp;amp; e.AssetId!=null)
c.AssetId=e.AssetId;
break;
}
}
}
}
}
}
}
}
}&lt;/p&gt;
&lt;h4 id=&quot;setup-apex-triggers-to-mark-milestones-as-completed&quot;&gt;&lt;strong&gt;Setup apex triggers to mark milestones as completed&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;We are going to use triggers on EmailMessage and CaseComment to mark the Milestone when it is completed.&lt;/p&gt;
&lt;p&gt;Here is the sample code:&lt;/p&gt;
&lt;p&gt;// email message trigger
trigger EmailMessageTrigger on EmailMessage (before insert) {
if(Trigger.isInsert || Trigger.isAfter){
if (UserInfo.getUserType() == &amp;#39;Standard&amp;#39;){
// complete milestone on valid first response
EmailMessageHelper.handleFirstResponse(Trigger.new);
}
}
}&lt;/p&gt;
&lt;p&gt;// email message trigger helper class
public with sharing class EmailMessageHelper {
public static void handleFirstResponse(List emailMessages){
DateTime completionDate = System.now();
Map&amp;lt;Id, String&amp;gt; emIds = new Map&amp;lt;Id, String&amp;gt;(); for (EmailMessage em : emailMessages){ if(em.Incoming == false) emIds.put(em.ParentId, em.ToAddress);
}
if(emIds.isEmpty() == false){
Set emCaseIds = new Set(); emCaseIds = emIds.keySet(); List caseList = [
select Id, ContactId, Contact.Email, OwnerId,
Status, EntitlementId, SlaStartDate, SlaExitDate
from Case
where Id IN :emCaseIds
];
if(!caseList.isEmpty()){
List casesToUpdate = new List(); for (Case caseObj : caseList) { // consider an outbound email to the contact on the case a valid first response if (emIds.get(caseObj.Id) == caseObj.Contact.Email &amp;amp;&amp;amp; caseObj.EntitlementId != null &amp;amp;&amp;amp; caseObj.SlaStartDate &amp;lt;= completionDate &amp;amp;&amp;amp; caseObj.SlaStartDate != null &amp;amp;&amp;amp; caseObj.SlaExitDate == null) { casesToUpdate.add(caseObj.Id); }
}
if(!casesToUpdate.isEmpty()) {
MilestoneHelper.completeMilestone(casesToUpdate, &amp;#39;First Response&amp;#39;, completionDate);
}
}
}
}
}&lt;/p&gt;
&lt;p&gt;// case comment trigger
trigger CaseCommentTrigger on CaseComment (after insert) {
if(UserInfo.getUserType() == &amp;#39;Standard&amp;#39;){
CaseCommentHelper.handleFirstResponse(Trigger.new);
}
}&lt;/p&gt;
&lt;p&gt;// case comment trigger helper class
public with sharing class CaseCommentHelper {
public static void handleFirstResponse(List comments){
DateTime completionDate = System.now();
List caseIds = new List();
for (CaseComment cc : comments){
// Only public comments qualify
if(cc.IsPublished == true) caseIds.add(cc.ParentId);
}
if(caseIds.isEmpty() == false){
List caseList = [
select Id, ContactId, Contact.Email, OwnerId, Status,
EntitlementId, SlaStartDate, SlaExitDate
from Case
where Id IN :caseIds
];
if(caseList.isEmpty() == false){
List updateCases = new List();
for (Case caseObj : caseList) {
if (caseObj.EntitlementId != null &amp;amp;&amp;amp; caseObj.SlaStartDate &amp;lt;= completionDate &amp;amp;&amp;amp;
caseObj.SlaStartDate != null &amp;amp;&amp;amp; caseObj.SlaExitDate == null) {
updateCases.add(caseObj.Id);
}
}
if(updateCases.isEmpty() == false) {
MilestoneHelper.completeMilestone(updateCases, First Response&amp;#39;, completionDate);
}
}
}
}
}&lt;/p&gt;
&lt;p&gt;// milestone helper class
public with sharing class MilestoneHelper {&lt;/p&gt;
&lt;p&gt;public static void completeMilestone(List caseIds, String milestoneName, DateTime completionDate) {
List toUpdate = [
select Id, CompletionDate
from CaseMilestone cm
where CaseId IN :caseIds
and cm.MilestoneType.Name = :milestoneName
and CompletionDate = null limit 1
];
if(!toUpdate.isEmpty()){
for (CaseMilestone cm : toUpdate){
cm.CompletionDate = completionDate;
}
update toUpdate;
}
}
}&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Create a report to view milestone violations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The last step is to create a report on Cases with Case Milestones to view a list of cases which didn’t meet the first response milestone. Now you can see the cases that are overdue and flag them for followup easily.&lt;/p&gt;
&lt;p&gt;Questions? Ask us in the comments!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Happy coding!&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Quotes and Opportunity Line Items - Add a Trigger to Sync Custom Fields]]></title><description><![CDATA[Background: Quotes in Salesforce represe...]]></description><link>https://cloudanswers.com/blog/quotes-and-opportunity-line-items-add-a-trigger-to-sync-custom-fields</link><guid isPermaLink="false">/blog/quotes-and-opportunity-line-items-add-a-trigger-to-sync-custom-fields</guid><pubDate>Thu, 24 May 2018 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/fire-up.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;&lt;strong&gt;Background:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Quotes in Salesforce represent a proposal of prices for your company’s products and services to a particular prospect. If the Quote object is enabled on your page layout, a Sales Rep can generate a Quote from an Opportunity and its Line Items (OLIs). Each Opportunity can have multiple associated Quotes, and any one of them can be synced with the Opportunity. When a Quote and an Opportunity are synced together, any change to product line items on the Quote syncs with Products on the Opportunity, and vice versa. All this is standard Salesforce functionality.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;However, this sync only happens for standard fields on the line items, not for custom fields. Since product pricing tends to be complex and requires flexibility for most businesses, this means that many OLIs have custom calculation fields that are central to a business&amp;#39;s pricing offers. Some examples where custom fields might be lurking are annualised pricing calculations for products sold at a monthly unit price, custom descriptions or names to display to customers on the Quote document, or custom date ranges for ongoing services.&lt;/p&gt;
&lt;p&gt;Let&amp;#39;s take a look at an example of this issue in action.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s an Opportunity record with no products or quotes initially:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://2.bp.blogspot.com/-6IXJmM4PJjc/WQhGg2lI61I/AAAAAAAABGM/VzehK5zZzvw3b69MfDJs7wGvgk-qsRqtwCLcB/s1600/OpportunityRecord.png&quot;&gt;&lt;img src=&quot;/uploads/OpportunityRecord.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Let&amp;#39;s add a Quote to this Opportunity record by clicking &amp;quot;New Quote&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://2.bp.blogspot.com/-x5qSnnPyj3Y/WQhKf3sgsWI/AAAAAAAABGc/YLsrLRyJ-zoJvN_LIV3egKrqQdtJK4_TACLcB/s1600/Quote%2Brecord.png&quot;&gt;&lt;img src=&quot;/uploads/Quote%2Brecord.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And add some products to the Quote (i.e Quote Line Items):&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://2.bp.blogspot.com/-4tILxUwwgHs/WQhL8irgZkI/AAAAAAAABGs/jCKhUzpQxW842y1Z6KGgucg_fFv4_j9SACLcB/s1600/products%2Bunder%2Bquotes.png&quot;&gt;&lt;img src=&quot;/uploads/products%2Bunder%2Bquotes.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now when we click the &amp;quot;Start Sync&amp;quot; button on the Quote, it populates all Quote line items to the associated Opportunity (i.e it creates matching Opportunity Line Items).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://3.bp.blogspot.com/-Qz_RdNhYoEo/WQhMpwPDT8I/AAAAAAAABG0/OsmPzd7-S30fleXA-RaMcgNs24h97ppSACLcB/s1600/products%2Bunder%2Bopportunity.png&quot;&gt;&lt;img src=&quot;/uploads/products%2Bunder%2Bopportunity.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So far so good.&lt;/p&gt;
&lt;p&gt;If you change any value on a Quote line item, it will immediately reflect that value on the respective OLI.  But what about that cool custom field I made to tag whether this product is a renewal of a previous contract?? There&amp;#39;s no point-and-click approach to map Opportunity Line Item fields with Quote line item fields.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a description of how we&amp;#39;ve solved this quandary with some custom fields and a little Apex.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt;) Create a custom formula field on Quote line item (I call it &amp;quot;Opportunity Line Item ID&amp;quot;).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/OppLineItemID.jpg&quot; alt=&quot;OppLineItemID&quot;&gt;&lt;/p&gt;
&lt;p&gt;This will return the synced Opportunity Line Item ID on the Quote Line Item and let our quote find and link the objects.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: This field is hidden in the formula picker interface, so you have to enter it just as shown. The QLI to OLI relationship can&amp;#39;t be referenced in a formula, and that&amp;#39;s why you can&amp;#39;t just add custom formula reference fields onto the Quote Line Item to look up to their OLI counterparts; you have to use Apex to keep the fields in sync.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt;) Create a handler class for QuoteLineItem trigger.&lt;/p&gt;
&lt;p&gt;public class QuoteLineItemTriggerHandler { public static void syncQuotes(List newLineItems) { // get quote ids we need to query for Set quoteIds = new Set(); for (QuoteLineItem qli : newLineItems) { if (qli.QuoteId != null) { quoteIds.add(qli.QuoteId); } }        // Linking quote line item with Opportunity Line Items Map&amp;lt;ID,ID&amp;gt; mapQuoteLineItemSortOrder= returnDefaultLinking(quoteIds);//Fetch opportunity line item for sync Map&amp;lt;ID,OpportunityLineItem&amp;gt; mapOppLineItems=new Map&amp;lt;ID,OpportunityLineItem&amp;gt;(); for(OpportunityLineItem oli:) { mapOppLineItems.put(oli.id,oli); }&lt;/p&gt;
&lt;p&gt;List lstOppotunityToUpdate = new List(); for (QuoteLineItem qli : newLineItems) { OpportunityLineItem oli = mapOppLineItems.get(mapQuoteLineItemSortOrder.get(qli.Id)); if (oli != null ) { oli.Renewal__c=qli.Renewal__c; //update more fields....&lt;/p&gt;
&lt;p&gt;lstOppotunityToUpdate.add(oli); } } update lstOppotunityToUpdate; } private static Map&amp;lt;ID,ID&amp;gt; returnDefaultLinking(Set poIds) { Map&amp;lt;ID,ID&amp;gt; mapSortOrder= new Map&amp;lt;ID,ID&amp;gt;(); String query=&amp;#39;select id, name,(select id, Opportunity_Line_Item_ID__c from QuoteLineItems  ) from Quote where id in :poIds&amp;#39;; List lstQuotesWithLineItems=Database.query(query); for(Quote q: lstQuotesWithLineItems) { if(q.QuoteLineItems !=null) { for(QuoteLineitem qli : q.QuoteLineItems) { if(qli.Opportunity_Line_Item_ID__c!=null) { //map quote line item id with respective opportunity line item id mapSortOrder.put(qli.Id,ID.valueOF(qli.Opportunity_Line_Item_ID__c)); } } } } return mapSortOrder; } }&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt;)  Create the QuoteLineItem Trigger&lt;/p&gt;
&lt;p&gt;trigger QuoteLineItemTrigger on QuoteLineItem (after update)
{
    QuoteLineItemTriggerHandler.syncQuotes(Trigger.new);
}&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt;)  Create a handler class for OpportunityLineItem Trigger&lt;/p&gt;
&lt;p&gt;public class OpportunityLineItemTriggerHandler{
public static Boolean isTriggerFire = true;
public static void sync(Set oliIds ){
List lstQLIUpdate = new List();
for(QuoteLineItem qli: newLineItems){
lstQLIUpdate.add(new OpportunityLineItem(Id=qli.Opportunity_Line_Item_ID__c, Renewal__c=qli.Renewal__c));
}
if(!lstQLIUpdate.isEmpty()){
isTriggerFire = false;
update lstQLIUpdate;
isTriggerFire = true;
}
}
}&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 5&lt;/strong&gt;)  Create the OpportunityLineItem Trigger&lt;/p&gt;
&lt;p&gt;trigger OpportunityLineItemTrigger on OpportunityLineItem (after insert) {
if(Trigger.isInsert &amp;amp;&amp;amp; Trigger.isAfter &amp;amp;&amp;amp; OpportunityLineItemTriggerHandler.isTriggerFire){
Set qliIds = Trigger.newMap.keyset();
OpportunityLineItemTriggerHandler.sync(qliIds);
}
}&lt;/p&gt;
&lt;p&gt;Now, return to your Quote Line Item and make a change, you will see the custom field data is also getting synced to the Opportunity Line Item now:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://1.bp.blogspot.com/-sZV_2-hKUJ4/WQheKTnUc3I/AAAAAAAABHY/sPua2RuX8QkqxyNR8tetu35Mvvy33hycgCLcB/s1600/QLI%2Bcustom%2Bfield.png&quot;&gt;&lt;img src=&quot;/uploads/QLI%2Bcustom%2Bfield.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://4.bp.blogspot.com/-42spN1J1Jkk/WQheNtseCUI/AAAAAAAABHc/_uzjdwP0bWYFb4tN5B52TWWh1fT3pG4IACLcB/s1600/OLI%2Bcustom%2Bfield.png&quot;&gt;&lt;img src=&quot;/uploads/OLI%2Bcustom%2Bfield.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Happy Coding!&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Replace Code with Flows]]></title><description><![CDATA[In Salesforce, Flow is a tool that can show screens to users, ask questions, and process their input. A common use case is scripting calls for support agents. %]]></description><link>https://cloudanswers.com/blog/replace-code-with-flows</link><guid isPermaLink="false">/blog/replace-code-with-flows</guid><pubDate>Thu, 17 May 2018 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/blog_ca_replace-code.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h2 id=&quot;avoiding-custom-development&quot;&gt;&lt;strong&gt;Avoiding Custom Development&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Recently, one of our customers asked us to make an update to their custom “wizard”.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s why we decided to replace a custom-coded solution with one built with Salesforce&amp;#39;s point and click configuration tool, Flows.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Barr Foundation&lt;/strong&gt; is an amazing organization that supports non-profits. Among them, there are groups working on education, the environment, and economic equality. In order to track their engagements and measure the impact of their support, they rely on Salesforce as their system of record.&lt;/p&gt;
&lt;p&gt;Their “&lt;strong&gt;wizard”&lt;/strong&gt; was a custom development project launched through a button click on an Opportunity. It presented the user with two Visualforce pages and created records that are children and grandchildren to an Opportunity. In addition to the wizard, &lt;strong&gt;Process Builders&lt;/strong&gt; were used to keep the tool up to date as the underlying processes change.&lt;/p&gt;
&lt;p&gt;Wizards are great because they help simplify laborious processes for users. In this case, rather than creating 5 child records manually, with the right data, &lt;em&gt;then&lt;/em&gt; creating two child records for each of &lt;em&gt;those&lt;/em&gt; records, you can have a process build them in the background with minimal input. You don’t need to worry about people forgetting to enter the last records or making a mistake dividing values from the Opportunity.&lt;/p&gt;
&lt;p&gt;Barr also has a full-time &lt;strong&gt;Salesforce Admin&lt;/strong&gt; that is capable of using all of the points and click features. So, ideally, they would not need to reach out to their former consulting partner or us to help them make little updates to their process over time; their Admin should be able to update this in the same way that he updates a &lt;strong&gt;Workflow Rule.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So, instead of editing someone else’s code or having us rebuild the project and spend a lot of time and effort, we used Flows.&lt;/p&gt;
&lt;p&gt;In Salesforce, Flow is a tool that can show screens to users, ask questions, and process their input. A common use case is scripting calls for support agents. When you start a Flow your users will get a screen with the right fields, text, or images. Then your Flow can take that data and update/create things in the background. This is different than standard records because your Flow can take data from one screen and update several other related records without you needing to manually find them.&lt;/p&gt;
&lt;p&gt;In this scenario, we were able to convert 1000 lines of code into a point and click tool that prompts the user for input on two screens and creates a dozen related records.&lt;/p&gt;
&lt;p&gt;One of the major benefits of converting to Flows was the ease of maintenance. Rather than needing a developer to make changes. An Admin can open the Flow to add a new field or take one away. They can easily add a new related task for follow up. Flows don’t require a Sandbox with Test Coverage as custom code does.&lt;/p&gt;
&lt;p&gt;The other major benefit is cost. Rather than needing to pay an expensive developer and wait for weeks for changes, they can make changes in minutes with someone who already works in their org. This means that they are saving money as well as the time to make the change, avoiding mistakes speeding up data entry.&lt;/p&gt;
&lt;p&gt;While a Flow is a great efficiency tool, it doesn’t fit every use case. If you need to edit hundreds or thousands of records, you are going to want custom code. If you need a very custom look and feel, you might also want code. Outside of these edge cases, Flows are a great way to empower users to work faster, make fewer mistakes, and avoid confusion.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[lightning:outputField rendering issue when using with lightning:recordViewForm]]></title><description><![CDATA[**Background:** lightning:outputField is the...]]></description><link>https://cloudanswers.com/blog/lightningoutputfield-rendering-issue-when-using-with-lightningrecordviewform</link><guid isPermaLink="false">/blog/lightningoutputfield-rendering-issue-when-using-with-lightningrecordviewform</guid><pubDate>Fri, 27 Apr 2018 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/blog_ca_man2222.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;&lt;strong&gt;Background:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;lightning:outputField is the recommended tag for lightning:recordViewForm to display field value of the record.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;lightning:recordViewForm recordId=&amp;quot;001XXXXXXXXXXXXXXX&amp;quot; objectApiName=&amp;quot;Contact&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;slds-box slds-theme\_default&amp;quot;&amp;gt;
        &amp;lt;lightning:outputField fieldName=&amp;quot;Name&amp;quot; /&amp;gt;
        &amp;lt;lightning:outputField fieldName=&amp;quot;Phone&amp;quot;/&amp;gt;
        &amp;lt;lightning:outputField fieldName=&amp;quot;Email&amp;quot; /&amp;gt;
        &amp;lt;lightning:outputField fieldName=&amp;quot;Birthdate&amp;quot; /&amp;gt;
        &amp;lt;lightning:outputField fieldName=&amp;quot;LeadSource&amp;quot; /&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/lightning:recordViewForm&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;: It gives an error if we populate the data conditionally using aura:if tag.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt; &amp;lt;aura:if isTrue=&amp;quot;{!v.editMode}&amp;quot;&amp;gt;
        &amp;lt;lightning:recordEditForm recordId=&amp;quot;{!v.sourceRecordFields.AccountId}&amp;quot; onsuccess=&amp;quot;{!c.handleAccountSaved}&amp;quot; objectApiName=&amp;quot;Account&amp;quot;&amp;gt;
            &amp;lt;lightning:messages /&amp;gt;
            &amp;lt;lightning:inputField fieldName=&amp;quot;Name&amp;quot; /&amp;gt;
            &amp;lt;lightning:inputField fieldName=&amp;quot;Phone&amp;quot; /&amp;gt;
            &amp;lt;lightning:inputField fieldName=&amp;quot;Rating&amp;quot; /&amp;gt;
            &amp;lt;lightning:inputField fieldName=&amp;quot;Description&amp;quot; /&amp;gt;
            &amp;lt;lightning:button variant=&amp;quot;brand&amp;quot; type=&amp;quot;submit&amp;quot; name=&amp;quot;save&amp;quot; label=&amp;quot;Save&amp;quot; class=&amp;quot;slds-m-top\_medium&amp;quot;/&amp;gt;
        &amp;lt;/lightning:recordEditForm&amp;gt;
        &amp;lt;aura:set attribute=&amp;quot;else&amp;quot;&amp;gt;
        &amp;lt;lightning:recordViewForm recordId=&amp;quot;{!v.sourceRecordFields.AccountId}&amp;quot; objectApiName=&amp;quot;Account&amp;quot;&amp;gt;
            &amp;lt;lightning:outputField fieldName=&amp;quot;Name&amp;quot; /&amp;gt;
            &amp;lt;lightning:outputField fieldName=&amp;quot;Phone&amp;quot; /&amp;gt;
            &amp;lt;lightning:outputField fieldName=&amp;quot;Rating&amp;quot; /&amp;gt;
            &amp;lt;lightning:outputField fieldName=&amp;quot;Description&amp;quot; /&amp;gt;
            &amp;lt;lightning:button variant=&amp;quot;brand&amp;quot; onclick=&amp;quot;{!c.editAccount}&amp;quot; name=&amp;quot;edit&amp;quot; label=&amp;quot;Edit&amp;quot; class=&amp;quot;slds-m-top\_medium&amp;quot;/&amp;gt;
        &amp;lt;/lightning:recordViewForm&amp;gt;
     &amp;lt;/aura:set&amp;gt;
&amp;lt;/aura:if&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So, as soon as &lt;strong&gt;{!v.editMode}&lt;/strong&gt; returns false, we get the following error for &lt;strong&gt;lightning:outputField&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Cannot read property &amp;#39;querySelectorAll&amp;#39; of null&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: We will use separate lightning:recordEditForm components for editing and viewing the record. And, we will use javascript and CSS to show and hide conditionally.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;{Component}.cmp&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;div id=&amp;quot;editableDiv&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;
   &amp;lt;lightning:recordEditForm recordId=&amp;quot;{!v.sourceRecordFields.AccountId}&amp;quot; onsuccess=&amp;quot;{!c.handleAccountSaved}&amp;quot; objectApiName=&amp;quot;Account&amp;quot;&amp;gt;
      &amp;lt;lightning:messages /&amp;gt;
      &amp;lt;lightning:inputField fieldName=&amp;quot;Name&amp;quot; /&amp;gt;
      &amp;lt;lightning:inputField fieldName=&amp;quot;Phone&amp;quot; /&amp;gt;
      &amp;lt;lightning:inputField fieldName=&amp;quot;Rating&amp;quot; /&amp;gt;
      &amp;lt;lightning:inputField fieldName=&amp;quot;Description&amp;quot; /&amp;gt;
      &amp;lt;lightning:button variant=&amp;quot;brand&amp;quot; type=&amp;quot;submit&amp;quot; name=&amp;quot;save&amp;quot; label=&amp;quot;Save&amp;quot; class=&amp;quot;slds-m-top\_medium&amp;quot;/&amp;gt;
   &amp;lt;/lightning:recordEditForm&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div id=&amp;quot;viewableDiv&amp;quot; style=&amp;quot;display:block&amp;quot;&amp;gt;
   &amp;lt;lightning:recordViewForm recordId=&amp;quot;{!v.sourceRecordFields.AccountId}&amp;quot; objectApiName=&amp;quot;Account&amp;quot;&amp;gt;
      &amp;lt;lightning:outputField fieldName=&amp;quot;Name&amp;quot; /&amp;gt;
      &amp;lt;lightning:outputField fieldName=&amp;quot;Phone&amp;quot; /&amp;gt;
      &amp;lt;lightning:outputField fieldName=&amp;quot;Rating&amp;quot; /&amp;gt;
      &amp;lt;lightning:outputField fieldName=&amp;quot;Description&amp;quot; /&amp;gt;
      &amp;lt;lightning:button variant=&amp;quot;brand&amp;quot; onclick=&amp;quot;{!c.editAccount}&amp;quot; name=&amp;quot;edit&amp;quot; label=&amp;quot;Edit&amp;quot; class=&amp;quot;slds-m-top\_medium&amp;quot;/&amp;gt;
   &amp;lt;/lightning:recordViewForm&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;{ComponentController}.js&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;({
  editAccount: function (cmp, event, helper) {
    helper.showEditableDiv(cmp);
  },

  handleAccountSaved: function (cmp, event, helper) {
    helper.hideEditableDiv(cmp);
  },
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;{ComponentHelper}.js&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;({
   showEditableDiv : function(cmp) {
     var elementEdit = document.getElementById(&amp;#39;editableDiv&amp;#39;);
     elementEdit.style.display = &amp;#39;block&amp;#39;;
     var elementView = document.getElementById(&amp;#39;viewableDiv&amp;#39;);
     elementView.style.display = &amp;#39;none&amp;#39;;
   },

   hideEditableDiv : function(cmp) {
     var elementEdit= document.getElementById(&amp;#39;editableDiv&amp;#39;);
     elementEdit.style.display = &amp;#39;none&amp;#39;;
     var elementView = document.getElementById(&amp;#39;viewableDiv&amp;#39;);
     elementView.style.display = &amp;#39;block&amp;#39;;
   }
})
``` 

**PS**: This is a temporary solution and can be used until Salesforce delivers a fix for it.

**Happy coding**!!
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title><![CDATA[Stream logs to CLI with apex:log:tail]]></title><description><![CDATA[Salesforce DX is a new set of tools that stre...]]></description><link>https://cloudanswers.com/blog/stream-logs-to-cli-with-sfdx</link><guid isPermaLink="false">/blog/stream-logs-to-cli-with-sfdx</guid><pubDate>Tue, 24 Apr 2018 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/laptop-3190194_1920.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Salesforce DX is a new set of tools that streamlines the entire development life cycle. It improves team development and collaboration, facilitates automated testing and continuous integration, and makes the release cycle more efficient and agile.&lt;/p&gt;
&lt;p&gt;A recent addition to the set Salesforce DX commands is &lt;a href=&quot;https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_force_apex.htm&quot;&gt;apex:log:tail&lt;/a&gt;. The command works against any org you have connected to the DX CLI, including production and sandbox orgs. However, if you run it from the same folder as a DX project it will use the currently configured default user/scratch org for that project.&lt;/p&gt;
&lt;p&gt;As a developer, we extensively rely on debug logs for analysing our code for bugs, platform limits usage, etc. Most of the times, we have been using Developer Console logs pane. On first look at the output from this command, you will get a feeling as if the Developer Console logs pane has moved into your CLI console :)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/first.png&quot; alt=&quot;first.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;And, it actually has moved into your CLI console with additional features. Here are list of options available with this command&lt;/p&gt;
&lt;p&gt;Usage: sfdx force:apex:log:tail image: /uploads/ image: /uploads/ image: /uploads/ image: /uploads/ image: /uploads/ image: /uploads/&lt;/p&gt;
&lt;p&gt;start debug logging and display logs&lt;/p&gt;
&lt;p&gt;Flags:&lt;/p&gt;
&lt;p&gt;-c, --color                          colorize noteworthy log lines&lt;/p&gt;
&lt;p&gt;-d, --debuglevel DEBUGLEVEL          debug level for trace flag&lt;/p&gt;
&lt;p&gt;-s, --skiptraceflag                  skip trace flag setup&lt;/p&gt;
&lt;p&gt;-u, --targetusername TARGETUSERNAME  username or alias for the target org;&lt;/p&gt;
&lt;p&gt;overrides default target org&lt;/p&gt;
&lt;p&gt;--json                               format output as json&lt;/p&gt;
&lt;p&gt;--loglevel LOGLEVEL                  logging level for this command invocation&lt;/p&gt;
&lt;p&gt;(error*,trace,debug,info,warn,fatal)&lt;/p&gt;
&lt;h4 id=&quot;you-can-add-colors-to-your-debug-logs&quot;&gt;&lt;strong&gt;You can add colors to your debug logs!&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;strong&gt;--color&lt;/strong&gt; parameter enables some basic color highlighting for method, constructor, variable assignments etc.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/second.png&quot; alt=&quot;second.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;You can also customize your own colors by setting the &lt;strong&gt;SFDX_APEX_LOG_COLOR_MAP&lt;/strong&gt; environment variable to an absolute file path to a JSON file per the format shown below.&lt;/p&gt;
&lt;p&gt;{
   CONSTRUCTOR_: &amp;#39;magenta&amp;#39;,
   EXCEPTION_: &amp;#39;red&amp;#39;,
   FATAL_: &amp;#39;red&amp;#39;,
   METHOD_: &amp;#39;blue&amp;#39;,
   SOQL_: &amp;#39;yellow&amp;#39;,
   USER_: &amp;#39;green&amp;#39;,
   VARIABLE_: &amp;#39;cyan&amp;#39;
}&lt;/p&gt;
&lt;h4 id=&quot;pipe-the-output&quot;&gt;&lt;strong&gt;Pipe the output!&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Last but not the least, we can pipe the output from this command to filter out only what we are looking for using &lt;strong&gt;grep&lt;/strong&gt; utility command as shown below.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/third.png&quot; alt=&quot;third.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;apex:log:tail&lt;/strong&gt; command is definitely going to help developers access debug logs faster and make their life easier with some useful parameters.&lt;/p&gt;
&lt;p&gt;Happy coding!&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[CPQ Custom Quote Lines]]></title><description><![CDATA[Who is this for: Salesforce CPQ develope...]]></description><link>https://cloudanswers.com/blog/cpq-custom-quote-lines</link><guid isPermaLink="false">/blog/cpq-custom-quote-lines</guid><pubDate>Sat, 21 Apr 2018 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/66260-e1555481002249.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;&lt;strong&gt;Who is this for:&lt;/strong&gt;  Salesforce CPQ developers and admins&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What&amp;#39;s in it for me:&lt;/strong&gt;  Learn to inspect the PDF generation process and see how to make unconventional changes&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Background:&lt;/strong&gt;  Custom quote lines must be coded from scratch in CPQ, but if you want to do something simple like hide the group total?  We had one customer who uses optional groups as an alternative for the current quote, allowing them to present a PDF with a 1 year option and a 3 year option to highlight savings.&lt;/p&gt;
&lt;p&gt;Step 1:  Open the developer console so you can watch what happens when the PDF is generated&lt;/p&gt;
&lt;p&gt;Step 2:  Preview a quote that has a custom document with the quote lines content.&lt;/p&gt;
&lt;p&gt;Step 3:  Check out the logs in developer console to see all the pages that were loaded:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Screenshot-2018-04-21-14.54.55.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;The one I was looking for was &amp;quot;sbqq__lineitemscontent&amp;quot;.  For the unindoctrinated, the name is in the format &amp;quot;namespace__filename&amp;quot; (two underscores between them).  Since pages are not protected in a managed package, you are actually free to view the source and copy it for your own needs.  Just go to Setup &amp;gt; Pages and find the page &amp;quot;lineitemscontent&amp;quot; and you can see the markup.  Here it is for your convenience:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;apex:page language=&amp;quot;{!vfLanguage}&amp;quot; controller=&amp;quot;SBQQ.DocumentGeneratorController&amp;quot; contentType=&amp;quot;application/xml&amp;quot; showHeader=&amp;quot;false&amp;quot; sidebar=&amp;quot;false&amp;quot;&amp;gt;
    &amp;lt;apex:outputPanel layout=&amp;quot;none&amp;quot; rendered=&amp;quot;{!hasQuote}&amp;quot;&amp;gt;
        &amp;lt;c:lineItemGroups quote2=&amp;quot;{!quote2}&amp;quot; template=&amp;quot;{!template}&amp;quot;
            staticGroups=&amp;quot;{!staticGroups}&amp;quot; dynamicGroups=&amp;quot;{!dynamicGroups}&amp;quot;
            currencyFormatPattern=&amp;quot;{!currencyFormatPattern}&amp;quot;
            fontSize=&amp;quot;{!fontSize}&amp;quot; fontFamily=&amp;quot;{!fontFamily}&amp;quot; textColor=&amp;quot;{!textColor}&amp;quot; tableStyle=&amp;quot;{!tableStyle}&amp;quot;/&amp;gt;
        &amp;lt;c:quoteTotals quote2=&amp;quot;{!quote2}&amp;quot; template=&amp;quot;{!template}&amp;quot;
            staticGroups=&amp;quot;{!staticGroups}&amp;quot; dynamicGroups=&amp;quot;{!dynamicGroups}&amp;quot;
            currencyFormatPattern=&amp;quot;{!currencyFormatPattern}&amp;quot;
            fontSize=&amp;quot;{!fontSize}&amp;quot; fontFamily=&amp;quot;{!fontFamily}&amp;quot; textColor=&amp;quot;{!textColor}&amp;quot;/&amp;gt;
    &amp;lt;/apex:outputPanel&amp;gt;
&amp;lt;/apex:page&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Because the components used in this page are in global (lineItemGroups and quoteTotals) we can copy this page and refer to them in our own namespace.  The only catch: you need to switch the namespace from &amp;quot;c:&amp;quot; to &amp;quot;sbqq:&amp;quot; since you moved the page to your own namespace.&lt;/p&gt;
&lt;p&gt;Here is what it looks like after the replace:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;apex:page language=&amp;quot;{!vfLanguage}&amp;quot; controller=&amp;quot;SBQQ.DocumentGeneratorController&amp;quot; contentType=&amp;quot;application/xml&amp;quot; showHeader=&amp;quot;false&amp;quot; sidebar=&amp;quot;false&amp;quot;&amp;gt;
    &amp;lt;apex:outputPanel layout=&amp;quot;none&amp;quot; rendered=&amp;quot;{!hasQuote}&amp;quot;&amp;gt;
        &amp;lt;**sbqq**:lineItemGroups quote2=&amp;quot;{!quote2}&amp;quot; template=&amp;quot;{!template}&amp;quot;
            staticGroups=&amp;quot;{!staticGroups}&amp;quot; dynamicGroups=&amp;quot;{!dynamicGroups}&amp;quot;
            currencyFormatPattern=&amp;quot;{!currencyFormatPattern}&amp;quot;
            fontSize=&amp;quot;{!fontSize}&amp;quot; fontFamily=&amp;quot;{!fontFamily}&amp;quot; textColor=&amp;quot;{!textColor}&amp;quot; tableStyle=&amp;quot;{!tableStyle}&amp;quot;/&amp;gt;
        &amp;lt;**sbqq**:quoteTotals quote2=&amp;quot;{!quote2}&amp;quot; template=&amp;quot;{!template}&amp;quot;
            staticGroups=&amp;quot;{!staticGroups}&amp;quot; dynamicGroups=&amp;quot;{!dynamicGroups}&amp;quot;
            currencyFormatPattern=&amp;quot;{!currencyFormatPattern}&amp;quot;
            fontSize=&amp;quot;{!fontSize}&amp;quot; fontFamily=&amp;quot;{!fontFamily}&amp;quot; textColor=&amp;quot;{!textColor}&amp;quot;/&amp;gt;
    &amp;lt;/apex:outputPanel&amp;gt;
&amp;lt;/apex:page&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In our version, we commented out the tag sbqq:quoteTotals since it was showing even if the switch for it in quote template was turned off (bug or not, project has to go live, right?).&lt;/p&gt;
&lt;p&gt;Hope this helps you in your CPQ journey and let us know if you need any CPQ/StellBrick help.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Modify CPQ PDF Header and Footer]]></title><description><![CDATA[The Salesforce CPQ Header and Footer might wo...]]></description><link>https://cloudanswers.com/blog/modify-cpq-pdf-header-and-footer</link><guid isPermaLink="false">/blog/modify-cpq-pdf-header-and-footer</guid><pubDate>Sat, 21 Apr 2018 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/Screenshot-2018-04-21-14.00.59.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;The Salesforce CPQ Header and Footer might work out of box for demos but eventually you will need to customize it.  The most common first gripe I see is that Bill To and Ship To are reversed.&lt;/p&gt;
&lt;p&gt;There is no way to edit the out of box template without recreating all the sections and it can be time consuming to recreate it if you did it from scratch.  You can actual actually save time by copy and pasting the out of box version into your own Quote Section.  It&amp;#39;s not hard to find after you know where to go.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s how:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to Setup &amp;gt; Installed Packages &amp;gt; Salesforce CPQ &amp;gt; View Components&lt;/li&gt;
&lt;li&gt;Find &amp;quot;Template Top&amp;quot; on the page and click on it (I recommend this since salesforce is still renaming things from SteelBrick to CPQ): &lt;img src=&quot;/uploads/Screenshot-2018-04-21-13.58.31.png&quot; alt=&quot;&quot;&gt;&lt;/li&gt;
&lt;li&gt;Click &amp;quot;View File&amp;quot; to download the content: &lt;img src=&quot;/uploads/Screenshot-2018-04-21-14.00.59.png&quot; alt=&quot;&quot;&gt;&lt;/li&gt;
&lt;li&gt;Copy &amp;amp; Paste the downloaded html content into your new Template Section&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Follow the same process for &amp;quot;Template Bottom&amp;quot; and you will have both of the sections you need and can start doing deep customizations of the quote output.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Spring 18 Lightning Experience Highlights]]></title><description><![CDATA[Salesforce's Release Notes for Lightning Expe...]]></description><link>https://cloudanswers.com/blog/spring-18-lightning-experience-highlights</link><guid isPermaLink="false">/blog/spring-18-lightning-experience-highlights</guid><pubDate>Tue, 27 Mar 2018 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/214876_GraphicTiles_2_041718.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Salesforce&amp;#39;s Release Notes for Lightning Experience Spring &amp;#39;18 is over 500 pages long, so we&amp;#39;ve summarized the most important highlights for developers right here, along with our own best practice recommendations.&lt;/p&gt;
&lt;h3 id=&quot;lightning-experience-changes-in-spring18&quot;&gt;&lt;strong&gt;Lightning Experience Changes In Spring&amp;#39;18&lt;/strong&gt;&lt;/h3&gt;
&lt;h4 id=&quot;use-without-sharing-for-auraenabled-apex-controllers-with-implicit-sharing&quot;&gt;&lt;strong&gt;Use without sharing for @AuraEnabled Apex Controllers with Implicit Sharing.&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;@AuraEnabled Apex controllers that don’t specify &amp;quot;with sharing&amp;quot; or &amp;quot;without sharing&amp;quot; will default to without sharing.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Best practice&lt;/em&gt;: Always use &amp;quot;with sharing&amp;quot; in Apex controllers used with Lightning components.&lt;/p&gt;
&lt;h4 id=&quot;api-access-for-lightningcontainer-apps-is-revoked&quot;&gt;&lt;strong&gt;API Access for &lt;a href=&quot;lightning:container&quot;&gt;lightning:container&lt;/a&gt; Apps Is Revoked&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Lightning apps that use the &lt;a href=&quot;lightning:container&quot;&gt;lightning:container&lt;/a&gt; tag will no longer have access to the REST APIs from inside the iframe. Apps can still access org data through Apex remoting calls. This was considered a security risk and Salesforce revoked access to fix it.&lt;/p&gt;
&lt;h4 id=&quot;validation-for-component-attribute-types&quot;&gt;&lt;strong&gt;Validation for Component Attribute Types&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;The type of component attribute is now validated when you save the component. Validation at save time helps you discover attribute type errors earlier in your development process, instead of seeing errors at runtime.&lt;/p&gt;
&lt;h4 id=&quot;find-dynamically-created-components&quot;&gt;&lt;strong&gt;Find Dynamically Created Components&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;You can now use cmp.find() to find a component that you create dynamically with $A.createComponent().&lt;/p&gt;
&lt;h4 id=&quot;lightning-console-apps-support-action-overrides-that-use-lightning-components&quot;&gt;&lt;strong&gt;Lightning Console Apps Support&lt;/strong&gt; &lt;strong&gt;Action Overrides that Use Lightning Components&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Action overrides that use Lightning components for View, New, Edit, and Tab are now supported in Lightning console apps. When a user performs an action that’s overridden with a Lightning component, the content from the custom action appears in a tab or subtab. When the split view is open, tab action overrides load the Lightning component in a split-view container that is 400-pixels wide. This feature is new in Lightning Experience.&lt;/p&gt;
&lt;h4 id=&quot;style-tag-not-allowed-in-lightning-components&quot;&gt;&lt;strong&gt;&amp;lt;style&amp;gt; Tag Not Allowed In Lightning Components&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;This restriction ensures better component encapsulation and prevents component styling interfering with the styling of another component.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Changes in Locker Service&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The Locker Service architectural layer enhances security by isolating individual Lightning components in their own containers and enforcing coding best practices.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Previously Locker Service used an iframe to isolate component code when strict Content Security Policy (CSP) was enabled. This approach caused problems when the Enable Stricter Content Security Policy for Lightning Components Critical Update was activated. In this release, Locker Service eliminates the iframe so both framework and component code execute in the main window.&lt;/li&gt;
&lt;li&gt;JavaScript strict mode has been improved.&lt;/li&gt;
&lt;li&gt;Compatibility with React framework has been improved.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;view-the-component-library-as-an-unauthenticated-experience&quot;&gt;&lt;strong&gt;View the Component Library as an Unauthenticated Experience&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Previously, you could access the Component Library only as an authenticated user within your org. In this release, an unauthenticated site has been made available, &lt;a href=&quot;https://developer.salesforce.com/docs/component-library&quot;&gt;check it out.&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;new-lightning-components-in-spring18&quot;&gt;&lt;strong&gt;New Lightning Components in Spring&amp;#39;18&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;In the Spring &amp;#39;18 release, there are some very cool lightning components which were eagerly awaited by the developer community. Here is the list of new components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;lightning:carousal&lt;/strong&gt; (Beta) - Displays collection of images horizontally one at a time.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;lightning:formattedAddress&lt;/strong&gt; - Displays formatted address that provides a link to the given location on Google Maps.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;lightning:formattedName&lt;/strong&gt; - Displays name with salutation and suffix.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;lightning:formattedTime&lt;/strong&gt; - Displays formatted time in user’s locale.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;lightning:inputAddress&lt;/strong&gt; - Renders the address compound field with support for street, city, province, postal code and country.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/input_address.png&quot; alt=&quot;input_address&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;lightning:inputField&lt;/strong&gt; - An editable field with a label, help text and value that corresponds to the field on a Salesforce object. This field must be nested between a lightning:recordEditForm.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;lightning:inputName&lt;/strong&gt; - A compound input field for name with support for salutation, first name, middle name, last name, informal name and suffix.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;lightning:listView&lt;/strong&gt; - Renders a list view of all records that you own, have read/write access to, or are shared with you.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;lightning:recordEditForm&lt;/strong&gt; - A record edit or create layout that displays one or more fields provided by lightning:inputField.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;lightning:pillContainer&lt;/strong&gt; - A list of pills grouped in a container.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;lightning:treeGrid&lt;/strong&gt; - A hierarchical view of data presented in a table.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;new-lightning-events-in-spring18&quot;&gt;&lt;strong&gt;New Lightning Events in Spring&amp;#39;18&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;lightning:availableForFlowScreens&lt;/strong&gt; - This enables a component to used in a flow screen.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;lightning-experience-readiness-changes-for-visualforce&quot;&gt;&lt;strong&gt;Lightning Experience Readiness Changes For Visualforce&lt;/strong&gt;&lt;/h3&gt;
&lt;h4 id=&quot;remove-instance-names-from-urls-for-visualforce-community-builder-sitecom-studio-and-content-files&quot;&gt;&lt;strong&gt;Remove Instance Names from URLs for Visualforce, Community Builder, Site.com Studio and Content Files&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;This update applies to orgs that have deployed My Domain. When the instance name is removed from the URLs, the hostname is going to change.&lt;/p&gt;
&lt;p&gt;Examples&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;mydomain--c.na1.visual.force.com&lt;/em&gt; changes to &lt;em&gt;mydomain--c.visualforce.com&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;mydomain--c.na1.content.force.com&lt;/em&gt; changes to &lt;em&gt;mydomain--c.documentforce.com&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;enable-the-lightning-console-ui-theme&quot;&gt;&lt;strong&gt;Enable the Lightning Console UI Theme&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Currently, $User.UITheme or $User.UIThemeDisplayed returns Theme4d for Visualforce pages in standard Lightning Experience apps and Lightning Console apps. Once the critical update is activated, Lightning Console apps return Theme4u, allowing Visualforce pages to differentiate between standard Lightning Experience apps and Lightning Console apps.&lt;/p&gt;
&lt;h4 id=&quot;apexslds-supports-lightning-experience-and-custom-styling&quot;&gt;&lt;strong&gt;&lt;a href=&quot;apex:slds&quot;&gt;apex:slds&lt;/a&gt; supports Lightning Experience and Custom Styling&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;a href=&quot;apex:slds&quot;&gt;apex:slds&lt;/a&gt; component already includes Lightning Design System stylesheets in Visualforce pages. In Spring &amp;#39;18, this component automatically adopts the latest Lightning Experience styling or your organization’s custom theme. To apply this change to your Visualforce pages, update the page’s API level to 42.0 or later.&lt;/p&gt;
&lt;p&gt;For more information and a list of all the changes in Spring &amp;#39;18, check out Salesforce&amp;#39;s full &lt;a href=&quot;https://resources.docs.salesforce.com/212/latest/en-us/sfdc/pdf/salesforce_spring18_release_notes.pdf&quot;&gt;Release Notes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Happy coding!&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Lead Rotator Added to PowerPack]]></title><description><![CDATA[#### Lead Rotator added to PowerPack Cloudan...]]></description><link>https://cloudanswers.com/blog/lead-rotator-added-to-powerpack</link><guid isPermaLink="false">/blog/lead-rotator-added-to-powerpack</guid><pubDate>Wed, 01 Feb 2017 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/pedestrians-400811_1920.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h4 id=&quot;lead-rotator-added-to-powerpack&quot;&gt;Lead Rotator added to PowerPack&lt;/h4&gt;
&lt;p&gt;Cloudanswers is proud to announce the addition of our latest exciting feature to our PowerPack. &lt;strong&gt;Lead Rotator&lt;/strong&gt; is here!&lt;/p&gt;
&lt;p&gt;Lead rotator makes managing your leads easier than ever by automatically rotating lead assignments between each member of your lead queues.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/leadrotatoradmin-1.png&quot; alt=&quot;Lead Rotator PowerPack&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;cloudanswers-powerpack&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-02-01-lead-rotator-added-to-powerpack.md#cloudanswers-powerpack&quot;&gt;&lt;/a&gt;Cloudanswers PowerPack&lt;/h4&gt;
&lt;p&gt;Cloudanswers PowerPack is available for free on the Salesforce AppExchange and has an integrated suite of products that you and your team will wish you&amp;#39;ve had all along, including apps that can be very expensive from other vendors.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/contact.html&quot;&gt;Contact Us&lt;/a&gt; today to learn how the &lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/power-pack.html&quot;&gt;Cloudanswers PowerPack&lt;/a&gt; can help you succeed on the Salesforce platform. We can&amp;#39;t wait to hear from you!&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Case Merge Added to PowerPack]]></title><description><![CDATA[Case Merge added to PowerPack <iframe s...]]></description><link>https://cloudanswers.com/blog/case-merge-added-to-powerpack</link><guid isPermaLink="false">/blog/case-merge-added-to-powerpack</guid><pubDate>Thu, 26 Jan 2017 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/case-merge-2.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;h4 id=&quot;case-merge-added-to-powerpack&quot;&gt;Case Merge added to PowerPack&lt;/h4&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/0u2D8Ld5GtU&quot; width=&quot;640&quot; height=&quot;360&quot; frameborder=&quot;0&quot; allowFullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Did you know that Salesforce users have been asking for a native case-merge solution for over 6 years but Salesforce still doesn&amp;#39;t provide this functionality? Even worse, users who need to merge cases are directed to an AppExchange product which sells per-user licenses and can be very costly for large teams. How rude!&lt;/p&gt;
&lt;p&gt;Cloudanswers is proud to announce the addition of our latest exciting feature to our PowerPack. &lt;strong&gt;Case Merge&lt;/strong&gt; is here!&lt;/p&gt;
&lt;p&gt;Enhanced with a powerful user interface that makes finding and merging cases easier than ever before, the Cloudanswers PowerPack gives you the tools you need to combine cases quickly so you and your team can focus on what really matters; your customers!&lt;/p&gt;
&lt;p&gt;We all have clients who create lots of cases, and if you are using email-to-case, the numbers can grow quickly! PowerPack lets you select cases directly from related lists on account and contact detail pages, and merge them with the click of a button.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/casemergeaccount.png&quot; alt=&quot;Case Merge on Account&quot;&gt;&lt;/p&gt;
&lt;p&gt;But what if you have duplicate cases across different accounts or contacts? PowerPack provides robust search functionality so that you can find and merge cases based on any criteria!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/casemergedupes.png&quot; alt=&quot;Duplicate Cases Merged&quot;&gt;&lt;/p&gt;
&lt;p&gt;When you merge cases, all the child records from the duplicate case are moved to the master case, so all your activities, attachments, and email messages are automatically preserved on your master case!&lt;/p&gt;
&lt;p&gt;Also, case descriptions are combined from each merged case into the master, so that your team never loses track of important details.&lt;/p&gt;
&lt;h4 id=&quot;cloudanswers-powerpack&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-01-25-case-merge-introduced.md#cloudanswers-powerpack&quot;&gt;&lt;/a&gt;Cloudanswers PowerPack&lt;/h4&gt;
&lt;p&gt;Cloudanswers PowerPack is available for free on the Salesforce AppExchange and has an integrated suite of products that you and your team will wish you&amp;#39;ve had all along, including apps that can be very expensive from other vendors.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/contact.html&quot;&gt;Contact Us&lt;/a&gt; today to learn how the &lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/power-pack.html&quot;&gt;Cloudanswers PowerPack&lt;/a&gt; can help you succeed on the Salesforce platform. We can&amp;#39;t wait to hear from you!&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Lightning and JavaScript Buttons]]></title><description><![CDATA[Lightning is coming. You have played around w...]]></description><link>https://cloudanswers.com/blog/lightning-and-javascript-buttons</link><guid isPermaLink="false">/blog/lightning-and-javascript-buttons</guid><pubDate>Wed, 25 Jan 2017 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/637940450.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Lightning is coming. You have played around with the new User interface, made some reports, and tested out your customizations. When Lightning was released a year ago, it was slow and it was missing things. A year later they have addressed a lot of the issues, sped things up, and now its looking pretty good!&lt;/p&gt;
&lt;h2 id=&quot;trailhead&quot;&gt;Trailhead&lt;/h2&gt;
&lt;p&gt;Luckily for us, with all of the updates, we can stay current with &lt;a href=&quot;https://trailhead.salesforce.com/&quot;&gt;Trailhead&lt;/a&gt;. Salesforce has been diligently crafting content that not only tells the User what is coming, it also walks you through use cases so you can &lt;strong&gt;&lt;em&gt;really absorb it&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Today I was trying to find the best way to replace JavaScript Buttons. Salesforce has clearly signaled they are on their way out, which is rough for anyone who populated pages with data for their users. It won&amp;#39;t work in Lightning, it won&amp;#39;t work in Console. Now we have &lt;strong&gt;&lt;em&gt;Quick Actions and Lightning Components&lt;/em&gt;&lt;/strong&gt;. They work and they are easy.&lt;/p&gt;
&lt;h2 id=&quot;lightning-components&quot;&gt;Lightning Components&lt;/h2&gt;
&lt;p&gt;To get your bearings, you can go to &lt;a href=&quot;https://trailhead.salesforce.com/modules/lex_javascript_button_migration&quot;&gt;Trailhead: JavaScript Button Migration&lt;/a&gt; to see how the migration works and an awesome example of the new functionality in Lightning.&lt;/p&gt;
&lt;p&gt;Trailhead walks you through the example of using a modal to update a related record. This might not seem amazing, there are little edit modals for everything, but what this example shows you is that you can stay on the same page to update common fields on a related record. Time and again I talk to Users who want to update the Account from a Contact after a call. Now, with a Quick Action, you an edit the Account directly from the Contact avoiding the reload time and confusion of switching between records.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Must Do - Trailhead: Reporting]]></title><description><![CDATA[Salesforce is a lot of things. You can store ...]]></description><link>https://cloudanswers.com/blog/trailhead-reporting</link><guid isPermaLink="false">/blog/trailhead-reporting</guid><pubDate>Wed, 25 Jan 2017 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/cover-pic-1.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Salesforce is a lot of things. You can store contacts, track products, manage automation, create complex reports, and then-some.&lt;/p&gt;
&lt;p&gt;When you are just getting started, the set up can feel overwhelming and expensive. Even if you are teaching yourself after hours, you are spending a lot of time looking at features that you have survived without.&lt;/p&gt;
&lt;p&gt;There is one feature you need to master before any other. It is not automated emailing; it&amp;#39;s not validation rules of making a site. What you need now are accurate Reports. Insightful and timely, a report on team data gives you insight into your coworker&amp;#39;s actions and your own. You can see who is covering which bases and who needs help.&lt;/p&gt;
&lt;p&gt;Some companies need up-to-date pipeline reports for stockholders; others need metrics to help coach their sales people. There are many cases where summarizing your data will offer extra insight.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;https://trailhead.salesforce.com/modules/reports_dashboards&quot;&gt;Trailhead: Reporting&lt;/a&gt; you get a deep dive into the most prominent features. From reporting on related records to building dashboards, you practice using these tools to solve complicated problems.&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Spring '17 Developer Preview]]></title><description><![CDATA[Salesforce's Spring '17 release is coming soo...]]></description><link>https://cloudanswers.com/blog/spring-17-developer-preview</link><guid isPermaLink="false">/blog/spring-17-developer-preview</guid><pubDate>Wed, 18 Jan 2017 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/springdx.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Salesforce&amp;#39;s Spring &amp;#39;17 release is coming soon, and with it comes a lot of great new features designed to make developers&amp;#39; lives easier. Of course, at Cloudanswers we&amp;#39;re stoked and excited to share what&amp;#39;s new in Lightning, Visualforce, and Apex.&lt;/p&gt;
&lt;h2 id=&quot;lightning&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-01-17-spring-17-developer-preview.md#lightning&quot;&gt;&lt;/a&gt;Lightning&lt;/h2&gt;
&lt;p&gt;Lightning experience in Salesforce continues to improve, with new features and and increased parity with Visualforce coming in every release. Here&amp;#39;s what&amp;#39;s new:&lt;/p&gt;
&lt;h4 id=&quot;lightning-container-components&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-01-17-spring-17-developer-preview.md#lightning-container-components&quot;&gt;&lt;/a&gt;Lightning container components&lt;/h4&gt;
&lt;p&gt;In Spring &amp;#39;17, Salesforce introduces a preview of &lt;strong&gt;Lightning Container Components&lt;/strong&gt; which are natively hosted javascript apps that can be dragged into your Lightning apps using Lightning App Builder, just like you would build an app with any other lightning component.&lt;/p&gt;
&lt;p&gt;This will allow developers to create Lightning components using their preferred javascript libraries, and make them available in lightning experience, hosted in an iframe.&lt;/p&gt;
&lt;p&gt;Lightning container components will be hosted on Salesforce as a static resource, and become available in Lightning app builder once uploaded. Although in an iframe, these special components are API session enabled, and have access to a messaging service which allows your container components to interact with other custom components on the same page despite the iframe limitation!&lt;/p&gt;
&lt;h4 id=&quot;new-standard-components&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-01-17-spring-17-developer-preview.md#new-standard-components&quot;&gt;&lt;/a&gt;New Standard Components&lt;/h4&gt;
&lt;p&gt;Spring &amp;#39;17 comes with a few exciting new standard components for use in your lightning apps!&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Search Input&lt;/strong&gt; A new lightning component that will let you search for and select related records using SOSL or even Apex!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File Upload Input&lt;/strong&gt; A new standard file input will become available for developers in Spring &amp;#39;17&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rich Text Editor&lt;/strong&gt; A standard rich text editor for lightning components. Finally! Simply add your first one using the &lt;strong&gt;&lt;em&gt;&lt;a href=&quot;lightning:inputRichText&quot;&gt;lightning:inputRichText&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; tag!&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;better-error-reporting-in-lightning-experience&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-01-17-spring-17-developer-preview.md#better-error-reporting-in-lightning-experience&quot;&gt;&lt;/a&gt;Better error reporting in lightning experience&lt;/h4&gt;
&lt;p&gt;By popular developer demand! Now you&amp;#39;ll be able to see a meaningful error message, complete with line numbers and stack trace when an error is encountered in one of the components on the page.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a blurry screen shot I took from the webinar:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/springerrormessage.png&quot; alt=&quot;SFDC Spring 17 Error Msg&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;locker-service&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-01-17-spring-17-developer-preview.md#locker-service&quot;&gt;&lt;/a&gt;Locker service&lt;/h4&gt;
&lt;p&gt;Locker service has changes which are available as a critical update in Spring &amp;#39;17 Sandbox and Developer orgs. The update will tighten Content Security Policy (CSP) to eliminate the possibility of XSS attacks. You can turn the update on and off so that you can test your components and apps before locker service becomes the law of the land in Summer &amp;#39;17&lt;/p&gt;
&lt;h2 id=&quot;lightning-console-apps&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-01-17-spring-17-developer-preview.md#lightning-console-apps&quot;&gt;&lt;/a&gt;Lightning Console Apps&lt;/h2&gt;
&lt;p&gt;Many of you are already familiar with the Service Console and console apps. They&amp;#39;re awesome! Even more awesome is that coming in Spring &amp;#39;17 admins and developers will be able to create lightning-ready console apps with custom functionality, for use by other teams in your business.&lt;/p&gt;
&lt;p&gt;Console apps are configurable so that the tabs and objects you use most are right at your team&amp;#39;s fingertips.&lt;/p&gt;
&lt;p&gt;Lightning Console Apps will also have a configurable utility bar, which is essentially a set of lightning components that stays docked and always visible as you navigate the different tabs of the console app!&lt;/p&gt;
&lt;h4 id=&quot;custom-record-detail-pages-in-lightning-app-builder&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-01-17-spring-17-developer-preview.md#custom-record-detail-pages-in-lightning-app-builder&quot;&gt;&lt;/a&gt;Custom record detail pages in Lightning App Builder&lt;/h4&gt;
&lt;p&gt;This one is sweet and ties in with console apps. Customize your record detail pages in lightning app builder, and even add new tabs beyond the standard &amp;quot;Feed&amp;quot; and &amp;quot;Detail&amp;quot; tabs, and assign any tab as the default. New lightning detail pages can be assigned to your console apps, with business unit-specific components added to each one!&lt;/p&gt;
&lt;h2 id=&quot;apex-stub-api-goes-ga&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-01-17-spring-17-developer-preview.md#apex-stub-api-goes-ga&quot;&gt;&lt;/a&gt;Apex Stub API goes GA&lt;/h2&gt;
&lt;p&gt;The Apex Stub API, which provides developers with a suite of classes and methods used for stubbing and mocking for their unit tests, was available as a pilot in Winter &amp;#39;17. With the introduction of Spring &amp;#39;17, this functionality will become available to all orgs. More info on the Apex Stub API can be found at &lt;a href=&quot;https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_testing_stub_api.htm&quot;&gt;https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_testing_stub_api.htm&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;salesforce-dx&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-01-17-spring-17-developer-preview.md#salesforce-dx&quot;&gt;&lt;/a&gt;Salesforce DX&lt;/h2&gt;
&lt;p&gt;This is the one that dropped every jaw in the room when it was announced at Dreamforce &amp;#39;16. Salesforce DX is an integrated suite of tools designed to make development easier for teams of developers, and individual developers alike. Salesforce DX is going to be delivered as a &amp;quot;plugin&amp;quot; to the Force.com IDE (Eclipse), and also come with a command line interface. The plugin uses the CLI to do its work, which means anything it does can be scripted!&lt;/p&gt;
&lt;p&gt;There are so many awesome things coming with DX (Developer Experience) that I could spend all day talking about them! But since you probably have better things to do than read my blog, I&amp;#39;ll try to keep it short and sweet :-)&lt;/p&gt;
&lt;h4 id=&quot;move-source-of-truth-from-sandboxes-to-source-control&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-01-17-spring-17-developer-preview.md#move-source-of-truth-from-sandboxes-to-source-control&quot;&gt;&lt;/a&gt;Move source of truth from Sandboxes to Source Control&lt;/h4&gt;
&lt;p&gt;As many Salesforce developers are well aware, managing salesforce metadata with version control is a necessary but not always easy task. The folks at Salesforce are finally listening and delivering a tool that will change the paradigm so that the source code, not a sandbox, is the system of record for managing and delivering (yes, delivering... more on that below!) your salesforce configurations and code.&lt;/p&gt;
&lt;h4 id=&quot;pilot-cli-for-dx&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-01-17-spring-17-developer-preview.md#pilot-cli-for-dx&quot;&gt;&lt;/a&gt;Pilot CLI for DX&lt;/h4&gt;
&lt;p&gt;This is where things get really exciting. Salesforce DX is introducting a CLI which can do nifty things like spin up orgs, populate data, apply configurations, assign permissions, run tests, etc. all from the command line. The CI/CD implications here are monumental! Imagine a world where you can spin up a salesforce org using a JSON config file stored in your repository. How about doing those things automatically through your CI tool like Jenkins? Neat stuff.&lt;/p&gt;
&lt;h4 id=&quot;asynchronous-server-updates&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-01-17-spring-17-developer-preview.md#asynchronous-server-updates&quot;&gt;&lt;/a&gt;Asynchronous server updates&lt;/h4&gt;
&lt;p&gt;Currently when developing Salesforce code and config, we need to save files to the server, and each time we do that, our IDE makes us wait before we can do the next thing. Sometimes we spend lots of time looking at the screen while our code awaits judgment from the server-side gods. With DX, each save operation is its own thread and executes asynchronously which should speed development times tremendously. Don&amp;#39;t worry though, we won&amp;#39;t tell anybody if you still decide to stare at the screen once in a while :-)&lt;/p&gt;
&lt;h4 id=&quot;dx-is-extensible&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-01-17-spring-17-developer-preview.md#dx-is-extensible&quot;&gt;&lt;/a&gt;DX is extensible&lt;/h4&gt;
&lt;p&gt;In addition to all the cool things it can do out of the box, DX and the CLI are extensible by simply writing some NodeJS. Sweet!&lt;/p&gt;
&lt;h4 id=&quot;how-to-get-dx&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-01-17-spring-17-developer-preview.md#how-to-get-dx&quot;&gt;&lt;/a&gt;How to get DX&lt;/h4&gt;
&lt;p&gt;DX is a &amp;quot;closed&amp;quot; pilot for Spring &amp;#39;17, but we&amp;#39;ve been led to believe that those who sign up are likely to get a taste. Here&amp;#39;s how:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;a href=&quot;http://developer.salesforce.com/&quot;&gt;http://developer.salesforce.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Click on &amp;quot;Products&amp;quot; on the menu and choose Salesforce DX&lt;/li&gt;
&lt;li&gt;Scroll to the bottom of the page that comes up&lt;/li&gt;
&lt;li&gt;Click the button to be the first to learn more about it&lt;/li&gt;
&lt;li&gt;Provide your info in the form and submit&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;We expect that you&amp;#39;ll receive an email about how to participate in the Pilot sometime in February.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/springdx.png&quot; alt=&quot;SFDC Spring 17 DX Release&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;conclusions&quot;&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/_posts/2017-01-17-spring-17-developer-preview.md#conclusions&quot;&gt;&lt;/a&gt;Conclusions&lt;/h2&gt;
&lt;p&gt;As always, Salesforce is positioned to deliver another set of awesome features in their upcoming release that will make the platform more robust. This article only touches on some of them, but there are a lot more things coming in Spring. Check out the full release notes &lt;a href=&quot;https://releasenotes.docs.salesforce.com/en-us/spring17/release-notes/salesforce_release_notes.htm&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Announcing PowerPack AppExchange App]]></title><description><![CDATA[When you have worked in over 100 orgs you get...]]></description><link>https://cloudanswers.com/blog/powerpack-release-announcement</link><guid isPermaLink="false">/blog/powerpack-release-announcement</guid><pubDate>Sat, 12 Nov 2016 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/leadrotatoradmin-1.png&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;When you have worked in over 100 orgs you get a lot of the same requests from different companies. Instead of developing the same code for each client, starting today, we are centralizing these redundant development efforts into a new salesforce AppExchange App: The CloudAnswers PowerPack (now deprecated).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/Screenshot-2017-01-16-10.30.54-1024x875.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;This package combines over &lt;strong&gt;&lt;em&gt;10 years&lt;/em&gt;&lt;/strong&gt; of learning about real-life salesforce implementations. It comes with baked in best-practices that you may not know you needed, or knew were possible. This package&amp;#39;s goal is to satisfy our clients&amp;#39; most common requests so that a client never again has to ask us to code the same thing we&amp;#39;ve coded 10 times before, and let us get down to making new ways to &lt;strong&gt;&lt;em&gt;accelerate your business&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;PowerPack Products (Today):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/powerpack/calendar-everything&quot;&gt;CalendarEverything&lt;/a&gt;: Easily create a marketing calendar, an Opportunitiy calendar, or a calendar based on a custom object. This app allows drag and drop of events and obeys all built in salesforce security systems, so you can build team or company-wide calendars quickly.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/powerpack/case-merge&quot;&gt;Case Merge&lt;/a&gt;: Merge cases together with a point-and-click interface that will feel familiar right away. Don&amp;#39;t let stale cases slip through the cracks! Merge them together with the Cloudanswers Powerpack.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/powerpack/opportunity-team-inherit&quot;&gt;Opportunity Team Inherit&lt;/a&gt;: If you use Account Teams and Opportunity Teams, don&amp;#39;t you wish a new Opportunity would inherit the Account Team automatically? Enable this feature to make it happen automatically whenever a new Opportunity is created.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/cloudanswers/cloudanswers-site/blob/gh-pages/powerpack/account-merge-button&quot;&gt;Account Find Duplicates Button&lt;/a&gt;: A button for the account screen to start a search and de-dupe cycle. It&amp;#39;s an easy enhancement to add to your system to improve data quality.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Coming Soon:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Credit card processing&lt;/li&gt;
&lt;li&gt;Click-to-dial&lt;/li&gt;
&lt;li&gt;Custom integrations&lt;/li&gt;
&lt;li&gt;Weather Integration&lt;/li&gt;
&lt;li&gt;Enhanced scheduled reports (send in any format)&lt;/li&gt;
&lt;li&gt;And much, much, more...&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;PowerPack is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Best practices baked-in&lt;/li&gt;
&lt;li&gt;The most common development requests&lt;/li&gt;
&lt;li&gt;Focused on addressing the needs of growing companies&lt;/li&gt;
&lt;li&gt;Always getting better, with planned frequent releases for the next year&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The current price of the PowerPack is only &lt;strong&gt;&lt;em&gt;$100 per company per month&lt;/em&gt;&lt;/strong&gt; (yes, for unlimited users).&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[The four technical supplements that will help your email open rates reach peak performance]]></title><description><![CDATA[Email: The easiest way to either a high marke...]]></description><link>https://cloudanswers.com/blog/the-four-technical-supplements-that-will-help-your-email-open-rates-reach-peak-performance</link><guid isPermaLink="false">/blog/the-four-technical-supplements-that-will-help-your-email-open-rates-reach-peak-performance</guid><pubDate>Fri, 07 Oct 2016 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/233-e1555480675991.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Email: The easiest way to either a high marketing ROI or the easiest way to ruin someone’s day. &lt;a href=&quot;http://www.prnewswire.com/news-releases/survey-shows-many-marketers-are-behind-in-use-of-data-targeting-and-measurement-143303436.html&quot;&gt;According to a survey ran by Crain BtoB Magazine&lt;/a&gt;, 59% of marketers say that email is the highest revenue generation channel in their company. However, over 50% of people who receive subscription based emails unsubscribe because they never expected communication from the company.&lt;/p&gt;
&lt;p&gt;Even if you have a loyal subscriber list to your content, there may be other factors in the way of your email marketing. These other factors can be summarized into one general issue: technical optimization. Emails are much more than sending awesome copy and a great content offer, they have several other properties that affect how they are sent, where they will get sent, and even the first impression people make of them in their inbox!&lt;/p&gt;
&lt;p&gt;Luckily, we have a prescription if you think you’re suffering from the ailments of poor technical email practices:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Your Email Technical Prescription:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;One verified sender to email from — If you’re using a CRM or marketing automation software for email campaigns, that’s great! BUT… you have to make sure you have a verified sender in that software. Using the default sender tools in CRMs will insert a @company.image: /uploads/.com at the end of your sender line! Your recipients will immediately know that you’re sending an automated email, which can lead to unsubscribes and unopened emails. There is a cure though! Just make sure you have a dedicated email address, and verify it through your CRM! Not only will you agree to be compliant with CAN-SPAM law, but your subscribers will feel as if a person is sending over the content they love!&lt;/li&gt;
&lt;li&gt;KISS: Keep it Sweet and Simple (for subject lines and preview text) — So you’ve made a killer subject line, your preview text does a great job describing your content, but when you send the email it cuts off. Generally, you want to aim for 50 or so characters when writing subject lines! Hopefully you tweet a lot because 140 characters is tough enough, but 50 is less than half of that! Meeting this challenge creates a simple but effective outcome: your subject lines and preview texts can be fully read without needing another click. This also ties into our next item…&lt;/li&gt;
&lt;li&gt;Optimize for mobile devices always! — Did you know that almost 80% of email recipients open email on their mobile device! Yes, you’re reading that correctly! Over the last five years, email opens have greatly shifted from desktop to mobile! Hence why we say optimize your emails for mobile always! Those short but sweet subjects? Already optimized for mobile and desktop! CTAs? Make your CTA a square button to perfectly accommodate mobile screens! Always test your templates and see what they look like on phone screens. Apple Mail dominates mobile opens (over 55%!) because they integrate with every client. Now another nice transition (two for two) as clients are hugely important in technical optimization…&lt;/li&gt;
&lt;li&gt;Make sure your emails are viewable in any email client! — There is an ongoing argument about HTML vs. plain text and which one is better. While most subscribers (people who have already dedicated their time to see your content) wish to see HTML emails from companies, colder leads are generally more inviting to plain-text. However, there are even people who still use basic clients that can ONLY VIEW PLAIN TEXT! So what do you do? Make an HTML and plain-text version of course! This increases not only how many emails you are able to send, but also allows “client-challenged” email users to view your content!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you use CRM software or similar tools, you should be in great shape to use technical features of email marketing to your advantage! And as always, make sure to double up on CloudAid prescriptions to supercharge your CRM/marketing automation!&lt;/p&gt;
</content:encoded></item><item><title><![CDATA[Out of aspirin? Reduce headaches with these 5 CRM software Best Practices]]></title><description><![CDATA[We’re not recommending that you can replace a...]]></description><link>https://cloudanswers.com/blog/out-of-aspirin-reduce-headaches-with-these-5-crm-software-best-practices</link><guid isPermaLink="false">/blog/out-of-aspirin-reduce-headaches-with-these-5-crm-software-best-practices</guid><pubDate>Thu, 06 Oct 2016 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/OCD94D0-e1555480846930.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;We’re not recommending that you can replace aspirin with CRM software (Customer Relationship Management), that would be nonsensical. When it does come with organizing your Sales and Marketing on an automation system, there are other headaches that come with those activities.&lt;/p&gt;
&lt;p&gt;Leads without a lifecycle or status plague your database. Non-existent Campaign IDs and labels still collect dust within your SalesForce, because no one has had time to clean it out. Features and workflow functions don’t have the functionality that you desire, or require a highly technical configuration. Whatever the case may be, there will be congestion between what you’re trying to do and your CRM.&lt;/p&gt;
&lt;p&gt;Sometimes you think: “Why don’t I just get rid of this altogether?” The answer to that is CRMs are the standard for businesses both big and small when it comes to optimizing lead generation. Here are some stats to help convince why you’ll fall behind without a CRM:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Symptoms and Risks of letting go of a CRM:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.buyerzone.com/leads/resources/state-of-b2b-lead-generation/&quot;&gt;91% of companies with more than 11 employees&lt;/a&gt; now use CRM software&lt;/li&gt;
&lt;li&gt;Research by &lt;a href=&quot;http://www.slideshare.net/SathishMariappan/mobile-crm-6803102&quot;&gt;Innoppl Technologies&lt;/a&gt; showed that 65% of sales reps who have adopted mobile CRM have achieved their sales quotas. While only 22% of reps using non-mobile CRM have reached the same targets.&lt;/li&gt;
&lt;li&gt;A forecast from Gartner anticipates &lt;a href=&quot;http://www.forbes.com/sites/louiscolumbus/2013/06/18/gartner-predicts-crm-will-be-a-36b-market-by-2017/&quot;&gt;that the customer relationship management market will be worth $27.5 billion worldwide in 2015&lt;/a&gt;. Rising to $37 billion by just 2017.&lt;/li&gt;
&lt;li&gt;And 2015 was no different. Last year we found out that overall &lt;a href=&quot;http://www.buyerzone.com/leads/resources/b2b-lead-generation-2013/&quot;&gt;CRM usage increased from 56% to 74%&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Everyone is using CRMs and with more mobility than traditional sales/marketing software. So let’s get you a prescription for your CRM headaches, so you can also start maximizing Sales and Marketing activity.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Your Prescription for a Headache-Free CRM Experience:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Establish your Lifecycle and Lead Statuses before running campaigns — When prospects and leads interact with your products, make sure that they are accurately marked as they do. If they subscribe to your blog, establish a workflow that says they are a “Subscriber.” If you have customers, make sure they’re marked as “Customers.” You don’t want people who already bought your services to get content or emails meant for prospects who just went into the pipeline.&lt;/li&gt;
&lt;li&gt;Label your campaigns and confirm the leads in those campaigns — Receiving a commercial email that you didn’t expect isn’t the best experience. Don’t have the same happen to the leads within your CRM. This is easily avoidable. By labeling your campaigns, and setting rules and qualifications for your campaigns, you can make sure the leads you want to engage with aligned with the appropriate experience. Your blog subscribers should be associated with campaigns related to your blog. Leads who expressed interest in an event you’re hosting should be associated with invitation campaigns. Make your labels simple and clear to avoid campaign overlap.&lt;/li&gt;
&lt;li&gt;Clean up your leads and campaigns regularly with lists — You’re going to have leads and prospects that, unfortunately, unsubscribe or opt of of communication with your company altogether. They aren’t ready to engage with your company at this time, so you need to make sure you’re not pestering them. Building lists that show the unsubscribes, opt outs, and other company disengagements is almost as important as identifying your most qualified leads. Doing this can avoid serious issues such as skewed results/data as well legal trouble!&lt;/li&gt;
&lt;li&gt;Have your whole team onboard! — Even the smallest businesses utilizing CRMs should have more than more person managing their software. It promotes an aligned Sales and Marketing system, and holds people accountable on their responsibilities. Also you have a sense of teamwork when it comes to organizing and compiling your databases with an aligned team all working on the same CRM.&lt;/li&gt;
&lt;li&gt;Have someone who has mastered CRM software look at your system — There are instances where you have no time nor people to really get the most out of your CRM software. Hire an expert to see what is going on! While most CRMs are easy to learn, they are very hard to master, especially from a technical standpoint. There are professionals that can fully optimize your CRMs, and are worth giving a call.&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title><![CDATA[Lead Nurturing Checklist]]></title><description><![CDATA[You operate or work within a medium-sized bus...]]></description><link>https://cloudanswers.com/blog/lead-nurturing-checklist</link><guid isPermaLink="false">/blog/lead-nurturing-checklist</guid><pubDate>Tue, 10 Jun 2014 00:00:00 GMT</pubDate><content:encoded>&lt;figure&gt;&lt;img src=&quot;/uploads/startup-593342_1920.jpg&quot; alt=&quot;Post image&quot;/&gt;&lt;/figure&gt;&lt;p&gt;You operate or work within a medium-sized business. Over the last few months, you and the team have created some great marketing content. You’ve been sharing it and seeing conversions like crazy… at first. But now you notice that all these great inbound leads have started to disengage from your business. The content is still great. The pathways are still open, but it’s as if customers are “window shopping.”&lt;/p&gt;
&lt;p&gt;Don’t fret! All this means is that your business is now ready for a shiny new Lead Management program.&lt;/p&gt;
&lt;p&gt;Lead Management, or “Lead Nurturing,” is the process of qualifying inbound leads by educating them with resources, and building trust with them until they’re ready to buy. A lot of salespeople and marketers think that once a lead subscribes to a blog, or downloads a piece of content, they’re ready to buy. Not the case. In fact according to SiriusDecisions, 98% of Marketing Qualified Leads (MQLs) don’t result in a closed deal or business. This is where Lead Management/Nurturing comes in. Let your consumers and prospects teach themselves and get more comfortable with what you’re selling.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Reported Symptoms of Effective Lead Management:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leads who are effectively nurtured produce a 20% increase in sales opportunities. (Source: DemandGen)&lt;/li&gt;
&lt;li&gt;Effective lead nurturing generates 50% more sales-ready leads at a 33% lower cost. (Source: DemandGen)&lt;/li&gt;
&lt;li&gt;Nurtured leads make 47% larger purchases than non-nurtured leads. (Source: The Annuitas Group)&lt;/li&gt;
&lt;li&gt;Relevant emails drive 18 times more revenue than broadcast emails. (Source: Juniper Research)&lt;/li&gt;
&lt;li&gt;82% of prospects say lead nurturing content targeted to their specific industry is more valuable. (Source: MarketingSherpa)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Before you break into a cold sweat thinking that Lead Management is unattainable, don&amp;#39;t worry. Have comfort in knowing that anyone can build an effective Lead Management Program. Here is your CloudAnswers Prescription to get started:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Your Lead Management Program Prescription:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A (single) designated strategy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Lead Nurturing begins with making sure you have a clear objective in mind. Are you looking to engage with new inbound leads through generally useful resources, or are you providing educational awareness about why your solution helps them? Make sure you define lead engagement and lead education. For example: if your business resonates with the story at the beginning, you’ll now start to educate your inbound leads.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Content that is relevant to your Nurturing Strategy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You&amp;#39;ve decided on your strategy, awesome! Now it’s time to build content around that goal. Keep your content simple and easy to read. Especially if your leads are just learning about your brand and products. Keep content relevant and useful to whatever stage they’re at in the buying process. If you’re executing on an engagement strategy, make sure you’re resonating with the same ideas and interests as your leads.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Organize and Analyze with Technology&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You know what you’re trying to attain with your lead nurturing, you have the proper content, now you just need the tools to catalogue your leads and measure your inbound activity. This is where CRMs like Salesforce and Marketing Automation tools like Marketo or HubSpot come in. These help automate your marketing campaigns and identify behavioral trends of your inbound leads.&lt;/p&gt;
&lt;p&gt;Once you’re read to launch your Lead Management operation, get your team on the same page. Make absolutely sure that Sales and Marketing are aligned. This is critical in identifying leads that are ready to consider purchasing decisions. Have an expert take a look at your CRM. Have that expert properly organize leads, and fully optimize marketing activities.&lt;/p&gt;
&lt;p&gt;Implement Lead Nurturing to turn your Pipeline from sickly to sprightly. You’ll thank yourself later once you do it.&lt;/p&gt;
</content:encoded></item></channel></rss>