Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Hyperlinks are a critical tool for helping users quickly and easily access the system. This article details how to construct a hyperlink for your system, and offers example hyperlinks to demonstrate how the keywords can be used.

Tip

If you manually construct a link, you also need to manually encrypt it. For information on encrypting links, see Hotlinks.

Basic Construction

Any hyperlink consists of three main components.

$URL_address_of_  Agiloft?

For example:

https://<server>/gui2/login.jsp?<keywords>

For the end user interface:

https://<server>/gui2/login.jsp?<keywords>&euiurl=/eui2template/<template>&gui=enduser

Whenever possible, make sure to use the domain name for your server, such as example.agiloft.com, rather than the specific server hostname, such as ps108.agiloft.com. If you're using single sign-on, replace login.jsp with the login code for your sign-on provider:

  • For SAML: samlssologin.jsp
  • For Windows: sso.jsp
  • For Google OAuth 2.0: oauth20sso without .jsp
  • For CAS: cas-login without .jsp

KeyID=0

This keyword pair is always the same and is required in links.

Keyword pairs

Add any other necessary keywords to bring the user to the right location. See  the list of keywords below.

Hyperlink Keywords

Keywords aren't case sensitive, but their values, such as the table or field name, are case sensitive. To find the correct case for your table, navigate to Setup > Tables , select your table, click Edit, and look for the Logical Table Name. To find the correct case for a field, edit its parent table, and then edit the field. Remember to use the field name, not the label.

You can use these keywords regardless of whether you are using a single sign-on hyperlink, but with single sign-on, username and password keywords are not necessary.

Code Block
titleKeyword Syntax
 &keyword1=value1&keyword2=value2...
HTML
<style type="text/css">
@media print {
    /* workaround for wide tables: CONF-17424 */
    table.confluenceTable
    {
        width: 100%;
        table-layout: fixed;
    }
}
</style>

Keyword

Allowed Values and example

Comments

keyID0The key/value pair keyID=0 is required for all login hyperlinks.

kb, project, product

Any knowledgebase name
kb=Example

These keywords specify the name of the knowledgebase that the user is logging into. They all mean exactly the same thing and are interchangeable. There is more than one keyword with this meaning for historical reasons.

table

Any logical table name
Table=Case
table=person.employee

This keyword specifies the name of the table that the user should view. In this example, it is as if the user logged on and then clicked the Cases tab.
The Table parameter is based on the table name rather than the label.
If the user provides a table name that is not recognized, the system logs them into the default screen with an error message:
"Table $name not found. Please use the name of the table, rather than its label, for example Document, rather than Documents".

When the state=Edit:table parameter is used, you must also use the table and record parameters. For example, &state=edit:contract&table=contract&record=202.

Due to the current

Companyname
GUI design, there is no difference between specifying a table or a subtable - for example, Case.Bug takes the user to the same tab as Case.

state

  • New

New:$table_name State=New:contact

OR

New:$table_name.$subtable
State=New:contact.user

  • Edit

State=Edit:table_name&record_access=Edit&table=table_name&record=XXX

  • Charts

State=Charts

  • Main

State=Main&search=MyAssigned

  • FAQ

    Open a record (ID=2) in edit mode

example: State=FAQ

  • FAQItem

State=FAQItem

  • Convert

State=Convert:case

This keyword specifies what action should be performed automatically.
"New:$table_name" creates a new record of specified type, as in the example.

"Edit:$table_name" opens a record for edit in the specified table, and must be used with the parameters "table", "record", and "record_access=Edit".

"Charts" takes the user to the Charts tab of the Power User interface in the table specified by Table parameter.

"Main" takes the user to the main mode of the interface and allows specification of a search that should be automatically executed. Note the case sensitivity for this parameter: Use State=Main or state=Main, since State=main will not work.

"FAQ" takes the user to the FAQ mode of the EndUser interface and allows to specify the table parameter to choose the table that contains FAQ records

"FAQItem" takes the user to the specific FAQ record. table and record parameters are required

"Convert:$table_name" enables a specific record to be converted from a hyperlink. The hyperlink must include the name of a corresponding conversion action.

This functionality offers a way to use template records to create new records with prepopulated fields. For instance, you could provide a user with a hyperlink to "create a password reset ticket" that converts a ticket that already has the category, assigned to, and other fields filled out for a password reset request.

This parameter works not only in external login hyperlinks, but also in the internal hyperlinks available in the hyperlink widget in the power user home page. So you can provide multiple hyperlinks that each convert a different template ticket directly on the home page, such as: Create a Network Outage Ticket, Request a New Employee Setup, Request a Password Reset or Create a new server upgrade task.

record

Any valid record id

record=123

This parameter is mandatory for state=Edit. It identifies the record to be opened for edit by ID.

expiration

Any future date

expiration=05/31/2025

This keyword defines an expiration date (MM/DD/YYYY) for anonymous links. Use it together with state=Edit

field

$fieldname:fieldvalue

field=summary:test_summary

This keyword allows you to set field values for a record in state=Edit. A hyperlink may contain several "field" parameters.
Use the following format to modify fields:
field=<$field_name> :<$value>

exiturl

Any url
example: exiturl=

https://www.sw.com

When the user logs out from

Companyname
, go to the specified URL

loginurl

Any url

If the user is unable to login to

Companyname
because of an invalid username/password combination, go to this URL.
If no loginurl is provided, but an exiturl is provided, the exiturl functions as the loginurl.

timeouturl

Any url

If the user's

Companyname
session times out due to inactivity, go to this URL.
If no timeouturl is provided but an loginurl is provided, the loginurl functions as the timeouturl

logouturl

Any url

If the user is manually logged out of

Companyname
, go to this URL
If no logouturl is provided, but a timeouturl is provided, the timeouturl functions as the logouturl.

cancelurl

Any url

If the user clicks the Cancel button when GUI is set to No, return to this URL.
If no cancelurl is provided, the exiturl is used.

euiurl

Any url
example: euiurl=eui2template/<x.php>

When the user logs into the End User Interface via single-sign on, this URL specifies where to redirect the user. For other ways to create a hyperlink to log into the end user interface, see the Examples section.

gui

  • No, no
  • EndUser, enduser
  • Staff (default)
  • No/enduser
  • No/staff
  • LowRes, lowres
  • ADA, ada

gui=no
gui=LowRes

gui=ada

gui=no/enduser
gui=enduser
gui=staff

"no" or "No" mean that only the new/edit record screen, together with any pre and post HTML is shown. The rest of the

Companyname
interface is not displayed.

"no/enduser" or "no/staff" are just like no, but explicitly specify whether the record should be shown using the end user layout or the power user layout.

"staff" is the default and indicates the full power user interface should be shown.

"LowRes" parameter will direct the user to the mobile interface regardless of the device.

"ada" will direct users to the accessible ADA interface.

$notmobile

true

$notmobile=true

Use the parameter $notmobile to force a mobile device to access the normal desktop interface, either power or end user depending on permissions. The $notmobile parameter can also be used in login page buttons, to be sent to the browser with the login request. For example:

<input type="hidden" name="$notmobile" value="true">

field= hide_btn:true

Prevents display of the Finish&New button

This keyword is used in conjunction with GUI=No when you want the user to provide a single record, such as an employment application

navigatetoOpens a record to a specific field in the form

This keyword is used to define a specific field in the record form that is put in focus upon opening the link. You can specify different locations for power users and end users. For example:

navigateto=%7Bstaff%3A%7Bfield%3A'renewal_notification_date'%7D%2 Cenduser%3A%7Bfield%3A'renewal_notification_date'%7D%7D

This utilizes URL encoding in place of the {} symbols. To make the example more legible, consider how it reads when you remove the URL encoding:

navigateto={staff:{field:'renewal_notification_date'},enduser:{field:'renewal_notification_date'}}

However, the URL encoding is necessary when building the usable hyperlink.

This parameter can also be used in the $returnURL parameter of an EUI macro.

user

Any valid user login name

The keyword parameter provides the user login name.

passwd, password

Any valid password for the specified user
example: passwd=bob

"passwd or password" values provide the provide the password part of a user/password combination.

search

Any valid saved search name

This keyword parameter provides the name of a saved search that is automatically executed when the user logs on.
This parameter is always used together with the table parameter

customsearch

Any valid search

This keyword allows the user to specify the field names and values within the hotlink itself. The search uses the standard syntax ==, >=, >, <=, <, !=, (,), && and ||. However, many of these symbols have reserved meanings in HTML, so they have to be expressed using %N equivalents. For example: CustomSearch=State% 3E=Closed%26%26Severity==Critical

If the URL is used in a return URL or in the value of another query string, the reserved and excluded characters must be doubled encoded, meaning the % in the %N must also be expressed in %N format. To demonstrate, & is single-encoded as %26 and double-encoded as %2526 (%26 is the URL-encode for "&", and %25 is the URL-encode for "%").

Multiple conditions can be joined together using || or && symbols. It is possible to specify whether the data should be sorted in ascending or descending order by using sortasc=$fieldname or sortdesc=$fieldname.

If columns contain spaces, replace them with _ instead, and if names contain spaces, place them in single quotation marks. For example: Name_of_Related_Party='Acme Technologies Inc.'&&Party_Position=Client

record_access

View, view
Edit, edit
none

This keyword causes the specified record to be opened for viewing or editing, or, if "none" is specified, causes no interface to appear at all while the hotlink is processed.

You might use "none" in a hotlink that is intended to change some data in 

Companyname
 without showing the editing screen. For example, state=Edit:Cases&record=2&fields=priority:high& record_access=none will set the case's priority to "high" and redirect the user to the exit URL.

This keyword can be used together with gui=no to return a single record to the user without showing the rest of the

Companyname
interface.

locale

de
en
es
fr
ru
zh
pt_BR
SW_User_Selected_Lang

This keyword is used to define the language in which the interface should be shown to the user.
Accepted values correspond to supported languages:
German - de
English - en
Spanish - es
French - fr
Russian - ru
Chinese - zh
Brazilian Portuguese - pt_BR
For example:
&locale=fr
A special value SW_User_Selected_Lang allows to log in with the same language as used for last user's session. This value will be used from now on in the email hotlinks as well.
If no value is supplied English is assumed for backward compatibility.

Examples

Use these examples to see how keywords can work together. 

Note
SAML SSO users must use a Service Provider initiated hyperlink to access Agiloft. The SAML Identity Provider should be configured to include the attribute InResponseTo, and the corresponding value, in the SAML assertion response that is sent to Agiloft.

Action

Hotlink

Create a new contract record using SAML single sign-on

https://test.agiloft.com/gui2/samlssologin.jsp?State=New:contract&KB=demo

Open the Demo project in the EUI regardless of the user's permission set

https://test.agiloft.com/gui2/samlssologin.jsp?project=Demo&gui=enduser&state=enduser&euiURL=/eui2template/main.php

Open a specific record for editing using SAML single sign-onhttps://test.agiloft.com/ui/samlssologin.jsp?project=Demo&state=Edit:Contract&table=contract&record_access=view&record=+$id+&gui=no
Create a new Case record using SAML single sign-onhttps://test.agiloft.com/gui2/login.jsp?keyID=0&kb=demo&user=admin&passwd=1&State=New:Cases.Bug_Report&table=cases&gui=no &field=description:preset%20from%20hotlink&field=solution:--%20enter%20some%20---
Access the mobile interface on a desktop device.https://test.agiloft.com/gui2/login.jsp?keyID=0&kb=KBNAME&user=USER&password=****&gui=lowres
Access the ADA compliant interface.https://test.agiloft.com/gui2/login.jsp?keyID=0&kb=KBNAME&user=USER&password=****&gui=ada

Keywords

Note

Keywords are case insensitive, but their values (such as the table or field name) are case sensitive. To find the correct case for your table, navigate to Setup > Tables, select your table, click Edit, and look for the Logical Table Name. To find the correct case for a field, edit its parent table, and then edit the field. Remember to use the field name, and not the label.

HTML
<style type="text/css">
@media print {
    /* workaround for wide tables: CONF-17424 */
    table.confluenceTable
    {
        width: 100%;
        table-layout: fixed;
    }
}
</style>

 

 

Code Block
titleSyntax
 &keyword1=value1&keyword2=value2...

Keyword

Allowed Values and example

Comments

keyID0The key/value pair keyID=0 is required for all login hyperlinks.

kb, project, product

Any knowledgebase name
kb=Example

These keywords specify the name of the knowledgebase that the user is logging into. They all mean exactly the same thing and are interchangeable. There is more than one keyword with this meaning for historical reasons.

table

Any table name
Table=Case

This keyword specifies the name of the table that the user should view. In this example, it is as if the user logged on and then clicked the Cases tab.
The Table parameter is based on the table name rather than the label.
If the user provides a table name that is not recognized, the system logs them into the default screen with an error message:
"Table $name not found. Please use the name of the table, rather than its label, for example Contact, rather than Contacts"
Due to the current

Companyname
GUI design, there is no difference between specifying a table or a subtable (i.e. Case.Bug takes the user to the same tab as Case)

state

  • New

New:$table_name State=New:contact

OR

New:$table_name.$subtable
State=New:contact.user

  • Charts

State=Charts

  • Main

State=Main&search=MyAssigned

  • FAQ

example: State=FAQ

  • FAQItem

State=FAQItem

  • Convert

State=Convert:case

This keyword specifies what action should be performed automatically.
"New:$table_name" creates a new record of specified type, as in the example.
"Charts" takes the user to the Charts tab of the Staff interface in the table specified by Table parameter
"Main" takes the user to the main mode of the interface and allows specification of a search that should be automatically executed
"FAQ" takes the user to the FAQ mode of the EndUser interface and allows to specify the table parameter to choose the table that contains FAQ records
"FAQItem" takes the user to the specific FAQ record. table and record parameters are required
"Convert:$table_name" enables a specific record to be converted from a hotlink. The hotlink must include the name of a corresponding conversion action.
This functionality offers a way to use template tickets to create new tickets with prepopulated fields. For instance, you could provide a user with a hyperlink to "create a password reset ticket" that converts a ticket that already has the category, assigned to, and other fields filled out for a password reset request.
This parameter works not only in external login hotlinks, but also in the internal hotlinks available in the hotlink widget in the staff home page. So you can provide multiple hotlinks that each convert a different template ticket directly on the home page, such as:
Create a Network Outage Ticket, Request a New Employee Setup, Request a Password Reset or Create a new server upgrade task

record, id

Any valid record id

id=123

This parameter is mandatory for state=Edit. It identifies the record to be opened for editing.

expiration

Any future date

expiration=05/31/2025

This keyword defines an expiration date (MM/DD/YYYY) for anonymous links. Use it together with state=Edit

field

$fieldname:fieldvalue

field=summary:test_summary

This keyword allows you to set field values for a record in state=Edit. A hyperlink may contain several "field" parameters.
Use the following format to modify fields:
field=<$field_name> :<$value>

exiturl

Any url
example: exiturl=

http://www.sw.com

When the user logs out from

Companyname
, go to the specified URL

loginurl

Any url

If the user is unable to login to

Companyname
because of an invalid username/password combination, go to this URL.
If no loginurl is provided, but an exiturl is provided, the exiturl functions as the loginurl.

timeouturl

Any url

If the user's

Companyname
session times out due to inactivity, go to this URL.
If no timeouturl is provided but an loginurl is provided, the loginurl functions as the timeouturl

logouturl

Any url

If the user is manually logged out of

Companyname
, go to this URL
If no logouturl is provided, but a timeouturl is provided, the timeouturl functions as the logouturl.

cancelurl

Any url

If the user clicks the Cancel button when GUI is set to No, return to this URL.
If no cancelurl is provided, the exiturl is used.

euiurl

Any url
example: euiurl=eui2template/<x.php>

When the user logs into the End User Interface via single-sign on, this URL specifies where to redirect the user. For other ways to create a hyperlink to log into the end user interface, see the Examples section.

gui

  • No, no
  • EndUser, enduser
  • Staff (default)
  • No/enduser
  • No/staff
  • LowRes

gui=no
gui=LowRes

gui=no/enduser
gui=enduser
gui=staff

"no" or "No" mean that only the new/edit record screen, together with any pre and post HTML is shown. The rest of the

Companyname
interface is not displayed.

 

"no/enduser" or "no/staff" are just like no, but explicitly specify whether the record should be shown using the end user layout or the staff layout.

 

"staff" is the default and indicates the full staff interface should be shown.

"LowRes" forces the user to log into the low resolution/ADA interface for mobile devices.

$notmobile

true

$notmobile=true

Use the parameter $notmobile to force a mobile device to access the normal desktop interface, either staff or end user depending on permissions. The notmobile parameter can also be used in login page buttons, to be sent to the browser with the login request. For example:

<input type="hidden" name="$notmobile" value="true">

field= hide_btn:true

Prevents display of the Finish&New button

This keyword is used in conjunction with GUI=No when you want the user to provide a single record, such as an employment application

user

Any valid user login name

The keyword parameter provides the user login name

passwd, password

Any valid password for the specified user
example: passwd=bob

"passwd or password" values provide the provide the password part of a user/password combination.

search

Any valid saved search name

This keyword parameter provides the name of a saved search that is automatically executed when the user logs on.
This parameter is always used together with the table parameter

customsearch

Any valid search

This keyword allows the user to specify the field names and values within the hotlink itself. The search uses the standard syntax ==, >=, >, <=, <, !=, (,), && and ||. However, many of these symbols have reserved meanings in HTML so they have to be expressed using% N equivalents. For example CustomSearch=State% 3E=Closed%26%26Severity==Critical
Multiple conditions can be joined together using || or && symbols. It is possible to specify whether the data should be sorted in ascending or descending order by using sortasc=$fieldname or sortdesc=$fieldname

record_access

View, view
Edit, edit
none

This keyword is only used together with a search or a customsearch that returns just one record and Edit state. It causes the specified record to be opened for viewing or editing.
Value "none" for this parameter indicates no GUI should be shown during hotlink's processing. Such behavior useful if a hotlink intended to change some data in

Companyname
without editing screen. For example,
state=Edit:Cases&record=2&fields=priority:high& record_access=none
will set priority to "high" and redirect user to logout URL (login.jsp, if the URL is undefined)
This keyword can be used together with gui=no to return a single record to the user without showing the rest of the
Companyname
interface.
If the user specifies a chart/report to view, it shows it in the same fashion as if the user had clicked on the hotlink

locale

de
en
es
fr
ru
zh
pt_BR
SW_User_Selected_Lang

This keyword is used to define the language in which the interface should be shown to the user.
Accepted values correspond to supported languages:
German - de
English - en
Spanish - es
French - fr
Russian - ru
Chinese - zh
Brazilian Portuguese - pt_BR
For example:
&locale=fr
A special value SW_User_Selected_Lang allows to log in with the same language as used for last user's session. This value will be used from now on in the email hotlinks as well.
If no value is supplied English is assumed for backward compatibility.

Examples

Additional examples are provided at [your URL]/gui2/hotlinks/test.jsp. 
For example: https://support.agiloft.com:8080/gui2/hotlinks/test.jsp.

Action

Hotlink

Go to the Legacy End User Interface.
When the user selects Exit, go to the URL:

http

https://test.agiloft.com/gui2/hotlinks/test_exit_url.html
If there is an error

(

, for example the password is invalid

)

, go to the URL:

http

https://test.agiloft.com/gui2/hotlinks/test_login_url.html

http

https://test.agiloft.com/gui2/login.jsp?keyID=0&kb=demo&user=admin&passwd=1&State=enduser&exiturl=http://test.agiloft.com/gui2/

hotlinks

 hotlinks/test_exit_url.html &loginurl=http://test.agiloft.com/gui2/hotlinks/test_login_url.html

Go to the

staff (Main)

power user interface and select the Cases table

http

https://test.agiloft.com/gui2/login.jsp? keyID=0 &kb=demo&user=admin&passwd=1&State=Main&table=

cases

case

Log in to the main.php page of the default End User Interface

When the user exits, go to the URL https://www.agiloft.com

https://example.com/gui2/eui2template/main.php?KeyID=0&KB=Demo&user=internal &password=1&exiturl=https://www.agiloft.com

Try to go to a non-existent table

(

to generate a deliberate error

)

http

https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=Main &table=

unexisting

nonexistent_contacts

Go to the contacts table

http

https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=Main &table=contacts

Go to "contracts" table and perform the Saved Search named "company name"

http

https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=Main &table=contracts_table &search=company%20name

Go to "contacts" table and search for the "test" keyword

http://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=Main&table=

contacts

contact &customsearch=test

Submit a new bug without showing the

Companyname
GUI, logoff on finish

http

https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=New:

Cases.Bug_Report

Case &table=

cases

case&gui=no

Submit a new bug and show the GUI

http

https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=New:

Cases.Bug_Report

Case &table=

cases

case

Go to Reports for the contact table and show the GUI

http

https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=Charts &table=

contacts

contact

Go to Reports for the contact table without showing the GUI

http

https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=Charts &table=

contacts

contact&gui=no

Submit a new

bug

record without showing the GUI, set the"description" and "solution" fields

http

https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=New:

Cases.Bug_Report

Case &table=

cases

case&gui=no &field= description:preset%20from%20hotlink &field= solution:--%20enter%20some%20---

Submit a new

bug

record without showing the GUI, set the" description "and" solution" fields and immediately exit to the specified URL without giving the user the opportunity to make any changes to the record.

http

https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin&passwd=1&State=

FinishNew:Cases.Bug_Report

New:Case&table=

cases

case&gui=no &table=cases&gui=no &field=description:preset%20from%20hotlink &field= solution:--%20enter%20some%20--+&_mode=new &_unifier=50&type=30 &exiturl=http://test.agiloft.com/gui2/hotlinks/test_exit_url.html

Open a

bug

record (ID=2) in edit mode

http

https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State

=Edit:Cases.Bug_Report

=Edit:Case &table=case&record=2 &record_access=edit

Open a

bug

record (ID=2) in view mode

http

https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=Edit:

Cases.Bug_Report

Case &table=case&record=2 &record_access=view

Open a

bug

record (ID=2), set priority=low and exit

http

https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=Edit:

Cases.Bug_Report

Case &table=case&record=2 &record_access=none &field=priority: low

Open a

bug

record (ID=3) in edit mode and change the summary and priority fields

http

https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=Edit:

Cases.Bug_Report

Case &table=case&record=3 &record_access=edit &field=summary: from_link Tue Mar 15 15:59:09 PST 2009 &field=priority:medium

Open a

bug

record (ID=1) in edit mode using a temporary password that expires on 10/25/09

http

https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &record_access=edit &State=Edit:

Cases.Bug_Report

Case &table=case &record=1 &expiration=10/25/09 &passwd= @@sKbNeWUkB5OEXEKRbsa9Ag% 3D% 3D

Hide If
displayprintable

Content by Label
showLabelsfalse
max5
spacesPROD
showSpacefalse
sortmodified
reversetrue
typepage
cqllabel in ("hotlinks","access","hyperlinks") and type = "page" and space = currentSpace()
labelsaccess hyperlinks hotlinks