Send a different email to all users in user table

My app allows users to favorite certain items and I have created a page that displays a user-specific page that displays recent updates for each item that the signed-in user has favorited.

In the user table I have a column that creates a template that combines each of those same items that have recent updates and makes them into a list, using some of the techniques described on here for emailing a CSV of data.

What I want to be able to do is periodically email that list to each user. Since each user’s list is different, I want to be able to basically send a unique email to each row in the user list, with the contents of my template column as the body. The result would be each user getting an email that shows them only the items unique to them.

How might I accomplish this, using Make or the built in email function in glide? So far, the techniques I’ve tried seem to only work either to send one unique email to one person at a time or to send the same info to multiple people using a list of comma separated email addresses.

Ideas or links to where this has been solved?

Currently, this is not possible if you’re using a user specific glide table to form the CSV. I’ve been able to accomplish this, using a formula in google sheets, and then Make to send the email. Glide will soon be offering timed based/condition-based actions, but I don’t know if this will work for user specific values. It’s uncharted territory.

Thanks.

When you say “user specific glide table” you’re referring to the fact that I’m using the user table? I’m not wedded to using the user table as the source if that matters…

Also, have you documented your procedure for doing this in Google Sheets? If not, I’ll await the arrival of time-based actions from Glide…

I saw your oroginal post that you had created a user-specific screen based off a template column so I assumed that the CSV that you’re creating is user specific and not in any sort of query-able field.

If you’re not using a Google sheet, the only way to grab that value from outside of glide on any sort of timed-based action would be if you were using a get all rows API call using the Glide API, but I don’t know if you can grab that user specific value if it’s within a template column.

If by user specific, if you mean that each user simply has their own CSV value within that template column column, then you might be able to get away with it in Make and then iterate through each of the CSV values to send the email one at a time for every user.

As I tend to do, I think I provided too much detail, and made my question more confusing instead of less confusing.

Let me narrow my question to start. You may have answered it, but I want to be sure.

Is it possible for me to hit a button in glide and have it send emails to multiple users at once? And if so is it possible for the information in the email to be different for each user?

A simple example would be: say in the user table, there is a column called home address and I want to click a button and send everyone in the user table an email that says “this is what we have for your home address. Can you confirm that it’s still current?” And then the email that is sent it would display for each user a different value, namely, the value in the home address column for their row in the user table.

You might have to loop through your table in order to do that. To do that in an integration with Make:

  • Create a button in Glide that triggers a webhook. You don’t need to send any special values here, just any value to trigger the scenario.

  • Have a Google Sheets module to search all rows that have “home address” column not being empty.

  • Add an email module to send an email to all found rows.

There might be another way of constructing a JSON inside Glide, send that through the webhook and loop through that JSON object inside Make to send the emails.

1 Like

Right. This is what I was trying to convey. It’s possible, but you’ll need to use a service like Make to iterate through the rows.

1 Like

Ah yes. I see that. That makes sense. Maybe gonna move that down on the list of priorities but good suggestions on a path. Thank you both.

1 Like

Hmm @Robert_Petitto, a Pro like you… still, using Make? :wink: switch to the scripts, which are much faster and free.

I don’t really use Google Sheets for building apps any more. Make just makes it easy (also freeish).

1 Like

I do not use google sheets as connected data. I used it as unlimited unconnected data, much bigger and faster than Glide tables :wink:
You don’t need to build Glide App on Google Sheets to use google scripts.

So…you use Google Sheets as a database, create helper tables in Glide and then use javascript columns to fetch data from the Google Sheet?

1 Like

Yes! great results, so fast… if you are dealing with data over 10K rows… Glide is visibly slower than fetching computed results from google sheets… as you know, my App… with an English dictionary for pages… I can find and sort and fetch 160K rows much faster them my other apps that have only 5K rows

Gotcha. It’s an interesting technique—and certainly can be useful in the right situation, but when users are in the forum here looking for assistance with Glide, I’m assuming they’re looking for a more native solution than a clever workaround that isn’t intuitive to a novice no-code developer.

Make is not the native solution… so same thing… plus it will make it even slower…
In my opinion… the time and effort non-code users spend to learn other integrations platforms… is similar to learning simple codes… and results are worth putting view minutes or even hours more.

Don’t worry @Robert_Petitto, your not missing anything. Google Script Queries are not very secure. Especially when used with Glide, and especially when critical data is involved. As most of us know, it’s about as secure as placing an API key in a javascript column. The API key, as well as the Google Script url and keys, are fully exposed to the end user, and anybody can maliciously use it to scrape more data from the google sheet, or maliciously call it…even outside of Glide. I wouldn’t recommend it if data needs to be protected.

3 Likes

You don’t place the key in Glide. Placed in google script, then pulled out only selected data through fetch JSON, @Jeff_Hager are you saying that this is less secure than the Glide owner row?

Most definitely.

The script will download only search data, how you will get access to the rest of the sheet?

I’ll just say this. I know how to obtain the url and then use it by passing in random query parameters…completely outside of Glide.

1 Like