Hi @natrixx, thanks for asking!
What I was referring to when mentioning the built-in versioning of Google Sheets is the version history where you can see who changed what when, and restore earlier versions.
But it’s entirely possible to build a staging functionality with Google Sheets too, even though it’s not quite built-in, and I have actually done it with our Jovo Studios #VoiceGame Brain Pain.
The key idea here is to use either single tabs/sheets or the entire spreasheet as stages, depening on your scope, i.e. if it’s only the responses that need to be staged, or the content of other sheets too.
So, in case of single sheets, e.g.
- Make a copy of your
responses sheet, and name one
responses live and the other
- Make the name of your responses sheet an enivronment variable like
CM_SHEET_RESPONSES. For your local development stage, use a
.env file with the
dotenv package to set the value of this variable to
- For your production stage, use Lambda’s environment variables to set it to
- Now you can work in
responses dev without it interfering with the live Skill. Once you’re ready to push the state of
responses dev live, do either of the following:
4a. Delete/archive the sheet
responses live, rename the sheet
resonses dev to
responses live, and make a fresh copy
responses dev from
4b. Change the value of the environment variable accordingly.
In case you need to have multiple sheets in stages, I would use entirely different spreadsheets per stage:
- Make a copy of your spreadsheet and invite the same service account user.
- Make the ID of your Google spreadsheet an enivronment variable like
CM_SHEET_ID , and use different values for your development and production stage.
- If you want to push your dev version life, I would do so by changing the value of
CM_SHEET_ID in the live version. You can then either archive, delete or reuse the previous production Spreadsheet.
Hope this helps! Please let me know if you have thoughts or questions to this approach!