Agiloft

Agiloft is an enterprise contract lifecycle management (CLM) platform that helps organizations automate and manage contracts, agreements, and related business processes across any knowledge base.

With the Agiloft integration in Sim, you can:

  • Create records: Add new records to any Agiloft table with custom field values
  • Read records: Retrieve individual records by ID with optional field selection
  • Update records: Modify existing record fields in any table
  • Delete records: Remove records from your knowledge base
  • Search records: Find records using Agiloft's query syntax with pagination support
  • Select records: Query records using SQL WHERE clauses for advanced filtering
  • Saved searches: List saved search definitions available for a table
  • Attach files: Upload and attach files to record fields
  • Retrieve attachments: Download attached files from record fields
  • Remove attachments: Delete attached files from record fields by position
  • Attachment info: Get metadata about all files attached to a record field
  • Lock records: Check, acquire, or release locks on records for concurrent editing

In Sim, the Agiloft integration enables your agents to manage contracts and records programmatically as part of automated workflows. Agents can create and update records, search across tables, handle file attachments, and manage record locks — enabling intelligent contract lifecycle automation.

Usage Instructions

Integrate with Agiloft contract lifecycle management to create, read, update, delete, and search records. Supports file attachments, SQL-based selection, saved searches, record locking, and running action buttons across any table in your knowledge base.

Actions

Agiloft Async Status

Check whether an asynchronous Agiloft call, such as a run action button, has completed.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringYesTable the asynchronous call was made against
callbackIdstringYesCallback ID returned by the asynchronous call, e.g. from Run Action Button

Output

ParameterTypeDescription
callbackIdstringCallback ID that was checked
statusCodenumberRaw status code Agiloft returned
statusstringcompleted, queued, in_progress, failed, or unknown_callback
completebooleanTrue when the operation has finished, whether it succeeded or failed

Agiloft Attach File

Attach a file to a field in an Agiloft record.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringYesTable name (e.g., "contracts")
recordIdstringYesID of the record to attach the file to
fieldNamestringYesName of the attachment field
filefileYesFile to attach
fileNamestringNoName to assign to the file (defaults to original file name)
overwritebooleanNoReplace the contents of the field instead of adding another file to it

Output

ParameterTypeDescription
recordIdstringID of the record the file was attached to
fieldNamestringName of the field the file was attached to
fileNamestringName of the attached file
totalAttachmentsnumberTotal number of files attached in the field after the operation

Agiloft Attachment Info

Get information about file attachments on a record field.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringYesTable name (e.g., "contracts")
recordIdstringYesID of the record to check attachments on
fieldNamestringYesName of the attachment field to inspect

Output

ParameterTypeDescription
attachmentsarrayList of attachments with position, name, and size
positionnumberPosition index of the attachment in the field
namestringFile name of the attachment
sizenumberFile size in bytes
totalCountnumberTotal number of attachments in the field

Agiloft Create Record

Create a new record in an Agiloft table.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringYesTable name (e.g., "contracts", "contacts.employees")
datastringYesRecord field values as a JSON object (e.g., {"first_name": "John", "status": "Active"})

Output

ParameterTypeDescription
idstringID of the created record
fieldsjsonField values of the created record

Agiloft Delete Record

Delete a record from an Agiloft table.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringYesTable name (e.g., "contracts", "contacts.employees")
recordIdstringYesID of the record to delete
substituteIdsstringNoComma-separated IDs of records that adopt the dependants of the deleted record. Read only when the delete rule is REPLACE_WITH_ANOTHER.
deleteRulestringNoHow to treat records that depend on this one: ERROR_IF_DEPENDANTS (default — fails rather than cascading), APPLY_DELETE_WHERE_POSSIBLE, DELETE_WHERE_POSSIBLE_OTHERWISE_UNLINK, APPLY_UNLINK, UNLINK_WHERE_POSSIBLE_OTHERWISE_DELETE, or REPLACE_WITH_ANOTHER

Output

ParameterTypeDescription
idstringID of the deleted record
deletedbooleanWhether the record was successfully deleted

Agiloft Get Choice Line ID

Resolve the internal numeric ID of a choice-list value, for use in EWSelect WHERE clauses against choice fields.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringYesTable name (e.g., "case", "contracts")
fieldNamestringYesChoice field name (e.g., "priority", "status")
valuestringYesChoice display value to resolve (e.g., "High", "Active")

Output

ParameterTypeDescription
choiceLineIdnumberInternal numeric line ID of the choice value

Agiloft List Tables

List the tables and fields in an Agiloft knowledge base, to discover the logical names other operations need.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringNoLogical name of a single table to describe (e.g., "contacts"). Leave empty to list every table in the knowledge base.
includeLinkedInfobooleanNoInclude the source table and column behind each linked field
skipColumnsInfobooleanNoReturn table names only, omitting field details, for a much smaller response

Output

ParameterTypeDescription
tablesarrayTables in the knowledge base with their fields
labelstringDisplay name of the table
logicalNamestringLogical table name, as other Agiloft operations expect it
fieldsarrayFields on the table
columnNamestringLogical field name
columnLabelstringDisplay label
columnTypestringSQL column type
columnTypeDomainstringAgiloft field type
requiredbooleanWhether the field is mandatory
isLinkedbooleanWhether the field is a linked field
linkedInfoarraySource table and column, when linked-field details were requested
linkedTablestringSource table
linkedColumnstringSource column
textFieldTypestringContent type for text fields, e.g. text/plain
totalCountnumberNumber of tables returned

Agiloft Lock Record

Lock, unlock, or check the lock status of an Agiloft record.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringYesTable name (e.g., "contracts")
recordIdstringYesID of the record to lock, unlock, or check
lockActionstringYesAction to perform: "lock", "unlock", or "check"
forcebooleanNoUnlock only: release a lock held by another user.

Output

ParameterTypeDescription
idstringRecord ID
tableIdnumberNumeric system identifier of the table holding the record
lockStatusstringLock status: "LOCKED" when the record is held, "NO_LOCK" when it is free
lockedBystringUsername of the user who locked the record
lockExpiresInMinutesnumberMinutes until the lock expires

Search Agiloft records by describing what you want in plain language, such as "active NDAs submitted last month".

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
nlpQuerystringYesThe request in plain language, e.g. "Show me open, high-priority contracts". Structured field filters are not accepted — use Search Records for those.
fieldsstringYesComma-separated field names to return, e.g. "id, contract_title1, company_name"
pagestringNoPage number, starting from 0
limitstringNoRecords per page

Output

ParameterTypeDescription
recordsjsonMatching records with the requested field values
totalCountnumberNumber of records in this response
truncatedbooleanTrue when more records were returned upstream than this call reports

Agiloft Read Record

Read a record by ID from an Agiloft table.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringYesTable name (e.g., "contracts", "contacts.employees")
recordIdstringYesID of the record to read
fieldsstringNoComma-separated list of field names to include in the response

Output

ParameterTypeDescription
idstringID of the record
fieldsjsonField values of the record

Agiloft Remove Attachment

Remove an attached file from a field in an Agiloft record.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringYesTable name (e.g., "contracts")
recordIdstringYesID of the record containing the attachment
fieldNamestringYesName of the attachment field
positionstringYesPosition index of the file to remove (starting from 0)

Output

ParameterTypeDescription
recordIdstringID of the record
fieldNamestringName of the attachment field
remainingAttachmentsnumberNumber of attachments remaining in the field after removal

Agiloft Retrieve Attachment

Download an attached file from an Agiloft record field.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringYesTable name (e.g., "contracts")
recordIdstringYesID of the record containing the attachment
fieldNamestringYesName of the attachment field
positionstringYesPosition index of the file in the field (starting from 0)

Output

ParameterTypeDescription
filefileDownloaded attachment file

Agiloft Run Action Button

Run an action button on an Agiloft record, such as an approval or send-for-signature step.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringYesTable name (e.g., "contracts", "case")
recordIdstringYesID of the record to run the action button on
actionButtonFieldstringYesLogical name of the field holding the action button (e.g., "ab_field")

Output

ParameterTypeDescription
recordIdstringID of the record the action button was run on
callbackIdstringCallback identifier for the asynchronous run, which Agiloft returns as EWCALLBACK_ID

List the saved searches defined for an Agiloft table.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringYesLogical table name to list saved searches for (e.g., "contract")

Output

ParameterTypeDescription
searchesarraySaved searches defined on the table
namestringInternal saved search name
labelstringDisplay label, as used by Search Records
idnumberSaved search identifier in the Agiloft database
descriptionstringSaved search description
totalCountnumberNumber of saved searches returned

Agiloft Search Records

Search for records in an Agiloft table using a query.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringYesTable name to search in (e.g., "contracts", "contacts.employees")
querystringNoAd hoc EWSearch query. Combine conditions with && (and) or || (or) and quote every value — e.g. "summary~='test'&&priority='High'". Required unless a saved search is given.
searchstringNoLabel of a saved search defined on the table (e.g., "C: Status is Closed"). Can be combined with a query to narrow it further.
fieldsstringNoComma-separated list of field names to include in the results
pagestringNoPage number for paginated results (starting from 0)
limitstringNoMaximum number of records to return per page. Agiloft treats 0 as "all records", so leave it unset or use a positive value to keep result sizes bounded.

Output

ParameterTypeDescription
truncatedbooleanTrue when more records were returned upstream than this call reports
recordsjsonArray of matching records with their field values
totalCountnumberNumber of records in this response. Not a total match count — compare with truncated.
pagenumberPage number that was requested (0-based)
limitnumberPage size that was requested; 0 when no limit was sent and Agiloft chose one

Agiloft Select Records

Select record IDs matching a SQL WHERE clause from an Agiloft table.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringYesTable name (e.g., "contracts", "contacts.employees")
wherestringYesSQL WHERE clause using database column names (e.g., "summary like '%new%'" or "assigned_person='John Doe'"). EWSelect has no page size and returns every matching ID, so append a database limit such as "limit 0,200" to bound the result.

Output

ParameterTypeDescription
truncatedbooleanTrue when more IDs matched than this call reports
recordIdsarrayArray of record IDs matching the query
totalCountnumberNumber of IDs in this response — compare with truncated

Agiloft Update Record

Update an existing record in an Agiloft table.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringYesTable name (e.g., "contracts", "contacts.employees")
recordIdstringYesID of the record to update
datastringYesUpdated field values as a JSON object (e.g., {"status": "Active", "priority": "High"})

Output

ParameterTypeDescription
idstringID of the updated record
fieldsjsonUpdated field values of the record

Agiloft Upsert Record

Create an Agiloft record, or update it when a record already matches the given fields.

Input

ParameterTypeRequiredDescription
instanceUrlstringYesAgiloft instance URL (e.g., https://mycompany.agiloft.com\)
knowledgeBasestringYesKnowledge base name
loginstringYesAgiloft username
passwordstringYesAgiloft password
tablestringYesTable name (e.g., "contracts", "contacts.employees")
matchstringYesField used to find an existing record (e.g., "ext_id"). Pick something that identifies a record uniquely — if more than one record matches, Agiloft writes nothing and returns a conflict.
asyncbooleanNoQueue the write instead of waiting for it. Returns a callback ID instead of a record ID; pass that to Async Status to poll the result.
datastringYesField values as a JSON object. On create these populate the new record; on update only the supplied fields change.

Output

ParameterTypeDescription
idstringID of the created or updated record
createdbooleanTrue when a new record was created, false when an existing one was updated
callbackIdstringReturned for a queued upsert; pass it to Async Status to poll the result

On this page