Variable

Action or Value

Example

[RECORD]

Summary of Record values

John Smith, 3/13/1987, Omaha

[RECORDID]

ID of currently effected Record

100

[RECORDDESCRIPTION]

Description of current Record

Name = John Smith: DOB = 3/13/1987: City = Omaha

[RECORDCHANGEDATE]

The last date this Record was changed

3/13/2020

[RECORDCREATEDATE]

The date this Record was first created

3/1/2020

[RECORDLINK]

Link to Record screen

Workflow only

[RECORDURL]

URL to Record screen

Workflow only

[NUMDOCS]

Number of doreccuments in Record

4

[NUMPAGES]

Number of pages in document


NOTE: Only accurate if all documents have been viewed, OCR'd or have had renderings created in some way.


12

[FIELDCOUNT(fieldname)]

Returns the number of data values that have the 'fieldname' name


fieldname = The name of the field to look for

For a record with Name=Smith, Reminder=1/1/2020, Reminder=2/1/2020, Reminder=3/1/2020


[FIELDCOUNT(name)] = 1


[FIELDCOUNT(reminder)] = 3


[FIELDEL(fieldname|offset)]

[FIELDDEL(fieldname|offset)]


Returns the value in the 'offset' position of the list of values that match 'fieldname'


fieldname = The name of the field to look for


offset = The element number of the item to return


For a record with Name=Smith, Reminder=1/1/2020, Reminder=2/1/2020, Reminder=3/1/2020


[FIELDEL(reminder|2)] = 2/1/2020

[RECDATA(var|separator|firstonly|likematch|linenum)]


Returns the data value from the RECORD based on the data name (var) supplied.


This is similar to using just [VAR] except it has more options.


var = The name of the variable to return


separator = If you are returning more than one value this is used to separate them in the return string. The default is ;.


firstonly = Set to YES, Y, TRUE, or 1 to return only the first match. The default is false


likematch = Set to YES, Y, TRUE, or 1 to use LIKE syntax (with * as a wildcard) to find the proper variable name


linenum = the line number of the data to return.


[RECDATA(name)] = John Smith;Adam Jones;Third Person


[RECDATA(name|,)] = John Smith,Adam Jones,Third Person


[RECDATA(name*||true|true|2)] = John Smith



[NAMEDRECDATA(Name|Field|Linenum)]

This ONLY works in Workflow. Refer to the Workflow Variables section for this documentation.



[DATACHANGED(RecordID|Name)]


[DATACHANGEDUTC(RecordID|Name)]

Return last date/time a data item was changed 


RecordID - ID of Record for Data element


Name - Name of Data Element


[DATACHANGED(123|LastName)] - 3/1/2024 11:00:00 AM

[HASVALUE(var|val|yes|no|likematch)]

Looks at current Record to see if there is a data item with the specified name and value. If so, return the yes value, else the no value.


var = The name of the variable to check


val = The value to look for 


yes - The value to return if the var/val exists


no - The value to return if the var/val does not exist


likematch = Set to YES, Y, TRUE, or 1 to use LIKE syntax (with * as a wildcard) to find the proper variable name and value


Assume record where LastName = Smith


[HASVALUE(lastname|smith|yes|no)] = yes


[HASVALUE(lastname|jones|yes|no)] = no


[HASVALUE(lastname|sm*th|yes|no|true)] = yes



[RECORDNOTES(ID|Max|Separator|Descending)]


Returns a string of the specified Record's Notes separated by the given separator.


ID = The ID of the Record whose notes to return.


Max - The maximum number of notes to return. The default is 100 if you leave this out. If you want ALL you can use 0 but be careful not to get too much data back which can cause issues.


Separator - The string to use to separate the notes. This defaults to  a semi-colon and a space (i.e. "; " without the quotes). 


Descending - True to sort notes with latest on top (default) or false to sort with oldest on top.


PLEASE NOTE: Private notes are NOT returned with this method!


[RECORDNOTES(12)] = Note 1; Note 2; Note 3


[RECORDNOTES(12|2)] = Note 1; Note 2


[RECORDNOTES(12|0| - )] = Note 1 - Note 2 - Note 3




[RECORDNOTESCOUNT(ID)]

Returns the number of notes in the specified Record


ID = The ID of the Record whose notes to count


[RECORDNOTESCOUNT(12)] = 5

[RECORDNOTESOBJ(ID|Max|Descending)]

Returns a JSON array of the specified Record's Notes 


ID = The ID of the Record whose notes to return.


Max - The maximum number of notes to return. The default is 100 if you leave this out. If you want ALL you can use 0 but be careful not to get too much data back which can cause issues.


Descending - True to sort notes with latest on top (default) or false to sort with oldest on top.


The properties returned in each JSON object are:


  ID - The internal ID of the note

  RecordID - The ID of the Record

  UserName - Name of the user who entered note

  Date - Date the note

  Note - The text of the note.


You can use the PROP variable to parse out the notes if needed.


PLEASE NOTE: Private notes are NOT returned with this method!


[RECORDNOTESOBJ(12)] = [{ "ID": 1, "RecordID": 12, "UserName": "John Doe", "Note": "Note 1"},{ "ID": 2, "RecordID": 12, "UserName": "John Doe", "Note": "Note 2"},{ "ID": 3, "RecordID": 12, "UserName":"Jane Doe", "Note": "Note 3"}]


[RECORDNOTESOBJ(12|2)] = [{ "ID": 1, "RecordID": 12, "UserName": "John Doe", "Note": "Note 1"},{ "ID": 2, "RecordID": 12, "UserName": "John Doe", "Note": "Note 2"}]



[FORM(name|l|t|w|h|)]

This can only be used when OCR has been performed using the "Recognize General Forms" option. Form values are stored in the Record after that OCR process and using the [FORM()] variable is the simplest way retrieve the values.


name = the name of the form field to return. This corresponds to the label of the field on the form. 


l = left coordinate

t = top coordinate

w = width

h = height


Use the l, t, w, h to specify a section of the document to look for form values. Leave any 0 if that is not required.


You can use wildcards in the name parameter. If you know the name will contain "customer" and are not sure if it will have other information around it, you can use "*customer*" to mean the form field name contains "customer" somewhere. If the form field name starts with "customer" you can use "customer*".


[FORM(Customer)] = Matches where form field EQUALS customer


[FORM(Customer*)] = Matches where form field STARTS WITH customer


[FORM(*Customer)] = Matches where form field ENDS WITH customer


[FORM(Customer*name)] = Matches where form field has "customer" before "name" but unknown text, if any, between.




[SEARCH_???] 

Special variables available when performing any search. These variables are filled only during searching and represent the values searched FOR. 


For instance, if a user searches for an invoice by using INVOICENUMBER = 123 then a variable is available called [SEARCH_INVOICENUMBER] and the value is set to 123. 


This is useful for doing variable replacement for search results screens. You can define a field that is only visible in search results and set it to allow replacement. Then set its default value to use the variables.



[IF([SEARCH_INVOICENUMBER]|=|||Searched for [SEARCH_INVOICENUMBER])]


The above default value in a field will return nothing if the InvoiceNumber field was not searched. However, if the InvoiceNumber field was searched (let's say for the value '123') the results would show 'Searched for 123'.


A more practical example would be to show specific results based on what the user searched for. For example, if users search for records based on a job code then you can show the proper job comments for the code. Something like this would be used for the field's default value:


[[SEARCH_TYPE]Comments]


If SEARCH_TYPE = 'ABC' and the Record has a field named 'ABCComments' with 'ABC Comment Here' then the value returned will be 'ABC Comment Here'



[GETRECORDID(RecordTypeID|var=val|)]

Returns the ID of a Record found using search logic


RecordTypeID= The ID of the Record Type to search in


var=val / var=val=valto: Field name and value combination to search for. Can be repeated as many times as necessary using ^ as a separator per field. valto is used for range searching only. If you are doing an exact search leave this out.



[GETRECORDID(1|LastName=Smith)] = 123

(search record type 1 for any record where the lastname field is smith)



[GETRECORDID(1|LastName=Smith^Age=10=21)] = 123

(search record type 1 for any record where the lastname field is smith and the age field is from 10 to 21)


[EFORMDATA(var|separator|firstonly|likematch)]

Returns the data value from the RECORD 's EFORM Data based on the data name (var) supplied.


var = The name of the variable to return


separator = If you are returning more than one value this is used to separate them in the return string. The default is ;.


firstonly = Set to YES, Y, TRUE, or 1 to return only the first match. The default is false


likematch = Set to YES, Y, TRUE, or 1 to use LIKE syntax (with * as a wildcard) to find the proper variable name. The default is false



[EFORMDATA(name)] = John Smith;Adam Jones;Third Person


[EFORMDATA(name|,)] = John Smith,Adam Jones,Third Person


[EFORMDATA(nam*||true|true)] = John Smith