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. responses
:
- Make a copy of your
responses
sheet, and name one responses live
and the other responses dev
- 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 responses dev
.
- For your production stage, use Lambda’s environment variables to set it to
responses live
.
- 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 responses live
.
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!