Mirror your Procore submittal log into a Google Sheet

By General Input

Every weekday at 6am, refresh a Google Sheet with current submittal status for every active project, so stakeholders without a Procore seat can follow along.

Integrations

  • Procore
  • Google Sheets

Type

Deterministic Code

Categories

  • Operations

Every weekday at 6am, mirror my Procore submittal log into a Google Sheet so that architects, owners, and subcontractors who do not hold a Procore seat can still see current submittal status without anyone exporting it by hand. Use a cron trigger, Monday through Friday at 6am in my local timezone.

Start with Procore List Projects to get my company's active projects. For each active project, call Procore List Submittals to pull that project's full submittal log. Page through the results so a long log comes back complete rather than truncated to the first page.

Write each project's submittals into its own tab of a single Google Sheets spreadsheet, which I will identify by spreadsheet ID. Name each tab after the Procore project. Before writing, read the spreadsheet's existing tabs with Get Spreadsheet and create any missing project tab with Batch Update Spreadsheet, so a newly started project does not break the run.

Use exactly these columns, in this order, with a header row in row 1: submittal number, title, spec section, status, ball in court, revision, submit by date, due date, approved date. Do not reorder, rename, or insert columns. People will build filters and pivot tables on top of this sheet, so the column layout has to stay identical from run to run.

Each run must replace the whole tab rather than append to it. Clear the tab's data range with Google Sheets Clear Values first, then write the header row plus all current submittal rows starting at A1 with Google Sheets Update Values. This matters: an append only sheet drifts out of sync as submittals change status, and clearing before writing also removes leftover rows from a previous run when the log gets shorter. The sheet should always read as a clean current snapshot.

If a project has no submittals, still write the header row to its tab. An empty log should produce a valid empty table, never a blank or broken tab.

Write every cell as a plain value rather than a formula, and send values as raw text so that Sheets does not reinterpret submittal numbers like 03-100 as dates. Format all three date columns as YYYY-MM-DD. When a field is missing on a submittal, for example an approved date on something still in review, write an empty cell so every row keeps the same number of columns and nothing shifts left. Sort rows by submittal number so the ordering is stable between runs.

Every step here is a known list or write operation over structured fields, so build this as deterministic nodes. Do not summarize, reword, or interpret anything: copy status, ball in court, and every other value through exactly as Procore reports it.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seatsBuild audience segments from product usage and push to LoopsTurn the people who engage with your posts into Pipedrive leads