Let's take a look at how you can update existing values in a sheet. It’s another common scenario that can be used for a variety of tasks (e.g. limiting the number of submissions for a particular form or creating a sequentially increasing counter). We’ll use this sample Google Sheet to discuss. It has a row for each employee: Employee Id, Location and Extension.
On This Page:
First, it’s important to note that Google Sheets is not a transactional system like a database and results can be unpredictable if multiple users update the same Sheet at the same time.
Step 1: Obtain an access token
As before, you have to first get an access token. This is a one-time step.
Open your web browser and login to your Google Account
Go to:
Live Forms Online Cloud customers: https://app.frevvo.com/google/consent
- Live Forms In-house customers: http://<your frevvo server domain name>/google/consent
- Copy and Save the access token. THIS IS VERY IMPORTANT. The token is used as the password for wizards and rules.
Click on the Accept button.
Step 2: Add the Business Rule
We’ve created a simple example form. Select the employee, a location and a new extension number. Click the Update Google Sheet button, wait a few seconds and see that the sheet was successfully updated. We did this using this rule:
if (UpdateGoogleSheet.clicked) { var eid = EId.value; // Unique key in the Google Sheet row var headers = {"user":"<google id>","password":"<access token>"}’; var updatequery = ‘/google/spreadsheets/update/key/<spreadsheetkey>?wsname=Locations & query = employeeid = ”‘+eid + ‘”‘; var updateparams = ‘ & updates = location = ’+Location.value + ‘, extension = ’+Extension.value; eval(‘x = ’+http.put(updatequery + updateparams, null, headers, false)); }
- It’s triggered by clicking on the Update Google Sheet button.
- We setup headers and an update query using your access token and spreadsheet key (the long ID in the URL of the Google Sheet).
- Add updateparams: we’re updating location and extension with new values.
- Run the update – perform an http.put() and eval the results.
Try it yourself using the sample form.