Automatic Email Send or Upload to Google Sheets

Hi all,
Can anyone help with this? I’m a newbie with thunkable (more experience with app inventor) but I need a cross platform app. I have to figure out some way of either emailing results or posting results to a google sheet. I was able to use share but I don’t want to leave it to the users to have to send, it should send automatically when clicking the submit button.

I know there have been discussions about this but the user will know this is happening. I’m trying to create a simple form app that asks three health questions that parents must answer each day before kids are allowed to enter school in September. The idea is to make it as simple as possible for parents - hence an iOS & Android app. They know this data will be emailed to the attendance office so no concern over them not knowing this is happening.

I’m reasonably technical but I don’t know anything about scripting, php, etc. I think I can use the Web API component to do this but I really need help figuring out what blocks/puzzle pieces needed to be added and if there is something I need to do outside of Thunkable to make it happen. In app inventor, I’ve done this using Activity Starter but thunkable doesn’t seem to have a similar option.

If mail won’t work, I could upload the necessary data to a Google sheet but I don’t know how to do this either.

Any help is greatly appreciated!

Thanks,
Robin

Hi, first welcome to thunkable. like you, i was doing a lot of stuff on MITappinventor until i needed to make cross platform apps. But the transition is quite easy actually.

You may want to explore the airtable blocks, which pretty much automate the interaction APIs into simple get, set create or delete data blocks. I use it alot to aggregate information given by user apps as well as to disseminate information to the user apps. In your application, I can imagine you create an app to ask for user to enter the health data, then press a button to submit. You organise the data into an airtable row object create new, or with an existing pool of users, get the index of the rows and update respective cells.

Then as an administrator, you open up the airtable on a desktop to have a global view of submitted data, use the tools from airtable (pretty much like spreadsheet) to print, to make report, to sort, to take attendance etc etc… For records less than 1200 entries per base, Airtable is FREE.

bonus feature: Airtable integrates with google drive but only exist as a link. put the airtable spreadsheet on google sheet, i would merely just cut and paste then entire sheet across… haha…

Hope this helps.

Hi. Thanks! I started looking into airtable but I’m concerned because the person receiving the data is very NOT tech saavy"! Also, with 400 students entering info daily we will be out of the free space in 3 days! I’m not sure how long we are expected to retain the data but I would imagine longer than that…

Ideally sending an email to a dedicated email address is better or at least using free Google sheets. I know I can easily create a Google form to do the same job which is my backup plan but ideally I want to do it as an app which displays a screen that is red if the kids answered any question yes, yellow if not taken that day and green if good to go. Then the the kids can flash their phones to security at the door as an extra check.

Thanks!

With the kind of volume you needed, I would still use Airtable, cut and paste daily data onto google sheet or other spreadsheets for backup, then refresh the table again for next day. I have successfully taught a 60 yo total tech-illiterate person to manage memberships data on airtable, Not insurmountable, but it’s your choice.

For the app end, I think it will be easy to create a questionnaire and use come conditional blocks to present results in red or green. To save or transmit the results other than airtable, you may use the “share” block to email the results. The share block allows you to set the title and contents of the email. Then it open user’s default mail, user need to press send. But this method, your non-tech savvy person will unfortunately need to deal with 400 emails in a day.

Wait… There is however one more way. One app for the students, Use the Airtable to accept and compile students results. Then you have another “admin” app to download the entire sheet, package the data, and then send an consolidated email to the school administrat, then reset the airtable contents for the next day. I am pretty sure the admin app only needs a button to do all these.

OK I tried to implement this… Its mostly working but for some reason most of the time “name” doesn’t get saved correctly in air table. It’s the primary field and more often than not it comes in blank. Also date never populates. Any ideas? I can share my code if that will help…

1 Like

I presume you are doing an app for schools student to declare health status as part of Safe distancing. I’ll be glad to help if you can share the blocks.

Btw, Airtable has a bandwidth capacity of 4 requests per sec, then it will suspend for a while before able to resume. If you suspect it may have been reached, then maybe need to implement a queue algo to try again sometime later.

Hi! Thanks so much for your help so far. I’m stuck on one last thing. It may not even be airtable related. I’m not sure.

Here is my code:


It seems the if is not working when I compare Email to emailSearch variable. The value is in airtable (as shown below) but it still goes to the else.

However, if I hard code the email address in text instead of as a variable it works.

Any advice? If you need the full code just let me know.

Thanks,
Robin

Ok. I think the second “break out of loop” within the else statement is unnecessary. it seemed that your loop will break out of the loop every time there isn’t a match.

Also I would like to suggest to use “get column” instead of “get all rows” (in your case, you only need to get the “Email” column to find the index), so you only have to handle a list instead of a list of objects.

Wow, you are really good at this! Removing that break worked!

Now, I’m confused about this…


The status appears correctly but the flag always says whatever is in the else logic.
Also the status is showing up in Label9 even though I thought I only had flag set to Label9 right now. It shows then, then status.
If the email is not in airtable however, the label correctly shows “Yellow” and nothing else. Thoughts?

I tried using a basic math/logic “=” code but when that didn’t work I thought it must have to use a text compare statement. But neither one is working.

Thanks!!!

You may have an asynchronous problem. Meaning Thunkable will execute the airtable get block, while waiting for the API to response, it will run the next blocks just after the airtable block. So if the value of the “app status” takes from the airtable, then you need to put the blocks into the “then do” area.