CRM Migration Checker

Free local evaluation · version 1.3.4

Your exports. Your computer.

A browser workspace powered by a small local Python service. No account, payment or expiry. No extension installation is required.

Prerequisites: Python 3.10 or newer, a modern browser and permission to run local software. Python is not bundled. Your operating system may request permission to run downloaded scripts. Follow your organisation’s software policy.

1. Extract the complete ZIP

Keep all files inside CRM_Migration_Checker_Evaluation. Do not run files from within the ZIP preview.

2. Check Python and start

macOS: open Terminal in the extracted folder and run bash Start_Mac.command, or open Start_Mac.command if your system permits it. The launcher selects the first Python 3.10+ named python3 on PATH, then checks existing Homebrew and official framework locations if needed. It does not install Python.

Linux: run python3 --version to check for Python 3.10+, then python3 launch.py from the extracted folder.

Windows: open a terminal in the folder, run py -3 --version, then py -3 launch.py. Alternatively, run Start_Windows.cmd.

If no supported Python is found, install a current supported Python from the official Python website or ask your IT administrator. On macOS, the additional locations checked are /opt/homebrew/bin/python3, /usr/local/bin/python3 and /Library/Frameworks/Python.framework/Versions/Current/bin/python3. For an installation elsewhere, use that interpreter’s full path to run launch.py.

3. Open the local workspace

The launcher verifies packaged file hashes, selects a free local port and opens your browser. If it does not open automatically, copy the printed http://127.0.0.1:…/workspace/ URL. Keep the terminal open while working.

4. Run the fictional example

  1. Select “Load fictional exports”.
  2. Review the retained source ID, selected fields and comparison rules.
  3. Confirm the rules and run the comparison.
  4. Review findings and coverage. Download HTML, CSV and JSON evidence.
  5. Change a rule or add an explicitly accepted value change, then rerun. Previous runs remain available in this tab, up to three runs.

For your own files, choose only exports you are authorised to process. Both files must be comma-separated UTF-8 CSV. Start with a small subset and a stable retained record ID.

5. Save and stop

Save required downloads before clearing or closing the tab. Press Control-C in the launcher terminal to stop; active requests finish cleanup before exit. Closing the browser alone does not stop the Python service.

Limits and privacy

Per file: 5,000 data rows, 10 MiB, 128 columns, 250,000 data cells and 10,000 characters per cell. One to five selected fields. Up to 10,000 findings. Value maps: 1 MiB total and up to 1,000 entries total. Evidence: 16 MiB; individual downloads and the combined browser response: 32 MiB. All limits apply together; oversized work fails rather than truncate.

Processing uses local memory and temporary plaintext files. Temporary working copies are removed after successful or failed requests complete normally. Forced process termination or a device crash can leave temporary files. Original inputs and saved downloads are not erased. The app does not encrypt them: use your own storage, access and retention controls. The workspace makes no external network requests and uses no telemetry or external assets.

The report covers selected rules in the supplied snapshots. Zero findings is not certification of a complete migration. Attachments, effective permissions, live workflows, export completeness and business meaning need separate checks.

Troubleshooting and integrity

Run bash Start_Mac.command --check on macOS, python3 launch.py --check on Linux, or py -3 launch.py --check on Windows to check file integrity. The SHA-256 manifest detects changes or corruption; it is not a digital signature. Re-extract a fresh package if files are missing or changed.

Options pass through the Mac launcher unchanged, for example bash Start_Mac.command --no-browser --port 8773. Error prompts wait for Return only in an interactive terminal. --no-browser prints the local URL without opening a tab. --port 8773 selects a specific local port. If it is unavailable, omit that option. No administrator rights or third-party Python packages are required by this app.