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.
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?
What happens if someone drops a Google Doc, Sheet, or Slide in the intake folder?
How do I confirm an import actually worked?
Can my agency drop files without a NetX login?
Can I run this more often than every 15 minutes?
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.