Skip to main content
  • Subscribe by RSS
  • Ex Libris Knowledge Center

    Working with App URLs

    campusM + cmLibrary Logo wh bkg sm1.png

    You enter URLs in various sections of the App Manager, particularly when creating a redirect for the end-user to select. You can use a standard URL, but you can also use special URLs to redirect to other services in the app, or to other apps on the device. You can also create a tile that, when selected, opens a prompt enabling the user to call a specified phone number.
    App URLs cannot currently be linked from content list menus; however, you can create a content page containing App URL links via the content editor. Additionally, App URLs cannot currently be linked from push notifications.

    Linking to an External App

    Changes may occur in future in the schema of external apps - these are not reflected in this documentation. 

    To link to an external app, use the following URL:
    campusm://launchapp?app_name=[app name]&ios_app_url=[iOS URL]&android_app_url=[Android URL]
    &ios_store_url=[Appstore URL]&android_store_url=[Google Play store URL]&prompt=[Y/N]

    As of iOS 10, Apple requires that the launch URL prefix for the external app is added to the allow list during the app build. Please open a Salesforce ticket to campusM Support to add the external apps to the allow list.

    External App URL Elements
    Parameter Value
    app_name Name of app to open.
    ios_app_url Define the URL of the external app to open on iOS, this depends on the 3rd party vendor supporting app deeplink.
    android_app_url Define the URL of the external app to open on Android, this depends on the 3rd party vendor supporting app deeplink
    ios_store_url (Optional) Appstore URL, in case the app is not yet installed clicking the tile directs the user to the app store to download the app.
    android_store_url (Optional) Google Play Store URL, in case the app is not yet installed clicking the tile directs the user to the app store to download the app.
    prompt (Optional) When not included in the URL, or when set to Y, the end-user is prompted if the app is not yet installed.
    noandroidtoolbar (not shown) (Optional) When set to Y, the navigation overlay toolbar (pictured below) will be hidden from the end-user.


    The URL must be ASCII encoded (unsupported characters replaced by % followed by two hexadecimal values).
    The following example links to Twitter.
    The information below is an example only.
    External URL Example for Twitter
    Parameter Unencoded Encoded
    app_name Twitter Twitter
    ios_app_url =twitter://user?screen_name=_campusM_ ios_app_url=twitter%3A%2F%2Fuser%3Fscreen_name%3D_campusM_
    android_app_url android_app_url=
    ios_store_url ios_store_url=
    android_store_url &android_store_url=
    prompt prompt=Y prompt=Y
    As a URL:
    To add this to HTML directly into service code, use:
    <p><a href="campusm://launchapp?app_name=Twitter&ios_app_url=twitter%3A%2F%2Fuser%3Fscreen_name%3D_campusM_&"</a></p>


    The most common URL scheme is openURL. This opens any link, either in the native app webview, or externally in a browser app on your mobile device. Here is an example:


    To open in an external browser app on any native device, append “type=external” to the URL as a query parameter:


    URLs passed into the openURL scheme should also be URL encoded. For example:


    We also require the HTTPS protocol to be specified for cross-platform support, and do not support or recommend HTTP-only links.


    Native apps URL Scheme examples:

    • Cisco Jabber - ciscojabber://
    • DoubleMap - doublemap://
    • Flickr - flickr://
    • Gmail - Gmail://

      URL example: 


    • Maze Maps - mazemap://
    • One Drive - ms-onedrive://
    • Outlook -
      • iOS - ms-outlook://
      • Android - msoutlook://

      URL example: 


    • Skype for business - ms-sfb://
    • Unit4/Agresso -
      • AgressoTasks://
      • AgressoReports://
      • accom.unit4.AgressoTimesheets://
      • UNIT4Me://
    •  Zoom -  
      • iOS -
      • Android - zoomus://

      URL example: 


    • Canvas Teacher - 
      • iOS - canvas-teacher://
      • Android - canvas-teacher://

      URL example: 



    The above information regarding External Application prefixes should only be treated as a guide. Sometimes external application prefixes change.

    Contact your Application Provider directly. If one stops working, we recommend you contact your Application Provider directly.

    Linking to a Service or Area in the App

    To link to a service or other area of the app, use any of the following URL formats:
    Parameters in the URL scheme are inserted here in square brackets: [value]. When constructing your own links, do not include these square brackets.
    Area URL Notes
    App home page campusm://home Loads the home page
    App Search


    Loads the home page and opens the search tab to allow the user to perform a search
    App Feedback campusm://feedback Links through to the App Feedback section in the App Settings
    App home page with the menu open the menu option selected campusm://menu=[your menu option ID] You can see a menu option ID when adding a link to the menu option in the App Builder as an Action URL, in the static content simple WYSIWYG HTML editor, or as a location action. In any of these cases, when you select the field to enter the link, the link selector appears. Enter the name, or part of the name, of the menu option and you will see the link in the selector. The ID is the last part of the link.
    The final link will always look something like this:
    Static content service campusm://pocketguide?pg_code=[static content service ID] You can see a static content service ID when adding a link to the service in the App Builder as an Action URL, in the static content simple WYSIWYG HTML editor, or as a location action. In any of these cases, when you select the field to enter the link, the link selector appears. Enter the name, or part of the name, of the service and you will see the link in the selector. The ID is the last part of the link.
    The final link will always look something like this:
    AEK service

    campusm://loadaek?toolbar=[toolbar code]&sid=[sid]&otherparameter1=[AA]&otherparameter2=[BB]

    To get the menu option ref code, open the service for editing (AEK > App Extension Kit > AEK Menu Options) and copy the value in Component type. The value will look something like AEK12345.
    Alternately, in the App Builder, select the service, select Code, and copy the value of menuRefCode. For example: "menuRefCode": "AEK16368",
    The optional "sid" parameter is the service id when an AEK component needs to send the user’s credentials. You can find the ID required for this by opening the record for the credentials used by the AEK screen under “App Settings” > “Authentication Access”, and once you’ve got the details page open its URL should be in the form[sid here]/.
    The "otherparameter" values can be called anything, and set to anything (e.g. "firstname=John") and will be passed to the AEK page. You don't have to set any of these.
    The final link will always look something like this:
    Map location campusm://uniloc?posCode=[location code] To get the location code, open the location for editing (App Settings > Maps/Locations > Positions) and copy the location code from the URL. For example:
    Alternatively, if you have defined a value for Customer Location Reference for the location, you can use that as the location code.
    The final link will always look something like this:
    Location Categories
    campusm://uniloc?mapCode=[map code]&locCode=[category code]

    To link to a location category for a map, the URL format must be:

    campusm://uniloc?mapCode=[map code]&locCode=[category code], where the Map Code and Location Code can be found in the URL when selecting the respective configuration in App Manager (App Settings > Maps/Locations > Location Categories). For example:


    The final link will always look something like this:


    App home page with the indicated profile selected campusm://switchprofile?profile_id=[profile ID] To get the profile ID, open the profile for editing (App Settings > Enterprise Roles > App Profiles) and copy the profile ID from the URL. For example:
    Note that switching profiles does not currently work with single sign-on.
    Additional parameters for this URL include:
    • prompt_confirm=[Y/N] - Whether to prompt the user to confirm switching profile. Default: N.
    • prompt_confirm_message=<msg> - The message to display when confirming before switching profile. Default: Are you sure you watch to switch profile?
    • show_profile_switch_error_message=[Y/N] - Whether to display an error message if cannot switch profile. Default: N.
    • prompt_switch_error_message=<msg> - The message to display if cannot switch profile. Default: Cannot switch profile.

    The final link will always look something like this:


    Profile deep link (web only)


    Obtain a profile code by using the Base URL followed by the profile registration authentication code listed in App Manager > App Settings > Profile Registration Authentication.

    Using Token Attributes in Links

    If you need to use a CMAuth token attribute as a part of a link on a tile, you can do so by adding a placeholder for the attribute you want to use.

    Action URL w CMAuth Token.png

    cmattr_mail Attribute Included in the Action(URL) of a Tile

    This functionality only works for query parameter values.

    All placeholders must start with cmattr_, followed by the name of the token attribute you wish to include. Several of these are hard-coded:

    • cmattr_username
    • cmattr_mail
    • cmattr_firstName
    • cmattr_lastName

    The rest come from the “Additional Mappings” list in the Integration Profile associated with your CMAuth login.

    For a placeholder to work, the suffix must exactly match the attribute name that has been mapped in the profile. For example, if it has a mapping named AlmaID, then the resulting attribute placeholder would be:


    The attribute name must be alphanumeric, and the only separator allowed is “_”.

    This is an example of how this would look in an openURL scheme (with everything URL encoded correctly):



    This would create the following link, with “cmattr_AlmaID” replaced with the user’s actual Alma ID value:


    Other profiles are not supported; this system pulls the data from the token you get from logging in, and not from tokens that come from secondary authentications (like the Canvas PI).

    Adding a Phone-Number Link to a Tile

    You can define an ActionURL for a Menu Option (tile) that initiates a prompt to a user to make a call to a defined telephone number. On mobile devices, this option can simplify the process of making calls to support services or security services where a phone call is required.

    Tel Action - Screen.png

    Prompt Enabling the User to Make a Call
    To configure a tile to open a phone-call prompt:
    • In the App Builder, in the configuration of the menu option, under Tile Config, add the Action (URL) tel:[phone number]

      Tel Action in App Builder.png
    • Was this article helpful?