Google Sheets column layout

Contacts columns are matched by name; the first 14 Companies columns must match position for position. Getting this distinction wrong is what stops sync on a sheet.

Two sheets are required

A spreadsheet PixWork syncs with needs both a sheet (tab) named Contacts and one named Companies. The names are matched exactly.

Contacts alone will not sync. Even if you only care about contacts, the Companies sheet is required — but a missing sheet and a wrong one are handled differently. If the Companies sheet doesn’t exist, or its header row is empty, the app can set 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 both sheets and their header rows. Selecting an existing sheet whose header row is empty also gets set up automatically, with the user’s consent. But a header row that is already filled in and doesn’t match is never overwritten — it produces an error instead.

Contacts — matched by name, order is free

Contacts columns are matched by header name (case-insensitive). You can reorder them, and you can insert your own extra columns between them, and sync still works.

What you cannot do is rename one: changing a header name takes that column out of sync entirely. Renaming "Name" to "Full Name," for instance, means that column stops syncing — and if the Name column in particular can’t be recognized, sync itself stops.

HeaderDefault positionIn the appSync behavior
NameAEditableIdentity key. App wins (never overwrites with a blank)
Job TitleBEditableApp wins (never overwrites with a blank)
EmailCEditablePrimary identity key. App wins
PhoneDEditableApp wins. Compared as digits only, last 9
WhatsAppEEditableApp wins
WebsiteFEditableApp wins
AddressGEditableApp wins
StatusHRead-onlySheet always wins. Dropdown
AssigneeIRead-onlySheet always wins
Next Action DateJRead-onlySheet always wins
Event NameKEditableApp wins
Met DateLEditableApp wins. Date format variations treated as equal
Created DateMRead-onlyExisting value preserved
LabelsNEditableApp wins. Comma-separated; order and spacing differences treated as equal
Company NameOEditableLink key to the Companies sheet. Part of the identity key
LinkedInPEditableApp wins
TwitterQEditableApp wins
InstagramREditableApp wins
LINESEditableApp wins
Last Updated ByTRead-onlyOverwritten 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

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.

The effect of Deleted stops inside the app. Setting Deleted in the sheet does not clear the contact from everyone’s phone address book — that is a common misreading and does not match the implementation. The OS address book entry is only removed when the contact is deleted from within the app (and only when a phone number is stored). Make this distinction explicit if you run the sheet with a team.

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.

PositionHeader
ACompany Name
BIndustry
CSize
DWebsite
ESummary
FConversation Starters
GStrength 1 Title
HStrength 1 Detail
IStrength 2 Title
JStrength 2 Detail
KStrength 3 Title
LStrength 3 Detail
MLatest News
NLast 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

Contacts is read and written using header names as the reference. Companies is read and written using column positions directly — so if a position shifts, a value would be written into the wrong column.

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

When migrating an existing sheet, check whether date columns are in an ambiguous format like 7/8/2026. Converting them to a year-first format avoids spurious conflicts.

Get PixWork

Get it on Google Play The App Store version is not available yet

Updated: 2026-08-04 · Documents PixWork: 1.0.2