First — in most cases there is no migration
If your customer list already lives in a Google Sheet, you can connect that sheet as it is, without rebuilding it. The column names, their order and the tab name can all stay exactly as they are.
On connecting, PixWork shows a "Column mapping (auto-detected)" list pairing your own headers with its fields; you check it and press "Connect with this mapping". Anything it could not place appears under "Columns not synced (kept as-is)" and stays untouched.
The mapping is saved in a _pixwork_map tab inside the same spreadsheet and can be edited directly in Google Sheets — so adding a column to the sync later is a matter of filling in a row there.
Connecting adds three things: the _pixwork_map tab, the Companies tab, and a row-ID column. Your existing tabs, columns, order and values are not modified. "Sharing and managing in Google Sheets" covers this in detail.
Three routes in
Which one fits depends on the shape your data is in right now.
- Option 1: connect the Google Sheet you already use — leave the columns alone and just confirm the mapping. Formulas, formatting, filters and your other tabs all stay. This covers most cases
- Option 2: start from an Excel or CSV file — put it in Google Drive, re-save it as a Google Sheet, then connect that. Google’s picker offers Google Sheets only; an Excel or CSV file cannot be selected
- Option 3: rebuild in PixWork’s layout — create a new sheet from the app and paste the data across. Choose this when you want to reorganise the list itself. Formulas, formatting and filters from the old sheet do not come with it
When in doubt, Option 1. The reason to pick Option 3 is that you want a different list, not that PixWork needs one.
Before you start (whichever route)
- Make a copy of the original sheet (File → Make a copy). If the sheet belongs to someone else, it matters that the copy lands in the owner’s own Drive, made by them — not by you
- Note which tab holds the contact data, and which row its headers are on
- Check date formats. Convert anything ambiguous like
7/8/2026to a year-first format - Check whether phone numbers have lost a leading zero. If they have, confirm the correct value against the original card or list
- Check for duplicate rows
Confirm the copy exists before you change anything.
Option 1 — connect the sheet you already use
- In the app, go to Settings → Team Sync and pick your spreadsheet through "Select from Google Drive"
- In the "Column mapping (auto-detected)" list, check how your headers pair up with PixWork’s fields. The name column is the one that must be mapped
- Look at "Columns not synced (kept as-is)" and see whether anything you wanted synced ended up there
- Press "Connect with this mapping". The
_pixwork_maptab, theCompaniestab and a row-ID column are added - To sync a column that was not detected, open the
_pixwork_maptab and put your real column header in that field’scolumncell - Run a sync from the app and confirm no error appears
The contact tab’s name is stored in _pixwork_map as data_sheet, and the row its headers sit on as header_row. A list with a few lines of preamble above the table works fine as long as header_row names the real row.
Option 2 — start from an Excel or CSV file
- Upload the Excel (.xlsx) or CSV file to Google Drive
- Open it in Google Drive and re-save it as a Google Sheet. The original file stays where it is
- Check that the conversion did not drop a leading zero from a phone number, and that dates came out in the form you expect
- From here it is Option 1: pick the converted spreadsheet through Settings → Team Sync → "Select from Google Drive"
Google’s picker lists Google Sheets and nothing else. An Excel or CSV file will not appear there even though it is in your Drive; convert it to a Google Sheet first.
Option 3 — rebuild in PixWork’s layout
- In the app, go to Settings → Team Sync and create a new spreadsheet. The Contacts, Companies and
_pixwork_maptabs and their headers are set up automatically - Copy the source data into the matching columns. Where the order differs, move them one column at a time, checking the destination as you go
- Put one of the six values from the schema page (
Uncontacted, etc.) in the Status column. Leaving it blank is fine too - For Created Date, use the source data’s creation date if it has one; otherwise leave it blank
- Run a sync from the app and confirm no error appears
- Check that a few records came through into the app correctly
Checking that it connected
- A sync runs from the app with no error
- The sheet’s data appears in the app’s contact list
- Editing one record in the app and syncing updates the same row in the sheet
- If you mapped Status, changing it in the sheet and syncing pulls the change into the app
- If the team shares the sheet, other members can select the same sheet
Common problems
- A file that is in Drive does not show up in the picker — Google’s picker lists Google Sheets only. Convert an Excel or CSV file to a Google Sheet first (Option 2)
- A view-only sheet cannot be selected — syncing writes, so a sheet you cannot edit cannot be saved as a sync target. Ask the sheet’s owner for "Editor" access
- It connected, but some columns are not syncing — a column you did not map is neither read nor written. Open the
_pixwork_maptab and put your real column header in that field’scolumncell - Sync throws an error — the Companies column order is a frequent cause. Check the names and the order against the schema table. Column F in particular is
Conversation Starters, notDeep Insights - The Companies sheet is missing — Companies is required for sync, but a missing sheet and an incompatible one are handled differently. If the sheet does not exist, or its header row is empty, PixWork asks first and creates the sheet and its header once you agree. If you decline, sync cannot continue with that sheet. If a header row is already filled in and does not match PixWork’s layout, it is not overwritten — sync stops with an error
- Older data doesn’t sync — in PixWork 1.1.2, contacts updated within the last 90 days are synced. Anything older than that is not
- The same person appears twice — when Email is empty, identity falls back to name + company name. Inconsistent company-name spellings get treated as different people, so normalize them before you connect
- A leading zero disappeared from a phone number — this happens when a paste or a conversion is interpreted as a number. Set the destination cells to plain text format before pasting