What this gives you
- Manage contacts in Google Sheets — scanned cards arrive as rows, with the spreadsheet’s own sorting, filtering and search
- Share one sheet across a team — the owner shares the sheet and every member’s PixWork syncs with it
- Run your pipeline in the sheet — Status, Assignee and Next Action Date are managed on the sheet side, and what you set there shows up in the app
- Connect or migrate an existing customer list — point PixWork at a sheet you already use, or move the data into PixWork’s layout
Three fields the sheet owns
Status, Assignee and Next Action Date are read-only in the app. The sheet is always authoritative for them; the app reads and displays them.
That is the intended division of work: the team decides ownership and timing in the spreadsheet, and people in the field read it on their phones.
The Status options and what each one means are on "Google Sheets column layout".
What the Google account is asked for
When you turn on the Google Sheets connection, one additional permission is requested: drive.file. That scope reaches only files this app created and files you explicitly picked in the file picker.
It does not list your Drive and does not read files you did not pick. Nothing is requested for Sheets at ordinary sign-in.
Choosing a sheet — new or existing
A sheet is selected through Google’s standard file picker. There is no way to connect by typing in a spreadsheet ID or URL.
To create a new one, choose the create option in the app and the two required sheets (Contacts and Companies) and their columns are set up for you.
To use a sheet you already have: if its column layout matches PixWork’s, you can select it from the picker as it is. If it does not match, either adjust the columns or move the data into a new PixWork sheet. "Migrating existing data" covers both.
The exact names and order are on "Google Sheets column layout". Contacts columns are matched by name and may be reordered; the first fourteen Companies columns must match position for position.
When the sheet has no Contacts or Companies tab
What PixWork does depends on the state of the sheet you picked.
| State of the sheet | What PixWork does |
|---|---|
| The tab or header row is missing, or empty | Asks you first, then creates and initialises the tab and header row (existing columns and data are left alone) |
| The header row has values that do not match PixWork’s layout | Stops with an error rather than overwriting. You are directed to create a new CRM sheet or pick a different one |
| You decline the creation | Syncing cannot continue with that sheet |
An existing header row is never rewritten without asking. Where the situation is ambiguous, the sync stops before writing anything.
Sharing with a team
The sheet’s owner grants edit access to each member’s account through Google Sheets’ own "Share" feature.
Each member then picks that same shared sheet from Settings via "Select from Google Drive". From then on everyone’s PixWork syncs with the same sheet.
View-only access cannot be saved as a sync target, because syncing writes.
How the two-way sync works
Pressing sync compares the phone and the sheet, and flags only the fields where both sides have a conflicting change. When conflicts exist, you’re shown a screen to choose "keep phone" or "keep sheet" before anything is written.
If a field on the phone is empty, the app never overwrites a value that already exists in the sheet with that empty value.
What is currently in sync scope
In the current version, only contacts updated within the last 90 days are synced. Anything older stays untouched unless it is edited in the sheet.
This is a constraint of the current version, not a permanent product guarantee. The version these pages document and the date they were last checked are shown at the bottom of every page.
If you use this with a team, tell everyone. The state it produces — older data existing only in the sheet — is the one people misread most often.
Common errors
- "There is a problem with this sheet’s structure" — the selected sheet’s column names or order don’t match what PixWork expects. See "Google Sheets column layout" to check the names and order. By design, nothing gets written while this state persists — the sync stops before touching the sheet
- "Stopped because other members kept editing" — appears when other team members were editing the same sheet during sync. Wait a moment and sync again
- "This contact has a conflict" — appears when syncing a single contact and both the phone and the sheet have a differing value. Run a full (two-way) sync instead and resolve it on the conflict screen