Page tree

Hyperlink Syntax and Examples

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.

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:


For the end user interface:


Whenever possible, make sure to use the domain name for your server, such as, rather than the specific server hostname, such as 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


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.

Keyword Syntax


Allowed Values and example


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

kb, project, product

Any knowledgebase name

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.


Any logical table name

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 Agiloft 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.


  • New

New:$table_name State=New:contact



  • Edit


  • Charts


  • Main


  • FAQ

    Open a record (ID=2) in edit mode

example: State=FAQ

  • FAQItem


  • Convert


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.


Any valid record id


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


Any future date


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




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>


Any url
example: exiturl=

When the user logs out from Agiloft, go to the specified URL


Any url

If the user is unable to login to Agiloft 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.


Any url

If the user's Agiloft 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


Any url

If the user is manually logged out of Agiloft, go to this URL
If no logouturl is provided, but a timeouturl is provided, the timeouturl functions as the logouturl.


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.


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.


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




"no" or "No" mean that only the new/edit record screen, together with any pre and post HTML is shown. The rest of the Agiloft 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.




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:


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.


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.


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


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


View, view
Edit, edit

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  Agiloft 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 Agiloft interface.



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:
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.


Use these examples to see how keywords can work together. 

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.



Create a new contract record using SAML single sign-on

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

Open a specific record for editing using SAML single sign-on$id+&gui=no
Create a new Case record using SAML single sign-on &field=description:preset%20from%20hotlink&field=solution:--%20enter%20some%20---
Access the mobile interface on a desktop device.****&gui=lowres
Access the ADA compliant interface.****&gui=ada

Go to the Legacy End User Interface.
When the user selects Exit, go to the URL:
If there is an error, for example the password is invalid, go to the URL: hotlinks/test_exit_url.html &loginurl=

Go to the power user interface and select the Cases table keyID=0 &kb=demo&user=admin&passwd=1&State=Main&table=case

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

When the user exits, go to the URL &password=1&exiturl=

Try to go to a non-existent table to generate a deliberate error &kb=demo&user=admin &passwd=1&State=Main &table=nonexistent_contacts

Go to the contacts table &kb=demo&user=admin &passwd=1&State=Main &table=contacts

Go to "contracts" table and perform the Saved Search named "company name" &kb=demo&user=admin &passwd=1&State=Main &table=contracts_table &search=company%20name

Go to "contacts" table and search for the "test" keyword &kb=demo&user=admin &passwd=1&State=Main&table=contact &customsearch=test

Submit a new bug without showing the Agiloft GUI, logoff on finish &kb=demo&user=admin &passwd=1&State=New:Case &table=case&gui=no

Submit a new bug and show the GUI &kb=demo&user=admin &passwd=1&State=New:Case &table=case

Go to Reports for the contact table and show the GUI &kb=demo&user=admin &passwd=1&State=Charts &table=contact

Go to Reports for the contact table without showing the GUI &kb=demo&user=admin &passwd=1&State=Charts &table=contact&gui=no

Submit a new record without showing the GUI, set the"description" and "solution" fields &kb=demo&user=admin &passwd=1&State=New:Case &table=case&gui=no &field= description:preset%20from%20hotlink &field= solution:--%20enter%20some%20---

Submit a new 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. &kb=demo&user=admin&passwd=1&State=New:Case&table=case&gui=no &table=cases&gui=no &field=description:preset%20from%20hotlink &field= solution:--%20enter%20some%20--+&_mode=new &_unifier=50&type=30 &exiturl=

Open a record (ID=2) in edit mode &kb=demo&user=admin &passwd=1&State=Edit:Case &table=case&record=2 &record_access=edit

Open a record (ID=2) in view mode &kb=demo&user=admin &passwd=1&State=Edit:Case &table=case&record=2 &record_access=view

Open a record (ID=2), set priority=low and exit &kb=demo&user=admin &passwd=1&State=Edit:Case &table=case&record=2 &record_access=none &field=priority: low

Open a record (ID=3) in edit mode and change the summary and priority fields &kb=demo&user=admin &passwd=1&State=Edit: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 record (ID=1) in edit mode using a temporary password that expires on 10/25/09 &kb=demo&user=admin &record_access=edit &State=Edit:Case &table=case &record=1 &expiration=10/25/09 &passwd= @@sKbNeWUkB5OEXEKRbsa9Ag% 3D% 3D