Google Sheets modules
In an Adobe Workfront Fusion scenario, you can automate workflows that use Google Sheets, as well as connect it to multiple third-party applications and services.
For instructions about connecting your Google Sheets account to Workfront Fusion, see Create a connection to Adobe Workfront Fusion - Basic instructions
Access requirements
You must have the following access to use the functionality in this article:
New: Standard
Or
Current: Work or higher
Current: No Workfront Fusion license requirement
Or
Legacy: Workfront Fusion for Work Automation and Integration
New:
- Select or Prime Workfront package: Your organization must purchase Adobe Workfront Fusion.
- Ultimate Workfront package: Workfront Fusion is included.
Or
Current: Your organization must purchase Adobe Workfront Fusion.
For more detail about the information in this table, see Access requirements in documentation.
For information on Adobe Workfront Fusion licenses, see Adobe Workfront Fusion licenses.
Prerequisites
To use Google Sheets modules, you must have a Google account.
Google Sheets API information
The Google Sheets connector uses the following:
Google Sheets modules and their fields
When you configure Google Forms modules, Workfront Fusion displays the fields listed below. Along with these, additional Google Sheets fields might display, depending on factors such as your access level in the app or service. A bolded title in a module indicates a required field.
If you see the map button above a field or function, you can use it to set variables and functions for that field. For more information, see Map information from one module to another.
Triggers
Watch Rows
Retrieves values from newly added rows in the spreadsheet.
The module retrieves only new rows that have not previously been filled in. The trigger does not process an overwritten row.
Select whether the spreadsheet contains a header row.
-
Yes
The module doesn't retrieve the header row as output data.
Variable names in the output are called by the headers.
-
No
The module also retrieves the first table row
Variable names in the output are called A, B, C, D, and so on.
A1:F1
.A1:F1
.-
Formatted value
The values are calculated and formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if
A1
is1.23
andA2
is=A1
and formatted as currency, thenA2
would return"$1.23"
. -
Unformatted value
The values are calculated, but not formatted in the reply. For example, if
A1
is1.23
andA2
is=A1
and formatted as currency, thenA2
would return the number"1.23"
. -
Formula
The values are not calculated. The reply includes the formulas. For example, if
A1
is1.23
andA2
is=A1
and formatted as currency, thenA2
would return"=A1"
.
-
Serial number
Date, time, datetime, and duration fields are outputted as doubles in "serial number" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.
-
Formatted string
Date, time, datetime, and duration fields are outputted as strings in their given number format (which is dependent on the spreadsheet's locale).
Actions
Add a Row
This module appends adds a row to a sheet.
When you configure Google Sheets modules, Workfront Fusion displays the fields listed below. Along with these, additional Google Sheets fields might display, depending on factors such as your access level in the app or service. A bolded title in a module indicates a required field.
If you see the map button above a field or function, you can use it to set variables and functions for that field. For more information, see Map information from one module to another.
Select whether you want to select the spreadsheet and sheet manually or by mapping.
Note: Manual mapping is useful, for example, when a new spreadsheet is created in an Workfront Fusion scenario and you want to add data in the newly created spreadsheet directly in the scenario.
Select whether the spreadsheet contains the header row.
-
Yes
The module doesn't retrieve the header row as output data.
Variable names in the output are called by the headers.
-
No
The module also retrieves the first table row
Variable names in the output are called A, B, C, D, and so on.
-
User entered
The values are parsed as if the user typed them into the UI. Numbers remain numbers, but strings may be converted to numbers, dates, or other formats following the same rules that are applied when entering text into a cell via the Google Sheets UI.
-
Raw
The values that the user enters are not parsed and are stored as they were entered.
Specify how existing data is changed when new data is input.
-
Insert rows
Rows are inserted for the new data.
-
Overwrite
The new data overwrites existing data in the areas where it is written. Adding data to the end of the sheet inserts new rows or columns so the data can be written.
Add a Sheet
Creates a new sheet in a selected spreadsheet.
-
Title
Enter the name of the new sheet.
-
Index
Enter the sheet position. The default is 0 (which places the sheet in the first place).
Clear a Cell
Deletes a value from a specified cell.
A5
.Clear a Row
Deletes values from a specified row.
23
.Create a Spreadsheet
Enter the locale of the spreadsheet in one of the following formats:
- an ISO 639-1 language code such as
en
- an ISO 639-2 language code such as
haw
, if no 639-1 code exists - a combination of the ISO language code and country code, such as
en_US
The amount of time to wait before volatile functions are recalculated:
-
On change
Volatile functions are updated upon every change.
-
On change and every minute
Volatile functions are updated upon every change and every minute.
-
On change and hourly
Volatile functions are updated upon every change and hourly.
Select the default format of all cells in the spreadsheet.
Text: Text formatting. Example: 1000. 12
Number: Number formatting. Example: 1,000.12
Percent: Percent formatting. Example: 10. 12%
Currency: Currency formatting. Example: $1,000.12
Date: Date formatting. Example: 9/26/2008
Time: Time formatting. Example: 3:59:00 PM
Date time: Date and Time formatting. Example: 9/26/08 15:59:00
Scientific: Scientific number formatting. Example: 1. 01E+03
Delete a Row
Deletes a specified row.
23
Delete a Sheet
Deletes a specific sheet.
Get a Cell
Retrieves a value from a selected cell.
A6
-
Formatted value
The values are calculated and formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if
A1
is1.23
andA2
is=A1
and formatted as currency, thenA2
would return"$1.23"
. -
Unformatted value
The values are calculated, but not formatted in the reply. For example, if
A1
is1.23
andA2
is=A1
and formatted as currency, thenA2
would return the number"1.23"
. -
Formula
The values are not calculated. The reply includes the formulas. For example, if
A1
is1.23
andA2
is=A1
and formatted as currency, thenA2
would return"=A1"
.
-
Serial number
Date, time, datetime, and duration fields are outputted as doubles in "serial number" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.
-
Formatted string
Date, time, datetime, and duration fields are outputted as strings in their given number format (which is dependent on the spreadsheet's locale).
Make an API Call
This action module allows you to perform a custom API call.
https://sheets.googleapis.com/v4/
.{"Content-type":"application/json"}
. Workfront Fusion adds the authorization headers for you.Add the body content for the API call in the form of a standard JSON object.
Note:
When using conditional statements such as if
in your JSON, put the quotation marks outside of the conditional statement.
Update a Cell
A5
-
User entered
The values are parsed as if the user typed them into the UI. Numbers remain numbers, but strings may be converted to numbers, dates, or other formats following the same rules that are applied when entering text into a cell via the Google Sheets UI.
-
Raw
The values that the user enters are not parsed and are stored as they were entered.
Update a Row
This module allows you to change the cell content in a selected row.
Select whether you want to select the spreadsheet and sheet manually or by mapping.
Note: Manual mapping is useful, for example, when a new spreadsheet is created in the Workfront Fusion scenario and you want to add data to the newly created spreadsheet directly in the scenario.
Select whether the spreadsheet contains the header row.
-
Yes
The module doesn't retrieve the header row as output data.
Variable names in the output are called by the headers.
-
No
The module also retrieves the first table row
Variable names in the output are called A, B, C, D, and so on.
-
User entered
The values are parsed as if the user typed them into the UI. Numbers remain numbers, but strings may be converted to numbers, dates, or other formats following the same rules that are applied when entering text into a cell via the Google Sheets UI.
-
Raw
The values that the user enters are not parsed and are stored as they were entered.
Searches
Get Range Values
A1:D25
.A1:F1
. If you leave the field empty, Workfront Fusion treats the first row of the specified range as the header.-
Formatted value
The values are calculated and formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if
A1
is1.23
andA2
is=A1
and formatted as currency, thenA2
would return"$1.23"
. -
Unformatted value
The values are calculated, but not formatted in the reply. For example, if
A1
is1.23
andA2
is=A1
and formatted as currency, thenA2
would return the number"1.23"
. -
Formula
The values are not calculated. The reply includes the formulas. For example, if
A1
is1.23
andA2
is=A1
and formatted as currency, thenA2
would return"=A1"
.
-
Serial number
Date, time, datetime, and duration fields are outputted as doubles in "serial number" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.
-
Formatted string
Date, time, datetime, and duration fields are outputted as strings in their given number format (which is dependent on the spreadsheet's locale).
List Sheets
This module returns a list of all sheets in a spreadsheet.
Search Rows
Searches rows using the filter options.
A-F
Set the filter that you want to use to search for rows.
-
Formatted value
The values are calculated and formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if
A1
is1.23
andA2
is=A1
and formatted as currency, thenA2
would return"$1.23"
. -
Unformatted value
The values are calculated, but not formatted in the reply. For example, if
A1
is1.23
andA2
is=A1
and formatted as currency, thenA2
would return the number"1.23"
. -
Formula
The values are not calculated. The reply includes the formulas. For example, if
A1
is1.23
andA2
is=A1
and formatted as currency, thenA2
would return"=A1"
.
-
Serial number
Date, time, datetime, and duration fields are outputted as doubles in "serial number" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.
-
Formatted string
Date, time, datetime, and duration fields are outputted as strings in their given number format (which is dependent on the spreadsheet's locale).
Search Rows (Advanced)
Returns results matching the given criteria.
Use the Google Charts Query Language. Example: select * where B = "John"
For more information on Google Charts Query Language, see Query Language Reference in the Google documentation.
Usage limits
If the error 429: RESOURCE_EXHAUSTED
occurs, you have exceeded the API rate limit.
The Google Sheets API has a limit of 500 requests per 100 seconds per project, and 100 requests per 100 seconds per user. Limits for reads and writes are tracked separately. There is no daily usage limit.
See more details at developers.google.com/sheets/api/limits.
Tips & Tricks
Get empty cells from a Google Sheet
To get empty cells, you can use the Search Rows (Advanced) module. Use this formula to get the columns that are empty.
select * where E is null
Here “E” is the column, and “is null” is the condition. You can create a more advanced query using Google query language. For more information, see Google Query Lang in the Google documentation.
Add a button in a sheet to run a scenario
-
In Workfront Fusion, insert the Webhook > Custom webhooks module in the scenario and configure it. For instructions, see Webhooks.
-
Copy the webhook’s URL.
-
Execute the scenario.
-
In Google Sheets, choose Insert > Drawing… from the main menu bar.
-
In the Drawing window, Click the Text box icon
-
Design a button and click the Save and Close button in the top-right corner:
-
The button is placed in your worksheet. Click the three vertical dots in the button’s top-right corner:
-
Choose Assign script… from the menu.
-
Enter the name of your script (function), e.g.
runScenario
and click OK: -
Choose Tools > Script editor from the main menu bar.
-
Insert the following code:
-
The name of the function must correspond to the name you specified in step 9.
-
Replace the URL with the webhook’s URL you copied in step 2.
function runScenario() { UrlFetchApp.fetch("<webhook you copied>"); }
-
-
Press Ctrl+S to save the script file, enter a project name and click OK.
-
Switch back to Google Sheets and click your new button.
-
Grant the required authorization to the script:
-
In Workfront Fusion, verify that the scenario has successfully executed.
Storing dates in a spreadsheet
If you store a Date value in a spreadsheet without any formatting, it appears in the spreadsheet as text in ISO 8601 format. However, Google Sheets formulas or functions that work with dates that do not understand this text (Example: formula =A1+10
) display the following error:
To help allow Google Sheets to understand the date, format it with the formatDate
function. The correct format passed to the function as the second argument depends on the spreadsheet’s locale settings.
For more information on this function, see formatDate (date; format; [timezone]) in the article Date and time functions.
To determine the correct format:
-
In Google Sheets, choose File > Spreadsheet settings from the main menu to verify and set the locale.
-
After you have verified or set the proper locale, determine the corresponding date and time format by choosing Format > Number from the main menu. The format is displayed next to the Date time menu item:
-
To compose the correct format that should be passed to the formatDate() function, refer to the list of Tokens for date and time formatting.
Example:
For MM/DD/YYYY HH:mm:ss
format (for the United States locale):
Exploiting Google Sheets functions
To use a built-in function from Google Sheets, you can exploit it. For more information, see Use Google Sheets functions in the article Map an item using functions.
Prevent Google Sheets from changing numbers into dates
If a string of numbers that you are using as text is being interpreted as a date in a Google worksheet, you can pre-format the number as plain text to prevent this. For example, if you type 1-2019, intending it as text, Google may interpret it as a date.
- In Google Sheets, highlight the column or cell containing the number or numbers.
- Click Format > Number > Plain text.
Another workaround in Workfront Fusion is to type an apostrophe (') before a number, for example, '1-2019 or '1/47. The apostrophe does not display in the cell after the data is sent from Workfront Fusion.