Sift Data cleaning for CRM imports

Webinars

Import Zoom webinar attendees into your CRM (fix the CSV first)

The Zoom attendee report is messy in three predictable ways: it throws Format_Invalid the moment you try to upload it, the same person is listed several times because they left and rejoined, and registrants and attendees come out on separate tabs. Clean those three things first and the import just works. Here is how to do it in a few minutes with Sift, free and in your browser, so the report is never uploaded.

Clean your attendee report in Sift →

What goes wrong

What Zoom gives youWhat your CRM needs
Upload rejected: Format_InvalidRe-saved as a clean, single-header CSV
Same email in 3 rejoin rows (1, 17, 5 min)One attendee record
Separate registrant and attendee columnsMapped correctly to your CRM fields

The manual way (honestly)

You can do all of this by hand, and plenty of people do. You open the report, scroll for the repeated email addresses, and delete the rejoin rows one at a time, taking care not to delete the row you meant to keep. Then you pull up the registrant tab alongside the attendee tab and reconcile the two lists, matching people across both to work out who registered, who actually attended, and who did both. It is the same "marry the data" grind people describe when they move a GoToWebinar export into HubSpot: doable, but slow and easy to get wrong on a list of any real size.

Clean it in Sift

  1. Load the attendee report into Sift. It parses the CSV and profiles every column in your browser.
  2. Dedupe by email so the rejoin rows for the same person collapse into a single attendee record, with survivorship keeping the best value in each column.
  3. Tidy the headers and re-export cleanly so the Format_Invalid error clears; Sift writes a single, well-formed header row.
  4. Tag the list by adding a constant column for the webinar name and the source, so every row carries where it came from.
  5. Map to your CRM template (HubSpot, Salesforce, and the rest) and run the readiness check for required fields, types, and allowed values.
  6. Export a clean CSV and import it into your CRM.

GoToWebinar: the same steps apply. A GoToWebinar attendee export has the same shape of problems, repeated rows and a registrant-versus-attendee split, so load it in Sift, dedupe by email, tag the source, map, and export exactly as above.

Privacy note: Sift is a static web app with no backend. Your attendee report is processed entirely on your device, which you can verify by disconnecting your internet after the page loads; the cleaning still works. Nothing is uploaded.

What Sift can't fix

Sift collapses the rejoin rows into one attendee record, but it does not sum the attendance minutes across those rows. If you need total watch time per person, calculate it in a spreadsheet before you load the file into Sift, or after you export, and bring that single number in as its own column. Sift is deterministic and does not aggregate, verify emails, or call your CRM's API; it cleans, dedupes, tags, maps, and exports.

Related guides