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:
var x; if (Connect.clicked) { var headers = ‘ {“ user”: ”sales @frevvo.com”, ”password”: ” < access token > ” }’; var readquery = ‘/google/spreadsheets / query / key / < spreadsheetkey > /w/Employees’; eval(‘x = ’+http.get(readquery, headers)); var opts = [”]; for (var i = 0; i < x.results.length; i++) { opts[i + 1] = x.results[i].employeeid + ‘ = ’+x.results[i].firstname + ‘‘ +x.results[i].lastname; } EId.options = opts; }
- 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.