Takes a full-page picture of each page you list, reads the details you asked for off the picture, and adds a row per page to your sheet.

UsesGoogle SheetsOpenAIScreenshotOne

Read details off web pages that won't share their text

ScheduleRun every Monday at 07:00.Run every Monday at 07:00.
ValuesSet pageUrls to blank.Set pageUrls to blank.
ValuesSet fieldsToRead to blank.Set fieldsToRead to blank.
ValuesSet spreadsheetUrl to blank.Set spreadsheetUrl to blank.
ValuesSet sheetName to blank.Set sheetName to blank.
ValuesSet maxPages to 10.Set maxPages to 10.
ValuesSet fieldNames to an empty list.Set fieldNames to an empty list.
Decisions & LoopsFor each rawFieldName in fieldsToRead split by ,:For each rawFieldName in fieldsToRead split by ,:
TextTrim rawFieldName and save it as fieldName.Trim rawFieldName and save it as fieldName.
Decisions & LoopsIf fieldName isn't emptyIf fieldName isn't empty
Yes
ListsAdd fieldName to the end of fieldNames and save it as fieldNames.Add fieldName to the end of fieldNames and save it as fieldNames.
No
No steps
Decisions & LoopsIf fieldNames is emptyIf fieldNames is empty
Yes
Decisions & LoopsStop and report a problem: The 'fieldsToRead' step has no field names in it. Write the details you want off each page separated by commas - for example 'Price, Availability, Delivery time' - then run it again.Stop and report a problem: The 'fieldsToRead' step has no field names in it. Write the details you want off each page separated by commas - for example 'Price, Availability, Delivery time' - then run it again.
No
No steps
ValuesSet blankCells to an empty list.Set blankCells to an empty list.
Decisions & LoopsFor each unreadFieldName in fieldNames:For each unreadFieldName in fieldNames:
ListsAdd to the end of blankCells and save it as blankCells.Add to the end of blankCells and save it as blankCells.
Dates & TimesGet today's date and save it as capturedOn.Get today's date and save it as capturedOn.
ValuesSet pagesCaptured to 0.Set pagesCaptured to 0.
ValuesSet rowsWritten to 0.Set rowsWritten to 0.
Decisions & LoopsFor each rawPageUrl in pageUrls with "For each rawPageUrl in pageUrls with replaced by , split by ,:
TextTrim rawPageUrl and save it as pageUrl.Trim rawPageUrl and save it as pageUrl.
Decisions & LoopsIf pageUrl is emptyIf pageUrl is empty
Yes
Decisions & LoopsSkip to the next item.Skip to the next item.
No
No steps
Decisions & LoopsIf pagesCaptured is greater than or equal to maxPages multiplied by 1If pagesCaptured is greater than or equal to maxPages multiplied by 1
Yes
Decisions & LoopsStop repeating.Stop repeating.
No
No steps
ValuesAdd 1 to pagesCaptured.Add 1 to pagesCaptured.
ValuesSet problemNote to blank.Set problemNote to blank.
ValuesSet pictureRef to blank.Set pictureRef to blank.
Decisions & LoopsIf pageUrl doesn't start with https:// and pageUrl doesn't start with http://If pageUrl doesn't start with https:// and pageUrl doesn't start with http://
Yes
ValuesChange problemNote to This is not a web address. Give the page as a full address starting with https://..Change problemNote to This is not a web address. Give the page as a full address starting with https://..
No
Decisions & LoopsIf a step below fails, save the error as captureErrorIf a step below fails, save the error as captureError
Try
TextTrim the document ref from the ScreenshotOne “Take a screenshot” step and save it as pictureRef.Trim the document ref from the ScreenshotOne “Take a screenshot” step and save it as pictureRef.
On error
ValuesShow in the output: Could not photograph pageUrl: captureError as text.Show in the output: Could not photograph pageUrl: captureError as text.
ValuesChange pictureRef to blank.Change pictureRef to blank.
Decisions & LoopsIf pictureRef doesn't start with doc_If pictureRef doesn't start with doc_
Yes
ValuesChange problemNote to No picture of this page could be taken. Check the address opens in a browser without signing in..Change problemNote to No picture of this page could be taken. Check the address opens in a browser without signing in..
No
No steps
ValuesSet readFields to an empty list.Set readFields to an empty list.
Decisions & LoopsIf problemNote is emptyIf problemNote is empty
Yes
Decisions & LoopsIf a step below fails, save the error as readErrorIf a step below fails, save the error as readError
Try
AI AgentRun an AI agent: Read the attached picture of a web page and pull out each of these fields, in this order:… and save it as pictureReading.Run an AI agent: Read the attached picture of a web page and pull out each of these fields, in this order:… and save it as pictureReading.
ValuesChange readFields to pictureReading.output.fields.Change readFields to pictureReading.output.fields.
On error
ValuesShow in the output: Could not read the picture of pageUrl: readError as text.Show in the output: Could not read the picture of pageUrl: readError as text.
ValuesChange readFields to an empty list.Change readFields to an empty list.
ValuesChange problemNote to The picture was taken but nothing could be read off it..Change problemNote to The picture was taken but nothing could be read off it..
No
No steps
ValuesSet rowValues to [capturedOn, pageUrl].Set rowValues to [capturedOn, pageUrl].
ValuesSet filledCells to 0.Set filledCells to 0.
Decisions & LoopsFor each wantedField in fieldNames:For each wantedField in fieldNames:
ValuesSet cellValue to blank.Set cellValue to blank.
Decisions & LoopsFor each readField in readFields:For each readField in readFields:
ValuesSet readFieldName to blank.Set readFieldName to blank.
Decisions & LoopsIf a step below fails, save the error as unnamedFieldIf a step below fails, save the error as unnamedField
Try
TextTrim readField.name and save it as readFieldName.Trim readField.name and save it as readFieldName.
On error
ValuesChange readFieldName to blank.Change readFieldName to blank.
Decisions & LoopsIf readFieldName is wantedFieldIf readFieldName is wantedField
Yes
Decisions & LoopsIf a step below fails, save the error as valueIsAListIf a step below fails, save the error as valueIsAList
Try
TextTrim readField.value and save it as cellValue.Trim readField.value and save it as cellValue.
On error
TextJoin readField.value with , and save it as cellValue.Join readField.value with , and save it as cellValue.
No
No steps
Decisions & LoopsIf cellValue isn't emptyIf cellValue isn't empty
Yes
ValuesAdd 1 to filledCells.Add 1 to filledCells.
No
No steps
ListsAdd cellValue to the end of rowValues and save it as rowValues.Add cellValue to the end of rowValues and save it as rowValues.
Decisions & LoopsIf problemNote is empty and filledCells is 0If problemNote is empty and filledCells is 0
Yes
ValuesChange problemNote to The picture was read but none of the details you asked for are on this page..Change problemNote to The picture was read but none of the details you asked for are on this page..
No
No steps
ListsAdd problemNote to the end of rowValues and save it as rowValues.Add problemNote to the end of rowValues and save it as rowValues.
Google SheetsGoogle SheetsAdd a row to sheetName in spreadsheetUrl.Add a row to sheetName in spreadsheetUrl.
ValuesAdd 1 to rowsWritten.Add 1 to rowsWritten.
ValuesShow in the output: Rows written: rowsWritten as text of pagesCaptured as text pages looked at.Show in the output: Rows written: rowsWritten as text of pagesCaptured as text pages looked at.