Mirror your Procore submittal log into a Google Sheet

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.

Deterministic Code
ProcoreGoogle SheetsOperationsData Sync
PromptCreate

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.

Example output

Tab: Riverside Medical Center Submittal # | Title | Spec Section | Status | Ball In Court | Revision | Submit By | Due Date | Approved Date 03-100 | Concrete Mix Design | 03 30 00 | Approved | Closed | 0 | 2026-07-14 | 2026-07-28 | 2026-07-25 05-210 | Structural Steel Shop Drawings | 05 12 00 | Revise and Resubmit | Miller Steel | 1 | 2026-07-21 | 2026-08-04 | 09-400 | Tile Samples | 09 30 00 | Open | Design Architect| 0 | 2026-08-03 | 2026-08-17 | Tab: Northgate Warehouse Expansion Submittal # | Title | Spec Section | Status | Ball In Court | Revision | Submit By | Due Date | Approved Date (header row only, no submittals logged yet)

What does this prompt do?

  • Every weekday at 6am, pulls the submittal log for each of your active Procore projects and writes it into a shared Google Sheet, one tab per project.
  • Replaces the contents of each tab on every run, so the sheet is always a clean picture of where things stand today rather than a growing list of stale rows.
  • Gives every project a consistent set of columns: submittal number, title, spec section, status, ball in court, revision, submit by date, due date, and approved date.
  • Lets architects, owners, and subcontractors check submittal status in a spreadsheet they already have access to, with no Procore licence and no manual export.

What do I need to use this?

  • A Procore account that can see the projects and submittals you want to share
  • A Google account and one spreadsheet set aside for the submittal log
  • The link to that spreadsheet, so the workflow knows where to write
  • A view only share on the spreadsheet for the outside parties who need to follow along

How can I customize it?

  • Change the timing: run it once every weekday morning, twice a day, or only on Mondays.
  • Limit which projects get a tab, for example only the jobs currently in construction rather than every active project.
  • Adjust the columns or their order if your team tracks something extra, such as the responsible contractor or the submittal type.
  • Point it at a second spreadsheet so each client or owner gets their own copy with only their project on it.

FAQs

Do the people reading the sheet need a Procore licence?
No, and that is the whole point. Anyone you share the Google Sheet with can see current submittal status without a Procore seat, so architects, owners, and subcontractors stay in the loop without adding cost.
Will this overwrite notes I type into the sheet?
Yes, within the columns it manages. Each run replaces the contents of the project tab so the data stays accurate. If your team wants to add commentary, keep it on a separate tab in the same spreadsheet and it will be left alone.
What happens to a project that has no submittals yet?
It still gets a tab with the header row in place, so the sheet stays consistent and nobody hits a blank or broken tab. Rows appear as soon as submittals exist in Procore.
How up to date is the sheet during the day?
It reflects Procore as of the last run, so with a 6am schedule it shows where things stood that morning. If your team needs fresher numbers, run it more than once a day.
What if we add a new project in Procore?
It gets picked up on the next run and a new tab is created for it automatically, so you do not have to set anything up when a job starts.

Related templates

Weekly Amazon S3 bucket security audit posted to Slack

Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.

Amazon S3
Slack Bot
Google Sheets
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Draft polite follow-ups for emails that never got a reply

Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.

Aurinko
Google Sheets
Slack Bot
Agentic Task
Flag VIP client emails in Zoho Mail and alert your team

Keep a spreadsheet of your most important senders, and every email from one gets labeled, posted to your team channel, and logged automatically.

Zoho Mail
Google Sheets
Slack Bot
Deterministic Code
Send Yotpo review requests when Shopify orders ship

The moment an order is fulfilled, we register it with Yotpo so the review request is timed off real delivery, and we log every sync so failures never go unnoticed.

Shopify
Yotpo
Google Sheets
Deterministic Code
Reconcile Shopify sales against Zoho Books every night

Every night at 11pm we compare the day's Shopify orders with your Zoho Books invoices and payments, and flag only what does not match.

Zoho Books
Shopify
Google Sheets
+1
Agentic Task

Stop re-keying submittal status into spreadsheets

Let the submittal log update itself every morning, so the people outside Procore always see the current picture.