Auto-import Google Drive deliverables into NetX

Every 15 minutes, pull new agency deliverables from a Google Drive intake folder into NetX and log each ingest in a Google Sheet.

Deterministic Code
Google DriveNetXGoogle SheetsMarketingOperationsData SyncDocument Processing

Build a code workflow that runs on a cron every 15 minutes to sweep a designated Google Drive "DAM intake" folder for new creative deliverables, import each new file into a target NetX folder, and append a row to a Google Sheets ingest log so producers can verify what landed.

Trigger: cron, every 15 minutes.

On each run:

1. Determine the cursor. Read the most recent timestamp from the Google Sheets ingest log (the last appended row's timestamp column). If the log is empty, fall back to a stored cursor or the workflow start time. This becomes the modifiedTime lower bound for the sweep.

2. Call Google Drive "List Files" scoped to the configured intake folder ID, filtering with a query that requires the parent folder and modifiedTime greater than the cursor. Request the fields needed downstream: id, name, mimeType, modifiedTime, and owners (email).

3. For each returned file:

a. Skip Google-native files (mimeType starting with application/vnd.google-apps.) such as Docs, Sheets, and Slides. They have no binary export, and we do not want to guess a format.

b. Call Google Drive "Download File Content" to fetch the raw bytes.

c. Call NetX "Import Asset (Upload File)" to upload the bytes into the configured NetX destination folder ID, using the original Drive filename. Capture the new NetX asset ID from the response.

d. Call Google Sheets "Append Values" on the configured spreadsheet and tab to append one row: [originalFilename, netxAssetId, driveOwnerEmail, ingestTimestampUtcIso8601].

4. Because the cursor for the next run is derived from the most recent timestamp appended to the Sheet, files are never re-imported.

Workflow inputs to expose:

- Google Drive intake folder ID

- NetX destination folder ID

- Google Sheets spreadsheet ID and sheet/tab name for the ingest log

Credentials: Google Drive (OAuth), NetX (site URL + API token), Google Sheets (OAuth). Log per-file outcomes (imported, skipped-google-native, failed) so a single bad file does not break the whole sweep.

Additional information

What does this prompt do?
  • Sweeps a Google Drive intake folder every 15 minutes for new agency or contractor deliverables.
  • Uploads each new file into a designated NetX folder, keeping the original filename.
  • Logs every ingest in a Google Sheet with the filename, the new NetX asset ID, the Drive owner email, and the timestamp so producers can verify what landed.
  • Skips Google Docs, Sheets, and Slides so the import only handles real binary creative files.
What do I need to use this?
  • A Google account with access to the Drive intake folder and the logging Sheet.
  • A NetX site URL and API token for the instance you want assets to land in.
  • The Drive folder ID where agencies drop deliverables and the NetX folder ID where they should be archived.
  • A Google Sheet (with a header row) to use as the ingest audit log.
How can I customize it?
  • Change how often the sweep runs, from every few minutes during a live shoot to once a day for slower drops.
  • Point it at a different Drive intake folder or a different NetX destination folder per campaign or brand.
  • Add columns to the audit log, like file size, MIME type, or a link back to the NetX asset.
  • Route different file types into different NetX folders, for example videos into one folder and stills into another.

Frequently asked questions

Will the same file ever be imported into NetX twice?
No. Each run reads the most recent timestamp from the Google Sheets log and only picks up files modified after that point, so already-imported files are skipped.
What happens if someone drops a Google Doc, Sheet, or Slide in the intake folder?
Those files are skipped on purpose. The workflow only handles standard binary deliverables like PDFs, images, and videos so it never has to guess a format for Google-native files.
How do I confirm an import actually worked?
Every successful import appends a row to the Google Sheet with the original filename, the new NetX asset ID, the Drive owner email, and the ingest timestamp. The Sheet is the audit log producers and agencies can spot-check.
Can my agency drop files without a NetX login?
Yes. They only need write access to the Drive intake folder. The workflow uses your NetX credentials to perform the import, so external collaborators never need NetX seats.
Can I run this more often than every 15 minutes?
Yes. The schedule is a knob. Speed it up for live event coverage when files need to land in the DAM within minutes, or slow it down for weekly batch handoffs.

Stop hand-uploading agency files into your DAM.

Connect Google Drive, NetX, and a Google Sheet once, and Geni keeps the intake folder flowing into NetX every 15 minutes with a full audit log.