iSyncSFDocumentation

#System Configuration Reference

iSyncSF uses two configuration layers: System Properties (a list custom setting with name/value pairs) for runtime behavior, and Custom Metadata (DataSyncProperties) for package-level defaults. This page documents every configurable property, its purpose, and recommended values.

#System Properties (SystemProperties)

System Properties are stored as name/value pairs in the SystemProperties custom setting. They control runtime behavior such as log levels, batch sizes, processing modes, and feature toggles.

Name Purpose Default Notes
DebugLevel Controls runtime log verbosity. ERROR Valid values: ERROR, DEBUG, FINEST. Set to DEBUG or FINEST for troubleshooting; reset to ERROR afterward to reduce log volume.
SyncMode Sync processing mode. (standard) Set to FAST to enable optimized processing mode for faster data transfer.
DMLBuffer Number of records per DML operation batch. 100 Controls the internal DML chunking. Lower values reduce risk of DML row limit errors but increase transaction count.
SOQLBuffer Number of records per SOQL query chunk. 50 Controls how many records are queried at a time during relationship resolution.
AbortLeadTime Milliseconds of lead time before a job abort triggers. 60000 Provides a safety margin to allow batch jobs to complete gracefully before aborting.
FastProcessingDisable Disables the fast (optimized) processing mode. false Set to true to force standard processing even when FAST mode is configured.
DeleteTempFiles Whether to delete temporary attachment files after processing. true Set to false to retain temporary files for debugging. Remember to re-enable after troubleshooting.
EnableVersion Enables data versioning for rollback support. false When enabled, iSyncSF captures a snapshot of each record's pre-sync values, allowing rollback to restore updated records.
MAXAPICALLLIMIT Maximum daily API call usage percentage before the engine pauses. 90 Prevents iSyncSF from consuming all of the org's daily API call allocation. The engine pauses when usage reaches this threshold.
ENABLESHARINGOBJECT Enables processing of sharing objects (e.g., AccountShare). false Enable only if you need to migrate sharing records between orgs.
UpdateSourceExternalRecordID Enables updating the source org's external record ID field after sync. false When enabled, the source record's external ID field is updated with the target record's ID after successful sync.
ObjectCacheBatchSize Maximum number of objects to process in a single Object Cache batch. 25 Controls metadata cache population batch size.
OVERRIDESHARINGCHECK Enables record sharing override during sync. false Requires the OverrideRecordSharing custom permission to also be assigned. Bypasses sharing rules when querying source records.
ISEXTERNALAPIENABLED Enables the external API endpoint and large file migration routing. false Set to true when using the File Migration Service for files over 5 MB.
CrossTemplateCache Enables cross-template caching of processed record maps. false Improves performance when running multiple templates against the same org by reusing ID mappings.
PreScanSync Enables the pre-scan sync step before the main sync. false Adds an additional preparatory step to the sync pipeline.
UseKahnsAlgorithm Uses iterative (Kahn's) algorithm for hierarchy computation. false Recommended for objects with deep self-referencing hierarchies (10+ levels). Prevents stack overflow.
MAXSUBORDERLEVEL Maximum depth of parent levels to traverse for self-referencing hierarchies. 5 Increase if your hierarchy has more than 5 levels.
SUBORDERCHUNKSIZE Chunk size for sub-order audit record processing. 500 Controls how many hierarchy records are processed per iteration.
ISHIGHVOLUMESUBORDERMODE Enables high-volume sub-order processing mode. false Enable for objects with very large hierarchies (thousands of records).
ManageMetadata Enables the Manage Metadata feature. false Controls visibility of the Manage Metadata page.
PERSONACCOUNTSTDFIELDS Comma-separated list of Person Account standard fields. SALUTATION,FIRSTNAME,LASTNAME Person Account fields that are not prefixed with "Person" or suffixed with "__pc".

#Custom Metadata (DataSyncProperties)

The DataSyncProperties custom metadata type stores package-level defaults that apply globally. The primary record is named GLOBAL. These settings can be overridden per template using the template's FlowName field to point to a different custom metadata record.

Field Purpose
APIVersion Salesforce REST API version used for callouts to the target org (for example, v47.0). Controls which API version iSyncSF uses when communicating with the target.
DefaultObjectsToSkip Comma-separated list of object API names to skip during sync processing (for example, User,RecordType). These objects are excluded from parent-child relationship traversal.
EnforceFieldSecurity When checked, enforces field-level security (FLS) on all data sync queries and DML. Users must have access to all fields involved in the sync.
IncludeSR Comma-separated standard child relationship names to include in sync (for example, OpportunityLineItems,Tasks). Can be overridden per template.
MaxLimitUsage Maximum governor limit usage percentage (0–100) before the engine pauses processing. Default is 80. Keep below 85 to avoid governor limit exceptions.
TextFieldScanForID When enabled, the engine scans text and long-text fields for embedded Salesforce IDs and remaps them to their target org equivalents. Useful when IDs are stored in formula fields or rich text.
DummyObjectName Placeholder object name used during internal processing. Default is User. Generally does not need to be changed.
IDRegex Regular expression pattern used to identify Salesforce IDs inside text fields. Used when TextFieldScanForID is enabled.
DataTransformationCallback Name of a custom Apex class that implements transformation logic. Executed before data sync to apply custom business rules to the data.
SourceCallback Name of an Apex class for source-org callback logic, executed on the source side before data is sent.
TargetCallback Name of an Apex class for target-org callback logic, executed on the destination side after data is received.

#How to Change a System Property

System Properties can be modified in two ways:

Via the Setup Assistant (Recommended)

  1. Open the iSyncSF app in Salesforce.
  2. Navigate to the Setup Assistant tab.
  3. Select the System Properties section.
  4. Find the property you want to change, update the value, and click Save.

Via Salesforce Custom Settings

  1. Go to Salesforce Setup > Custom Settings.
  2. Find SystemProperties and click Manage.
  3. Click the property name to edit it, or click New to create a new property.
  4. Enter the property Name (the key) and the Value, then click Save.

Important: System Properties take effect immediately. Changes to properties like SyncMode or DebugLevel apply to the next sync operation without requiring a restart.

Changing Custom Metadata

Custom Metadata records (DataSyncProperties) are modified through Salesforce Setup > Custom Metadata Types > Data Sync System Property > Manage Records. Edit the GLOBAL record to change the default values. Changes take effect on the next sync operation.


#Performance Tuning

Use these settings to optimize sync performance for your specific environment:

Batch Size Settings

Setting Location Recommendation
MaxBatchSize Object Settings Start at 200 (default). Reduce to 50–100 for objects with many fields, rich text fields, or complex validation rules on the target.
ExternalMaxbatch Sync Template Controls records per callout. Reduce if you see CalloutException: Exceeded max size limit.
InternalMaxBatches Sync Template Controls internal processing iterations. Increase (e.g., to 200) if scans are not completing.
PreviewBatchSize Sync Template Controls how many records are loaded per scan iteration. Reduce to 50 if scans hit governor limits.

Processing Mode

Set the SyncMode system property to FAST for optimized processing. This mode uses a different transfer mechanism that can significantly reduce sync time for large datasets. Test with a small dataset first to verify compatibility with your target org configuration.

Governor Limit Threshold

The MaxLimitUsage setting (default 80%) controls how aggressively iSyncSF uses governor limits. A lower value (60–70%) is safer but slower. A higher value (85–90%) is faster but increases the risk of limit exceptions. The recommended range is 75–85%.

Hierarchy Optimization

For objects with deep self-referencing hierarchies (Account parent-child trees, for example):


#Environment-Specific Configuration

Different environments (production, sandbox, developer) may require different settings:

Production Org (Source)

Sandbox (Target)

Per-Template Overrides

Many global settings can be overridden at the template level. The template's FlowName field specifies which DataSyncProperties custom metadata record to use. Create a separate custom metadata record with template-specific values (for example, a different API version or different objects to skip) and set the template's FlowName to that record's developer name.