Is it feasible to get external users to interact with our apps

Currently, we utilize the paid user version of for internal operations. I am considering the possibility of incorporating the $50/month AppSheet app to facilitate interactions with external suppliers. The plan would involve using this version to send automated emails with links that suppliers can use to access a form, respond to tasks, upload files, and interact with us efficiently. What’s the possibility of doing this and what would the pitfalls be If it is possible


You could do that for sure, but there are some pit falls that might not be worth it in a client situation.

The main difficulty you’ll face is getting the records people create connected to their correct account.

  • You can include a field for them to include their email

    • But this requires they use the same email as you’ve got recorded for them, and for them to not make a typo. :neutral_face:
  • You can try to prepopulate forms with a clickable link using a LinkToForm() formula

    • My experience with this is that it’s actually rather fragile, and most times the values I try to send fail to make it into the form

Prime Example: The public Answer Portal

The public Answer Portal contains the same “Questions” table that’s inside the secure Answer Portal; this means that when a record is submitted in the free app, it’s “seen” in the secure app.

  • If someone wishes to continue the conversation with a follow up question, meaning their question is not only tied to their account - but also to the correct “Support_Thread” parent table.

Getting this connection 100% is very difficult.

I’ve tried the following:

  • Prepopulating the form using LinkToForm()

    • But in my testing, the ID never made it into the form
  • Providing them with the ID

    • This works, when they copy it and use it
    • But only about 50% actually do, the other half just submit a new question/thread

What has worked in the public Answer Portal

I have implemented a way for people to save their email into UserSettings (along with an EnumList for ThreadIDs, if they wanted to store them for easy use).

  • Hard to know if people are using this, as UserSettings is device-side data.

But this provides people with a way to store their email there, and I’ve got the app configured to pull that value if there’s something there - greatly speeding up data entry.

I would try some testing to see if the LinkToForm() scenario, where you prepopulate form values and encode that into a clickable link; I’d be curious to hear your results. :muscle:

1 Like

Not sure if the clickable link was supposed to.go somewhere?

Thanks for the advice, I knew you had attempted it before so glad for the Insight. Please explain to me how you get them to set up the user settings. Cause what I want to do is give them a call and explain it to them and get them to set it up in future. Would they need to set it up on each device that they interact with?

1 Like


You see what I’m saying!

This perfectly highlights exactly what I’m talking about with it being difficult to give somebody a URL with specifics that gets them directly where you need them.

I’m betting the reason you don’t see the option in the Answer Portal is because of a grouping selection that’s on your device.

  • Like, you were previously in there and selected one of the groupings, to filter the list down to a specific subset…
  • And then you clicked on this link, but the item I’m trying to show you isn’t in the same group that you have selected.

Fiddly bits… They always get in the way.

Your idea of getting on a phone call with them would be ideal, you might even be able to outsource it to a video.

  • For reference: I didn’t even address it in the Answer Portal, other than a sentence on the welcome page. (Maybe like a couple other places.)


  • User settings are device specific, so each device they use they will need to insert whatever details.

Strategy to make it easier

You could create a QR code with the information that you want that person to store in their user settings, and send them an email with those images. In that email you could have instructions, even some screenshots that are annotated, to show somebody what they need to do.

  • This way they get an email that has their specifics along with the instructions, and anytime they switch to a different device they can scan the code with the device.
    • Granted, this only works if they’re using a device, not a PC.

Just been thinking, Ill always be communicating with these suppliers via email, can i add their uniqueID in each mail and am i able to not allow them to submit a form back to me without them inputting something in the ID field?

1 Like

This is the route that I took for the public Answer Portal, and it’s worked out about 50% of the time.

  • But since you’re dealing with paying clients, and you’re going to have the opportunity to give them a little bit of training ahead of time, should work out all right.

This is the clear example of a B2B app (in which AppSheet does a good job) that needs a B2C section (something AppSheet wasn’t meant for).
My suggestion would be either build a web page which can hold the data you need and for sure would mean a lot more job than what an AppSheet creator is used to but hopefully can be done once and then connected to the app using the API or similar methods; or use another platform that does provide B2C connected to the same datasource your AppSheet app is connected to.
E.g.: AppSmith, GlideApps…

1 Like

I’ve done this for a training company who wanted their clients to be able to add people to a course. This was a PITA because the client would email the student details in an email then the training company would have to cut-and-paste in all the details.

So there’s now the main app and what I call the shared app (publisher licence). These two share a common table. In the main app they can click an action button and this sends a LinkToForm() formatted as a URL to the client in an email. The client can then use this form multiple times to add people to a course. Two things to bear in mind. With a public app you don’t want people to be able to get to any data they shouldn’t. That’s why there us a shared table to protect the main apps data. Also in the shared app I have “Filter out all existing rows?” set in the only table. Next you don’t want someone to spew in tons of duplicate or nonsense data. The biggest concern was someone creating a William Smith, Will Smith, Bill Smith and Billy Smith when theses where all the same person. The same is true with the company name. So in the main app, records created in the shared table by the shared app show up in a view called “Bookings to import”. The app user then has to go into each one, look at what company name the client typed and match this to an existing company name. Ditto with the student. If you left either of these blank, the bot would create a new company and/or student. Yeah its not fully automatic, but going on the old adage…

To Err is Human; To Really Foul Things Up Requires a Computer

Hope this helps :grinning:

1 Like

@Jared with the ability to include a Google form into your app now, and to use the submission of the form to trigger an automation directly, all of this just got way easier.

  • So easy, it’s almost trivial now. :nerd_face:

@Jared I can confirm, I’ve been playing around with the new integration and the way I use it is by sending my clients pre-filled Google Forms with references to their own data so that when they send any entries using the link I send them I’ll know exactly who they are.

These fields can’t be hidden in Google Forms, I put them in a separate section at the end of the form, I call them just “ID 1” and “ID 2” and scare users to prevent them from touching these ID’s by warning that messing with them might impact our ability to do whatever we are doing for them.


This is awesome to hear. I haven’t had any real time to devote to exploring the nuance of this integration, I’m happy to hear that prefilled fields work!

It’s too bad we can’t hide columns in a google form, though it kinda makes sense given what forms is all about.

1 Like