Hi everyone,
We’re pleased to announce the public preview of Gmail integration with AppSheet - something we know has been a longstanding community request. With this preview launch, your Gmail inbox can seamlessly connect to the full breadth of downstream processes AppSheet automation already offers.
How it works
This new capability allows users to seamlessly connect their apps to their authorized Gmail accounts so that incoming emails can trigger AppSheet automations.
Creators can select specific Labels in their Gmail inboxes that they want AppSheet to monitor. When that label is added to or removed from a message (for instance, when your Gmail filters automatically apply a label to incoming messages) the Gmail integration fires and sends metadata about that specific message to AppSheet. Creators can use these metadata – such as sender name, subject, message body, and more – in downstream processes.
Gmail trigger data works similarly to the existing “return value” feature: AppSheet doesn’t automatically store any email data unless creators specifically configure the bot to write it to a table. We built it this way to allow Creators maximum flexibility for how to use the Gmail event and have maximum control over how inbox data is used.
How it can help
Using Gmail as a trigger for AppSheet automations, you could:
- Automatically add new leads to an AppSheet-based CRM database as soon as the new lead email arrives
- Create a support ticket any time a customer sends a message to your customer service inbox
- Notify inventory managers when a new order has been sent and tracking numbers are available
And more.
To get started,
- (Optional) Create email labels in your Gmail account that will be used to trigger the event
- In your AppSheet app, create a bot in Automation
- Select Gmail under event source
- Add the desired Gmail account and complete the authentication
- Select labels to watch, automations can be triggered by one or both of the following options,
- Add label to an email
- Remove label from an email, Labels added or removed, whether manually or through rules, will be treated identically
- Complete the bot with a process, such as a data action or a task
Fig.1 Setting up Gmail as an event source

Your integrated Gmail account can be found in the Sources section of the My Account page.
Fig.2 Sources in the My Account page
Fig.3 Illustration of Gmail Integration in AppSheet
Things to note:
- We know there’ve been extensive requests to support Attachments in Gmail. While this initial beta release doesn’t yet include support for them, it’s something we’re actively working to include in the full feature release coming later this year.
- This integration allows Gmail to trigger automations. It does not introduce Gmail as a full AppSheet data source. While Gmail fields available for use in downstream automation are shown as columns in the data explorer, no AppSheet table is actually created.
- If you want to save Gmail messages in an app table, you’ll need to add a data action process that adds rows to your desired location.
This feature is currently rolling out and will be available to all AppSheet users and Workspace Core users within the next few days. For more information see the documentation.
Thanks for your patience with us as we developed this feature. We know it’s been a long time coming and are eager to hear your feedback about this preview launch.
cc: @markcollins
28 Likes
Wow.
There isn’t even an App Script trigger for gmail. Crazy to have this before that.
6 Likes
Awesome! Can’t wait to try this out.
3 Likes
Oh man, this is amazing! It’s going to make getting email stuff into your app so much simpler now, before there was way too much involved.
Kudos to the team and a huge thank you. Can’t wait simplify my AI email processing workflows. 
4 Likes
@vchitra @markcollins
Thank you for bringing new powerful additional features to AppSheet. I quickly tested.
I expected that we could be able to access to the attachment files (multiple files) as we see the column name of [Related Gmail Event Attachment];-
My test was to save all the meta data of Gmail to the Google Sheet table where the set of the column names are identical of the virtual Gmail table. I passed the value of this column to the sheet, however, nothing was saved, the column in the sheet side was left null. Could you give us clarify in terms of how this particular column stands for?
3 Likes
@vchitra @markcollins
In the meantime, I conducted a test out of curiosity as usual. We could get the ID for the single Gmail through [Message ID] column. I assumed we could open that particular email with URL construction. My suspect was right.
With the syntax like this;
“https://mail.google.com/mail/u/0/#inbox/”&[Message ID]
I could open the original Email with browser.
It could be good idea if you mention this tips and tricks to your original documentation. Off course, the owner of the email (account who own the gmail) could access to the original sources through this special URL thouhg.
@takuya_miyai
11 Likes
This is great news, thank you.
My first input from testing is that I can’t create a task for calling a webhook from a gmail event (posting to google spaces). Still trying.
2 Likes
One more suggestion.
The Gmail event is gonna work without deploying the app. Better to mention to this fact somewhere in your documentation.
3 Likes
There is now an “Gmail Event Table” available in my case, but after I select it and save it,it switches back to “no table”
@vchitra @markcollins
I tested if I could connect with the delegated Gmail account or group email. However, sadly both failed.
Is there any plan to accommodate to set the Group Email inbox and/or delegated Gmail account as sources for Automation trigger?
@takuya_miyai
4 Likes
@vchitra @markcollins
Thank you for the great new features that will lead to a new customer experience! 
Gmail’s standard labels are usually localized and deployed in various languages.
Even in AppSheet, the label name should be changed according to the language setting of the linked account.
If this is difficult in the short term, a link to the label name contrast page would be helpful.
5 Likes
That’s amazing. Thank you so much for this addition!
@vchitra @markcollins
Considering the most of the daily works under the possible use cases for this new features, the workflow is mostly always "collaborative works " with other team member , where the GROUP EMAIL (Collaborative Inbox, which is called as a terms under the GWS) is engaged. Hence, the connecting those Group Email from GMAIL automations could be possibly one of MUST function I assume. (in addition to Delegated Email account to connect)
1 Like
Great! Tested it out and found out:
-
Email [body] must be text. If the email body is html, APPSHEET cannot pull the email body but returned blank “”. Would be great if [body] supports more email format.
-
Email [Related Gmail Event Attachment] field doesn’t work out properly… Would be great if there is any examples on how to use this field.
Thanks!
1 Like
When posting to google chat space,using a chat app, I think it uses HTML for body, and it doesn’t look good (readable), being one use case where I’d like it to be text
Thank you very much for providing this wonderful feature!
Now, after trying it out in my environment, I have the following suggestions.
In the following document, there are columns that can be retrieved from Gmail and their descriptions, but it would be easier to understand if you could also include the data type.
https://support.google.com/appsheet/answer/15725655?visit_id=638747660803918048-603208318&p=gmail-automation&rd=1#:~:text=is%20read%2Donly.-,How%20to%20access%20content%C2%A0in%20the%20email%20messages,-To%20access%20content
I think that when this function is used in Automation, it is often necessary to “add new row” to spreadsheets, etc. In that case, it is necessary to set the appropriate data type in the table on the receiving end of the record addition.
Certainly, the Expression Assistant in Automation describes this, but I think it would be better if it is also described in the documentation.
I would appreciate your consideration.
6 Likes
@vchitra @markcollins @lizlynch
And yet few citizen developers know that they need to use Enumlist to insert a List.
It might be a good idea to supplement this point in the Help as well.
6 Likes
It would be super cool if values of the email could be directly used by the AI feature instead of having to have an intermediate step of saving the email data to a table and then triggering an AI process.
1 Like