Availability. This is live end to end today: connect, pick a sheet,
preview, map, and import all work. There is no recurring sync. Each
import is a one-off read. If the sheet changes tomorrow, run the import
again.
Where to find it
Google Sheets is not a card on the Integrations page. It appears as a second option next to the file uploader, everywhere you can start an import:- Contacts → Import, on the Upload step.
- The Contacts empty state, when the workspace has no contacts yet.
- The Create list dialog, so the sheet imports straight into the new list.
- The Import step of onboarding.
Starting an import needs an owner, admin, editor or designer seat. A viewer
can see the Contacts screens but cannot connect Google or run an import.
The connection is yours, not the workspace’s
This is the part that surprises people. The Google connection is tied to your user account, not shared with your teammates. Practical consequences:- Each person who imports sheets connects once, on their own account.
- Disconnecting affects only you. Your colleagues keep their connections.
- The Google account shown in the dialog is the one the sheet will be read as. Pick the account that actually has the spreadsheet.
Connecting
1
Open the dialog
Click Import from Google Sheets from any of the surfaces above.
2
Connect Google
Click Connect Google. A Google popup opens and asks which account to
use, then asks you to approve access. Approving stores the connection
against your user, so you will not be asked again on this account.
3
Choose a spreadsheet
Google’s own file picker opens. Browse or search your Drive and select one
spreadsheet. Only spreadsheets are selectable; folders and other file
types are not.
Why there is no field to paste a sheet link
There is deliberately no “paste a Google Sheets URL” box, and adding one would not work. Senderz asks Google for the narrowest permission available: access to individual files you choose, and nothing else. Under that permission, the act of picking the file in Google’s picker is what grants access to it. A spreadsheet you have not picked is unreadable to Senderz even if you paste a perfect link to it, even if the link is public. The alternative would be to ask you to set the sheet to “anyone with the link can view” so we could read it with a generic key. That means publishing a file of your customers’ names, email addresses and phone numbers to anyone who guesses or forwards the URL. We are not asking you to do that with a customer list.What Senderz can and cannot see in your Drive
Can see
Only the spreadsheets you personally selected in the picker, and only to
read them. Nothing is written back to the sheet.
Cannot see
Any other file in your Drive. Senderz cannot list, search, open, edit or
delete anything you did not pick, and cannot create files.
Choosing the tab and the header row
Once a spreadsheet is picked, the dialog shows what it found:dropdown
Only appears when the spreadsheet has more than one tab. Senderz starts on
the first tab. Switching tabs re-reads immediately. One tab imports per
run. To import three tabs, run three imports.
toggle
default:"on"
On, the top row becomes your column names. Off, every row is treated as
data and columns are named
Column A, Column B and so on, which you then
map by hand.preview
The first eight column names Senderz detected, plus a count. Use it to
confirm you are looking at the right tab before continuing.
- Blank column headers get a placeholder name based on the column letter, so an unlabelled column is still importable rather than silently dropped.
- Duplicate headers are numbered. Two columns both called
EmailbecomeEmailandEmail (2). - Trailing empty cells are fine. Rows in a Google sheet are often ragged; Senderz sizes the table to the widest row, so a column that only has values further down is not lost.
- Values arrive as they are displayed, not as the underlying raw value. A date shown as
03/04/2024imports as that text.
From there it is a normal import
A sheet joins the standard import wizard at the mapping step. Nothing about mapping, validation, duplicate handling or consent is special-cased for sheets:1
Map fields
Senderz auto-maps recognisable column names and you confirm or change
them. You can map a column to a new custom field from here, or set it to
Don’t import this column.
2
Existing contacts
Choose Update existing, Skip updates or Add only new for rows
that match a contact you already have.
3
Review
A preview of what will import.
4
Subscription
The final step. Tick each channel these contacts actually gave you
permission to market on, or leave it blank to keep the conservative
default and rely on the sheet’s own consent columns.
Importing a sheet does not start any automation, however many contacts
it creates. Bulk import never enrols people into flows.
The sheet is re-read when the import runs
The preview you approve is a look at the sheet, not a copy of it. When the import actually runs, Senderz reads the spreadsheet again. That has two consequences worth knowing:- Edits you make between previewing and importing are picked up. Spot a broken row on the review screen, fix it in Google Sheets, then start the import, and the corrected version is what imports.
- The sheet has to still be reachable at that moment. If you delete the spreadsheet, rename or delete the tab, or disconnect Google between clicking through the wizard and the import finishing, the import fails and tells you which of those happened.
Limits
A published-to-web link (the kind Google generates under File → Share → Publish to web) is a different kind of address that the Sheets API cannot resolve, so those are rejected. Pick the file through the picker instead.
Tracking an import
Every sheet import appears on the import status page with live progress and a per-row results table, exactly like a file import. It is also listed on the Import & export log tab of Contacts, labelled Google Sheets, with the added, updated, skipped and rejected counts.Disconnecting
Open the Google Sheets dialog and click Disconnect. This removes the stored connection for your user and tells Google to revoke it. You can also revoke it from Google’s side, at Google Account → Data & privacy → Third-party apps. Either way:- Your teammates’ connections are untouched.
- Contacts already imported stay. Disconnecting removes future access to your Drive, not the data you brought in.
- Any import still running fails, because it can no longer read the sheet.
- Reconnecting is the same three clicks as the first time. You will need to pick your spreadsheets again, since the permission is per file.
Troubleshooting
Google could not load the file picker
Google could not load the file picker
Usually a network or content blocker problem: the picker is loaded from
Google’s own servers. Retry, and if it persists check whether a browser
extension or corporate network is blocking Google’s script domains.
Google connection expired
Google connection expired
The grant was revoked, either from your Google account’s third-party
access settings or by Google itself after long disuse. Click
Disconnect, then Connect Google again, and re-pick the sheet.
Google denied access to that sheet
Google denied access to that sheet
The file was not selected through the picker for this app, or the grant
for it lapsed. Opening it fine in your own browser does not mean Senderz
can read it, that is exactly what the per-file permission is for. Choose
the spreadsheet again through the picker.
That sheet is no longer available
That sheet is no longer available
The spreadsheet or the tab was renamed, moved, or deleted between picking
it and importing. Pick it again. Renaming a tab counts, since the tab is
matched by name.
Google Sheets could not be reached
Google Sheets could not be reached
Google was unreachable or rate-limiting when the import ran. This is
almost always temporary. Start the import again in a few minutes.
The import ran but found no rows
The import ran but found no rows
The selected tab is empty, or every row sits above the header row you told
Senderz to expect. Check you picked the right tab, and check the First
row contains column names toggle matches the sheet.
Fewer contacts imported than rows in the sheet
Fewer contacts imported than rows in the sheet
Expected. Rows are rejected for invalid or undeliverable email addresses,
duplicates within the file, and rows with neither an email nor a phone
number. The status page lists a per-row reason for each and offers a
Download failed rows file. See
Importing contacts for the validation rules.
Related
Importing contacts
Mapping, validation, duplicate handling and the consent rules that apply
to every import source.
Consent and opt-in
What counts as permission, and what the consent log records.

