A lot of work arrives by email and belongs in a spreadsheet. Orders from customers who won't use your form. Alerts from a system that only knows how to send mail. Bills, inquiries, booking confirmations. Someone copies the sender, the date and a few details into a sheet so the team can sort, count and share them, and that someone has better things to do. Copying by hand is also where rows go missing and a total picks up a typo.
A workflow can do the copying every time an email lands. This guide covers four ready-made templates from Lodol's library that save email to a sheet, from a plain log of every matching message to a row for every item in an order. Then it shows how to build your own version, and the three habits that keep an email log worth trusting.
First, decide what a row is
Before you pick a workflow, decide what one row in your sheet stands for. It's nearly always one of three things:
- One email. Who sent it, when, the subject and a link back to it. Right for a record of inquiries, alerts or anything you'll want to find again.
- One thing inside an email. An order for five products becomes five rows. The email has to be read, not just copied, which is where AI earns its place.
- One attachment. The PDF is filed somewhere safe, and the row says what it was and where it went.
1. Log every email that matches a search
The workflow: Save matching emails to a spreadsheet wakes whenever new mail arrives in Gmail, looks for the messages your search matches, such as everything from a billing address, and writes one row per message: when it was sent, who sent it, who it went to, the subject, an excerpt of the body, the Gmail message ID and a link that opens the message in Gmail. The search uses Gmail's own format, so from:billing@harborsupply.com or subject:"booking confirmed" work as you'd expect.
What it won't do: save anything twice. Each message is labeled "Saved to sheet" the moment it's picked up, and the search leaves that label out. If the sheet can't be written to, the label comes off again, the message is tried on the next run, and the run is marked as failed so you can see what happened. There's no AI in it: it copies what Gmail holds, nothing more.
2. Turn order emails into one row per item
The workflow: every hour, Turn order emails into spreadsheet rows reads the order emails your search finds, has AI pull out who is ordering and every item and quantity, and adds one row per item to the tab you name. Each row records the customer, the order reference, the item, the quantity, the requested delivery date and the email it came from, so any row can be traced back. An order with no reference or delivery date is still logged, with "Not given" in that column.
What it won't do: guess at an order. If an email isn't clearly an order, or any item's name or quantity is missing or unclear, nothing from it is written, and it's labeled "Order needs review" for a person. Before adding anything, it checks that row 1 of your tab carries the six headings in order. Handled emails are labeled "Order logged", so no order is recorded twice.
3. Log alerts, and ping someone at the same time
The workflow: Log alert emails to a sheet and ping Telegram turns each alert email from the sender you name into a row and a short Telegram message, as it arrives. The row holds when it was sent, how severe it is, the sender, the subject, an excerpt and the message ID. Severity comes from the alert's own words. A subject saying resolved or recovered is marked Resolved. Otherwise, wording like critical, error or warning sets the level, and anything else is Info.
What it won't do: put your mail in the chat. The Telegram message carries the severity, subject, sender and time, but not the excerpt. The email is labeled "Alert logged" only after both the row and the message have gone out, so if either fails, the run says which part didn't happen and the email is easy to find.
4. File the attachment and log what it says
The workflow: File emailed documents and log what they say copies the PDF attachments on matching emails into a Box folder and adds one row per document to a register in Google Sheets: when it was filed, the sender, the subject, the file name, a link to the copy, whether it could be read, and details read from the document itself, such as a supplier, document number, date and total.
What it won't do: fill a gap. A field the document doesn't carry is left empty, and an email is marked as registered only once every document on it is filed and logged. If you'd rather keep the files in Google Drive and skip the register, File email attachments into Google Drive checks every hour for the latest email with attachments from each sender you nominate, and saves those attachments into one folder, each in its own file type.
Build your own version
Each template is yours to change once it's in your workspace, and a simple email log is quick to build from scratch:
- Start it with Gmail's New email trigger. Its From setting limits it to one sender, or leave it empty to watch the whole inbox. The trigger hands the run the email's sender, recipients, subject, date and body. Attachments need a separate Download attachments step.
- Add Google Sheets' Add row step and fill each column with a value from the email. Gmail's Find email and List emails steps give you the full text and, separately, just the newest reply with the quoted history stripped away, which is usually the part worth keeping.
- Pull out fixed details without AI. The built-in Extract from text step finds an email address, a web address, a number or a pattern of your own, like an order reference that always starts with PO-. It gives the same answer every time.
- Use an AI step for the messy part. When the details are written differently in every email, an OpenAI or Anthropic step can read it and write out the fields you ask for. Tell it to write "Not given" for anything the email doesn't say. It runs on your own account with that provider.
- Test before you turn it on. Every step's menu offers Run only this step, so you can check the row it writes against a real email without running the whole workflow.
And the sheet can carry the work on. A new row in Google Sheets can start a workflow of its own, and from today it arrives with its cells named by their column headers, so a later step can read "Customer" rather than column B.
Three habits that keep the log trustworthy
Mark what's done. A Gmail label applied as each email is handled is the simplest memory a workflow can have. Leave that label out of the search and the same email never becomes two rows, however often the workflow runs.
Leave a gap rather than a guess. A blank cell or a "Needs review" label costs you a minute. A made-up quantity costs you a wrong delivery. The templates above that read emails would rather leave a blank, a "Not given" or a review label than invent a value.
Fail loudly. If a row can't be written, you want to know today, not at month-end. Lodol emails you when a run fails, every run is recorded step by step, and a Try / Catch step can take the label back off or send a note when the sheet refuses a row.
Start with one search.
Add Save matching emails to a spreadsheet to your workspace, point it at the mail you copy by hand today, and watch the rows arrive. Or browse the operations workflows and everything that works with Gmail and Google Sheets. Start free if you don't have a workspace yet.