Frequently Asked Questions

Q: Is my data kept private? Do you store my donation data?

A: No, we do not store any of your data. Your privacy is our top priority:

  • Zero Data Retention: Files are processed in memory and immediately deleted after conversion
  • No Database: We don't have a database or any storage mechanism
  • Temporary Processing: Uploaded files are stored in temporary system files that are automatically deleted when processing completes
  • No Logging: We don't log file contents or donation data
  • Open Source: You can verify our privacy claims by reviewing the source code on GitHub

Technical Details: The application uses Rust's NamedTempFile which automatically deletes temporary files when they go out of scope. Your uploaded file is processed entirely in memory and the CSV is streamed directly to your browser as a download. No traces remain on the server.

Recommendation: For maximum privacy, you can run this tool locally on your own computer. See the GitHub repository for instructions.

Q: How secure are the download links? Can someone else access my data?

A: Download links are highly secure and expire very quickly. Here's how we protect your data:

  • UUID-Based Security: Download links use UUIDs (Universally Unique Identifiers), which are 128-bit random values. This makes them cryptographically difficult to guess - there are approximately 3.4×10³⁸ possible combinations.
  • Rapid Expiration: Download links automatically expire after 60 seconds (1 minute) for security. After this time, the data is permanently deleted from memory.
  • One-Time Use: Each download link can only be used once. After you download your file, the link immediately becomes invalid and the data is deleted.
  • In-Memory Only: Your processed data is only stored in server memory (RAM), never written to disk, making it impossible to recover after deletion.
  • No Predictable Patterns: Unlike sequential IDs, UUIDs are randomly generated, so even if someone gets one download link, they cannot predict or derive any other links.

In Practice: The combination of UUID randomness, 60-second expiration, and one-time use means that the window for unauthorized access is extremely small and practically impossible to exploit.

Q: Some fields from my spreadsheet don't show up in the output CSV. Why?

A: Only fields that have been explicitly mapped will appear in the output. If you need additional fields to be included in the aggregated data, please contact Henry Post to have the mappings added.

You can see which fields are currently mapped by visiting the Mappings Page.

Q: What file formats are supported?

A: The tool supports Excel files in both .xls (Excel 97-2003) and .xlsx (Excel 2007+) formats.

Q: What sheet names are required in my Excel file?

A: Your Excel file should contain sheets with these exact names:

  • DonorSnap
  • Qgiv
  • ShelterLuv
  • Square
  • Facebook PayPal
  • Benevity.org
  • CARE Volunteer List
  • Check
  • Cash

If a sheet is missing, it will be skipped and the tool will continue processing other sheets.

Q: What happens if the field names in my spreadsheet don't match exactly?

A: Field names must match exactly (including capitalization and spacing) for the mapping to work. If a field name doesn't match, that column will be ignored and empty values will be used in the output.

Check the Mappings Page to see the exact field names expected for each source.

Q: Can I process just one sheet instead of all of them?

A: Currently, the tool processes all available sheets in your Excel file. If you only want data from specific sources, you can create an Excel file containing only those sheets.

Q: The tool gave me an error. What should I do?

A: Common issues include:

  • Missing or misspelled sheet names
  • Incorrect field names in the headers
  • Corrupted or incompatible Excel file format

Make sure your Excel file follows the expected format. If the problem persists, contact Henry Post for assistance.

Q: Why is my data getting cleaned/normalized? (phone numbers and state names)

A: The tool automatically normalizes phone numbers and state names to ensure consistency across all data sources:

  • Phone Numbers: All phone numbers are converted to the format XXX-XXX-XXXX (digits only with hyphens). This removes inconsistent formatting like parentheses, dots, spaces, or country codes.
  • State Names: State names are converted to 2-character uppercase abbreviations (e.g., "California" → "CA", "Illinois" → "IL"). This ensures consistent state codes regardless of how they appear in source data.

Why does this matter? Normalization helps with:

  • Accurate deduplication - records with the same phone number but different formatting will be recognized as duplicates
  • Database consistency - DonorSnap expects standardized formats
  • Data quality - easier to search, filter, and report on standardized data
Q: Why is data not consistent across platforms?

A: Different donation platforms (Qgiv, ShelterLuv, Square, etc.) often have different field names, formats, and requirements. For example:

  • One platform might use "Email" while another uses "Email Address"
  • Phone numbers might be formatted as "(555) 123-4567" or "555.123.4567" or "5551234567"
  • State names might appear as full names ("Illinois") or abbreviations ("IL")

This tool solves these inconsistencies by:

  1. Field Mapping: Translating different field names to the DonorSnap standard
  2. Data Normalization: Standardizing phone numbers and state names
  3. Deduplication: Merging duplicate records across platforms based on email addresses
Q: How does deduplication work? What are the priority rules?

A: The tool automatically deduplicates records using a smart key system:

  • Primary key: Email address (case-insensitive) when present
  • Fallback key: First Name + Last Name (case-insensitive) when email is blank

This means volunteer records without email addresses can still be deduplicated based on their name.

When duplicate records are found, the following priority rules determine which data is kept:

  1. Non-empty values overwrite empty values: If one record has data in a field and another doesn't, the non-empty value is always kept.
  2. Sheet priority order: If both records have different non-empty values for the same field, the value from the sheet with higher priority wins. Priority is determined by this fixed order (highest to lowest):
    1. Loading...

Deduplication Log: After processing, you'll see a detailed log showing exactly which records were merged and why. Use CTRL-F (or CMD-F on Mac) to search for specific email addresses in the log.

Q: Does deduplication matter? Can't I just import all records?

A: Yes, deduplication is important! Without it, you could end up with:

  • Duplicate donor records: The same person appearing multiple times in your database
  • Inflated statistics: Incorrectly counting the same donor as multiple unique donors
  • Fragmented communication: Missing the complete picture of a donor's engagement across platforms
  • Data quality issues: Inconsistent or incomplete information about donors

Benefits of deduplication:

  • Single, consolidated record per donor
  • Complete history across all platforms
  • Accurate donor counts and reporting
  • Better data for decision-making

The deduplication log helps you understand exactly what changes were made, ensuring transparency in the process.