Gmail Integration in AppSheet: Now in Public Preview! (Beta)

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 sourceBot_AppSheetGmail (1).gif

Your integrated Gmail account can be found in the Sources section of the My Account page.

Fig.2 Sources in the My Account pageScreenshot 2025-02-07 at 11.14.34 AM.png Fig.3 Illustration of Gmail Integration in AppSheetfeature_demo (1).gif

 

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 

 

Solved Solved
26 63 7,019
1 ACCEPTED SOLUTION

The integration between AppSheet and Gmail relies on the Gmail API and unfortunately Gmail does not support Collaborative Inbox or email delegation through the API.

The best solution we have found is to have the email from the group sent to your personal email box and use a Gmail filter to label messages from the group. This allows setting up an AppSheet automation using that label to handle messages to the group email address.

View solution in original post

63 REPLIES 63


@markcollins wrote:

The integration between AppSheet and Gmail relies on the Gmail API and unfortunately Gmail does not support Collaborative Inbox or email delegation through the API.

The best solution we have found is to have the email from the group sent to your personal email box and use a Gmail filter to label messages from the group. This allows setting up an AppSheet automation using that label to handle messages to the group email address.


Thanks for your clarification, understood it is not possible by the limitation of API using behind the scene.

I may need to ask question in other place (GWS community) but do you know how to automatically post a label to email specifically which was forwarded from Group email to personnel email?

 

 

If the email is not forwarded, but you are subscribed to get emails sent to the group, then you can add a filter like: list:(<group-name.googlegroups.com>)

You can do this in the Gmail UI with "Filter messages like this" on a message from the group.

FilterMessages.png

ListFilter.png

Once the filter is selecting the correct email messages, select "Create filter" and the action "Apply the label:". This will automatically label new messages from the group. 

Details here: https://support.google.com/mail/answer/6579

Thanks. I actually have being doing the exactly the same to categorize (push a label) for emails which are coming from group email address. However, I thought it is not a fancy solution, but I reckon now it is only available workaround to solve problems.

We are aware that this feature is currently in beta, but we have already discovered some puzzling behavior.
This is happening with free accounts.

In the Automation event settings, I have approved it for my account, and it works fine for a while, but after a few minutes, it looks like the image.
1.png

If I go to “Label to watch” and click on “Refresh Access” and then approve it again, Automation will work again, but I don't understand why once I have approved something, I am asked to re-approve it so often.

Incidentally, I am trying the same thing with another free account, and I have not experienced this puzzling phenomenon with that account.

Is there a timeline to be able to send an email from your Gmail account for workspace accounts?

Currently all emails have to come from noreply@appsheet.com.

I would expect that a Google product would integrate better with Gmail to send emails natively from a Google email account.

Currently I'm using a webhook to zapier to achieve this basic functionality. 


@Rifad wrote:

Do you know of any real-world business situations where it could be useful? For example, Salesforce has a feature that gathers all emails in one place, keeping the conversation together in account view. The best part is that it's designed for multiple users, so it's not just the admins who can import gmail data to it, but all the app users too. 

AppSheet Gmail integration trigger can cover several niche or internal use cases (especially for single‑user workflows, testing, or centralized notifications), it is not yet suitable for the multi‑user, personalized, and dynamic B2B workflows typical in business settings. For broader use cases—such as individual sales communications, multi‑agent support, or personalized supplier interactions—a more advanced solution that supports multiple user accounts would be required.


From your response it sounds like you're not a Google Workspace user?  If you're using AppSheet with Google Workspace then what have asked for is already covered by what Google Workspace offers, e.g.:

  1. a feature that gathers all emails in one place, keeping the conversation together in account view - Google Groups: this is the web interface that gives you an email-like interface where everyone can see the threads and mails
  2. it's designed for multiple users, so it's not just the admins who can import gmail data to it, but all the app users too - you can invite any user to see the Google Group, e.g. the AppSheet app owner and then the app owner account can import the mail into the app so all the app users can see what's required.  We currently do this already for our Helpdesk built in AppSheet:
    • Emails are sent from AppSheet with the reply-to address set to the group email address
    • Responses, therefore, go back to the group and get distributed to a Google Workspace account
    • The account filters the mail appropriately into a label and, at the moment, that account runs a Google Apps Script to push the email via the AppSheet API into the app; this feature means there's no longer a need for the script or to open the API and AppSheet can monitor the email account and import the responses to the app.  The script also adds to the app the URL of the message in the Google Group so if an app user wants to see the full message, or the entire thread, they use the link and go directly to it.

  3. AppSheet Gmail integration trigger can cover several niche or internal use cases (especially for single‑user workflows, testing, or centralized notifications), it is not yet suitable for the multi‑user, personalized, and dynamic B2B workflows typical in business settings - I would say you have been too hasty in arriving at that concusion, as we use this feature (currently via script, but will change to the AppSheet bot trigger) for a multi-user, personalized and dynamic B2B workflow, supporting our business customers.  The only reason we do it via Apps Script at the moment is AppSheet couldn't do it, but now it can.
  4. a more advanced solution that supports multiple user accounts would be required - why?  Why are you sending the mails to individual accounts rather than a centralised group?  I'm sure there is a very valid reason, or it may be an approach you want to change and use the Google Groups option, if that's available to you.

I hope this perspective is useful to you.

Thanks! We do use workspace and Google Groups internally for various purposes. Your explanation will definitely be helpful, and I’ll give it a try. I know it’s not as straightforward as Salesforce or other platforms for multi-user authentication, but I’ll definitely try your workaround and get back to you. Cheers!


@markcollins wrote:

We'd like to hear if you have a scenario where using a condition on the Gmail event is required or preferred to using conditions in Gmail.


Filtering in Gmail can be limiting sometimes e.g. a filter is applied to an entire thread, not an individual email, so that can limit what you can achieve.  You may also want a condition on the bot to not run if the email is from a particular address or to a particular address, which would mean having to create multiple filters, perhaps.

 

Hey everyone,

Super stoked about the Gmail integration! I demoed it with "Extract with Gemini" at our Xertica training, showing how to manage requests from emails and shared files. Huge time-saver! Eagerly awaiting Gmail attachment support – that'll be a game-changer. Will share Xertica customers feedback.

Thanks, AppSheet team, for the awesome updates!

How many email id can be added? 

Because a company has many emails. 

 

@vchitra @markcollins 
First, thank you to the dedicated team for this much-anticipated feature, I highly appreciate it—it’s a game-changer! This integration will streamline many processes and enhance the efficiency of communication-driven workflows.

I'd also like to request support for other servers like Outlook to broaden compatibility, along with the capability to handle attachments.

More importantly, we really need the option to send emails from custom addresses. The current noreply@appsheet.com often lands in junk folders, making it harder for users to engage and trust the communication. Customers also struggle to find these emails, and we constantly need to assist them, which has become a significant headache.

Here are a few real-world needs for this feature:

  • In a CRM, emails should come directly from the salesperson’s address to build trust.
  • For customer support, emails from a support@company.com address provide clarity and professionalism.
  • In operational workflows, notifications about inspections, orders, or invoices should come from relevant departments like inspection@company.com.

This customization would significantly enhance the professionalism and reliability of AppSheet-powered communications.

Thank you again for your hard work!

@markcollins 

I understand the development works for the integration with Gmail is still in progress. However, we are seeing the name of Gmail as data source.

See image below.

2025-02-19_14-10-12.jpg

For the current moment, nothing change to happen even after we select Gmail and pass the relevant credentials. 

Is this some sorts of implication that the gmail could stand proper data source (like a table) toward the future GA for this particular integration?

 

 

@markcollins @vchitra or anyone else: have you found any cunning ways to remove the quoted text that email clients (even Gmail) adds to the Body text?

@StephenHind  I've had success using a Google Apps Script to find the html <div> that starts the quote section:

MultiTech_0-1740670263795.png

Hope it helps!

@MultiTech thanks for the suggestion: we had already looked at this approach in our own script, and there are few issues:

  1. This will only find quoted text from Gmail users (and maybe only web users at that).  To be fair that's probably 95% of our user base, but there are still some users who refuse to use the Gmail web interface and want to use Apple Mail etc, or worse still, Outlook 😢
  2. This is only in the HTML body and not the plain text body: we then need to further process out all of the HTML and it end up being overly complicated for what we want
  3. We have moved away from using our own script to using only the new AppSheet trigger (which appears to be working well at the moment), and then processing in AppSheet.  We had already added a "##- Please type your reply above this line -##" when using our script so we could get rid of everything from that point onwards, and we have used the same in AppSheet (simply SPLIT() the [Body] using "##- Please type your reply above this line -##" as the delimiter), but there's still some stuff mail clients add (e.g. Gmail adds "On Thu, 27 Feb 2025 at 11:47, Someone <noreply@appsheet.com> wrote:")  Obviously we could search for that if AppSheet offered regex and everyone only wrote in English, so we're on "a hiding to nothing" there.

Thanks again and your resources are great (I have included action loops in a few projects now)!

Hey When i set this functionality into in my appsheet app, i get the following error:  error 403: something went wrong and your changes couldn't be saved. please try reloading the page or contacting support. I have a google workspace account and my app is already deployed. What happend to this ? is it just for specifc regions such as USA and Canada ? or is it include for people in other contries ? I want to use this new feature. Thanks

@vchitra May i ask, please tell me that Google Calendar will be also added as an event source?

This would be so amazing for users to add directly on Google Calendar and we can trigger a bot event in appsheet... Please consider this as soon as possible.... 

I love this new feature! Excited for what's coming next

A small improvement that could be very useful:

When using multiple Gmail accounts with Gmail Events, I’d like to be able to retrieve the account that received the email as a variable. That way, I could use it directly in an existing action—without needing to add an extra step in my bot just to pass this variable and identify which account the email came from, especially when storing emails from multiple accounts in the same table.

As far as I can tell, this variable isn’t currently accessible in the Gmail Event—am I missing something?

@vchitra @markcollins well this was working well for us until nearly 3 weeks ago (it stopped working ) reported as a bug [4-1851000038212] but still no update - any chance someone can chivvy it along?

I have briefly tested and it seems to work. I'll let development continue for a while before actually using it.

Using various combinations of the below in my bot

INDEX(SPLIT(INDEX(SPLIT([Body], "Site Complete:"), 2), ";"), 1)

I can extract text into different columns from a rigid email body such as
Screenshot 2025-04-02 102636.jpg






Whilst this works, I think the overall Gmail integration should make this kind of thing more streamlined for the final release, or add documentation on how to extract certain text strings etc


@ghost5 wrote:

I have briefly tested and it seems to work. I'll let development continue for a while before actually using it.


Yes be careful to not become dependent on it as we have had this fail on us twice now; the trigger never fires when it should.  AppSheet support say it's a bug that's being worked on (the issue has been open now for a month) but clearly it's not ready yet so we're using the App Script approach to push in via the API.

@vchitra Has this functionality been removed now?  It doesn't seem to be working anymore...


@scott192 wrote:

@vchitra Has this functionality been removed now?  It doesn't seem to be working anymore...


I have an open bug with AppSheet support (since Mar 03, 2025) where the trigger just never fires when it should: is this what is happening to you?  It's still not fixed and is now affecting 2 of my apps and I have had to go back to using Google Apps Script to push into AppSheet.

Yes!  I had cobbled together a test app to try it out and it worked great.  I have since come back to the test to add functionality and it is not working anymore.

I know it is in early access, but I have also just developed an AI summariser that relies on the emails getting into Appsheet so that they can be summarised every hour or so (scheduled bot).