URL is not clickable when derived from an expression

Hi,

I am trying to create an action button with type : External : Go to an website and here’s the issue

When i hard code “www.google.com” - it works as expected ( there’s a button that’s clickable and takes me to google.com).
When i use expressions to return a link to google sheets, the button disappears.

The expressions I have tried so far

  • ANY(SELECT(mytable[URLcolumn],([_THISROW].[ID] = [ID])))
  • INDEX(SELECT(mytable[URLcolumn],([_THISROW].[ID] = [ID])),1)
  • TRIM(ANY(SELECT(mytable[URLcolumn],([_THISROW].[ID] = [ID])))
  • CONCATENATE(“”“”,ANY(SELECT(mytable[URLcolumn],([_THISROW].[ID] = [ID]))),“”“”)
  • LINKURL(ANY(SELECT(mytable[URLcolumn],([_THISROW].[ID] = [ID]))))

I have validated the following and still the button disappears,

  • the value in URL column is valid hyperlink
  • the test returns a valid url
  • i have updated the value in URLcolumn to “www.google.com” and button still disappears

The button appears and is clickable only when i hardcode the link.

It sounds like the issue is with how AppSheet is handling the dynamically generated URL. Here are a few things to check and try:

1. Check if the column type is “URL”

Make sure that URLcolumn in mytable is explicitly set to “URL” and not “Text”. Even if the value is a valid URL, if the column is of type “Text”, AppSheet might not treat it as a hyperlink properly.

2. Force the value to a URL type using HYPERLINK()

Try wrapping the expression in HYPERLINK():

HYPERLINK(ANY(SELECT(mytable[URLcolumn],([_THISROW].[ID] = [ID]))), “Click Here”)

If AppSheet requires a text label, this ensures it’s a proper URL.

3. Ensure the URL has “https://”

AppSheet might be rejecting URLs without a proper scheme (https:// or http://). Try modifying your formula like this:

CONCATENATE(“https://”, ANY(SELECT(mytable[URLcolumn],([_THISROW].[ID] = [ID]))))

If your stored URLs already have https://, this step isn’t needed.

4. Test with a simpler approach

Instead of using ANY(), try:

LOOKUP([ID], “mytable”, “ID”, “URLcolumn”) or:

INDEX(mytable[URLcolumn], MATCH([ID], mytable[ID], 0))

This can sometimes return a cleaner result than SELECT().

5. Check for leading/trailing spaces

Use TRIM() to clean up any whitespace:

TRIM(LOOKUP([ID], “mytable”, “ID”, “URLcolumn”))

6. Use AppSheet Debugging

  • Open the Expression Assistant.
  • Check the output of your expression using “Test” to ensure it returns a fully-formed URL.
  • Let me know if any of these solutions work or if you’re still having trouble

Exactly the same problem here. Have tried every permutation of HYPERLINK() and CONCATENATE in a URL type field, simply cannot create a clickable link.

To display a clickable link, use the Show column type with the Url category.

1 Like

OK so if anyone else finds this and has to try and set up this horrible hack:

Create a virtual Show column of type URL. The formula for the link goes in the Content box below where you select “URL” as type. The hypertext goes in the Display Name box. The app will also fall over unless you put something in the app formula box, so enter “”. I also had to revert the data source field type to “Text” and not “URL”.

Struggling to understand what the purpose of the URL field type is. You can’t click it, which is kind of the point of a url, and you have to clutter up the table with a bunch of virtual columns to try and get it working.

1 Like

AppSheet automatically creates an action for the Url column. You can surface that action elsewhere. When the user clicks the action, they’ll navigate to the URL.