Weekly institution publication tracker in Google Sheets

By General Input

Every Monday morning, pull your university or research lab's new papers from OpenAlex and append them to a living Google Sheet, no manual logging.

Integrations

  • OpenAlex
  • Google Sheets

Type

Deterministic Code

Categories

  • Operations
  • Marketing

Build me a deterministic code workflow that keeps a Google Sheet up to date with every new paper published by my institution, according to OpenAlex. No reasoning or LLM steps, just a fixed pipeline.

Trigger: a cron schedule that runs every Monday at 6am in my local time zone.

Inputs (configured once at setup): the OpenAlex institution ID or ROR I want to track (for example W or I-prefixed OpenAlex ID, or a ror.org ID for my university or research lab), the Google Sheets spreadsheet ID, and the tab name where new papers should land.

Step 1: call the OpenAlex Search Works operation with filter=authorships.institutions.id:<institution ID> combined with from_publication_date set to the date of the previous run (default to 7 days ago on first run). Use select=id,doi,display_name,publication_date,authorships,primary_location,cited_by_count,open_access to keep the payload small. Paginate through all matching results.

Step 2: call the Google Sheets Get Values operation against the configured tab to read back the existing OpenAlex Work IDs that are already logged (the column that stores the OpenAlex ID per row).

Step 3: in code, drop any OpenAlex result whose ID is already present in the sheet. This is the deduplication step; never write a paper that's already there.

Step 4: for the remaining new papers, call the Google Sheets Append Values operation once, passing one row per new paper with these columns in this order: publication date, title, DOI, first author display name, all author institutions (comma-joined), journal or source display name (from primary_location.source.display_name), open access status (open_access.oa_status), citation count, and the OpenAlex URL (https://openalex.org/<id>). Use valueInputOption USER_ENTERED so dates and links render correctly.

If there are no new papers, the workflow should finish cleanly without writing anything. Handle the empty-sheet case on first run (no existing IDs to dedupe against, so every result is appended). Keep the whole thing simple, deterministic, and easy for a non-technical research office or comms team owner to re-run or inspect.

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