The contact tab and the Companies tab
A spreadsheet PixWork creates has three tabs: Contacts for the contacts, Companies for company information, and _pixwork_map for the column mapping. The table on this page is the default column layout of that Contacts tab.
On a sheet you connected yourself, the tab name and the column headers are yours. The mapping in _pixwork_map is what ties your headers to the twenty fields below — so this table doubles as the list of fields you can map onto.
The Companies tab keeps its fixed name and fixed columns either way. It is required for company information to sync, and if the spreadsheet has no Companies sheet, or its header row is empty, the app asks first and sets it up with the user’s consent. If the header row is already filled in and the column layout doesn’t match, it is never overwritten: sync stops without writing anything.
Creating a new sheet from within the app sets up all three tabs and their header rows. Connecting a sheet you already use adds only the _pixwork_map tab, the Companies tab and a row-ID column; your existing tabs, columns, order and values are not modified.
The contact columns — tied together by the mapping
The Contacts tab of a sheet PixWork created holds the twenty columns below in the default order, and _pixwork_map carries that same order as its mapping.
You can reorder the columns, and you can insert your own between them, and sync still works — the mapping resolves a column by the name of its header rather than by where it sits. Full-width and half-width characters, upper and lower case, and stray spaces around a header are all absorbed when the names are compared.
If you rename a header, change the matching name in _pixwork_map too. When the mapping points at a header the data tab does not have, PixWork does not guess at a column — it stops the sync and says why.
| Header | Default position | In the app | Sync behavior |
|---|---|---|---|
| Name | A | Editable | Identity key. App wins (never overwrites with a blank) |
| Job Title | B | Editable | App wins (never overwrites with a blank) |
| C | Editable | Primary identity key. App wins | |
| Phone | D | Editable | App wins. Compared as digits only, last 9 |
| E | Editable | App wins | |
| Website | F | Editable | App wins |
| Address | G | Editable | App wins |
| Status | H | Read-only | Sheet always wins. Dropdown |
| Assignee | I | Read-only | Sheet always wins |
| Next Action Date | J | Read-only | Sheet always wins |
| Event Name | K | Editable | App wins |
| Met Date | L | Editable | App wins. Date format variations treated as equal |
| Created Date | M | Read-only | Existing value preserved |
| Labels | N | Editable | App wins. Comma-separated; order and spacing differences treated as equal |
| Company Name | O | Editable | Link key to the Companies sheet. Part of the identity key |
| P | Editable | App wins | |
| Q | Editable | App wins | |
| R | Editable | App wins | |
| LINE | S | Editable | App wins |
| Last Updated By | T | Read-only | Overwritten with the email of whoever synced last |
"App wins" means the phone’s value is written to the sheet when the phone has one. When the phone’s field is empty, the sheet’s existing value is never cleared.
Status values, and your team’s own wording
When the app creates the sheet, the Status column (H) gets these six dropdown options. You can put other values in from the sheet side, but the app reads these English values as the canonical set.
UncontactedContactedIn ProgressWonLostDeleted— setting this in the sheet marks the matching contact as deleted inside the app, so it drops out of the list. It does not remove the contact from the phone’s address book
The effect of Deleted stops inside PixWork. "Saving to your phone’s contacts" covers what happens to the OS contact book. On a sheet you connected yourself, the pixwork_status table in _pixwork_map lets you write down which of your team’s own words — "Prospect", "In discussion" and so on — corresponds to each of the six above. With that in place, PixWork does not put its English values into your column; it reads and writes the wording you declared. Rows carrying the word you gave for deletion sync as deleted.
Companies — matched by position, order cannot change
The Companies sheet behaves differently from Contacts. Its first 14 columns must match the order below exactly. Renaming a column, reordering, deleting one, or inserting a column in the middle all mark the sheet incompatible, and sync stops without writing.
Column 15 onward is yours to use. Columns a user adds there are neither read nor written, and are never blanked out.
| Position | Header |
|---|---|
| A | Company Name |
| B | Industry |
| C | Size |
| D | Website |
| E | Summary |
| F | Conversation Starters |
| G | Strength 1 Title |
| H | Strength 1 Detail |
| I | Strength 2 Title |
| J | Strength 2 Detail |
| K | Strength 3 Title |
| L | Strength 3 Detail |
| M | Latest News |
| N | Last Updated |
Column F is named Conversation Starters. Some older material and samples show Deep Insights there — that is the former name. Getting this one header wrong makes the entire Companies sheet incompatible.
Why only Companies is strict about order
The contact columns are read and written through the mapping. Companies is read and written using column positions directly — so if a position shifts, a value would be written into the wrong column. That is why it is deliberately outside _pixwork_map.
To prevent that, PixWork stops without writing anything the moment it detects a mismatch (fail-closed). The design assumes a stopped sync is better than corrupted client data. When sync stops, this column order is the first thing to check.
What gets synced, and how values are compared
- In PixWork 1.1.2, contacts updated within the last 90 days are synced. Anything older than that is not
- Rows are identified by the row-ID column first (
_pixwork_idby default). For a row that does not carry an ID yet, an email decides identity on its own — a matching email means the same person, even if the name or company differs - Only when the email is empty does matching fall back to name + company name. So Company Name is an identity key only in the absence of an email. Two people with the same name at different companies are treated as different people
- The last-9-digit phone comparison decides whether two phone fields hold the same number. It absorbs hyphens and country-code differences — but it is not used to identify people. A matching phone number alone does not make two records the same person
- Dates are normalized only in year-first formats (
2026-08-04/2026/08/04/2026.08.04). Ambiguous formats like7/8/2026are not guessed at — they’re treated as opaque text - Labels are comma-separated, and differences in order or surrounding spaces are treated as the same value
Before connecting a sheet you already use, check whether its date columns are in an ambiguous format like 7/8/2026. Converting them to a year-first format avoids spurious conflicts.