OpenAI turns rows written in plain words of a Google Sheet into clean columns and writes product descriptions in bulk, while a person approves what goes further
A Google Sheet often holds text nobody can filter: addresses typed in one cell, requests written as a paragraph, a supplier price list pasted as it came, hundreds of products without descriptions. Cleaning it by hand takes days. The Google Sheets ↔ OpenAI pair gives that work to a model that always answers in a fixed structure: each row becomes the same set of columns, every value is checked against the list of allowed ones, and new descriptions or translations land in a draft column. The sheet stays the place where the team works, and the model only fills the columns you allowed. Below: what moves, which scenarios we cover and what we rely on in both systems.
Google Sheets → OpenAIRows from the agreed sheet and columns are read on a schedule, in portions that fit Google's per-minute quota, and handed to the model.
OpenAI → Google SheetsFor every row the model returns the same set of fields, for example city, street, product, size, quantity, and a value outside the allowed list is never invented.
OpenAI → Google SheetsThe fields are written into neighbouring columns of the same row; a row the model could not parse is marked «check» instead of being guessed.
OpenAI → Google SheetsFor product lists the model writes descriptions or translations into a «draft» column, and only rows a person marks as approved are used further.
Google Sheets → OpenAIProduct photos linked in the sheet can be read along with the text, so a description is based on what is actually in the picture.
What we connect
You share the sheet with a service account created for the connection, so it sees only that file and nothing else in your Google Drive.
We agree which columns the model reads, which it fills and the list of allowed values for each, for example your real list of cities or sizes.
The OpenAI usage runs on your own developer account and is billed to you; before the full run we estimate the cost on a sample of a hundred rows.
The first run goes into a copy of the sheet; the working file is touched only after you have looked at the result.
Automation scenarios
01
Addresses in one cell
Beforedelivery addresses are typed however the client wrote them, and a manager splits them by hand before creating waybills.
Aftercity, street, house and branch number sit in separate columns, and the doubtful ones are marked for a person.
02
Four hundred products without descriptions
Beforethe catalogue waits for weeks because nobody has time to write descriptions.
Afterdrafts for the whole list appear in a day, a person approves or corrects them row by row, and approved rows go to the site.
03
A supplier price list in its own format
Beforeeach supplier sends a price list with their own names and units, and someone matches them to your catalogue.
Afterthe model reads each line and fills your article, unit and price columns, leaving unmatched lines for a person.
How it works technically
For those who want to check: each point links to the official documentation page it comes from.
Sheets API quotas are per minute and refill every minute; Google's own example is a read limit of 300 requests per minute per project.
A service account is a special kind of account used by an application rather than a person; access to a specific Google Sheet is granted by sharing the file or folder with the service account's email address.
Structured Outputs makes the model always answer in a predefined structure, without missing a required field or inventing a value outside the allowed list.
The limits come from both systems. The model can be wrong: a fixed structure guarantees the fields are present and the values come from the allowed list, not that the value chosen is the right one, so the output is a draft and doubtful rows go to a person. Google counts Sheets requests per minute, so large sheets are read and written in portions over several minutes rather than all at once. The OpenAI usage is billed per volume of text, and a sheet of several thousand rows is estimated on a sample before the full run.
How to start
Three steps from a first message to work on your project.
01
Leave a request
Describe the task in the form — in text or by voice. Budget and timing are optional.
02
We review and estimate
A developer studies the brief, asks about anything unclear and sends an estimate.
Will the model change the original text in our rows?
No. It reads the source columns and writes only into the columns we agreed on; the original stays as it was, so any result can be checked against it.
What if we rename the sheet?
Nothing breaks: a Google Sheet keeps the same identifier when its name changes. Moving or renaming columns is a different matter, so tell us before doing that.
How is this different from the Claude and Google Sheets pair?
The job is the same kind; the model provider is different. We pick the one your company already has an account with, or compare both on your sample and show the result.
Tell us what needs to be connected
Describe the task in text or a voice message. We look at your setup and reply with a plan.