Would an alternative to this approach be to let your customers copy a spreadsheet of yours that already has an API function connection to your data? This would avoid the need to create users and upserts and all that, no? Or am I missing something?
Yup, that would be another valid approach. We felt that the product experience was a lot cleaner / more in line with our general philosophy if we could write directly to the user's sheet, rather than ask them to import data from somewhere else, which is why we went this route.
When copying a spreadsheet in Google Sheets, are you able to copy the API functions as well?