Run Data Entry on Google Sheets — AI Agent
For teams that retype paper and PDF timesheets into a payroll spreadsheet: an agent that reads each emailed timesheet, checks the names against your roster tab, and appends the hours as clean rows.
6 timesheets read, 31 rows added. First one entered:
Read from the timesheet photo
- • Phone photo of a paper sheet, 6 workers, signed by the foreman on Sep 19.
- • Marco Ruiz: 46.5 hours total, split into 40 regular and 6.5 overtime.
- • "J. Tan" matched to Jonah Tan on the Roster tab (only Tan on Crew 4).
How can I get data from emailed PDFs and photos into Google Sheets automatically?
Connect the inbox the documents arrive in and the spreadsheet they belong in.
- 01
Trigger fires
For each attachment, whether a PDF, a phone photo of a paper form, or a scan, the agent reads the fields you listed, checks them against reference tabs such as an employee roster, and appends one row per record to the right tab.
- 02
Read each worker's daily hours from the attachment
It creates the month's tab if it doesn't exist yet, writes values only into input columns so your formulas keep working, and links the source file in the last column.
- 03
Match every name to the Roster tab
Unreadable handwriting, names not on the roster, and anything that looks entered already are held for a person to check.
- 04
Split weekly hours into regular and overtime
- 05
You approve
Anything under your confidence bar waits for a human.
How you tell it what to do
Built in plain English.
You write the rule the way you'd describe it to a teammate. The agent reads the rule, breaks it into the actions it'll take, and confirms the apps it'll touch — before it does anything.
- 1Read each worker's daily hours from the attachment
- 2Match every name to the Roster tab
- 3Split weekly hours into regular and overtime
- 4Append rows to the month tab with a source link
How it connects
Connect Google Sheets. The agent does the rest.
Claude and ChatGPT are already running on our side. You connect Google Sheets with one click, and data entry runs inside it.
Claude and ChatGPT run on our keys. Nothing for you to configure.
- Google SheetsConnect
- GmailConnect
- Google SheetsConnect
Runs on your data, in your apps.
Nothing to deploy. Nothing to maintain.
Actions
What Google Sheets + DeskFerry can do
Real Google Sheets actions your AI agent can perform automatically — no manual work required.
Add Sheet to Spreadsheet
Adds a new sheet (worksheet) to a spreadsheet. use this tool to create a new tab within an existing google sheet, optionally specifying its title, index, size, and other properties.
Aggregate Column Data
Searches for rows where a specific column matches a value and performs mathematical operations on data from another column.
Append Dimension
Tool to append new rows or columns to a sheet, increasing its size. use when you need to add empty rows or columns to an existing sheet.
Batch get spreadsheet
Retrieves data from specified cell ranges in a google spreadsheet; ensure the spreadsheet has at least one worksheet and any explicitly referenced sheet names in ranges exist.
Batch update spreadsheet
Updates a specified range in a google sheet with given values, or appends them as new rows if `first cell location` is omitted; ensure the target sheet exists and the spreadsheet contains at least one worksheet.
Batch Update Values by Data Filter
Tool to update values in ranges matching data filters. use when you need to update specific data in a google sheet based on criteria rather than fixed cell ranges.
Clear Basic Filter
Tool to clear the basic filter from a sheet. use when you need to remove an existing basic filter from a specific sheet within a google spreadsheet.
Clear spreadsheet values
Clears cell content (preserving formatting and notes) from a specified a1 notation range in a google spreadsheet; the range must correspond to an existing sheet and cells.
Create Chart in Google Sheets
Create a chart in a google sheets spreadsheet using the specified data range and chart type.
Create a Google Sheet
Creates a new google spreadsheet in google drive using the provided title.
Thursday's hours for row 3 could be 8 or 6. The photo is blurred where the pen crossed the fold.
Crew 7 lists a Luis M. but the Roster tab has no Luis on that crew. Could be a new hire.
Same week and same six names as a sheet entered yesterday, but Friday differs by 1 hour for two workers.
Human in the loop
Approve before it sends.
Every draft lands in a review queue. You approve, edit, or reject — the agent never acts on its own unless you explicitly turn that on for a workflow you trust.
Governance
Every action, with the reasoning attached.
Each step the agent takes is logged with what it did, why it did it, and which app it touched. Audit-ready, so security and compliance can sign off without backfilling.
- Agent4:18 PM
Appended 6 rows for Crew 4 to tab "Sep 2026", rows 142 to 147.
- Agent4:17 PM
Held Crew 4's second timesheet for the same week.
Reason: Looks like a corrected re-send. Replacing yesterday's rows needs a person to confirm which version is right.
- Agent4:12 PM
Matched "J. Tan" to Jonah Tan using the Roster tab crew column.
- Agent4:11 PM
Read a timesheet photo from Dario with 6 workers and a foreman signature.
- Renee9:02 AM
Corrected Thursday hours for Ana Silva from 9 to 7 after calling the foreman.
How it works
Get started in three steps
Step 01
Connect the inbox and the sheet
Link the Gmail address timesheets arrive at and the Google Sheets file payroll runs from. Point the agent at the Roster tab it should check names against.
Step 02
List the fields and the rules
Say which columns to fill, how to split overtime, and what counts as a problem, such as a missing foreman signature or a worker not on the roster.
Step 03
Clear the held timesheets
Clean sheets become rows straight away. Blurred entries, unknown names and possible re-sends wait for you with the source image next to them.
Start automating Data Entry for Google Sheets
7-day free trial. Works with the tools you already use.
FAQ
Frequently asked questions
Can it read handwritten timesheets from phone photos?
Yes, as long as the writing is legible to a person. It reads printed forms, filled PDFs and photos of paper sheets. When a digit is ambiguous, such as a 6 that could be an 8, it doesn't pick one. That entry goes to the review queue with the cropped image so a person decides.
Will it break the formulas in my spreadsheet?
No. You tell it which columns are inputs and it only writes values there. Totals, lookups and payroll formulas in other columns are left alone, and new rows are added below your existing data so ranges that feed them keep working.
What happens at the start of a new month?
If your sheet keeps a separate tab for each month, the agent checks whether this month's tab exists by name. If it doesn't, it adds one with the same header row as last month, then starts appending. If you prefer one long tab, it appends there instead.
How does it avoid entering the same timesheet twice?
Before appending, it queries the tab for rows with the same crew, week and workers. An exact match is skipped and logged. A near match, like a corrected sheet with different Friday hours, is held so a person chooses which version stands.
Can I see where each row came from?
Each row gets a link to the original attachment in a source column, and the audit log records which email it came from and which cells were written. When payroll questions a number, you can open the photo the figure was read from in one click.
Explore more
