A lightweight integration that enables ShotGrid (SG) users (coordinators and production teams) to:
- Push shot/version data from SG to a Google Sheet
- Collect artist feedback and notes in the sheet
- Send those notes back into ShotGrid
Built with Firebase Cloud Functions (Python), the Shotgun API, and Google Apps Script.
google-shotgrid-sheet-send-main/
├── functions/ # Firebase backend code (Python)
│ ├── main.py # Main Flask handler with SG & GSheets integration
│ ├── requirements.txt # Python dependencies
│ └── willow.json # Will contain your secrets (consider secret manager)
├── google_appscript/ # Google Sheets-side logic in JavaScript
│ ├── menu.js # Adds UI to the Sheet
│ ├── note_prep.js # Prepares notes from Sheet content
│ ├── sendNotes.js # Sends notes back to ShotGrid
│ ├── util.js # Shared helpers
│ ├── version_sort.js # Sorts versions in Sheet
│ └── sheets_cell_formulae.txt # Spreadsheet formulas
├── firebase.json # Firebase config
└── README.md # Setup instructions
- Firebase Cloud Functions for serverless backend (Firebase Docs)
- Shotgun API (
shotgun_api3
) (SG API Docs) - ShotGrid Action Menu Item (ShotGrid Developer Docs – Action Menu Items)
- Google Sheets API via
gspread
(Google Sheets API Docs) - Google Apps Script frontend (Apps Script Docs)
-
Clone the repo and create a Python virtual environment:
cd functions python3.10 -m venv venv source venv/bin/activate pip install -r requirements.txt
-
Prepare a
.env
file in thefunctions/
directory to store your credentials - example in willow.json:SG_API_KEY=your_shotgrid_script_key SG_URL=https://yourstudio.shotgrid.autodesk.com SG_SCRIPT_NAME=your_script_name GOOGLE_CREDENTIALS_JSON=path/to/your/google/creds.json TEMPLATE_SHEET_URL = https://docs.google.com/spreadsheets/d/1MjhyLz6LmmsFQBFMFQj37srRK95ksbl91wiz3a0hNTY/edit?usp=sharing --- THE TEMPLATE SHEET URL is added by default but can be changed in main.py! (make sure to give your service account access!)
-
Deploy to Firebase:
firebase deploy --only functions
-
Check logs during development and debugging:
firebase functions:log
- Open your Google Sheet
- Navigate to
Extensions > Apps Script
- Copy over the JavaScript (.gs) files from
google_appscript/
:menu.js
for the custom Sheet menusendNotes.js
,note_prep.js
,util.js
, etc.
- Save the project and click Deploy > Test deployments or bind to your function endpoint.
You can set up all your Google Sheets appsript functions as an extension that you can make available via the google sheets marketplace sdk
MIT License. See LICENSE
file.