.
Limit Batch to 10K records
Export in multiple batches
Use PK Chunking
Export Bulk API in parallel mode
They support up to a max of 100 of columns
They avoid resource intensive joins
Their tables are kept in sync with their source tables when the source tables are modified
They do not include soft-deleted records
They can contain fields from other objects
Do not integrate legacy CRM to Salesforce, but integrate salesforce to SAP
Integrate legacy CRM to salesforce and keep data in synch till new functionality is in place
Suggest MDM solution and link MDM to salesforce and SAP
Integrate SAP with Salesforce, SAP to legacy CRM but not legacy CRM to Salesforce
Prefer picklist form fields over free text fields, where possible
Use cookies to track when visitors submit multiple forms
Ensure the website visitor is browsing using an HTTPS connection
Do client-side validation of phone number and email field formats
Number of queries running at a time
Number of joins used in report query
Number of records returned by report query
Number of characters in report query
Improve reporting performance by creating a dashboard that is scheduled to run the reports only once per day
Improve reporting performance by replacing the existing reports in Sales Cloud with new reports based on Analytics Cloud
Improve reporting performance by creating an Apex trigger for the Report object that will pre-fetch data before the report is run
Improve reporting performance by creating a custom Visualforce report that is using a cache of the records in the report
Applications with highly customized code or large volumes should be performance tested
All Force.com applications must be performance tested in a sandbox as well as production
A performance test plan must be created and submitted to Salesforce customer support
Application performance benchmarked in a sandbox can also be expected in production
Specify the legacy CRM as the system of record during transition until it is removed from operation and fully replaced by Salesforce
Work with stakeholders to establish a Master Data Management plan for the system of record for specific objects, records, and fields
Do not connect Salesforce and the legacy CRM to each other during this transition period, but do allow both to interact with the ERP
Replicate ongoing changes in the legacy CRM to Salesforce to facilitate a smooth transition when the legacy CRM is eventually retired
Extract the Salesforce data into Excel and manually compare this against the trusted source
Load the Trusted Source data into Salesforce and run an Apex Batch job to find difference
Leave the data in Salesforce alone and assume that it will auto-correct itself over time
Use an AppExchange package for Data Quality to match Salesforce data against the Trusted source
Leverage Data.com Clean to clean up Account address fields with the D&B database
Contact each business on the list and ask them to review and update their address information
Integrate with a third-party database or services for address validation and enrichment
Build a team of employees that validate Accounts by searching the web and making phone calls
Data integrity
Data distribution
Data usability
Data modeling
Enable Account de-duplication by creating matching rules in Salesforce, which will mass merge duplicate Accounts
Use a service to standardize Account addresses, then use a 3rd -party tool to merge Accounts based on rules
Run a report, find Accounts whose name starts with the same five characters, then merge those Accounts
Make the Account Owner clean their Accounts' addresses, then merge Accounts with the same address
Which profiles and users currently have access to these custom object records?
If reporting is necessary, can the information be aggregated into fewer, summary records?
Will the data being archived need to be reported on or accessed in any way in the future?
How many fields are defined on the custom objects that need to be archived?
Are there any regulatory restrictions that will influence the archiving and purging plans?
Lead conversion rate report
Case SLA performance report
Sales KPI Dashboard
Opportunity analytic snapshot
Implement Salesforce Matching and Duplicate Rules
Create a Workflow Rule to check for duplicate records
Purchase an AppExchange Lead de-duplication application
Run the Salesforce Lead Mass-de-duplication tool
Use declarative approach by installing and configuring Data.com Prospector to monitor Account data quality
Implement an Apex Trigger on Account that queries a third-party data quality API to monitor Account data quality
Use a declarative approach by installing and configuring Data.com Clean to monitor Account data quality
Implement Batch Apex that calls out a third-party data quality API in order to monitor Account data quality
Create an account plan object with a lookup relationship to Account with validation rules to enforce the Account association
Create a custom account plan object as detail with Account as mater in a master-detail relationship
Create an account plan object with a lookup relations to Account without any validation rules to enforce the Account association
Create a custom account plan object as detail with Account as master with additional sharing rules to allow access
Create a custom master-detail field on the standard Product to reference the child record in the hierarchy
Create a custom lookup filed on the standard Product to reference the child record in the hierarchy
Create a custom lookup field on the standard Product to reference the parent record in the hierarchy
Create an Apex trigger to synchronize the Product Family standard picklist field on the Product object
Update the master-detail relationships to lookup relationships in order to allow the discount amount to roll up
Roll-up discount request amount at the line-item-level and line-item-level summary discount at the opportunity level
Use roll-up for the line-item-level summary and a trigger for the opportunity amount summary, as only one level roll-up is allowed
Remove the master-detail relationships and rely completely on workflow/triggers to summarize the discount amount
The number of systems that are integrating with each other
Whether or not Salesforce replaced a legacy CRM
Whether the system of record changes for different tables
Whether the systems are could-based or on-premise
Utilize a 3rd-party solution from the AppExchange for data uploads
Use Apex to validate the format of phone numbers and postal codes
Utilize an app from the AppExchange to create data-quality dashboards
Allow users to important their data using the Salesforce Import tools
Leverage Batch Apex to update order ID on related order lines after import
Leverage an External ID from source system orders to import related order lines
Query only indexed ID field values on the imported order to import related order lines
Leverage a sequence of numbers on the imported orders to import related order lines
Use Salesforce Object Query Language
Use the Salesforce Metadata API
Use a data definition language
Use an entity relationship diagram
Create a new Lightning Component that displays last humidity and temperature data for a specific container and can also display historical trends obtaining relevant data from UC’s existing data warehouse
Create new custom fields for temperature and humidity in the existing Container custom object, as well as an external ID field that is unique for each container. These custom fields are updated when a new measure is received
Create a new Container Reading custom object, which is created when a new measure is received for a specific container. The Container Reading custom object has a master-detail relationship to the container object
Create a new Container Reading custom object with a master-detail relationship to Container which is created when a new measure is received for a specific container. Implement an archiving process that runs every hour
Use Salesforce Bulk API in parallel mode
Use Salesforce Soap API in parallel mode
Use Salesforce Bulk API in serial mode
Use Salesforce Soap API in serial mode
Refresh the full copy sandbox and re-run the data migration test
Truncate all 5 objects quickly and re-run the data migration test
Hard delete all 5 objects’ data and re-run the data migration test
Truncate all 5 objects and hard delete before running the migration test
Use Data.com Clean
Use an Enterprise Service Bus
Use a data wharehouse
Use Duplicate Management
Use the Account object with Person Accounts and a new B2C page layout
Use the Account object with a newly created Record Type for B2C customers
Create a new picklist value for B2C customers on the Account Type field
Use 50 umbrella Accounts for each region, with customers as associated Contacts
Duplicate Contact records exist in the system
Duplicate Activity records on a Contact
Missing phone number on the Contact record
Customer phone number has changed on the Contact record
Skinny tables provide a view across multiple objects for easy access to combined data
Skinny tables can be used to create custom indexes on multi-select picklist fields
Skinny tables can contain frequently used fields and thereby help avoid joins
Skinny tables are kept in sync with changes to data in the source tables
Skinny tables do not include records that are available in the recycle bin
Run one report per key field, grouped by that field, to understand its data variability
Run a report that shows the percentage of blanks for the important fields
Run a report which shows the last time the key fields were updated
Run a process that can fill in default values for blank fields
Use an indexed data field with bounded data filters
Use Formula fields to surface information I related entities on the report
Use unbounded date ranges to filter the report
Use triggers to populate denormalized related fields on the Account
Keep searches specific and avoid wildcards where possible
Use searches against single Objects for greater speed and accuracy
Use Find in “ALL FIELDS” for faster searches
Use SOSL option to ignore custom indexes as search fields are pre-indexed
Ensure the account product vendor includes Wave Analytics in their offering
Ensure the account product vendor provides a sound data archiving strategy
Ensure invoice line items simply reference existing Opportunity line items
Ensure the accounting product runs 100% natively on the Salesforce platform
Using trailing % wildcards
Using a custom index on a deterministic formula field
Using leading % wildcards
Using NOT and != operators
Performing large loads and deletions
Implement a new Categories custom object and create a lookup field from Account to Category
Implement a new global picklist custom field with Gold, Silver, and Bronze values and enable it in Account
Implement a new Categories custom object and a master-detail relationship from Account to Category
Implement a new picklist custom field in the Account object with Gold, Silver, and Bronze values
Define a data taxonomy for product data and apply the taxonomy to the product data in the data warehouse
Build Apex Triggers in Salesforce that ensure products have the correct names and labels after data is loaded into salesforce
Change integration to let product master systems update product data directly in Salesforce via the Salesforce API
Add custom fields to the Product standard object in Salesforce to store data from the different source systems
Create an external custom object to track shipment requests and a child external object to track shipment items. External objects are stored off-platform in Heroku’s Postgres database
Create a custom object to track shipment requests with five lookup custom fields for each item being shipped Implement an archiving process that moves data off-platform after three years
Create a custom object to track shipment requests and a child custom object to track shipment items. Implement an archiving process that moves data off-platform after three years
Create an external custom object to track shipment requests with five lookup custom fields for each item being shipped. External objects are stored off-platform in Heroku’s Postgres database
Implement an archiving process for shipment records created after three years
Set Customer_Reference_c as an External ID (unique)
Set Customer_Reference_c as an External ID (non-unique)
Implement an archiving process for shipment records created after five years
Modify the export job header to specify Sforce-Enable-PKChunking
Modify the export query that includes standard index fields(s)
Modify the export query with LIMIT clause with Batch size 10,000
Modify the export job header to specify Export-in-Parallel
Add custom indexes to all fields on Application without a standard index
Add custom indexes to the Date fields used for filtering the report
Ask support to create a skinny table for Application with the necessary reporting fields
Run multiple reports to get different pieces of the data and combine them
Use scheduled batch Apex to copy aggregate information into a custom object and delete the original records
Configure the Salesforce Archiving feature to archive older records and remove them from the data storage limits
Use Data Loader to extract data, aggregate it, and write it back to a custom object, then delete the original records
Combine Analytics Snapshots with a purging plan by reporting on the snapshot data and deleting the original records
Import Order records and Account records separately and populate AccountID in orders using batch Apex
Import Account records first followed by order records after sorting order by OrderID
Change the relationship to Lookup and update the relationship to master-detail after import
Import Account records first followed by order records after sorting orders by AccountID
UC can leverage a “tier”-based approach to classify the record storage need
UC can leverage recycle bin capability, which guarantees record storage for 15 days after deletion
UC can store long-term lead records in custom storage objects to avoid counting against storage limits
UC can leverage the Salesforce Data Backup and Recovery feature for data archival needs
A user can merge a person account with a business account or vice versa
The newly merged account retains all the team members from merged accounts
Items related to original accounts become related to the newly merged account
The original accounts are permanently deleted, skipping the Recycle Bin
Use a custom object and trigger to capture changes
Use a field audit trail to capture field changes
Use a third-party AppExchange app to capture changes
Use Event Monitoring to capture these changes
Let a “system user” own all the Account records and make this user part of the highest-level role in the Role Hierarchy
Let a “system user” own the Account records and assign this user to the lowest-level role in the Role Hierarchy
Let the VP of the Sales department, who will report directly to the senior VP, own all the Account records
Let a “system user” own all the Account records without assigning any role to this user in Role Hierarchy
Implement data archiving for old Shipment records
Contact Salesforce to enable Defer Sharing Rules
Configure shipment OWD to Public Read/Write
Contact Salesforce to create Skinny tables on Shipment
Export the data to an enterprise data warehouse and use BI tools for data quality
Use third-party AppExchange tools to monitor and measure data quality
Generate reports to view the quality of sample data
Use custom objects and fields to calculate data quality
Create a Dashboard using Analytics Cloud that will allow the user to create ad-hoc lenses and drill down
Create a Dashboard in an external reporting tool, export data to the tool, and embed the dashboard in Salesforce using the Canval toolkit
Create a Dashboard in an external reporting tool, export data to the tool, and add link to the dashboard in Salesforce
Create a standard Salesforce Dashboard and connect it to reports with the appropriate filters
Create a before insert and update trigger on account, contact, and lead, and send an error if a duplicate is found using a custom matching criteria
Create a duplicate rule for account, lead, and contact, use standard matching rules for these objects, and set the action to report and alert for both creates and edits
Create a duplicate rule for account, lead, and contact, use standard matching rules for these objects, and set the action to block for both creates and edits
Create an after insert and update trigger on the account, contact and lead, and send an error if a duplicate is found using a custom matching criteria
Build a daily extract job and extract data to on-premise systems for long-term backup and archival purposes
Schedule a Weekly Extract Service for key objects and extract data in XL sheets to on-premise systems
Store all data in shadow custom objects on any updates and deletes, and extract them as needed
Evaluate a third-party AppExchange app, such as OwnBackup or Spanning, etc., for backup and archival purposes
Update the Opportunity page layout to mark these fields as required
Use a validation rule for each field that takes the Stage into consideration
Write an Apex trigger that checks each field when records are saved
Update these Opportunity field definitions in Setup to be required
Remove the master-detail relationship and keep the objects separate
Mandate the selection of a custom product for each discount request
Create a placeholder product record for the generic discount request
Change the master-detail relationship to a lookup relationship
Use Field Audit History to capture operational data and extract it to on-premise systems
Use a custom built extract job to extract operational data to on-premise systems
Use Event Monitoring to extract event data to on-premise systems
Use Weekly Export to extract transactional data to on-premise systems
The MDM strategy defines Salesforce as the system of record, so Salesforce Opportunity values prevail in all conflicts
The Opportunity engagement system should become the system of record for Opportunity records
Stakeholders should be brought together to discuss the appropriate data strategy moving forward
A policy should be adopted so that the system whose record was most recently updated should prevail in conflicts
Create a required Lookup relationship to each of the three parent records
Create two Master -Detail and one Lookup relationship to the parent records
Create a Master -Detail relationship to each of the three parent records
Use a VLOOKUP formula field to associate the Shipment to each parent record
After the data is migrated, perform an update on all records to set the original date in a standard CreatedDate field
Create a new field on Contact object to capture the Created Date. Hide the standard CreatedDate field using Field -Level Security
Enable "Set Audit Fields" and assign the permission to the user loading the data for the duration of the migration
Write an Apex trigger on the Contact object, before insert event to set the original value in a standard CreatedDate field
Implement a third -party validation process with translate functionality
Create a trigger on Contact and add an error to the record with a custom label
Create a workflow field update to set the standard ErrorMessage field
Create a validation rule and translate the error message with translation workbench
Custom metadata records are not copied from production to sandbox
Custom metadata types are available for reporting
Custom metadata records are deployable using packages
Custom metadata records are editable in Apex
Add additional options to the standard ContentType picklist field for the Attachment object
Add a ContentType picklist field to the Attachment layout and create additional picklist options
Create a custom picklist field for the Type on the standard Attachment object with the values
Create a custom object related to the Invoice object with a picklist field for the Type
Limitations on master -detail relationships
Org data storage limitations
Bulk API limitations on picklist fields
Standard list view in-line editing
Use SOQL queries without WHERE conditions
Work with Salesforce Support to enable Skinny Tables
Reduce the number of triggers on Order _c object
Make the queries more selective using indexed fields
Create a picklist field, values sorted alphabetically
Create a Master -Detail to custom object ShippingStatus c
Create a Lookup to custom object ShippingStatus c
Create a text field and make it an external ID
Create a workflow to evaluate the rule when a record is created and use field update actions to store previous values for these ten fields in ten new fields
Write an Apex trigger on Contact after insert event and after update events and store the old values in another custom object
LII Turn on field Contact object history tracking for these ten fields, than create reports on contact history
Create a Contact report including these ten fields and Salesforce Id, then schedule the report to run once a day and send email to the admin
Create a "before delete" trigger to check if the current user is not the owner
Set the Sharing settings as Public Read Only for the Contact object
Set the profile of the users to remove delete permission from the Contact object
Create a validation rule on the Contact object to check if the current user is not the owner
Use Streaming API to get the current status from the ERP and display on the Opportunity page
Create an external object Invoice _x with a Lookup relationship with Opportunity
Create a custom object Invoice _c with a master -detail relationship with Opportunity
Create a custom object Invoice _c with a Lookup relationship with Opportunity
Create a custom object to store a copy of the record when changed
Create a custom object to store the previous and new field values
Use Analytic Snapshots to store a copy of the record when changed
Select the 100 fields in the Opportunity Set History Tracking page
Use the private sharing model
Use Salesforce duplicate management
Use validation rules on new record create and edit
Use workflow to delete duplicate records
Use a workflow to check and prevent duplicates
Clean data before importing to Salesforce
Use Salesforce matching and duplicate rules
Import the data concurrently
Edit each of the page layouts to require that each address field contains data
Use a Validation Rule using CONTAINS to ensure address fields contain data
Use a Validation Rule using REGEX to ensure proper Postal Code formatting
Write an Apex Trigger to require all of the fields on the page layouts
Make use of a third-party tool to help merge duplicate Contacts across Accounts
Use Data.com to standardize Contact address information to help identify duplicates
Use Workflow rules to standardize Contact information to identify and prevent duplicates
Make use of the Merge Contacts feature of Salesforce to merge duplicates for an Account
Schedule a weekly dashboard displaying records that are missing information to be sent to managers for review
Use Workflow, Validation Rules, and Force.com code (Apex) to enforce critical business processes
Schedule reports that will automatically catch duplicates and merge or delete the records every week
Store all data in an external system and set up integration to Salesforce for view-only access
Set up a Validation Rule to prevent blank values
Create a Workflow to default a value into this field
Mark the field required in setup at the field level
Blame the customer’s external system for bad data
Implement a Master Data Management system to determine system of record
Implement a workflow rule that sends Opportunity data through Outbound Messaging
Have the ERP poll Salesforce nightly and bring in the desired Opportunities
Implement an hourly integration to send Salesforce Opportunities to the ERP system
Have Salesforce poll the OMS nightly and bring in the desired Accounts and Contacts
Implement an integration tool to send OMS Accounts and Contacts to Salesforce
Implement a Master Data Management strategy to reconcile Leads, Accounts, and Contacts
Use the Streaming API to send Account and Contact data from Salesforce to the OMS
Any field that is an input field in either external system will be overwritten by the last record integrated and can never have a system of record
Review the database schema for each external system and any fields with different names should always be separate fields in Salesforce
Master Data Management systems determine system of record and the architect doesn't have to think about what data is controlled by what system
Any Fields with the same purpose between the two systems should be reviewed by the key stakeholders to see how they will be used in Salesforce
Build synchronization reports and dashboards
Integrate Salesforce with the ERP environment
Establish an MDM strategy to outline a single source of truth
Use workbench to update files within systems
Account and opportunity data originates in Salesforce, and therefore Salesforce is the system of record
Whatever system updates the attribute or object should be the system of record for that field or object
Whatever integration data flow runs last will, by default, determine which system is the system of record
Data flows should be reviewed with the business users to determine the system of record per object or field
Record Type
Document
Custom Field
Security Settings
User stories
Data model
Non-functional requirements
Integration specification
Review the setup audit trail for configuration changes
Put the business purpose in the Description of each field
Maintain a data dictionary with the justification for each field
Use the Force.com IDE to save the metadata files in source control
Remove "customize application" permissions from everyone else
Export the metadata and search it for the fields in question
Create a field history report for the fields in question
Export the setup audit trail and find the fields in question
Use the Force.com Workbench to export the data
Schedule a weekly export file from the Salesforce UI
Schedule jobs to export and delete using an ETL tool
Schedule jobs to export and delete using the Data Loader
Schedulable Batch Apex
Third-party Business Intelligence system
Third-party Integration Tool (ETL)
Apex Triggers
Reduce data storage by purging old data
Implement an AppExchange package
Review projected data storage needs
Schedule a weekly export file
Annually delete orders and order line items and ensure the customer has order information in another system
Annually aggregate order amount data to store in a custom object then delete those orders and order line items
Annually export and delete orders and order line items and store them in a zip file in case the data is needed later
Annually export and delete order line items and store them in a zip file in case they data is needed later
Data storage limits
API Request limits
Webservice callout limits
Workflow rule limits
Create a Permission Set to hide old data from Sales Reps
Use Batch Apex to archive old data on a rolling nightly basis
Archive and purge old data from Salesforce on a monthly basis
Set data access to Private to hide old data from Sales Reps
Analytics/BI Owners
Data Domain Stewards
Salesforce Administrators
Operational Data Users
Engage with IT program managers to assess current velocity of projects in the pipeline
Engage with database administrators to assess current database performance metrics
Engage with executive sponsorship to assess enterprise data strategy and goals
Engage with business units and IT to assess current operational systems and data models
Review the metadata xml files for redundant fields to consolidate
Determine if any integration points create records in Salesforce
Run key reports to determine what fields should be required
Export the setup audit trail to review what fields are being used
Review the sharing model to determine impact on duplicate records
Errors with duplicate external Id values within the same CSV file
Errors with records being updated and inserted in the same CSV file
Errors when a duplicate Contact name is found cause upsert to fail
Errors with using the wrong external Id will cause the load to fail
Enable field history tracking on the Case object
Create a report on Case analytic snapshots
Install AppExchange packages for available reports
Create Contact and Opportunity Reports and Dashboards
Salesforce allows up to four objects in a single report type
Salesforce does not support Orders or Order Line Items
A report cannot contain data from Accounts and Contacts
Custom report types cannot contain Opportunity data
Create a report in an external system combining Salesforce Account data and Invoice data from the ERP
Create a report combining data from the Account standard object and the Invoices external object
Create a Visualforce page combining Salesforce Account data and Invoice external object data
Create a separate Salesforce report for Accounts and Invoices and combine them in a dashboard
Use a Lead standard report and filter on the IsDeleted standard field
Use a Converted Lead report to display data on Leads that have been deleted
Query Salesforce with the queryAll API method or using the ALL ROWS SOQL keywords
Send data to a Data Warehouse and mark Leads as deleted in that system
AppExchange Apps
Wave Analytics
Weekly Snapshots
Setup Audit Trails
Use the SOAP API to export data
Utilize the Bulk API to export the data
Use GZIP compression to export the data
Schedule a Batch Apex job to export the data
Create a Custom Object Individual Consumer c to load all individual consumers
Load all individual consumers as Account records and avoid using the Contact object
Load one Account record and one Contact record for each individual consumer
Create one Account and load individual consumers as Contacts linked to that one Account
Load all data using external IDs to link to parent records
Use workflow to calculate summary values instead of Roll-Up
Use triggers to calculate summary values instead of Roll-Up
Load all data after deferring sharing calculations
Create the users, upload all data, and then deploy the sharing rules
Contact Salesforce to activate indexing before uploading the data
First, load all account records, and then load all user records
Defer sharing calculations until the data has finished uploading
A set<sobjectFieldset> to determine which fields to send in an HTTP callout
An Outbound Message to determine which fields to send to the OMS
A Field set that determines which fields to send in an HTTP callout
Enable the field -level security permissions for the fields to send
Review the time zones of the User loading the data
Remove custom indexes on the data being loaded
Determine if the legacy system is still in use
Defer sharing calculations of the Salesforce Org
Deactivate approval processes and workflow rules
Load Contact records together using the Streaming API via the Upsert operation
Delete all existing records, and then load all records together via the Insert operation
Load all records via the Upsert operation to determine new records vs. existing records
Load new records via the Insert operation and existing records via the Update operation
Create indexes on Opportunity object text fields
Group batches by the AccountId field
Sort batches by Name field values
Order batches by Auto-number field
Tooling API
PK Chunking
Metadata API
Streaming API
Use the Salesforce Org Migration Tool from the Setup Data Management menu
Pre-process the data, then use Data Loader with SOAP API to upsert with zip compression enabled
Load Case data directly leveraging Salesforce-to-Salesforce functionality
Break the load into multiple sets of data to be loaded using Bulk API parallel processes
Index key fields used in report criteria
Enable Divisions for large data objects
Create one skinny table per report
Share each report with fewer users
Change the integration users' profile to have View All Data
Ensure the query doesn't contain NULL in any filter criteria
Create custom indexes on the fields used in the filter criteria
Create a formula field instead of having multiple filter criteria
Pre go-live automated page-load testing against the Salesforce Full sandbox
Post go-live automated page-load testing against the Salesforce Production org
Pre go-live unit testing in the Salesforce Full sandbox
Stress testing against the web services hosted by the integration middleware