zzTakeoff Ediphi CSV Converter

Drop a zzTakeoff JSON + your current Ediphi CSV, download a ready-to-import CSV. Handles updates, layers, use groups, assemblies, and renames.

7-min training video — watch this first
Quick walkthrough: exporting from zzTakeoff & Ediphi, then importing back.
YouTube
📌Reminder — Set Up Use Groups in Ediphi First

This tool forwards whatever Use Group tags are on your zzTakeoff items straight into the Ediphi import. Just make sure those same Use Group Labels already exist in your Ediphi estimate before you import.

Names have to match exactly — case, spaces, and punctuation all count. If a Use Group Label is missing in Ediphi, that line will still import but with no Use Group allocation, and you'd have to fix it by hand.

Tip: If your browser flags the source download or names it .crdownload, just rename the file extension to .html and open it — the file is complete.
How to use this tool
  1. Set up your Use Groups in Ediphi first. Whatever Use Groups you're using in zzTakeoff (like TestA, Retail, Parking, etc.) must already exist in your Ediphi estimate under the same exact name.
  2. Export your takeoff from zzTakeoff as a JSON file.
    This one's a little hidden. From your zzTakeoff project page:
    1. Press the space bar to open the Quick Search dialog.
    2. Click the Tools tab at the top-right.
    3. Scroll down and click Export Project Data to File.
    You'll get a .json file — that's what you drop above.
    Note: Quantities are pulled from your takeoff's measurement 1 value (typically wall area, area, or linear FT depending on the takeoff type).
    zzTakeoff Quick Search Tools panel showing Export Project Data to File highlighted
  3. Export your current estimate from Ediphi as a CSV file (Import Builder export). This tells us what's already in your estimate so we don't create duplicates.
  4. Drop both files into the two boxes above. The tool runs automatically.
  5. Optional: pick your layers. If your zzTakeoff project has layers (e.g. one per estimator or per scope), a Layers card appears with a checkbox for each. Uncheck the ones you don't want to import.
  6. Assemblies come through automatically. If a takeoff has child items (like a Slab-on-Grade with concrete, rebar, form, vapor barrier, etc.), the parent row is emitted first, then each child follows with the assembly column pointing back to the parent's name. Ediphi needs one child to drive the parent's quantity — the tool picks the first child whose UOM matches the parent's UOM (e.g. an SF parent gets its qty driven by the first SF child). Only that one child gets selected_traditional_assembly = true.
  7. Check the preview. Blue UPDATE = qty changed. Green ADD = new line. Gray UNCHANGED = nothing moved. Purple RENAMED = same product ID, different name (will get renamed in Ediphi).
  8. Click Download CSV and import it back into Ediphi. Existing lines get updated in place; new ones get added.
Good to know: Quantities come from measurement 1 in your zzTakeoff data (usually the wall area or main area/linear value). Even if you made multiple separate measurements for the same takeoff item, they're already summed together. Every takeoff ID gets stamped into the notes field so you always know where each line came from. If a takeoff's name has changed but its Ediphi product ID is the same and unique, the tool will match on product and rename the line for you.