Recipe · Places

Google Maps place details

Opens each place this profile collected into Places and fills in the phone number, website and full postal address that a results card does not carry. One page load per place, so it is a deliberate second pass rather than part of the search — collect first, then enrich the rows worth reaching. Signed out.

On this page

What it does

Opens each place already in Places and fills in the phone number, website and full address a results card does not carry. One page load per place, so run it on the rows worth reaching rather than on everything.

It runs against one profile, through that profile's own proxy and with its own cookies — so the pages load the way that account's owner would see them. It navigates, so give it a profile whose session you are happy to have in use.

One profileIts own proxy and cookiesThe Places table

The 9 steps

The real tree, read out of the pack the launcher ships. Indentation is nesting: the steps under a loop run once per row, and the ones under a branch run only when the condition above them holds. Every {{…}} is a value filled in at run time — from the row being walked, from a setting on the run, or from the profile itself.

loadRowsLoad this profile's placesLoad Places into rows
evaluateStamp the passRun script
loopEach placeLoop forEach

Each time

setVarClear the last placeSet details
gotoOpen the listingGo to {{loop.item.place_url}}on failure: continue
waitWait
evaluateRead the detailsRun scripton failure: continue
saveRowsFill the row inSave to Placeson failure: continue
waitWait

Each of those is one of the step types on the automation reference, with the same fields the editor shows and the same fields an agent is handed over the local API.

The tables it uses

These load with the recipe. A dataset is a typed table your workspace owns — the columns are named and typed up front so the steps can address them, and every one of them is yours to rename, extend or fill from a file afterwards.

Places

readswrites

Businesses and locations as a listings page drew them: name, category, address, rating and a link back, keyed so a second run updates rather than duplicates.

row_key
Key · text
name
Name · text
category
Category · text
address
Address · text
rating
Rating · number
reviews
Reviews · number
place_url
Listing · url
phone
Phone · phone
website
Website · url
details_at
Checked · datetime
source_url
Found on · url
platform
Platform · text
collected_at
Collected at · datetime
profile
Collected by · profile
logged_in
Signed in · select · Signed out | Signed in

Re-running updates the row it already wrote rather than adding a second one. That is what the match column in the save step is for, and it is the difference between a status check and a table that doubles in size every pass.

Loading it

In the launcher, open Automations, choose Load a starter pack, and pick Places. Untick anything you do not want. The tables land first, then the workflows, then a project called Local search that links them together.

What arrives is an ordinary automation row. Open it in the editor, change a step, rename it, delete it — nothing in the app treats it as special afterwards, and loading the pack a second time makes a fresh copy rather than overwriting the one you edited. Tables are the opposite: an existing table of the same name is reused and keeps its rows.