The App column type is used to navigate to a different view in the current app or to another app. The value in an App-type column must be a deep link.

In addition to being a normal column, App columns can be used with App Launchers and App Actions.

Deep Links

A deep link is a special text value that follows a particular format. There are two ways to create a deep link:

  • It is easiest to construct a deep link using a Deep Link Expression.
  • You can manually construct a deep link.

Deep Link Expressions

AppSheet provides helper expressions to create deep links.

Linking to a particular app:

  • LINKTOAPP("MyApp-123")

will navigate to app "MyApp-123" and display its default starting view.

Linking to a particular view in the current app:

  • LINKTOVIEW("New Orders")

will navigate to the "New Orders" view in the current app.

Linking to a particular view in another app:

  • LINKTOVIEW("Other New Orders", "MyOtherApp-123")

will navigate to app "MyOtherApp-123" and display the "Other New Orders" view.

Linking to a particular view and row in the current app:

  • LINKTOROW("order456", "Order Details")

will navigate to the "Order Details" view in the current app for the row having key "order456".

  • LINKTOROW([Order Detail ID], "Order Details")

will navigate to the "Order Details" view in the current app for the row having the key value contained in [Order Detail ID].

Linking to a particular view and row in another app:

  • LINKTOROW("order456", "Other Order Details", "MyOtherApp-123")

will navigate to app "MyOtherApp-123" and display the "Other Order Details" view for the row having key "order456".

  • LINKTOROW([Order Detail ID], "Other Order Details", "MyOtherApp-123")

will navigate to app "MyOtherApp-123" and display the "Other Order Details" view for the row having the key value contained in field [Order Detail ID].

Linking to a form with pre-filled values in the current app:

  • LINKTOFORM("New Order", "Store", "Main Warehouse", "Type", "Wholesale")

will navigate to the "New Order" form in the current app. It will pre-fill the [Store] column with the value "Main Warehouse" and the [Type] column with the value "Wholesale". You can include any number of column name, column value pairs in the function.

Linking to a form with pre-filled values in another app:

  • LINKTOFORM("Other New Order", "Store", "Main Warehouse", "Type", "Wholesale", "MyOtherApp-123")

will navigate to app "MyOtherApp-123" and display the "Other New Order" form. It will pre-fill the [Store] column with the value "Main Warehouse" and the [Type] column with the value "Wholesale". You can include any number of column name, column value pairs in the function.

Linking to a view with filtered values:

  • LINKTOFILTEREDVIEW("Order View", [Order Status] = Open)

will navigate to the "Order View" and display Orders whose Order Status is "Open". The second argument to LINKTOFILTEREDVIEW is a filter expression over the rows in the view. This is similar to the filter in SELECT expressions.

  • LINKTOFILTEREDVIEW("Customers Table View", AND([Sales Rep] = [_THISROW].[Sales Rep Id], [Priority] = High))

will navigate to the "Customers Table View" and display high-priority Customers associated with the current sales rep.

  • LINKTOFILTEREDVIEW("Students Table View", [Age] < [_THISROW].[Age])

will navigate to the "Students Table View" and display Students having ages younger than the current student.

Manually Constructing Deep Links

You can manually construct deep links.

Your deep link can specify the app name. When no app name is specified, the current app name is assumed.

Your deep link can control which view and row is displayed by specifying optional link parameters following a # symbol. Link parameters are separated using the & symbol. The following link parameters are supported:

  • view (formerly "control")

If any link parameters are specified, this parameter is required. It specifies the name of the UX view to be displayed.

  • row

This parameter is required for some views and is optional for others. It specifies the key of the row to be displayed.

  • mapcolumn

This parameter is used for Map view controls. It specifies the name of the Address or LatLong column on which the Map view is based.

  • at

This parameter specifies a timestamp and is used to require the data be at least as fresh as that timestamp. The most common use for this parameter is in sending a workflow email, SMS, or push notification with a link to a particular data entry in the app. This can force the app to sync to pick up the data change rather than work with stale data.

Whitespace or other HTTP special characters in a deep link must be URL-encoded using the ENCODEURL() expression.

A deep link is a text value, not an app expression. The link must be enclosed in quotes.

Linking to a particular app:

  • "MyApp-123"

will navigate to app "MyApp-123" and display its default starting view.

Linking to a particular view in the current app:

  • "#view=New Orders"

will navigate to the "New Orders" view in the current app.

Linking to a particular view in another app:

  • "MyOtherApp-123#view=Other New Orders"

will navigate to app "MyOtherApp-123" and display the "Other New Orders" view.

Linking to a particular view and row in the current app:

  • "#view=Order Details&row=order456"

will navigate to the "Order Details" view in the current app and display the row having key "order456".

  • CONCATENATE("#view=Order Details&row=", ENCODEURL([Order Detail ID])) will navigate to the "Order Details" view in the current app and display the row having the key value contained in [Order Detail ID].

Linking to a particular view and row in another app:

  • "MyOtherApp-123#view=Other Order Details&row=order456"

will navigate to app "MyOtherApp-123" and display the "Other Order Details" view for the row having key "order456".

  • CONCATENATE("MyOtherApp-123#view=Other Order Details&row=", ENCODEURL([Order Detail ID]))

will navigate to app "MyOtherApp-123" and display the "Other Order Details" view for the row having the key value contained in field [Order Detail ID].

Linking to a particular app and force a sync:

CONCATENATE("MyApp-123#at=", ENCODEURL(NOW())) will navigate to app "MyApp-123", force a sync, and display its default starting view.

Did this answer your question?