Set up app linking

Overview

App linking provides customers with a way to app link or deep-link into the Skedulo mobile app using the skedulox:// protocol. See the table below.

It also provides a way to link out of the Skedulo app as well (using protocols such as salesforce://). See The Skedulo mobile app Salesforce objects and Salesforce protocol URIs below.

When a resource taps on a skedulox:// URI from another mobile application (and the resource’s current session is valid), Skedulo will redirect it to the specified internal page.

If the session is invalid, Skedulo will allow the resource to log into the app before redirecting them to the internal page specified in the link.

URIs with dynamic data

Dynamic data is bolded in the URI and must be replaced with the relevant data before use, e.g., skedulox://customform/product.

The Skedulo mobile app page types and their skedulox protocol URIs

Type URI Comments
Agenda skedulox://agenda Opens Skedulo on the agenda page.
Notifications skedulox://notifications Opens Skedulo on the notifications page.
Chatter skedulox://chatter Opens Skedulo on the Chatter page (social chat).
Custom form skedulox://customform Opens custom forms list.
Custom form skedulox://customform/{customFormToOpen} Opens Skedulo on the specified resource level custom form. To open a custom form specify the custom form name in the URI. The existing form will close, and the new form will open. Dynamic data is bolded in the URI and must be replaced with the relevant data before use, e.g., skedulox://customform/product. If no form name is supplied or a form of that name doesn’t exist the resource level custom forms list is shown. Note: Currently, we only support resource-level custom forms (not jobs).
Job skedulox://job/{jobId} Opens Skedulo on the job details page of the specified job. To open the details of a job, pass the job id, e.g., skedulox://job/jA403jdJD2134dD. Dynamic data is bolded in the URI and must be replaced with the relevant data before use, e.g., skedulox://job/jA403jdJD2134dD
Job custom form skedulox://job/{jobId}?customformlabel={formname} Added in v1.31.0 Opens Skedulo to the specified custom form on a specified job. To open the form pass the Job ID and the custom form name, e.g., skedulox://job/jA403jdJD2134dD?customformlabel=Custom%20Form If the form label is not found, only the job screen will open.
Job details skedulox://jobdetails/{jobId} Opens Skedulo job details.
Offers skedulox://offers Opens Skedulo offers.
Shift skedulox://shift Opens Skedulo shift.
Shift skedulox://shift/{shiftId} Opens Skedulo shift.
Team name skedulox://team/{teamname} Added in v1.18.0. Opens up Skedulo and if the user is not logged in it will auto-select the team name and prompt for login if valid. Dynamic data is bolded in the URI and must be replaced with the relevant data before use, e.g., “skedulox://team alpha” If no team name is supplied or the team name lookup fails the enter team name screen is shown.

The Skedulo mobile app Salesforce objects and Salesforce protocol URIs

Salesforce URIs

salesforce://<id> salesforce://sObject/<id>/<action> salesforce1://<id> salesforce1://sObject<id>/<action>

They open in the Salesforce app.

Salesforce web URI

salesforceweb://<id>

The URI will open the external browser app with an authenticated session to the object.

Access the job ID from within a Visualforce page

In the Skedulo v2 mobile app, the Job ID can be retrieved within a linked Visualforce page by accessing the query string parameters.

Troubleshoot app linking issues

App linking errors

Error Type Message Comments
Too many requests Your organization has run out of requests on its remote system. Please contact your administrator. This particular limit is linked the number of apex callouts (a rolling 24-hour limit) and can be impacted by any callout in your org—so it is always going to be unique for your setup. Your Salesforce admin can negotiate with Salesforce to have it increased. Potentially, you can also look at optimizing your configurations and customizations for greater efficiency (to reduce the load).