AppSheet Automation Preview Release - Primer v1.2 (1) - Compressed
AppSheet Automation Preview Release - Primer v1.2 (1) - Compressed
Version 1.2
Disclaimer
This primer describes the basic capabilities of the AppSheet Automation Preview release. The
Preview features described are not production ready and are intended for use in test
environments only. We do not recommend using these Preview features in p roduction or
with p
roduction data sources. The Preview release is subject to change at any time and is
provided to you for evaluation purposes only, without any SLAs. For more information, see the
product launch stages.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 2
AppSheet Automation: Preview Release Primer
Version History
Version 1.1 Added a new Sheets eventing use case - Conference leads appointments
generator.
Version 1.2 Added new concepts and use cases for Employee onboarding and Document
processing.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 3
AppSheet Automation: Preview Release Primer
Version History
Automation
Bot
Process
Step
Run a task
Branch on a condition
Call a process
Return values
Task
Event
Document Type
Extraction Confidence
Employee Onboarding
Automation Monitoring
Contact Sync
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 4
AppSheet Automation: Preview Release Primer
File Processing
Failure Handling
Creating an App
Appendix
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 5
AppSheet Automation: Preview Release Primer
Appsheet Automation:
This section describes some of the basic concepts introduced with the preview release of
AppSheet Automation.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 6
AppSheet Automation: Preview Release Primer
Automation
AppSheet A
utomation enables you to automate common business processes and document
based workflows. You can access the new automation features from the new
AutomationPREVIEW tab, as shown in the navigation image below.
The platform encourages reusability, allowing you to build components once and use them in
various automations, saving time and accelerating development. Events, processes and tasks
are completely re-usable. That means you can reuse tasks within new processes, reuse
processes within new bots, reuse events within new bots etc.
Bot
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 7
AppSheet Automation: Preview Release Primer
Bots are used to create automations by combining events with processes. Bots can be
configured to trigger a process on detection of a specified event or according to a
predetermined schedule. Once enabled, bots run in the background to listen for event
triggers or trigger processes on a schedule. To terminate the process automation, you can
disable the bot.
In the example shown below, the bot is configured to trigger the “Sync Contacts” process
anytime a new “Contact” record is created in Salesforce. This bot continues to listen for the
order creation event and fire the associated process when it event occurs until it is disabled.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 8
AppSheet Automation: Preview Release Primer
Process
A process represents a typical business process. For example, an “order approval” is a
business process. A process contains the following elements:
● A sequence of steps
● An input
● An output (this is optional)
● An event that triggers the process
For example, in the screenshot below, you can see a sample “Sync Contacts” process. In this
example, the event that triggers the process is the addition of a new contact record.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 9
AppSheet Automation: Preview Release Primer
Step
A step is a basic element in a process that defines a task to be carried. A process can have
several steps.
● Run a task
● Branch on a condition
● Wait for a condition
● Call a process
● Return values
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 10
AppSheet Automation: Preview Release Primer
Run a task
This step type allows you to run one of the following task types - “Send an email”, “Send a
notification”, “Send an SMS”, “Change data”, “Call a webhook” or “Create a new file”.
In our example, the step is “Update contact list.” The step runs a task (of type “Change data”)
against the data provided to the process on the i nput. In this case, the input is the new contact
record.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 11
AppSheet Automation: Preview Release Primer
Branch on a condition
This step type allows you to implement conditional logic in your process; for example, if
<condition> - then <do some step> - else <do some other step>. The
condition value can be any valid expression.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 12
AppSheet Automation: Preview Release Primer
Call a process
This step type allows you to invoke another process within the same application. You can pass
data to the process being invoked using literal values or expressions.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 13
AppSheet Automation: Preview Release Primer
Return values
This step type allows you to return specific values from within your process and access those
values during later steps. For example, you may want to have a parent process invoke a
sub-process, and use the return value of the sub-process to determine the next steps to be
performed.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 14
AppSheet Automation: Preview Release Primer
In the example above, a parent process has a step called “Send for approval” that returns an
approval decision using the R eturn values step type shown above. Once the return value is set,
it is accessible within the parent process through the expression “[Send for
approval].[ApprovalStatus].”
Task
As noted above, a step defines a t ask to be carried out in the process. There are six types of
tasks:
● Send an email
● Send a notification
● Send an SMS
● Change data
● Call a webhook
● Create a new file
Our example shows configuration of a “Change data” task type along with the associated data
action.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 15
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 16
AppSheet Automation: Preview Release Primer
Event
An e
vent represents a change to an entity (table). Each event has the following attributes:
● Event type. This attribute indicates the kind of change that triggers the event.
● Condition (optional). If specified, this condition is checked before firing the Action.
● Target data. Indicates which schema would trigger the event, if changed.
● Update event. Indicates the type of schema change that would trigger the event (i.e.
additions, updates, deletions, etc.).
In our example, as shown in the image below, the New Event is a “Data Change” event only
triggered by additions to the “Contact” data schema.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 17
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 18
AppSheet Automation: Preview Release Primer
However, if the ForEachRowInTable option is enabled, the option to specify a filter condition
appears. Use this option if you want to run a process for each row of data in the table.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 19
AppSheet Automation: Preview Release Primer
Document Type
Document types are available in document-based workflows. AppSheet automation classifies
document types based on the document's content, regardless of mime type or extension
type. For example, document types i nclude: receipt, invoice, resume, work order, W9, etc.
The document type does not refer to mime types (such as spreadsheet, presentation, or
photo) or extensions (such as .pdf, .docx, .
png). An document type can be represented
in multiple formats depending on how it is received - exported as a PDF, scanned as a PDF,
photographed as a .png, or otherwise. In any of those cases the document type remains
"invoice" because of its content.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 20
AppSheet Automation: Preview Release Primer
Folders are fixed schema tables, where the attributes (table columns) are the properties of
files (such as name, size, last modified at, etc.) and the entries (table rows) are the files
themselves. In the AppSheet Automation Preview release, each folder should contain files of
the same document type, a lthough the files can vary in mime and extension type.
For the Preview Release, f older data sources can be either implicitly used as part of
configuring document extraction, or e xplicitly used as data sources for building views to
show documents in the application. For example, a "user manual view" in an application can
explicitly use a Google Drive folder data source containing documents that can be viewed,
updated, added, or deleted within an application.
Extraction Confidence
Some source documents may have defects that result in extraction accuracy that is less than
100%. For example, some documents may be based on scanned sources, utilize complex
images, use unusual fonts, or have spelling errors or omissions. As a result, the extraction
service includes an extraction confidence score that is then used by the automation process
to determine if the extracted data should be manually reviewed. If the e xtraction confidence
score falls below the configured threshold, an exception flow is triggered to involve manual
review by a human.
Note: In the Preview Release, the confidence threshold cannot be adjusted by application
editors.
Before testing the AppSheet Automation preview features, make sure you have completed
the following steps:
Employee Onboarding
This brief tutorial shows you how to set up an automated process to onboard new employees.
When a new employee is added in a Google Sheet, AppSheet automatically emails a welcome
letter to that employee.
Implementing Employee Onboarding with AppSheet Automation involves the following steps:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 22
AppSheet Automation: Preview Release Primer
● Make sure you can log into the AppSheet Editor UI and access the Sample Automation
App you created as a prerequisite in Before you begin.
● Follow the steps in the Appendix to configure a E
mployee Entity from Google Sheets
data source and install the AppSheet Events Add-on.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 23
AppSheet Automation: Preview Release Primer
To create an event:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 24
AppSheet Automation: Preview Release Primer
Note: If you want to manually configure the event, you can navigate to the Events tab,
select C reate new event, and enter in the relevant details.
5. Enter A new Employee record is created as the event name and configure the event
as follows:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 25
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 26
AppSheet Automation: Preview Release Primer
Once your event has been created, your bot editor should look like this:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 27
AppSheet Automation: Preview Release Primer
1. In the R
un this process section of the editor, click +
Add a step. Type Send welcome
letter to employee into the text box and hit enter to automatically create an
empty step. This implicitly creates a process.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 28
AppSheet Automation: Preview Release Primer
2. Click on the Send welcome letter to employee s tep to expand its definition, as shown
below:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 29
AppSheet Automation: Preview Release Primer
To [Email]
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 30
AppSheet Automation: Preview Release Primer
Sincerely,
HR Manager
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 31
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 32
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 33
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 34
AppSheet Automation: Preview Release Primer
You have created and enabled your bot. All the required components, including the event,
process, and tasks, have been created. Each component can be accessed and edited from
individual tabs if required.
If you explore the Events, Tasks and Processes tabs, you can see the reusable artifacts that
have been generated when you were creating your bot. Each of these components can be
re-used inside processes and inside other bots.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 35
AppSheet Automation: Preview Release Primer
2. Add a new employee row to your sheet. You can copy a whole row (from a separate
sheet) and paste it into your employees sheet or you can manually enter values in each
cell
The ADD event is fired as soon as you are done entering values in the row (currently
the add-on has a 20 second wait as a default wait time to allow for data entry
manually)
3. As soon as the event is detected, the bot should send an email at the “To” address
configured in the task:
Automation Monitoring
As various bots are configured, events are detected and processes start executing, it
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 36
AppSheet Automation: Preview Release Primer
becomes important to keep a track of which executions were successful, which ones are
pending and which ones encountered errors. Automation monitoring is delivered as an
AppSheet app that can be easily accessed by clicking M
onitor on your bot definition.
In the current version of the monitoring app, you have two views 1) Automation Metrics View
(High level metrics for bots/events/processes) and 2) Automation Diagnostics View
(Bots/Events/Processes execution logs). We are constantly adding new views/features to this
monitoring app to make it even more useful.
Note: Your view may look different from the screen shots presented below. Time is in UTC.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 37
AppSheet Automation: Preview Release Primer
Contact Sync
This brief tutorial shows you how to set up an automated process to sync contacts between
two systems. This example implements a solution to a common business process scenario.
When a new contact is created in Salesforce, AppSheet automatically updates a Google
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 38
AppSheet Automation: Preview Release Primer
Implementing contact sync with AppSheet Automation involves the following steps:
● Make sure you can log into the AppSheet Editor UI and access the Sample Automation
App you created as a prerequisite in Before you begin.
● Follow the steps in the Appendix to configure a C
ontact entity from a Salesforce data
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 39
AppSheet Automation: Preview Release Primer
source and C
ompany Contacts entity from a Google Sheets data source.
Automations begin with configuring the bot. A bot binds an event (ex: a new contact created
in Salesforce) to a p
rocess (ex. a sequence of steps to update a contact Sheet). The intuitive
AppSheet editor enables you to create all the components of the automation/bot in-situ. That
is, you can configure the event and process (including steps/tasks) without needing to switch
between tabs to configure individual components.
Note: T
he suggestions you see depend on your data configuration, existing event
configurations and may appear different from what you see in some of the images below.
The following sections guide you through configuring your end to end automation:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 40
AppSheet Automation: Preview Release Primer
To create an event:
Note: If you want to manually configure the event, you can navigate to the Events tab,
select C reate new event, and enter in the relevant details.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 41
AppSheet Automation: Preview Release Primer
Once your event has been created, your bot editor should look like this:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 42
AppSheet Automation: Preview Release Primer
1. In the R
un this process section of the editor, click +
Add a step. Type Update
contact list into the text box and hit enter to automatically create an empty
step. This implicitly creates a process.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 43
AppSheet Automation: Preview Release Primer
2. Click on the Update contact list s tep to expand its definition, as shown below:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 44
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 45
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 46
AppSheet Automation: Preview Release Primer
4. Add another step to notify the Ops team of the new contact:
a. Click +
Add a step.
b. Type Notify ops as the step name and select C
reate a step called Notify
Ops from the suggested options.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 47
AppSheet Automation: Preview Release Primer
c. In the S
ettings pane, under Do this s elect Run a task .
d. From the T ask dropdown, select N ew Task.
e. Select S end an email as the Task category.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 48
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 49
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 50
AppSheet Automation: Preview Release Primer
i. For E
mail Subject, type New contact notification.
j. For E
mail Body, type A
new contact - <<Name>>, email <<Email>>
just got added. Leave all the other fields at their default values.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 51
AppSheet Automation: Preview Release Primer
5. Click S
ave and then click Done.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 52
AppSheet Automation: Preview Release Primer
You have created and enabled your bot. All the required components, including the event,
process, and tasks, have been created. Each component can be accessed and edited from
individual tabs if required.
If you explore the Events, Tasks and Processes tabs, you can see the reusable artifacts that
have been generated when you were creating your bot. Each of these components can be
re-used inside processes and inside other bots.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 53
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 54
AppSheet Automation: Preview Release Primer
This brief tutorial shows you how to set up an automated process to create appointments for
leads attending a conference who have requested a follow up. When a new lead is created in
Google Sheets, AppSheet determines if a follow up has been requested by the individual. If
so, AppSheet automatically creates an appointment entry in another Google Sheet and notify
the individual via email.
A specific lead can have a profiled value of “High”, “Medium” or “Low”. If the lead is a “High”
profile lead, then a phone based confirmation is required for the lead. Once the appointment
is confirmed by phone, a second notification (SMS) is sent to the individual.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 55
AppSheet Automation: Preview Release Primer
Implementing this use case with AppSheet Automation involves the following steps:
1. Configuring the Appointment Confirmation Process (A sub process invoked from the
main process)
2. Creating the Bot
3. Configuring the Event
4. Configuring the Main Process (steps and tasks)
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 56
AppSheet Automation: Preview Release Primer
● Install the A
ppSheet Events add-on for Google Sheets.
● Configure an email template for ops notification
The following sections guide you through configuring your end to end automation i n-situ
using a bot.
1. Click +
New Process to create a new empty process.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 57
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 58
AppSheet Automation: Preview Release Primer
6. In the S
ettings pane, select Branch on a condition under D
o this.
7. Enter [Confirmation Required] = "Y" under C ondition to check. Your step
should look like this:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 59
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 60
AppSheet Automation: Preview Release Primer
Leave default settings for other fields. The following screenshots show the
step config in detail:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 61
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 62
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 63
AppSheet Automation: Preview Release Primer
10. Click S
ave to save your changes.
11. Add a wait step to pause execution in the process until the condition (Ops have
appointment confirmation) is satisfied.
a. Click the + icon below Notify ops to confirm appointment to create a new
step.
b. Type Wait for appointment confirmation into Step Name and select
Create a step called "Wait for appointment confirmation."
c. In the S
ettings pane, select Wait for a condition under D
o this.
d. Type UPPER([Confirmation Status]) = "CONFIRMED" in Wait until
this condition is true as follows:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 64
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 65
AppSheet Automation: Preview Release Primer
12. Click S
ave and then C
lose. Your process configuration should look like this:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 66
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 67
AppSheet Automation: Preview Release Primer
“not-required”
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 68
AppSheet Automation: Preview Release Primer
d. Click S
ave and C
lose to save your changes so far. At this point your process
should look like this:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 69
AppSheet Automation: Preview Release Primer
14. Add a final step to return the confirmation status value used by the main process to
make further decisions.
a. Click + Add a step to create a new step.
b. Set Step name to R eturn confirmation status.
c. In the S ettings pane, under D
o this, select R
eturn values.
d. Type ConfirmationStatus = [Confirmation Status] in Return these
values.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 70
AppSheet Automation: Preview Release Primer
e. Click S
ave and then C
lose. Your process should now look like this:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 71
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 72
AppSheet Automation: Preview Release Primer
To create an event:
1. From the AppSheet UI, select the bot you created in the previous section.
2. Click C
hoose an event.
3. Type leads and suggested events appear.
4. Select A
new leads record is created from the suggestions.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 73
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 74
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 75
AppSheet Automation: Preview Release Primer
6. On the E
vent editor page, configure the event as shown below:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 76
AppSheet Automation: Preview Release Primer
7. Click D
one.
1. In the R
un 'New Process' section of the editor, click +
Add a step.
2. Type Create appointment into the text box and hit Enter to automatically create
an empty step. This implicitly creates a process.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 77
AppSheet Automation: Preview Release Primer
3. In the S
ettings pane, configure the fields as follows:
Field Value
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 78
AppSheet Automation: Preview Release Primer
4. Click S
ave and D
one to save your changes so far. At this point your process should
look like this:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 79
AppSheet Automation: Preview Release Primer
a. Click +
Add a step.
b. In S
tep Name, type Is appointment confirmed? and create a step with
that name.
c. In the S
ettings pane, under D
o this, select Branch on a condition.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 80
AppSheet Automation: Preview Release Primer
b. In S
tep Name, type e
mail and select the suggested step Send an email to
[Email].
Note: T
he platform detects your intent based on the text you enter, correlates
that the Leads table has an email address column type and pre-configures the
step/task for you.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 81
AppSheet Automation: Preview Release Primer
Field Value
To [Email]
d. Click S
ave and D
one to save your changes.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 82
AppSheet Automation: Preview Release Primer
2. Go to your “Leads” Sheet and enter an entire leads record into a new row.
Tip: Create a temporary Sheet and add your row of data there, copy it and then paste it
into the “Leads” Sheet)
Note: A
utomation only supports adding a full record at this point. Do not add a partial
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 83
AppSheet Automation: Preview Release Primer
lead record.
Based upon the process created in previous steps, a new appointment record is only
created when the value of the “FollowupRequested” column is “Y” in the Leads Sheet.
The “Full Name” field in the Appointment Sheet is a concatenation of the “First Name”
and “Last Name” values from the Leads Sheet. The “Appointment Date” in the
Appointments Sheet should reflect the date value calculated from the Expression
Assistant formula.
4. Because this is a “High” Profile lead the ops team should received an email at the email
address in the Sheet
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 84
AppSheet Automation: Preview Release Primer
5. Click C
lick Here.
6. When the form opens, nce on the form, click the pencil icon.
7. In C
onfirmation Status, type confirmed.
8. Click S
ave.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 85
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 86
AppSheet Automation: Preview Release Primer
9. Once the record updates, a second (appointment confirmation) email is sent to the
email address.
This brief tutorial shows you how to configure an Invoice Extraction Automation workflow. In
the Preview release of AppSheet Automation, there are three supported document type
extraction models for document automation: invoices, receipts, and W9 documents.
Additional supported document type extraction models are planned for subsequent releases.
The tutorial below walks through the steps required to automate extraction of invoice
documents. However, the same steps can be used to configure extraction automation for all
supported document types.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 87
AppSheet Automation: Preview Release Primer
● Create a table for storing invoice data extracted from invoice document types.
● Implicitly configure a table (not visible to users) representing a Google Drive folder
containing the invoice d
ocuments to be automatically extracted.
Once an invoice document is processed, users can move those documents to another folder.
In a future release, users can configure a process to automatically move the processed
documents to another folder.
1. Prepare a Drive folder with invoices. You can obtain some sample invoices h ere and
upload them to a Google Drive folder of your choice.
2. In the Data section of the application using the extraction, under the Table tab, select
New Table.
3. If you do not have G
oogle as a configured data source, click + and connect Google as
a source.
4. Select D
ocuments on Google Drive.
5. Under Documents, select I nvoices.
6. Select the Drive folder where you placed the sample invoices and click Select.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 88
AppSheet Automation: Preview Release Primer
7. Select C
reate Table. This creates two tables:
● Invoice Files
● Invoice Files_line_Item
File Processing
Once the table is created, invoice processing begins automatically. The invoices in the folder
when the table is created are processed first. If new documents are added to the folder at any
point while the table is included as part of the application, the new documents are
automatically processed.
Note: Processing may take some time, depending on the number of invoices in the folder. In
the Preview release, the UI shows a loading indicator until the processing is completed.
There are some limitations to keep in mind while using this capability. These limitations are
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 89
AppSheet Automation: Preview Release Primer
● Processing only works for 1,000 documents for a given table. New files are not
processed after 1,000 files have been processed.
● Documents need to be under 20 MB and 5 pages to be processed. Otherwise the file
processing fails.
● The only extension types supported in preview are .tiff, .gif, .
pdf
● Invoice_Files_Details
● Invoice_Files_Form
● Invoice Files_line_item_Detail
● Invoice Files_line_item_Form
● Invoice Files_line_item_Inline
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 90
AppSheet Automation: Preview Release Primer
In the Preview release, the user performing the manual review can create a new slice
identifying the documents that need attention using this expression:
With the slice created, the user can build a view to see the processed invoices that need
attention. Users can also leverage the capabilities of process automation to detect "adds"
inside a filtered table and trigger additional flows.
Failure Handling
In some cases, a complete failure may occur during document extraction. Common causes
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 91
AppSheet Automation: Preview Release Primer
include attempts to extract documents that are totally illegible (i.e written in cursive
handwriting), written in languages not supported by our AI services, in an incorrect file format,
or that are of the incorrect document type.
In the event that the extraction fails, the extraction results are captured by a ‘Failed Invoices’
slice with the following expression:
A view can be created to see which documents failed. Users can also leverage the capabilities
of process automation to detect "adds" inside the slice and trigger additional flows.
For more details about status codes and how to use them, see Document processing states
and status codes.
This brief tutorial shows you how to configure an application that can represent files in a
Google Drive folder as a table in AppSheet. This "folder-backed" table can be further utilized
by AppSheet with v iews and s lices. The ability to use folder contents as a table provides a
simple mechanism for including files in your application.
Creating an App
This Z
IP file contains a folder with a Sheet and images detailing information about inventory in
an office setting. To begin, download the ZIP file and extract the contents. Each inventory
item is represented by the following pieces of data:
● Name
● Location
● Type
● Model identification number
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 92
AppSheet Automation: Preview Release Primer
When you create a new app with this Sheet, you may see an error message about the location
base image. To resolve the error, edit the location column and set the base image to
“https://storage.googleapis.com/geodata-appsheet-demos/office%20floor
plan.jpg”, as shown below.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 93
AppSheet Automation: Preview Release Primer
Once you have edited the location, the app should appear as follows:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 94
AppSheet Automation: Preview Release Primer
1. Prepare a Drive folder with files. For this example, you can obtain some sample files
here (content is not important, only the names) and upload them to a Google Drive
folder of your choice.
2. In the Data section of the app, select Table >
New Table.
3. If you do not have G
oogle as a configured data source, click + and connect Google as
a source.
4. Select D
ocuments on Google Drive.
5. Select D ocuments > Collection of files.
6. Located the Drive folder where you placed the sample invoices and click Select. Drive
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 95
AppSheet Automation: Preview Release Primer
7. Select C
reate Table. This will create a table named User manuals. The table name is,
based on the folder name selected.
Once the table is created, a set of metadata available for files in the folder is provided, as
shown below:
Note: In the release, the table is read-only. You can upload and delete files directly from the
app in future releases.
Additionally, eventing support is not available. This means it is not possible to couple events on
the folder with automation action. Eventing support is planned for a future release.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 96
AppSheet Automation: Preview Release Primer
automatically created:
● User_Manuals_Details
● User_Manuals_Form
The two most common views of the table enable users to:
● List files
● Click on the list to open a file
You can create a file viewer by creating a new UX view. For simplicity, you can create the UX
view as a table view, using Path and Creation Date as the two columns, as shown below:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 97
AppSheet Automation: Preview Release Primer
To do this, filter for files where the Path field contains the prefix M
ANUAL_ and the suffix
.pdf. Use the following query:
The resulting file list displays the slice containing only the machine files. For example,
if the view is changed to target this slice, the bad_tag.png file is no longer listed.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 98
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 99
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 100
AppSheet Automation: Preview Release Primer
To make this file accessible in the detailed view for each inventory item:
1. Select U
se Card Layout.
2. Change ACTION 1 from D elete to O
pen File (User Manuals).
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 101
AppSheet Automation: Preview Release Primer
Appendix
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 102
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 103
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 104
AppSheet Automation: Preview Release Primer
5. Select e
mployees as the table for your entity.
Follow the steps below to configure the AppSheet Events add-on for Google Sheets:
1. Navigate to:
https://gsuite.google.com/marketplace/app/appsheet_events/592572205846
2. Click I nstall to install the add-on. Follow the authorization steps and authorize.
Note: Make sure you are only logged into one Google account in your browser or that you are
using an Incognito tab for this step. This is only required for the API keys authorization process.
Once this step is complete, you can use the sheet in a different window with multiple accounts
logged in.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 105
AppSheet Automation: Preview Release Primer
Follow the steps below to configure the permissions and authorization required for your Sheet
to communicate with AppSheet:
1. Open the Google Sheet you want to use for automation.
2. Click A
dd-ons > Appsheet Events i n the main menu.
3. Click U pdate App Keys and authorize if necessary
Note: If the current Sheet is not automatically selected, and there are no Sheets in the
drop down, please ensure you are only logged into Google account or you are using an
Incognito tab.
4. If the selected Sheet is not the one you intend to link, change the Sheet in the
drop-down.
5. Click A dd.
6. Obtain an API Key:
a. Log in and open your app in AppSheet UI.
b. Click M anage in the side navigation.
c. Select the Integrations tab.
d. Click on the IN: from cloud services to your app to enable your Sheet to
communicate with your app.
i. Click the E nable toggle to enable the integration, if it is not enabled.
ii. Under Application Access Keys, check to ensure the access key is not
expired.
Note: If the key is valid, you should see a message like this “ T his access
key will stop working on <YYYY-MM-DD>” containing a future date.
iii. If the key is expired, c
lick on Create Application Access Key t o
generate a new key.
iv. Click S how Access Key to display the valid key string. For example,
“V2-itrnz-sF0Z5-MQxNn-TPrB2-RCaIr-x7qdV-JYCt6-QoXiy”
v. Copy the access key into a notepad. The key string is used in a later
step.
7. Go back to the Sheet and paste the API key in the text box.
8. Click A
dd. The API key should now appear in the list. The key is masked.
9. Your Sheet is now linked to your app for events.
Notes:
● Adds and Updates are supported. We do not support deletes.
● For your appsheet table, your primary key should be the first column of your google
sheet, or it should include the first column of your google sheet (in the case of a
composite key).
● There is at least a 20 second delay between events.
● Events do not trigger if the file is open in read-only (view or comment) mode.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 106
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 107
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 108
AppSheet Automation: Preview Release Primer
5. Select C
ompany Contacts as the table for your entity.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 109
AppSheet Automation: Preview Release Primer
Salesforce.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 110
AppSheet Automation: Preview Release Primer
4. Select C
ontact as the table for your entity.
5. For A
re updates allowed? change the selection to R
ead-Only.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 111
AppSheet Automation: Preview Release Primer
6. Click V
iew Table, as shown below:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 112
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 113
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 114
AppSheet Automation: Preview Release Primer
4. Create a new Google Sheet named “Leads.” Use the column names shown below and
name the Sheet (tab) “leads”. The Sheet should be in the Google Drive accessible to
your AppSheet account.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 115
AppSheet Automation: Preview Release Primer
7. Click A
dd This Table.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 116
AppSheet Automation: Preview Release Primer
8. Click on “View Columns” and ensure that the data type of “FollowupAfterDays” column
is “Number” and clear out initial entry of NOW() if it exists
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 117
AppSheet Automation: Preview Release Primer
4. Ensure you create a new Google Sheet named “Appointments” (with the column
names as below, the Sheet (tab) name should be “appointments”) in the Google Drive
accessible to your AppSheet account
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 118
AppSheet Automation: Preview Release Primer
6. Select a
ppointments as the table for your entity.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 119
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 120
AppSheet Automation: Preview Release Primer
1. Navigate to your Drive and create a new document named Ops Notification
Template.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 121
AppSheet Automation: Preview Release Primer
2. Enter the following text in the document, as shown in the images below:
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 122
AppSheet Automation: Preview Release Primer
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 123
AppSheet Automation: Preview Release Primer
As noted earlier, document extraction may result in the following status codes:
StatusCode AttentionDetails
The intended flow of document extraction is to allow you to automatically utilize the extracted
data in downstream processes and actions. In order to support this, two additional indicator
columns are included in the document data:
● sEdited
I
● NeedsAttention
These columns can be used to understand if the document data is ready for downstream use.
When the value in the N eedsAttention column is T RUE (Yes), this indicates that a
StatusCode is present requiring manual review. For example, if the content of a field may
have low quality, or the currency code present in a field is unknown, the N
eedsAttention
flag indicates that the data should be reviewed manually, corrected, and results approved for
downstream uses. When an edit is made to the data after processing, the NeedsAttention
column is set to FALSE and the I
sEdited column is set to TRUE. This indicates that the data
is now ready for downstream use.
Below is a brief description of several common StatusCodes returned on data slices, and
the implications for the resulting document data.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 124
AppSheet Automation: Preview Release Primer
the wrong file format or files with content that is not aligned with the intended use.
Google Confidential - Internal Use Only ( Do not print, distribute or share without explicit permission) 125