This page preserves the retired n8n design for migration history. Do not run these workflows against current production data.

Retired

  • House-updates ingest (newsletter → Notion) is now the happenings-ingest Email Worker, and the Notion → site render path is the CF-native /api/sync-updates cron (every 15 min, computes only on change) — not the n8n updates-data.json commit described below.
  • Short.io stats/QR/create moved to Pages Functions — see shortio-migration.
  • The members roster is owned by RC Console D1 and published through its public member feed and outbox.
  • The former Notion roster source databases were retired and deleted.

Historical scope

The retired pipelines covered:

  • Members roster data (/members-data.json) and headshots (/members/*)
  • House updates feed (/updates-data.json)

Both outputs were committed into the repository so Cloudflare Pages redeployed the static site. Current member publishing begins in RC Console; current House Updates render through the Cloudflare sync path.

Historical members roster pipeline

Outputs

members-data.json is an array of:

[
  {
    "role": "President",
    "name": "First Last",
    "property_bio": "Short bio text",
    "property_headshot": ["https://.../members/headshot.jpg"]
  }
]

Headshots are stored under ihnyc-rc-landing/members/ and referenced by relative URLs in the JSON.

Notion pull requirements

  • Use a Notion Get All (or Get Many) node with Return All enabled.
  • Avoid filters that hide rows in the database view.
  • Ensure field names align with the Notion properties used in the code node.

Image handling (critical)

Notion file URLs expire. The workflow downloads each headshot and uploads it to the repo so the site uses permanent URLs.

Typical workflow (high level)

  1. Manual Trigger (or Notion Trigger)
  2. Notion: Get All Pages
  3. Code: Extract fields and headshot URLs
  4. Split In Batches (batch size 1)
  5. IF: Has headshot URL?
  6. HTTP Request: Download image
  7. Set Binary Data: Normalize filename
  8. GitHub: Upload image to /members/
  9. Merge: Combine items
  10. Code: Build members-data.json
  11. GitHub: Commit JSON file

Quick start prerequisites

  • n8n instance (cloud or self-hosted)
  • Notion integration + database id
  • GitHub PAT with repo scope for commits

House updates pipeline (Notion to updates-data.json)

Expected JSON shape

[
  {
    "week_of": "November 24, 2025",
    "updates": [
      {
        "id": "2025-11-24|unique-slug",
        "title": "Update Title",
        "body": "Markdown-formatted body text",
        "category": "dining",
        "department": "Dining Hall"
      }
    ]
  }
]

Typical workflow (high level)

  1. Notion: Get database pages from “House Updates”
  2. Code: Normalize fields into the expected JSON structure
  3. GitHub: Commit updates-data.json

Historical operational notes

The steps above are retained only to explain old commits and data shapes. Do not restore their credentials, run them to repair the current roster, or use them during an RC Console incident. Use RC Console identity and access instead.