Exporting Data to Spreadsheet
What this is for
The source of truth for workers and time data is a shared Google Sheet (the AppSheet-backed roster). When you change something in this app — a pay rate, a per-diem, an approved time correction — that change needs to get pushed back to the spreadsheet so the rest of the team sees it. This flow shows how to sync a change back and how to tell whether it worked.
Before you start
- The record must have come from the spreadsheet originally. Workers who were created in the app but never existed in the source sheet cannot be synced — there's no row to update.
- You have the "Manage master data" permission. If you don't see the Sync button on worker profiles, ask an admin.
- The spreadsheet isn't being actively edited by someone else at the same moment. Two people writing to the same row at once causes conflicts.
- The sync feature is turned on in your environment. If it's disabled, the Sync button will be missing or show an error when clicked.
Steps
-
For a field worker: Click the People tab → Field Workers → open the worker's detail page. Scroll to the Sync to Spreadsheet card (sometimes labelled "Write-Back"). Click the Sync button.
-
For a time correction: You don't need to press anything extra. When you approve a time correction on the Time Corrections page, the app syncs it back to the spreadsheet automatically as part of the approval. Just approve as usual.
Screenshot pendingTime corrections page with Approve button highlighted.
This screenshot will be added in a future docs update once the underlying state is reproducible in dev.
-
Watch the sync status badge next to the record. It will change state as the sync runs:
- Pending / Running — the app is talking to the sheet right now.
- Green (success) — the row in the spreadsheet has been updated.
- Red (failure) — something went wrong; read the message for a hint.
Screenshot pendingSync status badge showing a successful green state.
This screenshot will be added in a future docs update once the underlying state is reproducible in dev.
-
(Optional) Open the actual Google Sheet in a separate tab and spot-check the row you expected to change. This is worth doing the first few times you use the feature so you trust what the badge is telling you.
Screenshot pendingGoogle Sheet with the updated worker row highlighted.
This screenshot will be added in a future docs update once the underlying state is reproducible in dev.
Common mistakes
- Syncing a worker that was never in the spreadsheet. If the worker was created inside the app and has no source row, the sync will fail with "no source row found." That's expected — this feature only updates existing rows, it doesn't create new ones.
- Syncing while someone is editing the spreadsheet. If another person has the same row open in Google Sheets and is mid-edit, the sync can overwrite their work (or be overwritten). Ask around before doing bulk syncs.
- Expecting instant updates in the sheet. Even after a green badge, Google Sheets sometimes takes a few seconds to refresh for other viewers. Give it a moment.
- Clicking Sync repeatedly. One click is enough. Clicking again while one is still running can cause conflicting updates.
- Forgetting that time-correction sync is automatic. You do not need to click Sync after approving a correction — the app does it for you. Clicking anyway is harmless but wastes a call.
What to do if it goes wrong
- Badge is red with "no source row." The record wasn't imported from the spreadsheet. Nothing to do here — the app-native record stays in the app only.
- Badge is red with a timeout or connection error. Wait a minute and click Sync again. Most transient failures resolve on a retry.
- Badge is red with "permission denied." The service account that writes to the spreadsheet has lost access to the sheet. An admin needs to re-share the sheet with it. See the runbook: AppSheet Write-Back.
- No Sync button at all. Either you don't have permission, or the write-back feature flag is turned off. Contact your admin.
- Change is in the app but the sheet doesn't show it even after a green sync. Make sure you're looking at the right tab and the right row in the sheet — sheets have multiple tabs. You can also review the Google Sheets Sync runbook or check the cron and scheduled jobs log to see when the last full sync ran.