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
|
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.
&keyword1=value1&keyword2=value2...
Keyword | Allowed Values and example | Comments |
---|---|---|
keyID | 0 | The 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. When the state=Edit:table parameter is used, you must also use the table and record parameters. For example, 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. |
state |
New:$table_name State=New:contact OR New:$table_name.$subtable
State=Edit:table_name&record_access=Edit&table=table_name&record=XXX
State=Charts
State=Main&search=MyAssigned
example: State=FAQ
State=FAQItem
State=Convert:case | This keyword specifies what action should be performed automatically. "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 "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. |
exiturl | Any url, or leaveLoggedIn exiturl=https://www.sw.com | When the user logs out from Agiloft, go to the specified URL. If you want to allow the user to remain in the system after exiting the record, use the leaveLoggedIn variable instead. |
loginurl | 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. |
timeouturl | 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 |
logouturl | 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. |
cancelurl | Any url, or leaveLoggedIn | If the user clicks the Cancel button when GUI is set to No, return to this URL. If you want to allow the user to remain in the system after exiting the record, use the leaveLoggedIn variable instead. If no cancelurl is provided, the exiturl is used. |
euiurl | Any url 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 |
gui=no gui=ada gui=no/enduser | "no" or "No" mean that only the record form, 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 appears using the end user layout or the power user layout. "staff" is the default and shows the full power user interface. "LowRes" and "ada" direct the user to the mobile interface regardless of the device. |
$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:
|
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 |
navigateto | Opens 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:
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 | "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. |
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: 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 If columns contain spaces, replace them with _ instead, and if names contain spaces, place them in single quotation marks. For example: |
record_access | View, view | 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, This keyword can be used together with |
locale | de | This keyword is used to define the language in which the interface should be shown to the user. |
Examples
Use these examples to see how keywords can work together.
Action | Link |
---|---|
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-on | https://test.agiloft.com/gui2/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-on | https://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 |
Go to the Legacy End User Interface. | https://test.agiloft.com/gui2/login.jsp?keyID=0&kb=demo&user=admin&passwd=1&State=enduser&exiturl=http://test.agiloft.com/gui2/ hotlinks/test_exit_url.html &loginurl=http://test.agiloft.com/gui2/hotlinks/test_login_url.html |
Go to the power user interface and select the Cases table | https://test.agiloft.com/gui2/login.jsp? keyID=0 &kb=demo&user=admin&passwd=1&State=Main&table=case |
Log in to the 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 | https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=Main &table=nonexistent_contacts |
Go to the contacts table | 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" | 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=contact &customsearch=test |
Submit a new bug without showing the Agiloft GUI, logoff on finish | https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=New:Case &table=case&gui=no |
Submit a new bug and show the GUI | https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=New:Case &table=case |
Go to Reports for the contact table and show the GUI | https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=Charts &table=contact |
Go to Reports for the contact table without showing the GUI | https://test.agiloft.com/gui2/login.jsp?keyID=0 &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 | https://test.agiloft.com/gui2/login.jsp?keyID=0 &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. | https://test.agiloft.com/gui2/login.jsp?keyID=0 &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=http://test.agiloft.com/gui2/hotlinks/test_exit_url.html |
Open a record (ID=2) in edit mode | https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &passwd=1&State=Edit:Case &table=case&record=2 &record_access=edit |
Open a record (ID=2) in view mode | https://test.agiloft.com/gui2/login.jsp?keyID=0 &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 | https://test.agiloft.com/gui2/login.jsp?keyID=0 &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 | https://test.agiloft.com/gui2/login.jsp?keyID=0 &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 | https://test.agiloft.com/gui2/login.jsp?keyID=0 &kb=demo&user=admin &record_access=edit &State=Edit:Case &table=case &record=1 &expiration=10/25/09 &passwd= @@sKbNeWUkB5OEXEKRbsa9Ag% 3D% 3D |