Current version: Salesforce SD CE 23.2.1
This document describes the CloudAlly Salesforce backup and recovery solution.
Description of Salesforce
Salesforce is a Customer Relationship Management (CRM) system that provides a plethora of cloud services for office, management and connectivity needs. The Salesforce products include Sales Cloud, Service Cloud, Marketing Cloud, etc., each containing a wide variety of applications. All of this data may be corrupted by malicious software, or by human error. CloudAlly ensures that your organization’s data is well protected and always available for swift restore to keep your business operational and your employees productive.
CloudAlly backs up the data of your Salesforce CRM, and can restore this data, including the object versions, where version control is applicable.
Salesforce offers several editions, which provide different range of features and allow different levels of access to the records. Some of the editions do not allow our system to access the records in Your CRM, therefore we can’t provide CloudAlly services for these editions.
- Fully supported: Enterprise Edition, Unlimited Edition, Developer Edition, Performance Edition
- Partially supported: Professional Edition
- This version of Salesforce is compatible with CloudAlly if you have the API access for it: the Professional edition requires users to purchase API access at an additional cost.
- Additional limitation: file objects (ContentVersion, Document, Attachment, StaticResource, FeedAttachment) larger than 38 MB can’t be recovered with the Restore feature. The data of these objects is preserved in backups, and can be downloaded using our Export feature
- Not supported: Contact, Group and Essentials Editions due to the fact that Salesforce does not provide access to their API.
|CRM||Customer Relationship Management system|
|Fields||A database field is a set of data values, of the same data type, in a table. It is also referred to as a column or an attribute.|
|In Place restore||Restore to the original organization|
|Metadata||Information about the data.|
|Object||Single standard or custom Salesforce object (database table)|
|Record||Single entry in the database table.|
CloudAlly Backup of Salesforce
What Does CloudAlly Back Up and Restore?
CloudAlly backs up and restores Salesforce data, including records, feeds, attachments, and files. In addition to data, CloudAlly also backs up and restores Salesforce metadata.
What Other Services Does CloudAlly Provide?
- Comparison: You can compare two backup snapshots, or compare Salesforce Production data to a backup snapshot. You can look at particular objects or metadata objects (e.g., Accounts or Opportunity), or all objects, to identify changes to records and fields.
- Replication (Seeding): You can replicate your Production data or metadata to a sandbox – yours or another organization’s. This provides you with data that you can use for testing purposes.
- Anonymization: When you replicate part or all of your Production Salesforce data in your Sandbox, you may be exposing PII - Personally Identifiable Data.
- CloudAlly supports your efforts to anonymize your Salesforce data by providing a toggle switch that turns data anonymization on and off.
- Some of your data will be replaced with pre-set typical values, such as Last Name = Smith, or Address = 123 Main Street.
- The data will keep its original format, to ensure that it can be safely used for integration. Other data will be replaced with meaningless characters, such as notes or comments.
- To learn the details of how each data field will be anonymized, click Download Anonymization Template to view the full list in an Excel format.
- Smart Alerts: CloudAlly’s Salesforce Backup comes with Anomaly detection that alerts you of suspicious activity – updates or deletes – to your Salesforce data.
- Customize Smart Alerts to detect irregular objects changes such as addition, deletion, or updates between backup snapshots, based on your predefined threshold.
- Get email notifications with a snapshot report of Salesforce objects changes that triggered the Smart alert.
- Use historical backup snapshots to quickly restore your data to any point-in-time or keyword/metadata search for granular recovery.
External Tools and Applications
The Salesforce marketplace has thousands of applications and tools availale for its users. If a tool is based on the Salesforce platform and stores all its data within Salesforce tables, it is likely that CloudAlly will back up this data. Unfortunately, we can’t know beforehand if the tool fits the criteria, since we do not have the ability to check each and every application to see if it is based on the SalesForce platform or whether it stores some data outside SalesForce.
- We cannot back up objects that cannot be queried, such as ActivityHistory, ReportEventStream, AssetChangeEvent, LookedUpFromActivity, LeadChangeEvent, and LightningUriEventStream, etc.
- There is a daily API call limit, which varies according to the user’s Salesforce license.
- Some object records cannot be created directly, e.g., audit data. Although we cannot restore these objects, , we can export them.
- Salesforce has fields that are auto-generated, such as creation date, updated date, etc. Some of these auto-generated fields cannot be changed. We do not support changing these fields by API.
- We cannot back up data if there are permission restrictions on the account, that is, If a user does not provide access to retrieve data through the API (restrict access to some objects)
The CloudAlly system backs up and restores Salesforce objects for which Salesforce provides version control (tracked by the ContentVersion object).
However, objects that contain changes made to the documents are protected from being overwritten, and can’t be restored by our system. These objects have the suffix “History.”
New and Updated Objects of Salesforce
Salesforce is a growing platform that is constantly improving its services. Salesforce is updated regularly - new features are added and old features are improved. Feature updates cause changes in the data structure of the Salesforce objects, and sometimes can prevent these updated objects from being backed up. The new features have to be added anew to our backup capabilities.
If your customer reports that certain data was not backed up, escalate this to the Development team to verify whether it is a new feature, and if we support it yet. If not, is there a plan to support it in the future?
- We cannot restore records with a record ID starting with 000, which are system records, and are not updatable.
- It is not possible to restore converted leads - all Leads with the field IsConverted and the value = true.
- In cases and tasks, there is autonumeration. When we restore, we cannot restore these numbers.
- If Salesforce changes the object ID of an item, when we restore that object, and the old object ID doesn’t exist, we restore it, but with the new ID, not the old one.
Skipped During Backup
Some object types can’t be processed by the backup engine and are skipped during backup. These objects can’t be restored or exported:
- Custom big objects(__b suffix),KnowledgeArticleobjects (__kav,__ka suffixes), objects that cannot be queried are not backed up.
- CollaborationGroupRecord, ContentFolderItem, ContentFolderMember, DataStatistics, EntityParticle, FlexQueueItem, ListViewChartInstances, ListViewChartInstance, PicklistValueInfo, PlatformAction, RelationshipDomain, RelationshipInfo, SearchLayout, UserEntityAccess, UserFieldAccess, FieldDefinition, AcceptedEventRelation, AccountCleanInfo, AuthSession, ContactCleanInfo, DeclinedEventRelation, FieldHistoryArchive, KnowledgeArticleVersion, KnowledgeArticleVersionHistory, LeadCleanInfo, OpportunityShare, UndecidedEventRelation, OutgoingEmail, OutgoingEmailRelation, LoginHistory, SiteDetail, ColorDefinition, IconDefinition, AppTabMember, OwnerChangeOptionInfo, AccountUserTerritory2View, RecordActionHistory, NetworkUserHistoryRecent, SubscriberPackage, FlowVersionView, FlowVariableView, BotEventLog, BotAnalytics, LightningUriEvent, LogoutEvent, LoginAsEvent, LoginEvent, ListViewEvent, UriEvent, ApiEvent, IdentityVerificationEvent, ReportEvent, ApexLimitEvent, AdminSetupEvent, BackgroundOperationResult, DataType,
Skipped During Restore – Can be Exported
Some objects can’t be inserted into a Salesforce organization via API and are skipped during restore. These objects can be exported with our “Export” recovery option, but are not inserted into a Salesforce organization with the “Restore” recovery option. Such objects include:
UserLicense, PackageLicense, Organization, PartnerRole, PermissionSetLicense, ClientBrowser, LoginGeo, UserAppMenuItem, FlowDefinitionView, CaseStatus, ChatterActivity, Report, Dashboard, DashboardComponent, AppDefinition, OrderStatus, PermissionSetAssignment, ConnectedApplication, IdpEventLog, FileSearchActivity, DataType, FeedPollChoice, FeedPollVote, Calendar, Publisher, EntityDefinition, TaskStatus, OpportunityStage, ApexPageInfo, LightningUsageByAppTypeMetrics, TaskPriority, ProcessDefinition, ProcessNode, FiscalYearSettings, Period, LightningUsageByBrowserMetrics, TabDefinition, UserLogin, SolutionStatus, LightningExitByPageMetrics, ContractStatus, FieldSecurityClassification, AppMenuItem, OauthToken, LeadStatus, LightningUsageByFlexiPageMetrics, SearchActivity, UserPermissionAccess, LoginIp, VisualforceAccessMetrics, LightningToggleMetrics, LightningUsageByPageMetrics, ApexLog, SetupEntityAccess, Campaign, CampaignMemberStatus, ContentFolderLink, ProcessInstance, ProcessInstanceWorkitem, ProcessInstanceNode, ProcessInstanceStep, EventLogFile, ContentDocument, PermissionSet, AssignmentRule, ApexClass, EmailServicesFunction, ListView, DuplicateRule, ApexTrigger, ApexPage, WebLink, MatchingRule, Community, BusinessProcess, RecordType, StaticResource, Feed Items with type TrackedChange, Managed packages.
History objects are also skipped during Restore operations, but can be exported. These objects can be distinguished by suffix “History” (e.g.: Pricebook2History, Product2History, VerificationHistory). You can find more information on History objects here.
Email Message Objects
An EmailMessage object can have one of the following statuses:
- 0 (New)
- 1 (Read)
- 2 (Replied)
- 3 (Sent)
- 4 (Forwarded)
- 5 (Draft)
If at the moment of a Restore operation the original EmailMessage object is still present in the organization, then the recovery process updates the object if it has status “Draft “ and skips it in other cases. If the object is skipped, the recovery report will state for that object:
“Record with ID <<Object ID>> of object type EmailMessage has field Status with value <<Status value>> therefore it could not be restored.”
If at the moment of a Restore operation the EmailMessage object has already been deleted in the organization, then the restored object is inserted with a new ID.
FeedAttachment with Type Content or InlineImage can’t be restored with the Restore feature. The Salesforce API doesn’t support creation, deletion and editing of inline images, meaning our application can’t restore such elements.
The data of the FeedAttachment object is backed up, and can be downloaded using our Export feature.
The ContentFolder objects have a hierarchical structure and require their parent object to be present in order for the ContentFolder object to be inserted. Unfortunately, it is not always possible to insert the required parent object. As a result, only ContentFolder objects situated inside the standard library can be restored with our Restore feature. The data of these objects is preserved inside backups and can be downloaded using our Export feature.
Using Metadata API
It is not possible to access the Unfiled Public Reports folder or a user's My Personal Reports folder using the metadata API. This limits the type of applications that can be built using the metadata API. The same issue applies for other objects that are in private folders such as Dashboards. Ideally, the metadata API should give access to the same information that is available using the user interface.
We do not support restore of managed object records (which are installed as part of some applications. They are controlled by installed applications on Salesforce. However we can export them.
Formula and Rollup Fields
CloudAlly does not back up formula fields or rollup fields.
Formulas are backed up as part of the Salesforce metadata. When Salesforce data is restored, the metadata and calc fields are calculated based on the restored data. Since exporting calculated objects is a very slow process, CloudAlly decided to not back it up.