NAV Navbar
Logo
JavaScript C#

API Reference

The Intelex API is organized around REST. Our API has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors. We use built-in HTTP features, like HTTP authentication and HTTP verbs, which are understood by off-the-shelf HTTP clients. JSON is returned by all API responses, including errors.

Getting Started

API Endpoint - replace intelex_url with the full URL path to your Intelex system

https://intelex_url/api/v2/

To begin using the Intelex API you will need:

Authentication

Example Requests:

// Basic Authentication
var request = require("request");

var options = {
  headers: { Authorization: "Basic [insert credentials here]" }
  };


//ApiKey Authentication
var request = require("request");

var options = {
  headers: { Authorization: "ApiKey [insert key here]" }
  };


// Secure Access Token Authentication
var request = require("request");

var options = {
  headers: { Authorization: "Bearer [insert Access token here]" }
  };

// Basic Authentication
var request = new RestRequest(Method.GET);

request.AddHeader("Authorization", "Basic [insert credentials here]");


// ApiKey Authentication
var request = new RestRequest(Method.GET);

request.AddHeader("Authorization", "ApiKey [insert key here]");


// Secure Access Token Authentication
var request = new RestRequest(Method.GET);

request.AddHeader("Authorization", "Bearer [insert Access token here]");

The Intelex API supports three methods for authentication: Basic, ApiKey, and Secure. All API requests must be made over HTTPS and API requests without authentication will fail. Only Admin and Full Access users can use ApiKey and Secure authentication.

Security on data for all types of authentication is managed by the platform security configuration. API requests will maintain the security settings configured for the user on the Intelex platform.

Basic authentication is performed via HTTP Basic Auth with your Intelex user credentials (Username:Password). The credentials are verified by Intelex and access granted or denied accordingly.

ApiKey authentication can be performed by generating API access key(s) from the Intelex User Profile menu (note that this page is only accessible to full-access and admin users). The unique generated key can then be used to authenticate with the Intelex REST API.

Starting at Platform Version 6.6.7, secure token based authentication is supported by the V6 API. This form of authentication needs to be enabled by Intelex. During the authentication process, the client provides the ‘client id’ and ‘client secret’ to the authentication endpoint, along with the audience and grant type, as shown in the example. In response, the API furnishes an access token that comes with a specified expiration. After successful authentication, clients gain access to V6 API endpoints.

Example Requests:

Body for Authentication Endpoint
{"client_id":"Client ID Data",
"client_secret":"Client Secret Data",
"audience":"https://api.intelex.com/v6/",
"grant_type":"client_credentials"}

Example Response:

{
    "access_token": "Generated Bearer Access Token Used For Validation",
    "expires_in": "Token Expiry Time In Seconds",
    "token_type": "Bearer"
}

Get endpoint, secured client id and client secret

Login to the V6 application. Navigate to System Administration, User Administration, and then Navigate to API Access. Select the secured API from the API Access page; the endpoint, client id and client secret will be displayed on the details page. Use these to obtain an access token via API end point.

Data Format

The Intelex API only supports JSON as the data format for requests and responses.

Response Codes

Example error response

{
  "error": {
    "code": "string",
    "message": "string"
  }
}

The Intelex REST API will respond with the following HTTP status codes:

Response Code Meaning
200 Success – Enjoy your data!
201 Created – We created the record!
204 No Content – Your request was successful, but we don’t have anything more to tell you
400 Bad Request – Something is wrong with your request
401 Unauthorized – Your credentials are wrong
403 Forbidden – You do not have permission to access the resource
404 Not Found – The object or navigation property you are trying to access doesn’t exist
405 Method Not Allowed – We won’t let you do that
429 Too Many Requests – You have sent too many requests and have to wait till you can send more
500 Internal Server Error – We had a problem with our server. Try again later
501 Not Implemented – What you are trying to do doesn’t work…yet.

Versioning

When we make backwards-incompatible changes to the API, we release new versions. The current version is v2 and can be determined with our API base path /api/v2/. Read our Intelex platform release notes to see our API changelog.

API Rate Limiting / Quotas

To ensure Intelex Platform is reliable and has the expected performance for all users, we limit the number of API calls an API user (or application) can make within a given time period. If the limit is exceeded, the API user may be throttled and subsequent requests within the same period will fail (status code 429).

Limit

The Intelex Platform API Rate limit is 2 requests per second.

Quota headers

Quota details may be passed back to the API user/application via response headers.

Header Description Sample value
X-RateLimit-Limit The request limit per specified unit of time. 100
X-RateLimit-Remaining The remaining number of requests that API consumers can send in the current time window. 75
X-RateLimit-Reset The UTC epoch timestamp indicating the time of the next quota reset. Sent only when quota remains. 1521214822
X-RateLimit-Next The UTC epoch timestamp indicating the time of the next quota reset. Sent only when quota is full. 1521215291

Object Data API

Object Data API Endpoint - replace intelex_object with the system name of your object

https://intelex_url/api/v2/object/intelex_object

The Object Data API gives you the ability to create, retrieve, update, and delete data in your Intelex application objects. Each Object Data API resource is an Intelex application object. Access each resource by using the system name of the object in the API endpoint URL. The data sent and returned with your API requests are the fields that exist on the object you are accessing. The system name of fields is used in every request and response.

Your instance of Intelex may include system and custom objects. System objects include general platform objects and standard application objects. Custom objects are any objects created from scratch for your organization. All of these objects have unique system names. You’ll find the system name on the object detail page, in the System Name field.

Record Metadata

Example response with record metadata

{
    "value": {
        "@odata.type": "#Intelex.IncidentsObject",
        "@odata.id": "https://intelex_url/api/v2/object/IncidentsObject(UID)",
        "@odata.editLink": "https://intelex_url/api/v2/object/IncidentsObject(UID)"
    }
}

Some records returned from the API will contain a few properties that provide some useful information.

Property Description
@odata.type The entity type of the record. Useful when requesting records from parent objects
@odata.id A URL that can be used to access the record. To remove this property from your requests, append the query string key/value of: noIdLink=1 to your request URI
@odata.editLink Denotes if the record can be modified by the user making the request. Same as @odata.id link. To remove this property from your requests, append the query string key/value of: noEditLink=1 to your request URI

Record Limits

Example response with pagination link

{
    "@odata.nextLink": "https://intelex_url/api/v2/object/IncidentsObject?$skip=500"
}

We’ve provided a convenient way to access more data in any request for sequential data where the number of records exceeds 500. Simply call the url in the nextLink parameter and we’ll respond with the next set of data.

Object Relational Data

Many Intelex objects have relations to other objects. These relations are configured as relation type or lookup type fields. These fields are accessible via the API as navigation properties. Every object will have navigation properties that can be used to access its related data in another object. You’ll need to use the system name of the field configured with the related object in order to access related data.

You can access related data by using the $expand query option or you can navigate to related data using a URL path. You can traverse multiple levels of relational data by navigating through the URL path or with nested $expand queries.

Please note: Trying to access or modify relation fields that are self-referencing will not work (i.e. A relation type field on an object that is a relation to itself)

System Objects

Sometimes you might need to access data from system objects that contain data such as Employees or Locations. Here are some of the system objects for your reference:

System Object Description System Name
Employees Intelex Employees SysEmployeeEntity
Users Intelex Users SysUserEntity
Locations Intelex locations SysLocationEntity
Groups Intelex Employee groups SysGroupEntity
EDIS Staging Table Staging table used to process EDIS EmployeeStagingEntity

Requesting Object Data

Requesting records

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "@odata.editLink": "string",
        "Id": "string",
        "ActionsTaken": "string",
        "Date": "2017-02-13T22:15:30.203Z",
        "Description": "string",
        "IncidentNo": 0,
        "ReportedDate": "2017-02-13T22:15:30.203Z",
        "SuspectedCause": "string"
      }
    ]
}

Returns all records from an Intelex object that the user is authorized to view

GET /api/v2/object/{intelex_object}

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject

Requesting a specific record

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.type": "string",
    "@odata.id": "string",
    "@odata.editLink": "string",
    "Id": "string",
    "ActionsTaken": "string",
    "Date": "2017-02-13T22:15:30.203Z",
    "Description": "string",
    "IncidentNo": 0,
    "ReportedDate": "2017-02-13T22:15:30.203Z",
    "SuspectedCause": "string"
}

Returns an individual record from the Incidents object by referencing the UID of the record

GET /object/{intelex_object}({id})

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
id The Intelex UID of the record being requested

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/SubIncidents' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/SubIncidents");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "@odata.editLink": "string",
        "Id": "string",
        "ActionsTaken": "string",
        "Date": "2017-02-13T22:15:30.203Z",
        "Description": "string",
        "IncidentNo": 0,
        "ReportedDate": "2017-02-13T22:15:30.203Z",
        "SuspectedCause": "string"
      }
    ]
}

Navigating to related records allows clients to request only the relational data belonging to a parent record. This includes relation type fields, lookup type fields, private document attachments, and workflow.

GET /object/{intelex_object}({id})/{navigation_property}

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
id The Intelex UID of the record being requested
navigation_property The Intelex system name of the relation type or lookup type field

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/SubIncidents(UID)' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/SubIncidents(UID)");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.type": "string",
    "@odata.id": "string",
    "@odata.editLink": "string",
    "Id": "string",
    "ActionsTaken": "string",
    "Date": "2017-02-13T22:15:30.203Z",
    "Description": "string",
    "IncidentNo": 0,
    "ReportedDate": "2017-02-13T22:15:30.203Z",
    "SuspectedCause": "string"
}

Navigating to related records allows clients to request only the relational data belonging to a parent record. This includes relation type fields, lookup type fields, private document attachments, and workflow.

GET /object/{intelex_object}({id})/{navigation_property}({id})

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
id The Intelex UID of the record or related record being requested
navigation_property The Intelex system name of the relation type or lookup type field

Querying Object Data

Selecting record fields

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject',
  qs: { '$select': 'IncidentNo' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject?$select=IncidentNo");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "@odata.editLink": "string",
        "IncidentNo": 0
      }
    ]
}

The $select system query option allows clients to request a limited set of fields for each record.

GET /object/{intelex_object}?$select={field_name}

Option Example Values
Select a single field $select=IncidentNo
Select mutliple fields $select=IncidentNo, Description
URL Parameters
Parameter Description
field_name Field name(s) to include in response

Counting records

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject',
  qs: { '$count': 'true' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject?$count=true");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.count": 1,
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "@odata.editLink": "string",
        "Id": "string",
        "ActionsTaken": "string",
        "Date": "2017-02-13T22:15:30.203Z",
        "Description": "string",
        "IncidentNo": 0,
        "ReportedDate": "2017-02-13T22:15:30.203Z",
        "SuspectedCause": "string"
      }
    ]
}

The $count system query option with a value of true specifies that the total count of items within a collection matching the request be returned along with the result.

GET /object/{intelex_object}?$count=true

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject

Paginating records

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject',
  qs: { '$skip': '10', '$top': '5' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject?$skip=10&$top=5");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "@odata.editLink": "string",
        "Id": "string",
        "ActionsTaken": "string",
        "Date": "2017-02-13T22:15:30.203Z",
        "Description": "string",
        "IncidentNo": 0,
        "ReportedDate": "2017-02-13T22:15:30.203Z",
        "SuspectedCause": "string"
      }
    ]
}

The $top system query option requests the number of items in the queried collection to be included in the result. The $skip query option requests the number of items in the queried collection that are to be skipped and not included in the result.

GET /object/{intelex_object}?$top={top_n}&$skip={skip_n}

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
Query Parameters
Parameter Description
top_n Number of items to be included in the response
skip_n Number of items to be skipped

Sorting records

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject',
  qs: { '$orderby': 'DateCreated desc' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject?$orderby=DateCreateddesc");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "@odata.editLink": "string",
        "Id": "string",
        "ActionsTaken": "string",
        "Date": "2017-02-13T22:15:30.203Z",
        "Description": "string",
        "IncidentNo": 0,
        "ReportedDate": "2017-02-13T22:15:30.203Z",
        "SuspectedCause": "string"
      }
    ]
}

The $orderby system query option allows clients to request records in either ascending order using ‘asc’ or descending order using ‘desc’. Default is ascending. The request below sorts the collection by date in descending order.

GET /object/{intelex_object}?$orderby={field_name}

Option Example Values
Sort by descending $orderby=DateCreated desc
Sort by ascending $orderby=DateCreated asc
Sort by drop-down value $orderby=Severity/Caption
Sort by multiple fields $orderby=DateCreated, Severity/Caption
Sort by workflow person responsible $orderby=Workflow/PersonResponsible/Name
URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
Query Parameters
Parameter Description
field_name Fields that you want to sort by

Filtering records

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject',
  qs: { '$filter': 'IncidentNo eq 1000' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject?$filter=IncidentNo eq 10");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "@odata.editLink": "string",
        "Id": "string",
        "ActionsTaken": "string",
        "Date": "2017-02-13T22:15:30.203Z",
        "Description": "string",
        "IncidentNo": 0,
        "ReportedDate": "2017-02-13T22:15:30.203Z",
        "SuspectedCause": "string"
      }
    ]
}

The $filter system query option allows clients to filter a collection of records. The expression specified with $filter is evaluated for each record in the collection, and only items where the expression evaluates to true are included in the response. There are built-in filter operators that can be used in order to retrieve the data you need

GET /object/{intelex_object}?$filter={filter_expression}

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
Query Parameters
Parameter Description
filter_expression Filter expression used to query data
Comparison Operators:
Name Description Example Values
eq Equal Severity/Value eq ‘Moderate’
ne Not equal Description ne null
gt Greater than IncidentNo gt 1000
ge Greater than or equal DateCreated ge 2017-01-01
lt Less than IncidentNo lt 1000
le Less than or equal DateCreated le 2014-11-24T12:55:05.35-05:00
Logical Operators:
Name Description Example Values
and Logical and Description ne null and Workflow/PersonResponsible/Name eq ‘AC Slater’
or Logical or Cause eq true or IncidentNo gt 1000
not Logical not not(contains(Description, ‘accident’))
Grouping Operators:
Name Description Example Values
( ) Precedence grouping IncidentNo gt 1000 and (Severity/Value eq ‘Moderate’ or contains(Description, ‘fall’))
Functions:
Name Description Example Values
contains(Field, Value) Sub-string search contains(Description, ‘accident’))
Filtering using Relation Fields:
Description Example Values
Filtering by drop-down value Severity/Value eq ‘Moderate’
Filtering by sub-record values SubIncidents/any(x:x/SubIncidentId gt 1000)
Filtering using Workflow:
Description Example Values
Filter based on person responsible Workflow/PersonResponsible/Name eq ‘AC Slater’
Filter based on workflow status (enum) Workflow/WorkflowStatus eq Enum.WorkflowStatusType'Completed’
Filtering tasks assigned to you

assignedToMe() is a function that can be used in expressions to easily filter tasks assigned to you as an individual, as a member of a location role, or member of a group. Requires Web Platform Release 6.5.131 or higher.

Description Example Values
Filter my tasks on current object $filter=assignedToMe()
Filter others’ tasks on current object $filter=not assignedToMe()
Filter tasks on a M:1 field on the current object $filter=assignedToMe(Audit/Workflow/PersonResponsible/Id)
Filter others’ tasks on a M:1 field on the current object $filter=not assignedToMe(Audit/Workflow/PersonResponsible/Id)

When filtering for a field, you have to specify the full path up to the Id of the Person Responsible, as in the examples above.

You can only access the records you have permission to view.

Filter alias

@me is an alias that can be used in expressions to filter based on your identity’

Description Example Values
Filter where you are the person responsible $filter=Workflow/PersonResponsible eq @me

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject',
  qs: { '$expand': 'Location' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject?$expand=Location");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "@odata.editLink": "string",
        "Id": "string",
        "ActionsTaken": "string",
        "Date": "2017-02-13T22:15:30.203Z",
        "Description": "string",
        "IncidentNo": 0,
        "ReportedDate": "2017-02-13T22:15:30.203Z",
        "SuspectedCause": "string",
        "Location": {
            "@odata.type": "string",
            "@odata.id": "string",
            "@odata.editLink": "string",
            "Id": "string",
            "DateCreated": "2015-01-28T16:24:19.63-05:00",
            "DateModified": "2016-04-21T15:02:38.723-04:00",
            "Address1": null,
            "Address2": null,
            "Area": null,
            "BusinessUnits": null,
            "City": null
        }
      }
    ]
}

The $expand system query option specifies the related object records and lookup object records to be included in-line with requested records. The parameter accepts a comma-separated list of relation field names. Use the system name of the relation type field or lookup type field in your query.

GET /object/{intelex_object}?$expand={relation_field}

Option Example Values
Expand a single relation field $expand=Severity
Expand multiple relation fields $expand=Severity, Workflow
Expand all relations $expand=*
Nested expand $expand=Workflow($expand=PersonResponsible)
Select expanded fields $expand=Severity($select=Name)
Sort expanded collection $expand=SubIncidents($orderby=DateCreated)
Filter expanded collection $expand=SubIncidents($filter=Description ne null)
Filter and select expanded collection $expand=SubIncidents($filter=Description ne null;$select=Description)
Expand child locations on SysLocationEntity system object - 1 level /object/SysLocationEntity?$expand=ChildLocations
Expand child locations on SysLocationEntity system object - multi-level /object/SysLocationEntity?$expand=ChildLocations($expand=ChildLocations)
Expand parent location on SysLocationEntity system object /object/SysLocationEntity?$expand=ParentLocation
URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
Query Parameters
Parameter Description
relation_field Relation field used to request related object data

Modifying Object Data

Create a record

Example Request

var request = require("request");

var options = { method: 'POST',
  url: 'https://intelex_url/api/v2/object/IncidentsObject',
  headers: { 'content-type': 'application/json' },
  body:
   { ActionsTaken: 'string',
     Date: '2017-02-13T22:15:30.203Z',
     Description: 'string',
     IncidentNo: 0,
     ReportedDate: '2017-02-13T22:15:30.203Z',
     SuspectedCause: 'string' },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"ActionsTaken\": \"string\",\r\n    \"Date\": \"2017-02-13T22:15:30.203Z\",\r\n    \"Description\": \"string\",\r\n    \"IncidentNo\": 0,\r\n    \"ReportedDate\": \"2017-02-13T22:15:30.203Z\",\r\n    \"SuspectedCause\": \"string\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.type": "string",
    "@odata.id": "string",
    "@odata.editLink": "string",
    "Id": "string",
    "ActionsTaken": "string",
    "Date": "2017-02-13T22:15:30.203Z",
    "Description": "string",
    "IncidentNo": 0,
    "ReportedDate": "2017-02-13T22:15:30.203Z",
    "SuspectedCause": "string"
}

Example request of creating a record and setting a location value:

{
    "Location@odata.bind": "https://intelex_url/api/v2/object/LocationObject(Id)"
}

Example request of creating a record and setting a lookup type value:

{
    "Severity@odata.bind": "https://intelex_url/api/v2/object/SeverityLookupObject(Id)"
}

Example request of creating a record and set workflow recurrence or person responsible:

{
    "Workflow": {
        "PersonResponsible@odata.bind": "https://intelex_url/api/v2/object/EmployeeObject(UID)",
        "RecurringSeries": {
            "Frequency": "RRULE:FREQ=HOURLY",
            "StartDate": "2017-06-06T02:30:00-05:00",
            "EndDate": "2017-07-07T02:30:00-05:00"
        }
    }
}

Example request of creating a record and attaching related records:

{
    "RelatedIncidents@odata.bind": [
        "https://intelex_url/api/v2/object/RelatedIncidentObject(Id)",
        "https://intelex_url/api/v2/object/RelatedIncidentObject(Id)"
    ]
}

Creates a record with values in the object specified in the path. A client generated GUID can be used when creating records. Creating a record also supports setting a value for related fields, lookup types, or workflow person responsible. You can do this by binding the @odata.id property of the related record to the field.

POST /object/{intelex_object}

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
Body Parameters
Parameter Description
field_name The value you want to set for your object field. Replace field_name with the system name of the object field
relation_field@odata.bind The @odata.id of the related record you want to associate to a relational field. Replace relation_field with the system name of the relation type field you want to set
Header Parameters

When you create a record you also have the opportunity to execute an available workflow action within the same request. This is useful if you’d like a record to move to stage when it is created. In order to execute a workflow stage action within a create request, you’ll need to provide a header parameter.

Parameter Description Required Example Value
ActionToExecute UID of the workflow stage action No Id=797bbb3b-b485-4e73-a21c-2b9d5454f8ab

Create a sub-record

Example Request

var request = require("request");

var options = { method: 'POST',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/SubIncidents',
  headers: { 'content-type': 'application/json' },
  body: 
   { ActionsTaken: 'string',
     Date: '2017-02-13T22:15:30.203Z',
     Description: 'string',
     IncidentNo: 0,
     ReportedDate: '2017-02-13T22:15:30.203Z',
     SuspectedCause: 'string' },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/SubIncidents");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"ActionsTaken\": \"string\",\r\n    \"Date\": \"2017-02-13T22:15:30.203Z\",\r\n    \"Description\": \"string\",\r\n    \"IncidentNo\": 0,\r\n    \"ReportedDate\": \"2017-02-13T22:15:30.203Z\",\r\n    \"SuspectedCause\": \"string\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.type": "string",
    "@odata.id": "string",
    "@odata.editLink": "string",
    "Id": "string",
    "ActionsTaken": "string",
    "Date": "2017-02-13T22:15:30.203Z",
    "Description": "string",
    "IncidentNo": 0,
    "ReportedDate": "2017-02-13T22:15:30.203Z",
    "SuspectedCause": "string"
}

You can also create related records by sending POST requests to navigation properties. This request will create the record in the related object referenced by the navigation_property. Setting location,person responsible, and attaching related records is also supported when creating related records.

POST /object/{intelex_object}({id})/{navigation_property}

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the parent record
navigation_property The Intelex system name of the relation type field that supports sub-records i.e. “Has a list of attached”
Body Parameters
Parameter Description
field_name The value you want to set for your related object field. Replace field_name with the system name of the object field
Header Parameters

When you create related records you also have the opportunity to execute an available workflow action within the same request. This is useful if you’d like a record to move to stage when it is created. In order to execute a workflow stage action within a create request, you’ll need to provide a header parameter.

Parameter Description Required Example Value
ActionToExecute UID of the workflow stage action No Id=797bbb3b-b485-4e73-a21c-2b9d5454f8ab

Update a record

Example Request

var request = require("request");

var options = { method: 'PATCH',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)',
  headers: { 'content-type': 'application/json' },
  body: { Description: 'string' },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)");
var request = new RestRequest(Method.PATCH);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"Description\": \"string\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Example of updating a location value:

{
    "Location@odata.bind": "https://intelex_url/api/v2/object/LocationObject(UID)"
}

Example of updating a lookup type value:

{
    "Severity@odata.bind": "https://intelex_url/api/v2/object/SeverityLookupObject(UID)"
}

Example of attaching related records:

{
    "RelatedIncidents@odata.bind": [
        "https://intelex_url/api/v2/object/RelatedIncidentObject(UID)",
        "https://intelex_url/api/v2/object/RelatedIncidentObject(UID)"
    ]
}

Updates a record in the object specified in the path. You can update values for related fields, lookup types by binding the @odata.id property of the related record to the field.

PATCH /object/{intelex_object}({id})

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being updated
Body Parameters
Parameter Description
field_name The value you want to set for your object field. Replace field_name with the system name of the object field
relation_field@odata.bind The @odata.id of the related record you want to associate to a relational field. Replace relation_field with the system name of the relation type field you want to set
Header Parameters

When you update a record you also have the opportunity to execute an available workflow action within the same request. This is useful if you’d like a record to move to stage when it is updated. In order to execute a workflow stage action within an update request, you’ll need to provide a header parameter.

Parameter Description Required Example Value
ActionToExecute UID of the workflow stage action No Id=797bbb3b-b485-4e73-a21c-2b9d5454f8ab

Delete a record

Example Request

var request = require("request");

var options = { method: 'DELETE',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)");
var request = new RestRequest(Method.DELETE);
IRestResponse response = client.Execute(request);

Deletes an individual record in the Intelex object specified in the path. If SoftDelete is enabled for the object then the record will be archived instead.

DELETE /object/{intelex_object}({id})

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
id The Intelex UID of the record being updated

Delete a sub-record

Example Request

var request = require("request");

var options = { method: 'DELETE',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/SubIncidents(UID)' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/SubIncidents(UID)");
var request = new RestRequest(Method.DELETE);
IRestResponse response = client.Execute(request);

Deletes an individual sub-record in the Intelex object specified in the path. If SoftDelete is enabled for the object then the record will be archived instead.

DELETE /object/{intelex_object}({id})/{navigation_property}({id})

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object being requested eg. IncidentsObject
id The Intelex UID of the record or related record being accessed
navigation_property The Intelex system name of the relation type field

Removing a single value reference

Example Request

var request = require("request");

var options = { method: 'DELETE',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Severity/$ref' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Severity/$ref");
var request = new RestRequest(Method.DELETE);
IRestResponse response = client.Execute(request);

Sets the value in a drop-down to null. This call is useful if you need to remove a value that’s been set for a record.

DELETE /object/{intelex_object}({id})/{navigation_property}/$ref

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record
navigation_property The Intelex system name of the relation type field - must be a drop-down relation type field

Removing a multi-value reference

Example Request

var request = require("request");

var options = { method: 'DELETE',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/RelatedIncidents(UID)/$ref' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/RelatedIncidents(UID)/$ref");
var request = new RestRequest(Method.DELETE);
IRestResponse response = client.Execute(request);

This request detaches a related records. It deletes the relationship, but does not delete the related record itself.

DELETE /object/{intelex_object}({id})/{navigation_property}({id})/$ref

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record or related record
navigation_property The Intelex system name of the relation type field - must be references associated relation type field

Object Workflow Data

Requesting Workflow Data

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.context": "string",
    "@odata.type": "string",
    "@odata.id": "string",
    "Id": "string",
    "DateModified": "2016-07-14T14:32:05.44-04:00",
    "DateCreated": "2016-04-25T12:54:18.563-04:00",
    "DateNotRequired": null,
    "DueDate": null,
    "DueDateType": "string",
    "EntityId": "string",
    "EntityName": "",
    "IsVirtual": false,
    "LocationId": "string",
    "ObjectId": "string",
    "WorkflowStatus": "string"
}

This request allows you to retrieve the workflow information for a given record.

GET /object/{intelex_object}({id})/Workflow

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being accessed

Requesting Status

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/Status' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/Status");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.context": "string",
    "@odata.type": "string"
    "@odata.id": "string",
    "Id": "string",
    "DateCreated": "2017-03-08T11:52:49.723-05:00",
    "DateModified": "2017-03-08T11:52:49.723-05:00",
    "Description": "Draft",
    "DueDateExpression": null,
    "DueDateLengthType": null,
    "DueDateLengthValue": null,
    "InheritedPermission": true,
    "IsFirstStage": true,
    "IsStandardPermission": true,
    "Name": "Draft",
    "RecipientExpression": null,
    "RecipientType": "string",
    "StageAction": null,
    "StayInEditMode": false,
    "SystemName": "Draft",
    "TaskType": "Action"
}

This request allows you to retrieve the information about the workflow status that the record is currently in.

GET /object/{intelex_object}({id})/Workflow/Status

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being accessed

Requesting Current Stage

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/CurrentStage' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/CurrentStage");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.context": "string",
    "@odata.type": "string",
    "@odata.id": "string",
    "Id": "string",
    "DateCreated": "2017-03-08T11:52:49.723-05:00",
    "DateModified": "2017-03-08T11:52:49.723-05:00",
    "Description": "Draft",
    "DueDateExpression": null,
    "DueDateLengthType": null,
    "DueDateLengthValue": null,
    "InheritedPermission": true,
    "IsFirstStage": true,
    "IsStandardPermission": true,
    "Name": "Draft",
    "RecipientExpression": null,
    "RecipientType": "string",
    "StageAction": null,
    "StayInEditMode": false,
    "SystemName": "Draft",
    "TaskType": "Action"
}

This request allows you to retrieve the information about the workflow stage that the record is currently in.

GET /object/{intelex_object}({id})/Workflow/CurrentStage

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being accessed

Requesting Stage Actions

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/CurrentStage/Actions' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/CurrentStage/Actions");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
  "@odata.context": "string",
  "value": [
    {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "DateModified": "2017-03-08T11:52:49.927-05:00",
        "DateCreated": "2017-03-08T11:52:49.927-05:00",
        "Confirmation": "string",
        "FlowDefinition": "string",
        "IsHidden": false,
        "MobileCaption": null,
        "Name": "string",
        "NavigateBackEnabled": true,
        "Order": 1,
        "RequireSignature": true,
        "SystemName": "string",
        "Tooltip": null,
        "TriggerCondition": "",
        "UrlIcon": "",
        "UserActionsRequired": true
    }
  ]
}

This request allows you to retrieve the information about the workflow stage actions available for a record in the current stage. Note: When a workflow is published, the action IDs are created. If someone updates a workflow, they have to re-publish it for the changes to take effect, and all the action IDs change. Typically, you don’t need to worry about this, but if your action IDs stop working, you should check them by running a dummy record through the workflow.

GET /object/{intelex_object}({id})/Workflow/CurrentStage/Actions

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being accessed

Requesting Person Responsible

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/PersonResponsible' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/PersonResponsible");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.context": "string",
    "@odata.type": "string"
    "@odata.id": "string",
    "Id": "string",
    "DateCreated": "2010-06-20T20:00:00-04:00",
    "DateModified": "2015-06-17T15:21:51.813-04:00",
    "CustomField": null,
    "IsSystem": false,
    "Name": "string"
}

This request allows you to retrieve the individual assigned to the workflow stage of the record. Workflow and PersonResponsible are navigation properties that can be accessed using the $expand system query option as well.

GET /object/{intelex_object}({id})/Workflow/PersonResponsible

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being accessed

Requesting Frequency

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/RecurringSeries' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/RecurringSeries");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.context": "string",
    "@odata.type": "string"
    "@odata.id": "string",
    "Id": "string",
    "DateCompleted": null,
    "EndDate": "2017-07-07T03:30:00-04:00",
    "EntityId": "string",
    "Frequency": "RRULE:FREQ=HOURLY",
    "GracePeriod": 0,
    "IsActive": true,
    "NextScheduledDate": "2017-06-06T04:30:00-04:00",
    "OriginalStartDate": "2017-06-06T03:30:00-04:00",
    "StartDate": "2017-06-06T03:30:00-04:00"
}

This request allows you to retrieve the workflow frequency applied to the record. The frequency property value is in iCal format.

GET /object/{intelex_object}({id})/Workflow/RecurringSeries

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being accessed

Executing a Stage Action

Example Request

var request = require("request");

var options = { method: 'POST',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/CurrentStage/Actions(UID)/Action.ExecuteStageAction' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow/CurrentStage/Actions(UID)/Action.ExecuteStageAction");
var request = new RestRequest(Method.POST);
IRestResponse response = client.Execute(request);

This request allows you to push a record through its workflow stages. Note: When a workflow is published, the action IDs are created. If someone updates a workflow, they have to re-publish it for the changes to take effect, and all the action IDs change. Typically, you don’t need to worry about this, but if your action IDs stop working, you should check them by running a dummy record through the workflow.

POST /object/{intelex_object}({id})/Workflow/CurrentStage/Actions(id)/Action.ExecuteStageAction

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record or action being accessed

Updating Frequency

Example Request

var request = require("request");

var options = { method: 'PATCH',
  url: 'https://intelex_url/api/v2/object/IncidentsObject%28UID%29/Workflow/RecurringSeries',
  headers: { 'content-type': 'application/json' },
  body: 
   { Frequency: 'RRULE:FREQ=HOURLY',
     StartDate: '2017-06-06T03:30:00-04:00' },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject%28UID%29/Workflow/RecurringSeries");
var request = new RestRequest(Method.PATCH);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\n  \"Frequency\": \"RRULE:FREQ=HOURLY\",\n  \"StartDate\": \"2017-06-06T03:30:00-04:00\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

This request allows you to modify the workflow frequency for a given record. The Frequency property will only accept iCal formatted strings.

PATCH /object/{intelex_object}({id})/Workflow/RecurringSeries

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record or action being accessed
Body Parameters
Parameter Description
Frequency iCal formatted string representing the calendar frequency
StarDate Date you want the frequency to begin
EndDate Date you want the frequency to end

Updating Person Responsible

Example Request

var request = require("request");

var options = { method: 'PATCH',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow',
  headers: { 'content-type': 'application/json' },
  body: { 'PersonResponsible@odata.bind': 'https://intelex_url/api/v2/object/EmployeeObject(UID)' },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/Workflow");
var request = new RestRequest(Method.PATCH);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\n\t\"PersonResponsible@odata.bind\": \"https://intelex_url/api/v2/object/EmployeeObject(UID)\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

This request allows you to modify the workflow person responsible for a given record. This is the method used to re-assign tasks for a given record.

PATCH /object/{intelex_object}({id})/Workflow

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record or action being accessed
Body Parameters
Parameter Description
PersonResponsible@odata.bind the @odata.id of the employee you want to assign as person responsible

Object Attachments

There are two types of file attachments on records. Files can be attached to the Private Document Attachment grid on a record or to the File type field of an object. To access files in the Private Document Attachment grid use the system reserved property: ILX.Attachments. To access files in the File type field use the system name of the field. Document Control uses this file type field and an example is added below showing how to access the released and effective version of document control files.

Requesting Private Documents

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject%28UID%29/ILX.Attachments' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject%28UID%29/ILX.Attachments");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
          "@odata.id": "string",
          "@odata.mediaContentType": "string",
          "Id": "string",
          "AttachmentName": "string",
          "Bytes": 0,
          "IsDraft": true,
          "ObjectRecordId": "string",
          "Uri": "string",
          "Attachment@odata.mediaReadLink": "string"
      }
    ]
}

This request returns a list of all private document attachments belonging to a given record. ILX.Attachments is a system reserved property for working with private document attachments. Any object that has private document attachments enabled will be able to access this property and request the private documents that belong to a record.

GET /object/{intelex_object}({id})/ILX.Attachments

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being accessed

Downloading Private Documents

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.Attachments(UID)',
  headers: 
   { prefer: 'attachment=thumbnail',
     accept: 'application/octet-stream' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject%28UID%29/ILX.Attachments(UID)");
var request = new RestRequest(Method.GET);
request.AddHeader("prefer", "attachment=thumbnail");
request.AddHeader("accept", "application/octet-stream");
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.id": "string",
    "@odata.mediaContentType": "string",
    "Id": "string",
    "AttachmentName": "string",
    "Bytes": 0,
    "IsDraft": true,
    "ObjectRecordId": "string",
    "Uri": "string",
    "Attachment@odata.mediaReadLink": "string"
}

By default, this request returns the metadata of a specific private document attachment. When you provide the Accept header value of octet-stream, then the file will be downloaded instead. If it is an image, you also have the ability to request it in a thumbnail size.

GET /object/{intelex_object}({id})/ILX.Attachments({id})

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record or document being accessed
Header Parameters
Parameter Description Example Value
Accept Provide the content type in order to download the file application/octet-stream
Prefer Used to request a thumbnail version of an image file attachment=thumbnail

Downloading Document Control Files

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/DocDocumentEntity(UID)/CurrentRevision/File',
  headers: 
   { accept: 'application/octet-stream' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/DocDocumentEntity%28UID%29/CurrentRevision/File");
var request = new RestRequest(Method.GET);
request.AddHeader("accept", "application/octet-stream");
IRestResponse response = client.Execute(request);

Example Response

{
    "Id": "string",
    "DateModified": "string",
    "DateCreated": "string",
    "Content@odata.mediaReadLink": "string",
    "FileExtension": "string",
    "Name": "string",
    "Size": 0
}

By default, this request returns the metadata of a released and effective document of a document control record. When you provide the Accept header value of octet-stream, then the file will be downloaded instead. Document Control files use the File field type. This field type is available on any object and can be accessed like any other navigation property to download files. The example below is specific to Document Control.

GET /object/DocDocumentEntity({id})/CurrentRevision/File

URL Parameters
Parameter Description
id The Intelex UID of the record being accessed
PdfSecurity The level of security for pdf. Values: None = 1 or Default = 0
Header Parameters
Parameter Description Example Value
Accept Provide the content type in order to download the file application/octet-stream

Attaching Private Documents

Example Request

var fs = require("fs");
var request = require("request");

var options = { method: 'POST',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.Attachments',
  headers: { 'content-type': 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' },
  formData: 
   { '': 
      { value: 'fs.createReadStream("C:\\Document.docx")',
        options: 
         { filename: 'C:\\Document.docx',
           contentType: null } } } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.Attachments");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
request.AddParameter("multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW", "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"\"; filename=\"C:\\Document.docx\"\r\nContent-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document\r\n\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.id": "string",
    "@odata.mediaContentType": "string",
    "Id": "string",
    "AttachmentName": "string",
    "Bytes": 0,
    "IsDraft": true,
    "ObjectRecordId": "string",
    "Uri": "string",
    "Attachment@odata.mediaReadLink": "string"
}

This request attaches a private document to a record. The file must be attached to the request as form-data. Files that exceed 10MB will not be attached. If the UID of the record does not exist, the file will be attached in draft mode. Once a record is created with the same record UID in the attach request, then the attachment will be associated to the record and will no longer be in draft mode.

POST /object/{intelex_object}({id})/ILX.Attachments

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record being accessed
Body Parameters
Parameter Type Description
multipart/formData file The file you want to attach to the record. Cannot exceed 10MB.

Detaching Documents

Example Request

var request = require("request");

var options = { method: 'DELETE',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.Attachments(UID)' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.Attachments(UID)");
var request = new RestRequest(Method.DELETE);
IRestResponse response = client.Execute(request);

This request deletes the specified document attached to a given record. ILX.Attachments is a system reserved property for working with private document attachments. Any object that has private document attachments enabled will be able to access this property and request the private documents that belong to a record.

DELETE /object/{intelex_object}({id})/ILX.Attachments({id})

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the record or document being accessed

Uploading Document Control Files

The first step for File type is to upload document. The file must be attached to the request as form-data. File size is configurable via web.config setting AttachmentMaxFileSize. There are two endpoints to upload file, difference is in the responses.

Example Request

var fs = require("fs");
var request = require("request");
var options = { method: 'POST',
  url: 'https://intelex_url/api/v2/FileUpload',
  headers: { 'content-type': 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' },
  formData: 
   { '': 
      { value: 'fs.createReadStream("C:\\Document.docx")',
        options: { filename: 'C:\\Document.docx', contentType: null } } 
    } 
};
request(options, function (error, response, body) {
  if (error) throw new Error(error);
  console.log(body);
});

Example Response

[ "47df4cec-50ad-4da5-a820-7827985a77bb" ]

Endpoint 1

This will return UID for the newly created file. The UID then can be attached to a record.

POST /FileUpload
Header Parameters
Parameter Description Value
content-type The multipart/form-data content type is intended to allow information providers to express file upload requests uniformly, and to provide a MIME-compatible representation for file upload responses. multipart/form-data
Returns

201 Created with Array of File UID













Example Request

var fs = require("fs");
var request = require("request");
var options = { method: 'POST',
  url: 'https://intelex_url/api/v2/object/SysFileInfoEntity',
  headers: { 'content-type': 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' },
  formData: 
   { '': 
      { value: 'fs.createReadStream("C:\\Document.docx")',
        options: { filename: 'C:\\Document.docx', contentType: null } } 
    } 
};
request(options, function (error, response, body) {
  if (error) throw new Error(error);
  console.log(body);
});

Example Response:

{
    "@odata.context": “string”,
    "@odata.type": "#Intelex.SysFileInfoEntity",
    "@odata.id": “string”,
    "@odata.editLink": "string",
    "Id": "string",
    "DateModified": "string",
    "DateCreated": "string",
    "Content@odata.mediaReadLink": "string",
    "FileExtension": "string",
    "Name": "string: filename",
    "Size": number
}

Endpoint 2

This will return Edm for the newly created file. The @data.id link then can be used to attached to a record.

POST /object/SysFileInfoEntity
Header Parameters
Parameter Description Value
content-type The multipart/form-data content type is intended to allow information providers to express file upload requests uniformly, and to provide a MIME-compatible representation for file upload responses. multipart/form-data
Returns

201 Created with newly created SysFileInfoEntity

Attaching Document Control Files

Once you have @odata.id of FileInfo, you can use that to attach to an object with File field. It is similar to Modifying Object Data

Example Request

{
  ....
  "FileInput@odata.bind": "http://torwdtahmed02.intelex.com/devlogin/inspections/api/v2/object/SysFileInfoEntity(47df4cec-50ad-4da5-a820-7827985a77bb)"
}
POST /object/{intelex_object}
Request Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
Request Body

If intelex object has field FileInput (of type File), then Post body should contain this to attach file

“FileInput@odata.bind”: @odata.id from file upload response"

Detaching Document Control File

It is same as detaching a reference field in Modifying Object Data. There is Intelex service that periodically cleans orphan files.

Object Merge Templates

Object merge templates allow you to extract data from any Intelex object and export it into a Microsoft Word® or PDF document, depending on the configuration of the merge template. By mapping ‘MergeFields’ in the Word document to data fields in a particular Intelex object, you are able to export dynamically generated files populated with object record data you need, such as employee names, hire dates, etc. You can use dot notations to drill down to child objects and populate their data.

Intelex objects with the merge template option enabled, and at least one uploaded Merge Template, can be queried in one of two ways.

To access Merge Template details use the system reserved property: ILX.MailMergeDocs.

Requesting Merge Templates

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.MailMergeDocs' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.MailMergeDocs");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
  "@odata.context": "string",
  "value": [
    {
      "@odata.type": "string",
      "@odata.id": "string",
      "@odata.editLink": "string",
      "Id": "string",
      "DateCreated": "2020-06-08T12:32:51.28-04:00",
      "DateModified": "2020-06-08T12:32:51.28-04:00",
      "Description": "string",
      "DownloadAs": "string",
      "ObjectRecordId": "string",
      "TemplateName": "string"
    }
  ]
}

This request returns a list of all merge templates belonging to a given object. ILX.MailMergeDocs is a system reserved property for working with merge templates. Any object that has merge templates enabled will be able to access this property and request the templates that belong to the object.

GET /object/{intelex_object}({id})/ILX.MailMergeDocs

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id The Intelex UID of the object record being accessed

Downloading Merge Documents

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.MailMergeDocs(UID)',
  headers: 
   { accept: 'application/octet-stream' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/object/IncidentsObject(UID)/ILX.MailMergeDocs(UID)");
var request = new RestRequest(Method.GET);
request.AddHeader("accept", "application/octet-stream");
IRestResponse response = client.Execute(request);

Example Response - including the ‘accept’ header parameter, the response will be the binary contents of the dynamically generated document file.

By including the ‘accept’ header parameter, the response will be the binary contents of the dynamically generated document file.

PK �Y�P����.customXml/item1.xml�ZYo�8~_` ...

Example Response - without the ‘accept’ header, the response will be the metadata for the requested merge template record.

Without the ‘accept’ header, the response will be the metadata for the requested merge template record.

{
  "@odata.type": "string",
  "@odata.id": "string",
  "@odata.editLink": "string",
  "Id": "string",
  "DateCreated": "2020-06-08T12:32:51.28-04:00",
  "DateModified": "2020-06-15T11:02:24.28-04:00",
  "Description": "string",
  "DownloadAs": "string",
  "ObjectRecordId": "string",
  "TemplateName": "string"
}

By default, this request returns the metadata of a specific Merge Template document. When you provide the Accept header value of ‘application/octet-stream’, then the binary contents of merged file itself will be returned instead.

GET /object/{intelex_object}({id1})/ILX.MailMergeDocs({id2})

URL Parameters
Parameter Description
intelex_object The Intelex system name of the object eg. IncidentsObject
id1 The Intelex UID of the record being accessed
id2 The Intelex UID of the merge template to return
Header Parameters
Parameter Description Example Value
Accept Provide the content type in order to download the file application/octet-stream

Object Batch Requests

Example Batch Request Body: The following example includes a batch with a unique identifier of AAA123 and a change set with a unique identifier of BBB456. The request creates a record then updates the record that was just created

--batch_AAA123
Content-type: multipart/mixed; boundary=changeset_BBB456

--changeset_BBB456
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID:1

POST IncidentsObject HTTP/1.1
Content-Type: application/json

 { "ActionsTaken": "string", "Date": "string", "Description": "string", "IncidentNo": 0, "ReportedDate": "2017-02-13T22:15:30.203Z", "SuspectedCause": "string" }

--changeset_BBB456
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID:2

PATCH $1 HTTP/1.1
Content-Type: application/json

{"Description":"string"}

--changeset_BBB456--

--batch_AAA123--

The above batch request returns the following response with a 200 OK status:

--batchresponse_20a3a5a7-2df7-435e-9c62-ead3472499e7
Content-Type: multipart/mixed; boundary=changesetresponse_18666d72-dd34-46dc-8cae-2f0ff8208f7c

--changesetresponse_18666d72-dd34-46dc-8cae-2f0ff8208f7c
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: 1

HTTP/1.1 201 Created
Location: https://intelex_url/api/v2/object/IncidentsObject(UID)
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0

{
    "@odata.type": "string", "@odata.id": "string", "@odata.editLink": "string", "Id": "string",  "ActionsTaken": "string", "Date": "2017-02-13T22:15:30.203Z", "Description": "string", "IncidentNo": 0,
    "ReportedDate": "2017-02-13T22:15:30.203Z", "SuspectedCause": "string"
}
--changesetresponse_18666d72-dd34-46dc-8cae-2f0ff8208f7c
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: 2

HTTP/1.1 204 No Content


--changesetresponse_18666d72-dd34-46dc-8cae-2f0ff8208f7c--
--batchresponse_20a3a5a7-2df7-435e-9c62-ead3472499e7--

Use a POST request to submit a batch operation that contains multiple requests. A batch request can include GET, POST, PATCH, and DELETE requests as well as change sets. To use transactional capabilities of batch requests, only operations that will change data can be included within a change set. GET requests must not be included in the change set.

The POST request containing the batch must have a Content-Type header with a value set to multipart/mixed with a boundary set to include the identifier of the batch using this pattern:

--batch_<unique_identifier>

The unique identifier doesn’t need to be a GUID, but should be unique. Each item within the batch must be preceded by the batch identifier with a Content-Type and Content-Transfer-Encoding header:

--batch_AAA123

Content-Type: application/http

Content-Transfer-Encoding:binary

The end of the batch must contain a termination indicator:

--batch_AAA123--

By default, processing batch requests will stop on the first error unless the odata.continue-on-error preference is specified in the Prefer header. Also, the responses returned are essentially text documents rather than objects that can easily be parsed into JSON. You’ll need to parse the text in the response.

POST /object/$batch

Header Parameters
Parameter Description Required Example Value
Content-Type Content type for entire batch request Yes multipart/mixed;boundary=batch_AAA123
Prefer Preference to continue if error is encountered No odata.continue-on-error
Change Sets

When multiple operations are contained in a change set, all the operations are considered atomic, which means that if any one of the operations fail, any completed operations will be rolled back. Like a batch requests, change sets must have a Content-Type header with a value set to multipart/mixed with a boundary set to include the identifier of the change set using this pattern:

--changeset_<unique_identifier>

The unique identifier doesn’t need to be a GUID, but should be unique. Each item within the change set must be preceded by the change set identifier with a Content-Type and Content-Transfer-Encoding header like the following:

--changeset_BBB456

Content-Type: application/http

Content-Transfer-Encoding:binary

Change sets can also include a Content-ID header with a unique value. This value, when prefixed with $, represents a variable that contains the URI for any entity created in that operation. For example, when you set the value of 1, you can refer to that entity using $1 later in your change set.

The end of the change set must contain a termination indicator like the following:

--changeset_BBB456---

Batch Limits

The Batch service has its limits. The maximum number of operations or changesets that can be included in the body of a $batch request is 100. The maximum number of operations inside a changeset is 1000. The size of the payload for a $batch request cannot exceed 1MB.

Task API

The Task API gives you the ability to retrieve your Intelex tasks. These tasks can be found in the My Tasks Summary application in your Intelex platform. Tasks are object data records that are assigned to an employee in the Intelex system. You can create tasks by creating records and setting the workflow’s person responsible or re-assign tasks by updating a record’s person responsible

The Task API is currently in beta. This means that we might make changes to the data returned or how requests are made with future Intelex releases. Once the beta tag is removed, breaking changes to this API will be versioned.

Task Metadata

Example response with record metadata

{
    "value": {
        "@odata.type": "#Intelex.IncidentsObject",
        "@odata.id": "https://intelex_url/api/v2/object/IncidentsObject(UID)",
    }
}

Records returned from the API will contain a few properties that provide some useful information.

Property Description
@odata.type The the entity type of the record. Also contains the object system name the record belongs to
@odata.id A URL that can be used to access the record via the Object Data API

Task Record Limits

Example response with pagination link

{
    "@odata.nextLink": "https://intelex_url/api/v2/task/mytasks?$skip=500"
}

We’ve provided a convenient way to access more data in any request for sequential data where the number of records exceeds 500. Simply call the url in the nextLink parameter and we’ll respond with the next set of data.

Task Relational Data

Tasks resources have relations to Employees or Locations. These relations are accessible via the API as navigation properties.

Each task resource will have navigation properties that can be used to access its related data in either the Employee or Location objects:

Resource Available Navigation Properties
mytasks Employee
stafftasks Employee
locationtasks Employee, Location
alltasks Employee

You can use these navigation properties in $expand queries to return the related data in-line with your tasks.

Requesting Tasks

The following resources are similar to the application tabs you find in the My Tasks Summary application. You will only be able to access the following resources if you have the correct permissions set for the ‘Use Application Tab’ security setting on the associated application tab in Intelex.

Requesting Task Resources

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/task");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "name": "string",
        "kind": "string",
        "url": "string"
      }
    ]
}

Returns the task resource endpoints that you can access

GET /api/v2/task

Attribute Description
name The entity type of the record
kind Entity set or function
url Endpoint for resource

Requesting My Tasks

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/mytasks' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/task/mytasks");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationId": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string"
      }
    ]
}

Returns your tasks

GET /api/v2/task/mytasks

Attribute Description
Id Task ID
RespEmployeeName Person Responsible for Task
DueDateType Overdue, Upcoming, None
LocationId Location ID
LocationName Location Name
NetObjectId Object ID
NetObjectType System name of object
NetTaskId Object record ID
NextDate Next assigned due date for task
RecordDescription Task description
Stage Workflow stage name
TaskType Type of task
LegacyRecordId Intelex v5 task ID
LegacyRecordIdName Intelex v5 task name
LegacyRespEmployeeId Intelex v5 employee ID
LegacyTaskId Intelex v5 record ID
WebLink Web URL to access task view

Requesting My Staff’s Tasks

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/stafftasks' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/task/stafftasks");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationId": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string"
      }
    ]
}

Returns all tasks assigned to employees that the user is supervisor of

GET /api/v2/task/stafftasks

Attribute Description
Id Task ID
RespEmployeeName Person Responsible for Task
DueDateType Overdue, Upcoming, None
LocationId Location ID
LocationName Location Name
NetObjectId Object ID
NetObjectType System name of object
NetTaskId Object record ID
NextDate Next assigned due date for task
RecordDescription Task description
Stage Workflow stage name
TaskType Type of task
LegacyRecordId Intelex v5 task ID
LegacyRecordIdName Intelex v5 task name
LegacyRespEmployeeId Intelex v5 employee ID
LegacyTaskId Intelex v5 record ID
WebLink Web URL to access task view

Requesting Location Tasks

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/locationtasks' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/task/locationtasks");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string"
      }
    ]
}

Returns all tasks for a location. Default location is the user’s logon location set in their user profile. Tasks returned will belong to the default location and its child locations.

GET /api/v2/task/locationtasks

Attribute Description
Id Task ID
RespEmployeeName Person Responsible for Task
DueDateType Overdue, Upcoming, None
LocationName Location Name
NetObjectId Object ID
NetObjectType System name of object
NetTaskId Object record ID
NextDate Next assigned due date for task
RecordDescription Task description
Stage Workflow stage name
TaskType Type of task
LegacyRecordId Intelex v5 task ID
LegacyRecordIdName Intelex v5 task name
LegacyRespEmployeeId Intelex v5 employee ID
LegacyTaskId Intelex v5 record ID
WebLink Web URL to access task view
Header Parameters
Parameter Description
ActiveLocation Provide the ID of the location you want to use as the active location for your request. Records returned will belong to the active location and its child locations

Requesting All Tasks

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/alltasks' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/task/alltasks");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationId": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string"
      }
    ]
}

Returns all tasks in Intelex

GET /api/v2/task/alltasks

Attribute Description
Id Task ID
RespEmployeeName Person Responsible for Task
DueDateType Overdue, Upcoming, None
LocationId Location ID
LocationName Location Name
NetObjectId Object ID
NetObjectType System name of object
NetTaskId Object record ID
NextDate Next assigned due date for task
RecordDescription Task description
Stage Workflow stage name
TaskType Type of task
LegacyRecordId Intelex v5 task ID
LegacyRecordIdName Intelex v5 task name
LegacyRespEmployeeId Intelex v5 employee ID
LegacyTaskId Intelex v5 record ID
WebLink Web URL to access task view

Requesting Task Types

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/types' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/task/types");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "Caption": "string",
        "Name": "string",
        "Description",
        "Module": {
            "@odata.type": "string",
            "@odata.id": "string",
            "Id": "string",
            "Caption": "string",
            "UrlCaption": "string",
            "Description": "string"
        }
      }
    ]
}

Returns types of tasks you can create. This data is used to determine which objects have ‘quick task creation’ enabled

GET /api/v2/task/types

Attribute Description
Id Task type ID
Caption System caption of object
Name System name of object
Description Description of object
Module.Captiom System caption of application
Module.UrlCaptions Navigation caption of application
Module.Description Description of application

Querying Tasks

You can use the following query options on any of the Task API resources

Selecting task fields

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/mytasks',
  qs: { '$select': 'RecordDescription' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/task/mytasks?$select=RecordDescription");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "RecordDescription": "string"
      }
    ]
}

The $select system query option allows clients to request a limited set of fields for each task.

GET /task/mytasks?$select={field_name}

Option Example Values
Select a single field $select=RecordDescription
Select mutliple fields $select=RecordDescription, RespEmployeeName
URL Parameters
Parameter Description
field_name Field name(s) to include in response

Counting task records

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/mytasks',
  qs: { '$count': 'true' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/task/mytasks?$count=true");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "@odata.count": 1,
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string"
      }
    ]
}

The $count system query option with a value of true specifies that the total count of items within a collection matching the request be returned along with the result.

GET /task/mytasks?$count=true

Paginating tasks

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/mytasks',
  qs: { '$skip': '10', '$top': '5' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/task/mytasks?$skip=10&$top=5");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string"
      }
    ]
}

The $top system query option requests the number of items in the queried collection to be included in the result. The $skip query option requests the number of items in the queried collection that are to be skipped and not included in the result.

GET /task/mytasks?$top={top_n}&$skip={skip_n}

Query Parameters
Parameter Description
top_n Number of items to be included in the response
skip_n Number of items to be skipped

Sorting tasks

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/mytasks',
  qs: { '$orderby': 'NextDate desc' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://intelex_url/api/v2/task/mytasks?$orderby=NextDate desc");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string"
      }
    ]
}

The $orderby system query option allows clients to request tasks in either ascending order using ‘asc’ or descending order using ‘desc’. Default is ascending. The request below sorts the collection by date in descending order.

GET /task/mytasks?$orderby={field_name}

Option Example Values
Sort by descending $orderby=NextDate desc
Sort by ascending $orderby=NextDate asc
Sort by drop-down value $orderby=RespEmployeeName
Sort by multiple fields $orderby=NextDate, RecordDescription
Query Parameters
Parameter Description
field_name Fields that you want to sort by

Filtering tasks

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/mytasks',
  qs: { '$filter': 'RespEmployeeName eq \'Steve Rogers\'' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

var client = new RestClient("https://cloud3.intelex.com/wabouchalha/api/v2/task/mytasks?%24filter=RespEmployeeName%20eq%20'Steve%20Rogers'");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string"
      }
    ]
}

The $filter system query option allows clients to filter a collection of task. The expression specified with $filter is evaluated for each task in the collection, and only items where the expression evaluates to true are included in the response. There are built-in filter operators that can be used in order to retrieve the data you need

GET /task/mytasks?$filter={filter_expression}

Query Parameters
Parameter Description
filter_expression Filter expression used to query data
Comparison Operators:
Name Description Example Values
eq Equal DueDateType eq Enum.DueDateType'Overdue’
ne Not equal RecordDescription ne null
gt Greater than NextDate gt 2017-01-01
ge Greater than or equal NextDate ge 2017-01-01
lt Less than NextDate lt 2017-01-01
le Less than or equal NextDate le 2014-11-24T12:55:05.35-05:00
Logical Operators:
Name Description Example Values
and Logical and RecordDescription ne null and RespEmployeeName eq ‘Steve Rogers’
or Logical or RecordDescription eq null or NextDate gt 2017-01-01
not Logical not not(contains(RecordDescription, ‘accident’))
Grouping Operators:
Name Description Example Values
( ) Precedence grouping RespEmployeeName eq ‘Steve Rogers’ and (contains(TaskType, ‘Safety’) or contains(RecordDescription, ‘Safety’))
Functions:
Name Description Example Values
contains(Field, Value) Sub-string search contains(RecordDescription, ‘accident’))
Filtering using Relation Fields:
Description Example Values
Filtering by Employee name Employee/Name eq ‘Steve Rogers’
Filtering by Location name Location/Name eq ‘Toronto’

Example Request

var request = require("request");

var options = { method: 'GET',
  url: 'https://intelex_url/api/v2/task/locationtasks',
  qs: { '$expand': 'Location' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/task/locationtasks?$expand=Location");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

Example Response

{
    "value": [
      {
        "@odata.type": "string",
        "@odata.id": "string",
        "Id": "string",
        "RespEmployeeName": "string",
        "DueDateType": "string",
        "LocationName": "string",
        "NetObjectId": "string",
        "NetObjectType": "string",
        "NetTaskId": "string",
        "NextDate": "2017-06-25T04:00:00Z",
        "RecordDescription": "string",
        "Stage": "string",
        "TaskType": "string",
        "LegacyRecordId": "string",
        "LegacyRecordIdname": "string",
        "LegacyRespEmployeeId": "string",
        "LegacyTaskId": "string",
        "WebLink": "string",
        "Location": {
            "@odata.type": "string",
            "@odata.id": "string",
            "@odata.editLink": "string",
            "Id": "string",
            "DateCreated": "2015-01-28T16:24:19.63-05:00",
            "DateModified": "2016-04-21T15:02:38.723-04:00",
            "Address1": null,
            "Address2": null,
            "Area": null,
            "BusinessUnits": null,
            "City": null
        }
      }
    ]
}

The $expand system query option specifies the related object records to be included in-line with requested tasks. The parameter accepts a comma-separated list of relation field names. Use the system name of the relation type field or lookup type field in your query.

GET /task/mytasks?$expand={relation_field}

Option Example Values
Expand Employee $expand=Employee
Expand Employee and Location $expand=Employee, Location
Expand all relations $expand=*
Select expanded fields $expand=Location($select=Name)
Sort expanded collection $expand=Location($orderby=Name)
Query Parameters
Parameter Description
relation_field Relation field used to request related object data

User Management API

The User Management API provides the ability to externally manage employee and user acccess in Intelex.

Functionality for this endpoint includes employee and user creation and modification with the ability to archive employees and revoke user access. Requests may also optionally assign and revoke group membership to the employee.

Requires Platform Version 6.6.16 or higher

Retrieve Data

To retrieve data relevant to Employees and Users that are being managed through the User Management API, please refer to the Object Data API section.

The applicable User Management System Objects that can be accessed will be SysEmployeeEntity and SysUserEntity.

Please note: There are some SysUserEntity fields that can be set/updated but are marked as sensitive so they will not be returned when retrieving SysUserEntities. This is not an exhaustive list and columns marked as sensitive could change in the future:

Add or Modify Data

This section outlines the available POST and PATCH endpoints designed for modifying employee and user data. These endpoints support updating existing records and inserting new records. Requests should be formatted in JSON.

User Management API Endpoint

https://intelex_url/api/v2/EmployeeUserAccess

Add Data

Example Request

var request = require("request");

var options = { 
  method: 'POST',
  url: 'https://intelex_url/api/v2/EmployeeUserAccess',
  headers: { 'content-type': 'application/json' },
  body: 
  {
    "EmployeeNumber": "001",
    "HomeLocationCode": "001",
    "FirstName": "John",
    "LastName": "Doe",
    "UserId": "jdoe",
    "LoginLocationCode": "001",
    "LicenseType": "Full Access"
  }
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/EmployeeUserAccess");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"EmployeeNumber\": \"001\",\r\n    \"HomeLocationCode\": \"001\",\r\n    \"FirstName\": \"John\",\r\n    \"LastName\": \"Doe\",\r\n    \"UserId\": \"jdoe\",\r\n    \"LoginLocationCode\": \"001\",\r\n    \"LicenseType\": \"Full Access\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

POST /EmployeeUserAccess

Body Parameters
Parameter Description
field_name The value you want to set for an employee or user field. Replace field_name with the name of the employee or user field

See Request Payload Field Reference for detailed field information.

A successful POST to the EmployeeUserAccess endpoint will respond with a 201 Created response code and a json body containing the Id for the created employee and user records.

Example Response

{
  "Id": "43d1b046-156a-4715-bf96-10f71690a528"
}

Modify Data

Example Request

var request = require("request");

var options = { 
  method: 'PATCH',
  url: 'https://intelex_url/api/v2/EmployeeUserAccess',
  headers: { 'content-type': 'application/json' },
  body: 
  {
    "EmployeeNumber": "001",
    "FirstName": "Jon",
    "IsLocked": true
  }
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
var client = new RestClient("https://intelex_url/api/v2/EmployeeUserAccess");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n    \"EmployeeNumber\": \"001\",\r\n    \"FirstName\": \"Jon\",\r\n    \"IsLocked\": true\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

PATCH /EmployeeUserAccess({id})

URL Parameters
Parameter Description
employee_id (optional) The Intelex UID of the employee/user being updated

NOTE: You may also provide a valid Id or EmployeeNumber in the payload as the identifier used to update the record.

Body Parameters
Parameter Description
field_name The value you want to set for and employee or user field. Replace field_name with the name of the employee or user field

See Request Payload Field Reference for detailed field information.

A successful PATCH to the EmployeeUserAccess endpoint will respond with a 204 No Content response code.

Request Payload Field Reference

Settings Flags

Settings flags are payload fields that configure various behaviors of the user management API request.

Some settings flags may be ignored if the flag is not relevant to the request type. For example, RevokeUserAccess is only applicable to an existing user, so is only applicable in an update (PATCH) request.

All flags default to false unless otherwise noted.

Property Description
IgnoreUserAccess
  • Skips user access creation. Employee record will still be created.
  • SendEmail
  • Send a password reset email upon successful user creation.
  • Only respected if user access is requested. I.e. IgnoreUserAccess = false
  • RevokeUserAccess
  • Existing users only.
  • Revokes access for the specified user.
  • Revokes API access for the specified user (if applicable).
  • ArchiveIfTasksAssigned
  • Existing users only.
  • Only respected if Flag = I in Employee Fields.
  • Allows Employees who have tasks assigned to them to be archived.
  • If ArchiveIfTasksAssigned is not set and the specified employee has tasks assigned, the request will fail with an error and the associated user will be locked.
  • DoNotAddGroupAssignments
  • Existing employees only.
  • Do not assign employee membership to the groups specified in the Groups field.
  • RemoveFromUnlistedGroups
  • Existing employees only.
  • Remove employee membership from any previously assigned groups that are not specified in the Groups field.
  • This field is still respected if DoNotAddGroupAssignments is set.
  • Employee Fields

    Payload fields that are associated with the employee record to be created or updated.

    Properties denoted with a * are required and must be included in the payload.

    Property Description
    Flag
  • Indicates whether employee should be archived in the system:
    • A = Active employee (default)
    • I = Inactive (archived) employee
  • Archiving an an employee will also remove the associated user’s access, if available.
  • Only existing employees can be archived. You cannot create a new “Inactive” employee.
  • EmployeeNumber*
  • Primary Key; Unique identifier of employee.
  • HomeLocationCode*
  • Location Code of the home location of this employee.
  • This is the Location field on the employee profile.
  • Prefix
  • Prefix of employee (e.g., Mr., Mrs., Ms.)
  • FirstName*
  • First name of employee.
  • LastName*
  • Last name of employee.
  • MiddleName
  • Middle name of employee.
  • DisplayName
  • Display name of employee.
  • If present, cannot be blank ("") or empty (" ").
  • If not present or null in create payload, defaults to FirstName + LastName.
  • If not present or null in update payload, value will not be updated.
  • Suffix
  • Suffix of employee (e.g., Jr., Sr.)
  • Email
  • Email address of employee.
  • IsSupervisor
  • Indicates whether employee has direct reports or not.
  • Valid values are Y or N
  • EmployeeType
  • Type of Employee.
  • Must be the Name of a valid SysEmployeeType record.
  • DateOfHire
  • Date of hire of employee.
  • Please speak with your consultant to confirm the date format for your subdomain.
  • SupervisorNumber
  • Employee Number of supervisor of employee.
  • PositionTitle
  • Job title of employee.
  • Notes
  • Open text field found in employee profile.
  • Contractor
  • Indicates whether employee is a contractor.
  • Valid values are Y or N
  • Company
  • Company name of employee.
  • ContractorName
  • Contractor company name of employee.
  • ContractExpiry
  • Contract expiration date of employee.
  • Please speak with your consultant to confirm the date format for your subdomain.
  • InsuranceExpiry
  • Insurance expiration date of employee.
  • Please speak with your consultant to confirm the date format for your subdomain.
  • ContractorNotes
  • Open text field found in employee profile.
  • StreetAddress
  • Street address of employee.
  • City
  • City of employee.
  • State
  • State of employee.
  • ZipCode
  • Zip code (or postal code) of employee.
  • Gender
  • Gender of employee.
  • DateOfBirth
  • Date of birth of employee.
  • Please speak with your consultant to confirm the date format for your subdomain.
  • SSN
  • Social security number of employee.
  • EmergencyContact
  • Emergency contact information of employee.
  • EmergencyPhone
  • Emergency phone number of employee.
  • PersonResponsible
  • Mandatory for Document Control (all platform versions) and Reassign Task (6.2.5 or lower) feature.
  • For clients on 6.2.5 or lower, it is recommended to default this value to 1, if not being used.
  • See V6 System Administrator User Guide on Intelex Exchange for additional details.
  • For New Employee:
    • 1: Add to Home Locations & all Locations below
    • 2: Add to Home Location only
    • 3: Do not add to Person Responsible List (PRL)
  • For Existing Employee:
    • 1: Clear PRL for this employee then add employee to Home Location & all Locations below
    • 2: Clear PRL for this employee then add employee to Home Location only (does not keep manually added Locations)
    • 3: Clear PRL for this employee (do not add)
    • 4: Leave PRL as is (no change)
    • 5: Replace current Home Location with new Home Location (and keep manually added locations)
    PhoneNumber
  • Phone number of employee.
  • HourlyWage
  • Hourly wage of employee.
  • JobCode
  • Job Code for employee.
  • WorkStatus
  • [Legal] Work status of employee.
  • Groups
  • Semicolon (;) delimited list of elements that this employee is a member of (excluding Everyone group).
  • Each element can be the Caption or GUID of any Group or Location Role.
  • Groups includes Security Groups, Roles, Location Roles and Training Workgroups.
  • If an element is invalid, the request will fail with validation errors in the response.
  • Notation for Location Role: RoleNameOrGUID(LocationCodeOrGUID)
  • User Fields

    Payload fields that are associated with the user record to be created or updated if requested (IgnoreUserAccess = false).

    If user access is requested, properties denoted with a * are required and must be included in the payload.

    Property Description
    UserId*
  • Used by employee to login to the Intelex system; must be unique.
  • Recommendation: Email address of employee.
  • Set to email ID for SSO.
  • IsLocked
  • Locks or unlocks the user
  • Password
  • Password that employee users to log in to the Intelex system.
  • Ignores Account Policy rules.
  • Password is not required if implementing SSO.
  • SecondaryPassword
  • For Electronic Signatures only.
  • Stores a secondary password that can be used by electronic signatures.
  • ForcePasswordChange
  • If set to true, user will be forced to change his/her password upon his/her next successful log in.
  • User access updated through EDIS will leave Force Password Change untouched if it the flag is anything other than the characters mentioned above.
  • 1 = User will be forced to change his/her password on next log in (also accepts values “Y”, “y”, “T”, “t”).
  • 0 (or null) = User will NOT be forced to change his/her password (also accepts values “N”, “n”, “F”, “f”).
  • LoginLocationCode*
  • Location Code of the login location of this employee.
  • This is the Logon Location field on the user profile.
  • TimeZone
  • Time Zone for the User.
  • Example: (UTC-05:00) Eastern Time (US & Canada)
  • LicenseType*
  • Identifies specific V6 license type assigned in License Type field in user profile.
  • Valid values are:
    • Concurrent Access
    • Full Access
    • System Administrator
    CultureName
  • For clients who have purchased additional languages.
  • Identifies culture assigned in Culture field in user profile.
  • “Automatic” will set to “Determine Automatically”.
  • Inactive cultures won’t be assigned to a user.
  • LongDate
  • d, dd = day; ddd, dddd = day of week; M, MM = month; yy, yyyy = year
  • LongTime
  • h, hh = hour (12-hour format); H, HH = hour (24-hour format); m = minutes; s = seconds; tt = A.M. or P.M.
  • ShortDate
  • d, dd = day; ddd, dddd = day of week; M, MM = month; yy, yyyy = year
  • ShortTime
  • h, hh = hour (12-hour format); H, HH = hour (24-hour format); m = minutes; s = seconds; tt = A.M. or P.M.
  • Example Request Body

    {
      "SendEmail": true,
      "IgnoreUserAccess": false,
    
      "Flag": "A",
      "EmployeeNumber": "001",
      "HomeLocationCode": "001",
      "Prefix": "Mr.",
      "FirstName": "John",
      "LastName": "Doe",
      "MiddleName": "Joe",
      "DisplayName": "John Doe",
      "Suffix": "III",
      "Email": "john.doe@intelex.com",
      "IsSupervisor": "Y",
      "EmployeeType": "Hourly",
      "DateOfHire": "2019-11-25",
      "SupervisorNumber": "001",
      "PositionTitle": "Line Worker",
      "Notes": "Notes for me",
      "Contractor": "Y",
      "Company": "Intelex",
      "ContractorName": "Contractor Name",
      "ContractExpiry": "2026-12-30",
      "InsuranceExpiry": "2026-12-31",
      "ContractorNotes": "Notes for the Contractor",
      "StreetAddress": "70 University Ave #800",
      "City": "Toronto",
      "State": "Ontario",
      "ZipCode": "M5J 2M4",
      "Gender": "M",
      "DateOfBirth": "1999-06-23",
      "SSN": "111-11-1111",
      "EmergencyContact": "Jane Doe",
      "EmergencyPhone": "123-456-7890",
      "PersonResponsible": 1,
      "PhoneNumber": "111-111-1111",
      "HourlyWage": "25",
      "JobCode": "jc12",
      "WorkStatus": "full time",
    
      "UserId": "jdoe",
      "IsLocked": false,
      "Password": "1234",
      "SecondaryPassword": "5678",
      "ForcePasswordChange": false,
      "LoginLocationCode": "001",
      "TimeZone": "Eastern Standard Time",
      "LicenseType": "Full Access",
      "CultureName": "English (United States)",
      "LongDate": "dddd, MMMM dd, yyyy",
      "LongTime": "h:mm:ss tt",
      "ShortDate": "M/d/yyyy",
      "ShortTime": "h:mm tt",
    
      "Groups": "Claims Administrator(01E4C606-2F03-4044-B6B1-079AE288D82A);7F50AC4D-93F4-4DF9-90AF-00D7DF663720"
    }
    

    Payload Validation

    Fields in the payload will be checked for validity before creating or updating the employee and user records.

    Create (POST) Payload Validation

    Example payload validations for creation include:

    Update (PATCH) Payload Validation

    Example payload validations for modification include:

    Example Response With Validation Errors

    {
      "error": {
        "messages": [
          "Cannot create employee - Invalid value for IsSupervisor. Please use either 'Y' or 'N'",
          "There is an existing employee with the same employee number.",
          "Home location with code 001 is not found."
        ]
      }
    }
    

    Group Membership

    Group membership for an employee may also be managed via the User Management API with use of the Groups field. The Groups field expects a semi-colon delimited list of groups in one of the following formats:

    “Groups” include Security Groups, Roles, Location Roles and Training Workgroups, or any object that inherits from the Group Entity.

    Roles and Location Roles

    If an entry is a role and no location is defined for the entry (E.g. As RoleId(LocationId)), a location role will be assigned using the LoginLocationCode value. If LoginLocationCode is invalid or not present in the payload, the Role will be assigned without a location.

    Roles with AllowManySubjects set to false will unassign any existing members from the role before assigning membership to the target employee.

    Group Membership Settings

    See Settings Flags for details on DoNotAddGroupAssignments and RemoveFromUnlistedGroups fields.

    Group Validation

    Groups are validated before membership is assigned. If any validations fail, error messages will be returned in the response.

    Example group validations include:

    Example Groups Payload

    {
      "Groups": "7F50AC4D-93F4-4DF9-90AF-00D7DF663720;Insurance;36D48405-36EA-42C8-B11B-CA50DAB377DD(01E4C606-2F03-4044-B6B1-079AE288D82A);BD5797DD-D015-429C-89E6-1A79C3EB7B79(056);Claims Administrator(01E4C606-2F03-4044-B6B1-079AE288D82A);Claims Administrator(001)"
    }
    

    Example Response With Group Validation Errors

    {
      "error": {
        "messages": [
          "The Location Role 'Role123(Loc123)' is invalid. Please ensure that the Role (Role123) is the Name or ID of a valid and existing Role.",
          "Group '36D48405-36EA-42C8-B11B-CA50DAB377DD' is invalid. Group with ID '36D48405-36EA-42C8-B11B-CA50DAB377DD' does not exist.",
          "Group 'Role456(Loc456)' is invalid. Location with Code 'Loc456' is archived or does not exist."
        ]
      }
    }
    

    ACTS API

    The ACTS API gives you the ability to retrieve or update data of selected database tables in ACTS product.

    Reference

    The Intelex ACTS API provides endpoints in ACTS, with it’s own URL for access. If you currently use the Intelex API, you will not be able to use the ACTS API unless you have Admin access to ACTS. At the same time, you can use the ACTS API without any permission for Intelex V6.

    Our API has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors. We use built-in HTTP features, Token based authentication and HTTP verbs, which are understood by off-the-shelf HTTP clients. JSON is returned by all API responses, including errors.

    Getting Started with ACTS API

    API Endpoint - In the URL the tenant is the individual unique tenants based on the tenants they are specifying

    https://[tenant].actsapi.intelex.com/actsapi/v1/
    

    To begin using the Intelex API you will need:

    ACTS API Authentication

    Example Requests:

    Body for Authentication Endpoint
    {"client_id":"Client ID Data",
    "client_secret":"Client Secret Data",
    "audience":"https://*.intelex.com/ACTSAPI",
    "grant_type":"client_credentials"}
    

    Example Response:

    {
        "access_token": "Generated Bearer Access Token Used For Validation",
        "expires_in": "Token Expiry Time In Seconds",
        "token_type": "Bearer"
    }
    

    Intelex ACTS API uses tokens based authentication. Only ACTS Admin users can access the API.

    During the authentication process, the client provides the ‘client id’ and ‘client secret’ to the authentication endpoint, along with the audience and grant type, as demonstrated above. In response, the API furnishes an access token that comes with a specified time limit. This authentication is exclusively applicable to admin users. After successful authentication, users gain unrestricted access to all ACTS API endpoints till the token expiration.

    All interactions with the API are required to occur via HTTPS, and any API requests lacking proper authentication will result in failure. Data security is meticulously overseen by the ACTS platform, ensuring that API requests grant identical administrative access as enjoyed by authenticated ACTS admin users.

    The user authentication endpoint uses a POST to generate the access token [bearer token].

    ACTS API Versioning

    When we make any new changes to the API, we release new versions. The current version of the ACTS API is v1 and can be determined with our API base path /actsapi/v1/.

    Example API endpoint : https://[tenant].actsapi.intelex.com/actsapi/v1/[endpoint-name]

    ACTS API Software & Certificate Version Details

    The ACTS API SSL Certification is incompatible with following version of the python 3.10 + . If we use the python version < 3.10 the SSL handshake works for ACTS API.Currently this is considered as one of the limitation.

    API’s and Associated Database Tables

    This ACTS API release includes 23 GET enpoints and 16 POST endpoints, along with the authentication endpoint described earlier. The tables that can be queried and updated are as follows.

    Database Tables supporting GET requests

    1. Attribute Type
    2. Compound
    3. Emission Category
    4. Emission Factor Table
    5. Emission Type
    6. Equipment
    7. Equipment Attribute
    8. Equipment Status
    9. Equipment Type
    10. Facility
    11. Facility Attribute
    12. Operation
    13. Operation Type
    14. Query Results
    15. Unit
    16. Workflow
    17. Workflow Answer
    18. Workflow Equipment
    19. Workflow Facility
    20. Workflow Person
    21. Workflow Question
    22. Workflow Question Category
    23. Workflow Type

    Database Tables supporting POST requests

    1. Analysis
    2. Analysis Compound
    3. Emission Factor
    4. Emissions Recalculate By Equipment
    5. Emissions Recalculate By Operation
    6. Equipment
    7. Equipment Analysis
    8. Equipment Attribute
    9. Facility
    10. Facility Attribute
    11. Operation
    12. Workflow
    13. Workflow Answer
    14. Workflow Equipment
    15. Workflow Facility
    16. Workflow Person

    Retrieve Data

    This section outlines the various GET APIs available for fetching data from different tables. Each API provides the capability to retrieve specific data based on provided parameters. Pagination support is available for managing large datasets effectively.The user can pass the set of parameters of same or different filter options at once .

    1. Attribute Type Table

    This section outlines the process of retrieving data from the Attribute Type table using the dedicated API endpoint. The endpoint facilitates the retrieval of all data from the Attribute Type table or enables the selection of specific information by including Attribute Ids and Attribute Types. Additionally, the Attribute Type endpoint supports pagination to effectively manage larger datasets.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/attributetype' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/attributetype");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 3,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 1346,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
                "attributeTypeId": "number",
                "attributeType": "string",
                "dataTypeId": "number",
                "dataTypeSize": "number",
                "dataTypePrecision": "number",
                "dataTypeFilter": "string",
                "readonlyInd": "string",
                "searchableInd": "string",
                "remoteInd": "string",
                "defaultValue": "string",
                "alwaysEvaluateDefaultInd": "string",
                "displayCondition": "string",
                "disabledCondition": "string",
                "validationCondition": "string",
                "validationErrorText": "string",
                "viewColumnName": "string",
                "activeDate": "2011-01-01T00:00:00",
                "inactiveDate": "2011-01-01T00:00:00",
                "lastModifiedDate": "2020-10-08T13:35:31",
                "externalIdentifier": "string",
                "comments": "string",
                "refId": "string"
            }
        ]
    }
    

    API Endpoints

    GET /actsapi/v1/attributetype

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    attributeTypeIds int Attribute ID is one of the filter parameter is a integer data type
    attributeTypes string Attribute Types is for the project detail type

    2. Compound Table

    This section guides you through the process of fetching data from the Compound table using the dedicated API endpoint. The endpoint offers the flexibility to retrieve all data from the Compound table or selectively acquire information by including Compound Ids, Compound Type Ids, Compound Status Ids, Compound Names, External Identifiers, or CAS Numbers. Additionally, the Compound endpoint is equipped with pagination capabilities to facilitate efficient management of substantial datasets.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/compound' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/compound");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 3,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 1346,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
                "compoundId": "number",
                "compoundName": "string",
                "compoundTypeId": "number",
                "compoundStatusId": "number",
                "activeDate": "2011-07-04T17:42:43",
                "description": "string",
                "alternateNames": "string",
                "cas": "string",
                "formula": "string",
                "molecularWeight": "number",
                "vpMolecularWeight": "number",
                "vp40": "number",
                "vp50": "number",
                "vp60": "number",
                "vp70": "number",
                "vp80": "number",
                "vp90": "number",
                "vp100": "number",
                "vpCoefA": "number",
                "vpCoefB": "number",
                "vpCoefC": "number",
                "vp2A": "number",
                "vp2B": "number",
                "reid": "number",
                "astmSlope": "number",
                "vpA": "number",
                "vpB": "number",
                "vpXMin": "number",
                "vpXMax": "number",
                "density": "number",
                "specificGravity": "number",
                "supplier": "string",
                "manufacturerId": "number",
                "epaTanksCategory": "string",
                "epaTanksId": "number",
                "inactiveDate": "string",
                "sortOrder": "number",
                "lastModifiedDate": "2020-09-10T10:01:19",
                "externalIdentifier": "string",
                "comments": "string",
                "refId": "string"
            }
        ]   
    }
    

    API Endpoints

    GET /actsapi/v1/compound

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    compoundIds int Compound ID is one of the unique identifier for this compound record
    compoundTypeIds int Compound Type Ids is the associated compound type and is a second filter parameter option
    compoundstatusIds int Compound Status Ids is associated with compound status
    compoundNames string Compound Names The name of the compound which is a string type data and is one among the parameter for filter option
    externalIdentifier int External Identifiers is a unique identifier for this record to an external data system
    cas string CAS Number is a Chemical Abstract Service number for the compound

    3. Emission Category Table

    This section elaborates on how to obtain data from the Emission Category table using the designated API endpoint. The endpoint allows you to retrieve all data from the Emission Category table or selectively acquire information by providing the Emission Category ID. Moreover, the Emission Category endpoint features pagination to facilitate efficient management of substantial datasets.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/emissioncategory' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/emissioncategory");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 3,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 1346,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
               {
                "emissionCategoryId": "number",
                "emissionCategory": "string",
                "sortOrder": "number",
                "lastModifiedDate": "2022-11-22T08:03:51",
                "externalIdentifier": "string",
                "comments": "string",
                "refId": "string"
            }
        ]
    }
    

    API Endpoints

    GET /actsapi/v1/emissioncategory

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    emissionCategoryIds int Emission Category ID is one of the unique identifier for this emission category record and is one of the filter option provided for Emission Category
    emissionCategoryTypes string Emission Category Types is for the project to emission category detail types

    4. Emission Factor Table

    This section elaborates on how to obtain data from the Emission Factor table using the designated API endpoint. The endpoint allows you to retrieve all data from the Emission Factor table or You can optionally fetch specific data by including the emission factor Ids, emission factor names, emission type Ids, emission category Ids, unit Ids, compound Ids, equipment Ids, last modified start date and last modified end date. The Emission Factor endpoint supports pagination.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/emissionfactor' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/emissionfactor");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 1,
        "currentPageSize": 10,
        "maxAPIPageSize": 500,
        "totalCount": 1,
        "hasPrevious": false,
        "hasNext": false,
        "data": [
            {
                "emissionFactorId": "number",
                "emissionFactor": "number",
                "equipmentId": "number",
                "emissionTypeId": "number",
                "emissionCategoryId": "number",
                "compoundId": "number",
                "emissionFactorName": "string",
                "unitId": "number",
                "lastModifiedDate": "2018-08-22T15:33:44",
                "externalIdentifier": "string",
                "comments": "string",
                "activeDate": "2014-01-01T00:00:00",
                "inactiveDate": "2014-01-01T00:00:00",
                "primaryInd": "string",
                "reportableInd": "string",
                "readOnlyInd": "string",
                "dataLockTypeId": "number"
            }
        ]
    }
    

    API Endpoints

    GET /actsapi/v1/emissionfactor

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    emissionFactorIDs int Emission Factor Ids are unique identifier for this Emission Factor record
    emissionFactorNames string Emission Factor Names are one of the filter option and the parameter is for the names of the Emission Factors
    emissionTypeIds int The unique identifier of the associated emission type
    emissionCategoryIds int The unique identifier of the associated emission category
    unitIds int The unique identifier of the associated unit
    compoundIds int Compound ID is one of the unique identifier for this compound record
    equipmentIds int The unique identifier of the associated equipment
    lastModifiedStartDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
    lastModifiedEndDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”

    5. Emission Type Table

    This section guides you through the process of fetching data from the Emission Type table using the dedicated API endpoint. The endpoint enables you to retrieve data from the entire Emission Type table or selectively obtain information by including Emission Type Ids. Additionally, the Emission Type endpoint is equipped with pagination capabilities to facilitate the handling of extensive datasets.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/emissiontype' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/emissiontype");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 3,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 1346,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
              {
                "emissionTypeId": "number",
                "emissionType": "string",
                "sortOrder": "number",
                "lastModifiedDate": "2022-11-22T08:03:41",
                "externalIdentifier": "string",
                "comments": "string",
                "refId": "string"
            }
        ]
    }
    

    API Endpoints

    GET /actsapi/v1/emissiontype

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    emissionTypeIds int Emission Type ID is one of the type of emissions and is the one of the filter option provided for Emission Type
    emissionTypes string Emission Types is for the project to emission detail types

    6. Equipment Table

    This section provides guidance on retrieving data from the Equipment table using the designated API endpoint. The endpoint allows you to retrieve all data from the Equipment table or specify specific data based on equipment Ids. Additionally, the Equipment endpoint offers pagination support to facilitate the handling of substantial datasets.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/equipment' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/equipment");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 3,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 1346,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
                "equipmentId": "number",
                "areaId": "number",
                "facilityId": "number",
                "equipmentTypeId": "number",
                "sourceName": "string",
                "equipmentStatusId": "number",
                "modelId": "number",
                "ownershipId": "number",
                "ownerId": "number",
                "serialNumber": "string",
                "manufactureDate": "2013-09-03T00:00:00",
                "internalName": "string",
                "alternateName": "string",
                "design": "string",
                "originalSurveyDate": "2022-12-12T15:43:07",
                "activeDate": "2013-09-03T00:00:00",
                "inactiveDate": "2022-12-12T15:43:07",
                "dataLockTypeId": "number",
                "lastModifiedDate": "2022-12-12T15:43:07",
                "externalIdentifier": "string",
                "comments": "string"
            }
        ]
    }
    
    

    API Endpoints

    GET /actsapi/v1/equipment

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    equipmentIds int Equipment ID is one of the unique identifier for this equipment record
    equipmentTypeIds int Equipment Type ID is one of the unique identifier for this equipment type record
    equipmentStatusIds int Equipment Status ID is one of the unique identifier for this equipment status record
    facilityIds int Facility ID is one of the unique identifier for this equipment status record
    sourceNames string Source Names is one of the unique identifier for this equipment record
    internalNames string Internal Names is one of the unique identifier for this equipment record
    alternateNames string Alternate Names is one of the unique identifier for this equipment record
    lastModifiedStartDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
    lastModifiedEndDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”

    7. Equipment Attribute Table

    All data from the Equipment Attribute table will be returned from the endpoint below. You can optionally fetch specific data by including the facility attribute Ids, facility names, emission type Ids, facility type Ids, unit Ids, equipment Ids, last modified start date and last modified end date. The facility attribute endpoint supports pagination.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/equipmentattribute' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/equipmentattribute");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 1,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 337,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
                "equipmentAttributeId": "number",
                "equipmentId": "number",
                "attributeTypeId": "number",
                "equipmentAttribute":"string",
                "dataLockTypeId": "number",
                "lastModifiedDate": "datetime",
                "externalIdentifier": "string",
                "comments":"string"
            }
        ]
    }
    
    

    API Endpoints

    GET /actsapi/v1/equipmentattribute

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    equipmentAttributeIds int EquipmentAttributeId one of the unique identifier for this Equipment record.
    equipmentIds int EquipmentId must be numeric.
    attributetypeIds int AttributeTypeId must be numeric.
    equipmentattributes string Equipment Attribute is one of the filter option and the parameter is for the Equipment Attribute Type
    lastModifiedStartDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
    lastModifiedEndDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”

    8. Equipment Status Table

    All data from the Equipment Status table will be returned from the endpoint below. You can optionally fetch specific data by including the equipment status ID and equipment status value. The Equipment Status endpoint supports pagination.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/equipmentstatus' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/equipmentstatus");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 3,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 1346,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
                "equipmentStatusId": "number",
                "equipmentStatus": "string",
                "colorId": "number",
                "sortOrder": "number",
                "lastModifiedDate": "2022-11-22T07:46:46",
                "externalIdentifier": "string",
                "comments": "string"
            }
        ]
    }
    

    API Endpoints

    GET /actsapi/v1/equipmentstatus

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    equipmentStatusIds int Equipment Status ID is one of the unique identifier for this equipment status record
    equipmentStatus string Equipment Status is one of the identifier for the status of the equipment

    9. Equipment Type Table

    All data from the Equipment Type table will be returned from the endpoint below. You can optionally fetch specific data by including the equipment type ID and equipment types value. The Equipment type endpoint supports pagination.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/equipmenttype' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/equipmenttype");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 3,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 1346,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
                    {
                "equipmentTypeId": "number",
                "equipmentType": "string",
                "visibleInd": "string",
                "equipmentAttributesInd": "string",
                "emissionCalculationsInd": "string",
                "containmentInd": "string",
                "geometryInd": "string",
                "emissionFactorsInd": "string",
                "sampleLocationsInd": "string",
                "equipmentAssociationsInd": "string",
                "facilityAssociationsInd": "string",
                "locationInformationInd": "string",
                "fuelUseInd": "string",
                "peopleAssociationsInd": "string",
                "serviceScheduleInd": "string",
                "serviceHistoryInd": "string",
                "operationalDataCollectnInd": "string",
                "pteOperationalDataInd": "string",
                "scheduleInd": "string",
                "correspondenceInd": "string",
                "requirementsInd": "string",
                "fileAttachmentsInd": "string",
                "viewName": "string",
                "sortOrder": "number",
                "lastModifiedDate": "2022-04-14T09:15:47",
                "externalIdentifier": "string",
                "comments": "string",
                "refId": "string"
            }
        ]
    }
    

    API Endpoints

    GET /actsapi/v1/equipmenttype

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    equipmentTypeIds int Equipment Type ID is one of the unique identifier for this equipment type record
    equipmentTypes string Equipment Types is one of the filter option and the parameter is for the type of the equipment

    10. Facility Table

    All data from the Facility table will be returned from the endpoint below. You can optionally fetch specific data by including the facility Ids, facility names, emission type Ids, facility type Ids, facility status Ids, county Ids, last modified start date and last modified end date. The facility endpoint supports pagination.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/facility' };
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/facility");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 1,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 337,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
           {
                "facilityId": "number",
                "facilityName": "string",
                "areaId": "number",
                "facilityTypeId": "number",
                "facilityStatusId": "number",
                "sortOrder": "number",
                "facilityOwnershipId": "number",
                "facilityOwnerId": "number",
                "landOwnershipId": "number",
                "landOwnerId": "number",
                "operatorId": "number",
                "countryId": "number",
                "countyId": "number",
                "offshoreBlockId": "number",
                "meteorologicalId": "number",
                "businessEntityId": "number",
                "businessUnitId": "number",
                "alternateName": "string",
                "purchaseDate": "2023-06-25T04:00:00Z",
                "previousOwnerId": "number",
                "soldDate": "2023-06-25T04:00:00Z",
                "soldToId": "number",
                "activeDate": "2023-06-25T04:00:00Z",
                "inactiveDate": "2023-06-25T04:00:00Z",
                "dataLockTypeId": "number",
                "lastModifiedDate": "2023-06-25T04:00:00Z",
                "externalIdentifier": "string",
                "comments": "string"
            }
        ]
    }
    
    

    API Endpoints

    GET /actsapi/v1/facility

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    facilityIds int Facility ID is one of the unique identifier for this Facility record
    facilityTypeIds int Facility Type ID is one of the unique identifier for this Facility record
    facilityStatusIds int Facility Status ID is one of the unique identifier for this Facility record
    countyIds int County ID is one of the unique identifier for this Facility record
    facilityNames string Facility Name is the unique identifier of the associated facility type
    alternateNames string Alternate Name is the unique identifier of the associated facility
    externalidentifier string External Identifier a unique identifier for this record to an external data system
    areaIds int Area ID is one of the unique identifier for this Facility record to determine the region
    lastModifiedStartDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
    lastModifiedEndDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”

    11. Facility Attribute Table

    All data from the Facility Attribute table will be returned from the endpoint below. You can optionally fetch specific data by including the facility attribute Ids, facility names, emission type Ids, facility type Ids, facility attribute and last modified end date. The facility attribute endpoint supports pagination.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/facilityattribute' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/facilityattribute");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 1,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 337,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
              "facilityAttributeId": "number",
              "facilityId": "number",
              "attributeTypeId": "number",
              "facilityAttribute":"string",
              "dataLockTypeId": "number",
              "lastModifiedDate": "2023-03-30T07:27:06.295Z",
              "externalIdentifier": "string",
              "comments":"string"
            }
        ]
    }
    
    

    API Endpoints

    GET /actsapi/v1/facilityattribute

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    facilityAttributeIds int Facility ID is one of the unique identifier for this Facility record
    facilityIds int Facility Name is the unique identifier of the associated facility type
    attributetypeIds int Attribute Type ID is the unique identifier of the associated attribute type
    facilityattributes string Facility Attribute is one of the filter option and the parameter is for the Facility Attribute Type
    datalocktypeIds int Data Lock Type ID the unique identifier of the associated data lock type
    lastModifiedStartDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
    lastModifiedEndDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
    externalidentifier string External Identifier a unique identifier for this record to an external data system
    comments string Comments any comments associated with this record

    12. Operation Table

    All data from the Operation table will be returned from the endpoint below. You can optionally fetch specific data by including the operation Ids, operation type Ids, emission type Ids, emission category Ids, unit Ids, equipment Ids, last modified start date and last modified end date. The Operation endpoint supports pagination.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/operation' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/operation");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
          "currentPage": 1,
        "totalPages": 1,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 337,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
                "operationId": "number",
                "equipmentId": "number",
                "emissionTypeId": "number",
                "emissionCategoryId": "number",
                "operationTypeId": "number",
                "activeDate": "2023-06-25T04:00:00Z",
                "unitId": "number",
                "controlledInd": "string 1 Byte Y or N",
                "estimatedInd": "string 1 Byte Y or N",
                "invalidInd": "string 1 Byte Y or N",
                "calculateEmissionsInd": "string 1 Byte Y or N",
                "collectionDate": "2023-06-25T04:00:00Z",
                "fieldEventId": "number",
                "inactiveDate": "2023-06-25T04:00:00Z",
                "dataLockTypeId": "number",
                "lastModifiedDate": "2023-06-25T04:00:00Z",
                "externalIdentifier": "string",
                "comments": "string",
                "badDataFlag": "number(0,1)",
                "operationAmount": "number"
            }
        ]
    }
    

    API Endpoints

    GET /actsapi/v1/operation

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    operationIds int Operation Ids are unique identifier for this operation type record
    operationTypeIds string Operation Type Ids is one of the filter option and the parameter is for the type of the Operation Type
    emissionTypeIds int The unique identifier of the associated emission type
    emissionCategoryIds int The unique identifier of the associated emission category
    unitIds int The unique identifier of the associated unit
    equipmentIds int The unique identifier of the associated equipment
    lastModifiedStartDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
    lastModifiedEndDate string Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”

    13. Operation Type Table

    All data from the Operation Type table will be returned from the endpoint below. You can optionally fetch specific data by including the operation type ids, operation types . The Operation Type endpoint supports pagination.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/operationtype' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/operationtype");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 1,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 337,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
                "operationTypeId": "number",
                "operationType": "string",
                "parentOperationTypeId": "number",
                "compoundId": "number",
                "applicabilityFormula": "string",
                "sortOrder": "number",
                "lastModifiedDate": "2020-09-01T15:55:25",
                "externalIdentifier": "number",
                "comments": "number",
                "refId": "number"
            }
        ]
    }
    
    

    API Endpoints

    GET /actsapi/v1/operationtype

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    operationTypeIDs int The unique identifier for this operation type record
    operationTypes int The type of operational data

    14. Query Results

    The QueryResults API end point will allow the user to run the views saved in Query view tables and returns the dynamic results based on the specific query view id value. The QueryResults endpoint supports pagination.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/queryresults',
      headers: { 'content-type': 'application/json' },
      body:
       { 
        "queryViewId": "number"
          },
      json: true };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/queryresults");
    var request = new RestRequest(Method.GET);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "{\r\n    \"queryViewId\": \"number\"\r\n}", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 51,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 25052,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
                "equipment_id": "number",
                "area_id": "number",
                "facility_id": "number",
                "equipment_type_id": "number",
                "source_name": "string",
                "equipment_status_id": "number",
                "model_id": "number",
                "ownership_id": "number",
                "owner_id": "number",
                "serial_number": "string",
                "manufacture_date": "2023-03-30T07:27:06",
                "internal_name": "string",
                "alternate_name": "string",
                "design": "string",
                "original_survey_date": "2023-03-30T07:27:06",
                "active_date": "2018-10-16T06:19:21",
                "inactive_date": "2023-03-30T07:27:06",
                "data_lock_type_id": "number",
                "last_modified_date": "2023-03-30T04:07:57",
                "external_identifier": "string",
                "comments": "string"
            }
        ]
    }
    
    

    API Endpoints

    GET /actsapi/v1/queryresults

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    queryViewId int The unique identifier for this query view record

    15. Unit Table

    This section outlines how to retrieve data from the Unit table using the provided endpoint. You have the flexibility to fetch specific data by including unit Ids, unit type Ids, and units. The Unit type endpoint also supports pagination for managing large datasets effectively.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/unit' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/unit");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 1,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 337,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
                "unitId": "number",
                "unit": "string",
                "unitTypeId": 0,
                "description": "string",
                "alternateNames": "string",
                "sortOrder": "number",
                "lastModifiedDate": "2017-02-13T22:15:30.203Z",
                "externalIdentifier": "string",
                "comments": "string",
                "refId": "string"
            }
        ]
    }
    
    

    API Endpoints

    GET /actsapi/v1/unit

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    unitIds int Unit ID is one of the unique identifier for this Unit record
    unitTypeIds int Unit Type Ids is the unique identifier of the associated unit type
    units string Units is one of the filter option and the parameter is for the Name of the Unit

    16. Workflow Table

    This section outlines how to retrieve data from the Workflow table using the provided endpoint. You have the flexibility to fetch specific data by including workflow Ids, workflow type Ids, workflow date for both start date and end date along with the last modified date. The workflow endpoint also supports pagination for managing large datasets effectively.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/workflow' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/workflow");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 1,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 337,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
                "workflowId": "number",
                "workflowTypeId": "number",
                "workflowDate": "2017-02-13T22:15:30.203Z",
                "dataLockTypeId": "1",
                "lastModifiedDate": "2017-02-13T22:15:30.203Z",
                "externalIdentifier": "string",
                "comments": "string"
            }
        ]
    }
    
    

    API Endpoints

    GET /actsapi/v1/workflow

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    workflowIds int Workflow IDs are the unique identifier for workflows.
    workflowTypeIds int Workflow Type IDs are the unique identifier for a workflow type.
    workflowStartDate dateTime Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
    workflowEndDate dateTime Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
    lastModifiedStartDate dateTime Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
    lastModifiedEndDate dateTime Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”

    17. Workflow Answer Table

    This section outlines how to retrieve data from the Workflow Answer table using the provided endpoint. You have the flexibility to fetch specific data by including workflow Answer Ids, workflow Ids, workflow question Ids, category Answer Index, category Revision Index, question Answer Index, question Revision Index, workflow Answer, lastModifiedStartDate and lastModifiedEndDate. The Workflow Answer endpoint also supports pagination for managing large datasets effectively.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/workflowanswer' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/workflowanswer");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 1,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 337,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
                "workflowAnswerId": "number",
                "workflowId": "number",
                "workflowQuestionId": "number",
                "categoryAnswerIndex": "number",
                "categoryRevisionIndex": "number",
                "questionAnswerIndex": "number",
                "questionRevisionIndex": "number",
                "workflowAnswer": "2016-03-23",
                "dataLockTypeId": "number",
                "personId": "number",
                "lastModifiedDate": "2017-02-13T22:15:30.203Z",
                "externalIdentifier": "string",
                "comments": "string"
            }
        ]
    }
    
    

    API Endpoints

    GET /actsapi/v1/workflowanswer

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    workflowAnswerIds int Workflow Answer IDs are the unique identifiers for the answers in the workflow. Answer IDs are associated with a unique Question ID.
    workflowIds int Workflow IDs are the unique identifier for workflows (the named form or workflow type+date completed).
    workflowQuestionIds int Workflow Question IDs are the unique identifiers for questions in the workflow. Question IDs are associated with a unique Workflow ID.
    categoryAnswerIndex int Category Answer Index is the index for answers in the category.
    categoryRevisionIndex int Category Revision Index is the list of category revisions. If the workflow itself is updated a new category revision ID is assigned.
    questionAnswerIndex int Question Answer Index is the index for answers to a question. Answer IDs are associated with a unique Question ID.
    questionRevisionIndex int Question Revision Index is the index for questions with revisions. If the question itself is updated a question revision ID is assigned.
    workflowAnswer string Wokflow Answer is the answer to the question..
    lastModifiedStartDate dateTime Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”
    lastModifiedEndDate dateTime Date time format “yyyy/mm/dd T hours:min:secZ - Ex : 2017-02-13T22:15:30Z”

    18. Workflow Equipment Table

    This section outlines how to retrieve data from the Workflow Equipment table using the provided endpoint. Equipment workflows are typically labeled Inspection. You have the flexibility to fetch specific data by including workflow Equipment Ids, workflow Ids, and Equipment Ids. The Workflow Equipment endpoint also supports pagination for managing large datasets effectively.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/workflowEquipment' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/workflowEquipment");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 1,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 337,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
                "workflowEquipmentId": "number",
                "workflowId": "number",
                "equipmentId": "number",
                "workflowQuestionId": "number",
                "lastModifiedDate": "2017-02-13T22:15:30.203Z",
                "externalIdentifier": "string",
                "comments": "string"
            }
        ]
    }
    
    

    API Endpoints

    GET /actsapi/v1/workflowEquipment

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    workflowEquipmentIds int Workflow Equipment ID is the unique identifier for the associated equipment within the workflow.
    workflowIds int Workflow Ids is the unique identifier of the associated workflow.
    equipmentIds string Equipment IDs are the unique identifier of the associated equipment.

    19. Workflow Facility Table

    This section outlines how to retrieve data from the Workflow Facility table using the provided endpoint. Facility workflows are typically labeled Inspection. You have the flexibility to fetch specific data by including workflow Facility Ids, workflow Ids and facility Ids. The Workflow Facility endpoint also supports pagination for managing large datasets effectively.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/workflowfacility' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/workflowfacility");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 1,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 337,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
                "workflowFacilityId": "number",
                "workflowId": "number",
                "facilityId": "number",
                "workflowQuestionId": "number",
                "lastModifiedDate": "2017-02-13T22:15:30.203Z",
                "externalIdentifier": "string",
                "comments": "string"
            }
        ]
    }
    
    

    API Endpoints

    GET /actsapi/v1/workflowfacility

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    workflowFacilityIds int Workflow Facility IDs are the unique identifier for the associated facility within the workflow.
    workflowIds int Workflow IDs are the unique identifier for workflows (the named form or workflow type+date completed).
    facilityIds int Facility IDs are the unique identifier for the associated facility.

    20. Workflow Person Table

    This section outlines how to retrieve data from the Workflow Person table using the provided endpoint. You have the flexibility to fetch specific data by including workflow person Ids, workflow Ids and person Ids. The Unit type endpoint also supports pagination for managing large datasets effectively.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/workflowperson' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/workflowperson");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 1,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 337,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
                "workflowPersonId": "number",
                "workflowId": "number",
                "personId": "number",
                "workflowQuestionId": "number",
                "lastModifiedDate": "2017-02-13T22:15:30.203Z",
                "externalIdentifier": "string",
                "comments": "string"
            }
        ]
    }
    
    

    API Endpoints

    GET /actsapi/v1/workflowperson

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    workflowPersonIds int Workflow Person ID is the unique identifier for the associated person within the workflow.
    workflowIds int Workflow IDs are the unique identifier for workflows (the named form or workflow type+date completed).
    personIds int Person IDs are the assigned values for associated person(s) and can be used as a filter.

    21. Workflow Question Table

    This section outlines how to retrieve data from the Workflow Question table using the provided endpoint. You have the flexibility to fetch specific data by including workflow Question Ids, workflow question categoy Ids, data type Ids, required Inds and questions. The Workflow Question endpoint also supports pagination for managing large datasets effectively.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/workflowquestion' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/workflowquestion");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 1,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 337,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
                "workflowQuestionId": "number",
                "workflowQuestionCategoryId": "number",
                "question": "string",
                "dataTypeId": "number",
                "dataTypeSize": "number",
                "dataTypePrecision": "number",
                "dataTypeFilter": "string",
                "workflowAnswerListId": "number",
                "workflowAnswerList": "string",
                "defaultValue": "string",
                "alwaysEvaluateDefaultInd": "string",
                "displayInd": "string",
                "displayCondition": "string",
                "disabledInd": "string",
                "disabledCondition": "string",
                "requiredInd": "string",
                "validationCondition": "string",
                "validationErrorText": "string",
                "repeatInd": "string",
                "repeatDeleteInd": "string",
                "repeatDeleteConfirmInd": "string",
                "reviseInd": "string",
                "associateEntityInd": "string",
                "allowCopyInd": "string",
                "workflowTypeId": "number",
                "viewColumnName": "string",
                "sensitiveDataInd": "string",
                "xmlDescription": "string",
                "sortOrder": "number",
                "lastModifiedDate": "2017-02-13T22:15:30.203Z",
                "externalIdentifier": "string",
                "comments": "string",
                "refId": "string"
            }
        ]
    }
    
    

    API Endpoints

    GET /actsapi/v1/workflowquestion

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    workflowQuestionIds int Workflow Question ID are the unique identifiers for the workflow question record.
    workflowQuestionCategoryIds int Workflow Question Category Ids are the unique identifiers for the associated workflow question category.
    dataTypeIds int Data Type IDs are the unique identifiers for the associated data type.
    requiredInds string Required Inds is the value if an answer is required before saving the form.
    questions string Questions are the question content values included on the form.

    22. Workflow Question Category Table

    This section outlines how to retrieve data from the Workflow Question Category table using the provided endpoint. You have the flexibility to fetch specific data by including workflow question category Ids, workflow type Ids and workflow question category. The Workflow Question Category endpoint also supports pagination for managing large datasets effectively.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/workflowquestioncategory' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/workflowquestioncategory");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 1,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 337,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
                "workflowQuestionCategoryId": "number",
                "workflowTypeId": "number",
                "parentQuestionCategoryId": "number",
                "workflowQuestionCategory": "string",
                "autoExpandInd": "string",
                "displayInd": "string",
                "displayCondition": "string",
                "disabledInd": "string",
                "disabledCondition": "string",
                "repeatInd": "string",
                "repeatDeleteInd": "string",
                "repeatDeleteConfirmInd": "string",
                "reviseInd": "string",
                "xmlDescription": "string",
                "sortOrder": "number",
                "lastModifiedDate": "2017-02-13T22:15:30.203Z",
                "externalIdentifier": "string",
                "comments": "string",
                "refId": "string"
            }
        ]
    }
    
    

    API Endpoints

    GET /actsapi/v1/workflowquestioncategory

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    workflowQuestionCategoryIds int Workflow Question Category Ids are the unique identifiers for the associated workflow question category.
    workflowTypeIds int Workflow Type IDs are the unique identifiers for the associated workflow type.
    workflow question category string Workflow Question Category is the category of the form type.

    23. Workflow Type Table

    This section outlines how to retrieve data from the Workflow Type table using the provided endpoint. You have the flexibility to fetch specific data by including workflow Ids, workflow type Ids, and workflows. The Unit type endpoint also supports pagination for managing large datasets effectively.

    Example Request

    var request = require("request");
    
    var options = { method: 'GET',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/workflowtype' };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/workflowtype");
    var request = new RestRequest(Method.GET);
    IRestResponse response = client.Execute(request);
    

    Response Schema

    {
        "currentPage": 1,
        "totalPages": 1,
        "currentPageSize": 500,
        "maxAPIPageSize": 500,
        "totalCount": 337,
        "hasPrevious": false,
        "hasNext": true,
        "data": [
            {
               "workflowTypeId": "number",
                "workflowType": "string",
                "workflowCategoryId": "number",
                "remoteInd": "string",
                "addCondition": "string",
                "openCondition": "string",
                "workflowAssociationsInd": "string",
                "fileAttachmentsInd": "string",
                "allowCopyInd": "string",
                "viewName": "string",
                "xmlDescription": "string",
                "sortOrder": "number",
                "lastModifiedDate": "2017-02-13T22:15:30.203Z",
                "externalIdentifier": "string",
                "comments": "string",
                "refId": "string"
            }
        ]
    }
    
    

    API Endpoints

    GET /actsapi/v1/workflowtype

    Query parameters

    Attribute Type Description
    PageNumber int Page number of the results to fetch.
    PageSize int The number of results per page
    workflowTypeIds int Workflow Type IDs are the unique identifier for a workflow type.
    workflowCategoryIds int Workflow Category IDs are the unique identifier for the associated workflow category.
    workflowTypes string Workflow Types are the assigned values for the type of workflow and can be used as a filter.

    Add or Modify Data

    This section outlines the available POST APIs designed for modifying ACTS data. These APIs let you update existing records and insert new records. POSTs should be formatted in JSON.

    In the following release, the POST APIs End points are provided to add or update following:

    POST requests to these endpoints should be formatted in JSON.

    1. Analysis Table

    This section guides you through the process of modifying existing Analysis records or adding new entries to the Analysis table using the designated API endpoint. For inserting a new record, please pass the primary key field AnalysisId as 0 in the request body.

    Analysis POST endpoint

    POST /actsapi/v1/analysis

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'POST',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/analysis',
      headers: { 'content-type': 'application/json' },
      body:
        [
    {
      "analysisId": "number",
      "analysisName": "string",
      "analysisDate": "2024-11-01T12:58:49Z",
      "analysisTypeId": "number",
      "analysisStatusId": "number",
      "alternateName": "string",
      "vendorId": "number",
      "vendorAnalysisNumber": "string",
      "vendorJobNumber": "string",
      "vendorId2": "number",
      "vendorAnalysisNumber2": "string",
      "vendorJobNumber2": "string",
      "reviewedById": "number",
      "reviewedDate": "2024-11-01T12:58:49Z",
      "submitDate": "2024-11-01T12:58:49Z",
      "dataLockTypeId": "number",
      "externalIdentifier": "string",
      "comments": "string"
    }
    ],
      json: true };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/analysis");
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "[  {\r\n  \"analysisId\": \"number\",\r\n  \"analysisName\": \"string\",\r\n
      \"analysisDate\": \"2024-11-01T12:58:49Z\",\r\n  \"analysisTypeId\": \"number\",\r\n  \"analysisStatusId\": \"number\",\r\n
      \"alternateName\": \"string\",\r\n  \"vendorId\": \"number\",\r\n  \"vendorAnalysisNumber\": \"string\",\r\n  \"vendorJobNumber\": \"string\",\r\n  \"vendorId2\": \"number\",\r\n  \"vendorAnalysisNumber2\": \"string\",\r\n  \"vendorJobNumber2\": \"string\",\r\n
      \"reviewedById\": \"number\",\r\n  \"reviewedDate\": \"2024-11-01T12:58:49Z\",\r\n  \"submitDate\": \"2024-11-01T12:58:49Z\",\r\n
      \"dataLockTypeId\": \"number\",\r\n  \"externalIdentifier\": \"string\",\r\n  \"comments\": \"string\"}\r\n]",
       ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    [
      {
      "analysisId": "number",
      "analysisName": "string",
      "analysisDate": "2024-11-01T12:58:49Z",
      "analysisTypeId": "number",
      "analysisStatusId": "number",
      "alternateName": "string",
      "vendorId": "number",
      "vendorAnalysisNumber": "string",
      "vendorJobNumber": "string",
      "vendorId2": "number",
      "vendorAnalysisNumber2": "string",
      "vendorJobNumber2": "string",
      "reviewedById": "number",
      "reviewedDate": "2024-11-01T12:58:49Z",
      "submitDate": "2024-11-01T12:58:49Z",
      "dataLockTypeId": "number",
      "externalIdentifier": "string",
      "comments": "string"
    }
    ]
    

    Example Response

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 1 ,
        "deletedRowCount" : 0 ,
        "failureCount" : 0 ,
        "errorMessage" : []
    
    }
    
    

    Example Output For When Data Get’s Failed To Insert or Update due to invalid analysisId

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 0 , 
      "deletedRowCount" : 0 ,
        "failureCount" : 1 ,
        "errorMessage" : [
         "External Identifier : , Error: An error occurred while saving the entity changes. See the inner exception for details. "
        ]
    }
    
    

    2. Analysis Compound Table

    This section guides you through the process of modifying existing Analysis Compound records or adding new entries to the Analysis Compound table using the designated API endpoint. For inserting a new record, please pass the primary key field AnalysisCompoundId as 0 in the request body.

    Analysis Compound POST endpoint

    POST /actsapi/v1/analysiscompound

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'POST',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/analysiscompound',
      headers: { 'content-type': 'application/json' },
      body:
        [
    {
        "analysisCompoundId": "number",
        "analysisId": "number",
        "compoundId": "number",
        "operator": "string",
        "analysisValue": "number",
        "unitId": "number",
        "resultText": "string",
        "analysisDate": "2011-07-19T00:00:00z",
        "dilutionFactor": "number",
        "reportingLimit": "number",
        "method": "string",
        "methodDetectionLimit": "number",
        "qualifier": "string",
        "reportableInd": "string",
        "dataLockTypeId": "number",
        "sortOrder": "number",
        "externalIdentifier": "string",
        "comments": "string"
     }
    ],
      json: true };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/analysiscompound");
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "[  {\r\n  \"analysisCompoundId\": \"number\",\r\n \"analysisId\": \"number\",\r\n
        \"compoundId\": \"number\",\r\n \"operator\": \"string\",\r\n   \"analysisValue\": \"number\",\r\n  \"unitId\": \"number\",\r\n
        \"resultText\": \"string\",\r\n \"analysisDate\": \"2011-07-19T00:00:00z\",\r\n \"dilutionFactor\": \"number\",\r\n
        \"reportingLimit\": \"number\",\r\n \"method\": \"string\",\r\n \"methodDetectionLimit\": \"number\",\r\n
        \"qualifier\": \"string\",\r\n  \"reportableInd\": \"string\",\r\n  \"dataLockTypeId\": \"number\",\r\n \"sortOrder\": \"number\",\r\n
        \"externalIdentifier\": \"string\",\r\n \"comments\": \"string\" }\r\n]",   ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    [
    {
        "analysisCompoundId": "number",
        "analysisId": "number",
        "compoundId": "number",
        "operator": "string",
        "analysisValue": "number",
        "unitId": "number",
        "resultText": "string",
        "analysisDate": "2011-07-19T00:00:00z",
        "dilutionFactor": "number",
        "reportingLimit": "number",
        "method": "string",
        "methodDetectionLimit": "number",
        "qualifier": "string",
        "reportableInd": "string",
        "dataLockTypeId": "number",
        "sortOrder": "number",
        "externalIdentifier": "string",
        "comments": "string"
     }
    ]
    

    Example Response

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 1 ,
        "deletedRowCount" : 0 ,
        "failureCount" : 0 ,
        "errorMessage" : []
    
    }
    
    

    Example Output For When Data Get’s Failed To Insert or Update due to invalid analysisCompoundId

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 0 , 
      "deletedRowCount" : 0 ,
        "failureCount" : 1 ,
        "errorMessage" : [
         "External Identifier : , Error: An error occurred while saving the entity changes. See the inner exception for details. "
        ]
    }
    
    

    3. Emission Factor Table

    This section guides you through the process of modifying existing Emission Factor records or adding new entries to the Emission Factor table using the designated API endpoint. For inserting a new record, please pass the primary key field emissionFactorId as 0 in the request body.

    Emission Factor POST endpoint

    POST /actsapi/v1/emissionfactor

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'POST',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/emissionfactor',
      headers: { 'content-type': 'application/json' },
      body:
        [
      {
        "emissionFactorId": "number",
        "equipmentId": "number",
        "emissionTypeId": "number",
        "emissionCategoryId": "number",
        "compoundId": "number",
        "emissionFactorName": "string",
        "activeDate": "2023-06-25T04:00:00Z",
        "emissionFactor": "number",
        "unitId": "number",
        "viewColumnName": "string",
        "inactiveDate": "2023-06-25T04:00:00Z",
        "dataLockTypeId": "number",
        "externalIdentifier": "string",
        "comments": "string"
      }
    ],
      json: true };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/emissionfactor");
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "[  {\r\n    \"emissionFactorId\": \"number\",\r\n    \"equipmentId\": \"number\",\r\n    \"emissionTypeId\": \"number\",\r\n    \"emissionCategoryId\": \"number\",\r\n    \"compoundId\": \"number\",\r\n    \"emissionFactorName\": \"string\",\r\n    \"activeDate\": \"2023-06-25T04:00:00Z\",\r\n    \"emissionFactor\": \"number\",\r\n    \"unitId\": \"number\",\r\n    \"viewColumnName\": \"string\",\r\n    \"inactiveDate\": \"2023-06-25T04:00:00Z\",\r\n    \"dataLockTypeId\": \"number\",\r\n   \"externalIdentifier\": \"string\",\r\n    \"comments\": \"string\"\r\n  }\r\n]", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    [
      {
        "emissionFactorId": "number",
        "equipmentId": "number",
        "emissionTypeId": "number",
        "emissionCategoryId": "number",
        "compoundId": "number",
        "emissionFactorName": "string",
        "activeDate": "2023-06-25T04:00:00Z",
        "emissionFactor": "number",
        "unitId": "number",
        "viewColumnName": "string",
        "inactiveDate": "2023-06-25T04:00:00Z",
        "dataLockTypeId": "number",
        "externalIdentifier": "string",
        "comments": "string"
      }
    ]
    

    Example Response

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 1 ,
        "deletedRowCount" : 0 ,
        "failureCount" : 0 ,
        "errorMessage" : []
    
    }
    
    

    Example Output For When Data Get’s Failed To Insert or Update due to invalid EmissionFactorId

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 0 , 
      "deletedRowCount" : 0 ,
        "failureCount" : 1 ,
        "errorMessage" : [
         "External Identifier : , Error: An error occurred while saving the entity changes. See the inner exception for details. "
        ]
    }
    
    

    4. Emissions Recalculate By Equipment

    This section guides you through the process of an on-demand update to the emissions calculation for a specific equipment using the designated API endpoint. While this API endpoint is a child of the Equipment table, adding or updating an equipment will not cause an update on its own.

    Equipment/EmissionCalculation POST endpoint

    POST /actsapi/v1/equipment/emissioncalculation

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'POST',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/equipment/emissioncalculation',
      headers: { 'content-type': 'application/json' },
      body:
        { [equipmentId1, equipmentId2, equipmentId3....]
         },
      json: true };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/equipment/emissioncalculation");
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "{\r\n   [equipmentId1, equipmentId2, equipmentId3....]\r\n}", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    {
       [equipmentId1, equipmentId2, equipmentId3....]
         }
    

    Example Response

    {
        "processedIds": [
            "34",
            "36"
        ],
        "invalidIds": [
            "1234"
        ],
        "errorMessages": []
    }
    
    

    Example Output when data is missing

    {
        "processedIds": [],
        "invalidIds": [],
        "errorMessages": [
            "Equipment ids are missing."
        ]
    }
    
    

    5. Emissions Recalculate By Operation

    This section guides you through the process of an on-demand update to the emissions calculation for a specific operation using the designated API endpoint. While this API endpoint is a child of the Operation table, adding or updating an operation with the API will not cause an update on its own.

    Operation/EmissionCalculation POST endpoint

    POST /actsapi/v1/operation/emissioncalculation

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'POST',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/operation/emissioncalculation',
      headers: { 'content-type': 'application/json' },
      body:
      { [operationId1, operationId2, operationId3....]
         },
      json: true };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/operation/emissioncalculation");
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "{\r\n   [operationId1, operationId2, operationId3....]\r\n}", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    {
       [operationId1, operationId2, operationId3....]
    }
    

    Example Response

    {
        "processedIds": [
            "34",
            "36"
        ],
        "invalidIds": [
            "1234"
        ],
        "errorMessages": []
    }
    
    

    Example Output when data is missing

    {
        "processedIds": [],
        "invalidIds": [],
        "errorMessages": [
            "Operation ids are missing."
        ]
    }
    
    

    6. Equipment Table

    This section guides you through the process of modifying existing equipment records or adding new entries to the Equipment table using the designated API endpoint.

    Equipment POST endpoint

    POST /actsapi/v1/equipment

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'POST',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/equipment',
      headers: { 'content-type': 'application/json' },
      body:
        [  {
        "equipmentId": "number",
        "areaId": "number",
        "facilityId": "number",
        "equipmentTypeId": "number",
        "sourceName": "string ",
        "equipmentStatusId": "number",
        "modelId": "number",
        "ownershipId": "number",
        "ownerId": "number",
        "serialNumber": "number",
        "manufactureDate": "2023-06-25T04:00:00Z",
        "internalName": "string",
        "alternateName": "string",
        "design": "string",
        "originalSurveyDate": "2023-06-25T04:00:00Z",
        "activeDate": "2023-06-25T04:00:00Z",
        "inactiveDate": "2023-06-25T04:00:00Z",
        "dataLockTypeId": "number",
        "externalIdentifier": "string",
        "comments": "string"
        }],
      json: true };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/equipment");
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", " [ {\r\n    \"equipmentId\": \"number\",\r\n    \"areaId\": \"number\",\r\n    \"facilityId\": \"number\",\r\n    \"equipmentTypeId\": \"number\",\r\n    \"sourceName\": \"string \",\r\n    \"equipmentStatusId\": \"number\",\r\n    \"modelId\": \"number\",\r\n    \"ownershipId\": \"number\",\r\n    \"ownerId\": \"number\",\r\n    \"serialNumber\": \"number\",\r\n    \"manufactureDate\": \"2023-06-25T04:00:00Z\",\r\n    \"internalName\": \"string\",\r\n    \"alternateName\": \"string\",\r\n    \"design\": \"string\",\r\n    \"originalSurveyDate\": \"2023-06-25T04:00:00Z\",\r\n    \"activeDate\": \"2023-06-25T04:00:00Z\",\r\n    \"inactiveDate\": \"2023-06-25T04:00:00Z\",\r\n\t  \"dataLockTypeId\": \"number\",\r\n  \"externalIdentifier\": \"string\",\r\n    \"comments\": \"string\"\r\n }\r\n]", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    [
      {
        "equipmentId": "number",
        "areaId": "number",
        "facilityId": "number",
        "equipmentTypeId": "number",
        "sourceName": "string ",
        "equipmentStatusId": "number",
        "modelId": "number",
        "ownershipId": "number",
        "ownerId": "number",
        "serialNumber": "number",
        "manufactureDate": "2023-06-25T04:00:00Z",
        "internalName": "string",
        "alternateName": "string",
        "design": "string",
        "originalSurveyDate": "2023-06-25T04:00:00Z",
        "activeDate": "2023-06-25T04:00:00Z",
        "inactiveDate": "2023-06-25T04:00:00Z",
        "dataLockTypeId": "number",
        "externalIdentifier": "string",
        "comments": "string"
        }
    ]
    

    Example Response

    {
        "insertedRowCount" : 2 , 
        "updatedRowCount" : 3 ,
        "failureCount" : 0 ,
        "errorMessage" : []
    
    }
    
    

    Example Output For When Data Get’s Failed To Insert or Update

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 1 ,
        "failureCount" : 1 ,
        "errorMessage" : [
         "Equipment ID : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
        ]
    }
    
    

    7. Equipment Analysis Table

    This section outlines the process of adding new entries or modifying existing records within the Equipment Analysis table using the dedicated API endpoint.

    Equipment Analysis POST Endpoint

    POST /actsapi/v1/equipmentanalysis

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'POST',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/equipmentanalysis',
      headers: { 'content-type': 'application/json' },
      body:
    
           [
      {
        "equipmentAnalysisId": "number",
        "equipmentId": "number",
        "analysisId": "number",
        "analysisAssociationTypeId": "number",
        "activeDate": "2014-04-01T00:00:00z",
        "inactiveDate": "2025-04-01T00:00:00z",
        "dataLockTypeId": "number",
        "externalIdentifier": "string",
        "comments": "string"
      }
    ],
              json: true };
    
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/equipmentanalysis");
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", " [\r\n  { \r\n\ "equipmentAnalysisId\": \"number\",\r\n    \"equipmentId\": \"number\",\r\n
        \"analysisId\": \"number\",\r\n    \"analysisAssociationTypeId\": \"number\",\r\n    \"activeDate\": \"2014-04-01T00:00:00z\",\r\n
        \"inactiveDate\": \"2025-04-01T00:00:00z\",\r\n    \"dataLockTypeId\": \"number\",\r\n   \"externalIdentifier\": \"string\",\r\n    \"comments\": \"string\" \r\n  }\r\n]", 
        ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

     [
      {
        "equipmentAnalysisId": "number",
        "equipmentId": "number",
        "analysisId": "number",
        "analysisAssociationTypeId": "number",
        "activeDate": "2014-04-01T00:00:00z",
        "inactiveDate": "2025-04-01T00:00:00z",
        "dataLockTypeId": "number",
        "externalIdentifier": "string",
        "comments": "string"
      }
    ]
    

    Example Response

    {
        "insertedRowCount" : 2 , 
        "updatedRowCount" : 3 ,
        "failureCount" : 0 ,
        "errorMessage" : []
    
    }
    
    

    Example Output For When Data Get’s Failed To Insert or Update

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 0 ,
        "failureCount" : 1 ,
        "errorMessage" : [
         "EquipmentAnalysis ID : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
        ]
    }
    
    

    8. Equipment Attribute Table

    This section outlines the process of adding new entries or modifying existing records within the Equipment Attribute table using the dedicated API endpoint.

    Equipment Attribute POST Endpoint

    POST /actsapi/v1/equipmentattribute

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'POST',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/equipmentattribute',
      headers: { 'content-type': 'application/json' },
      body:
    
           [
      { 
        "equipmentAttributeId": "number",
        "equipmentId": "number",
        "attributeTypeId": "number",
        "equipmentAttribute":"string",
        "dataLockTypeId": "number",
        "externalIdentifier": "string",
        "comments":"string"
      }
    ],
              json: true };
    
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/equipmentattribute");
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", " [\r\n  { \r\n"equipmentAttributeId\": \"number\",\r\n    \"equipmentId\": \"number\",\r\n    \"attributeTypeId\": \"number\",\r\n    \"equipmentAttribute\":\"string\",\r\n    \"dataLockTypeId\": \"number\",\r\n  \"externalIdentifier\": \"string\",\r\n    \"comments\":\"string\"\r\n  }\r\n]", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

     [
      { 
        "equipmentAttributeId": "number",
        "equipmentId": "number",
        "attributeTypeId": "number",
        "equipmentAttribute":"string",
        "dataLockTypeId": "number",
        "externalIdentifier": "string",
        "comments":"string"
      }
    ]
    

    Example Response

    {
        "insertedRowCount" : 2 , 
        "updatedRowCount" : 3 ,
        "failureCount" : 0 ,
        "errorMessage" : []
    
    }
    
    

    Example Output For When Data Get’s Failed To Insert or Update

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 1 ,
        "failureCount" : 1 ,
        "errorMessage" : [
         "EquipmentAttribute ID : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
        ]
    }
    
    

    9. Facility Table

    This section outlines the process of adding new entries or modifying existing records within the Facility table using the dedicated API endpoint.

    Facility POST Endpoint

    POST /actsapi/v1/facility

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'POST',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/facility',
      headers: { 'content-type': 'application/json' },
      body:
       [{
        "facilityId": "number",
        "facilityName": "string",
        "areaId": "number",
        "facilityTypeId": "number",
        "facilityStatusId": "number",
        "sortOrder": "number",
        "facilityOwnershipId": "number",
        "facilityOwnerId": "number",
        "landOwnershipId": "number",
        "landOwnerId": "number",
        "operatorId": "number",
        "countryId": "number",
        "countyId": "number",
        "offshoreBlockId": "number",
        "meteorologicalId": "number",
        "businessEntityId": "number",
        "businessUnitId": "number",
        "alternateName": "string",
        "purchaseDate": "2023-06-25T04:00:00Z",
        "previousOwnerId": "number",
        "soldDate": "2023-06-25T04:00:00Z",
        "soldToId": "number",
        "activeDate": "2023-06-25T04:00:00Z",
        "inactiveDate": "2023-06-25T04:00:00Z",
        "dataLockTypeId": "number",
        "externalIdentifier": "string",
        "comments": "string"
      }],
         json: true };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/facility");
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "[{\r\n    \"facilityId\": \"number\",\r\n    \"facilityName\": \"string\",\r\n    \"areaId\": \"number\",\r\n    \"facilityTypeId\": \"number\",\r\n    \"facilityStatusId\": \"number\",\r\n    \"sortOrder\": \"number\",\r\n    \"facilityOwnershipId\": \"number\",\r\n    \"facilityOwnerId\": \"number\",\r\n    \"landOwnershipId\": \"number\",\r\n    \"landOwnerId\": \"number\",\r\n    \"operatorId\": \"number\",\r\n    \"countryId\": \"number\",\r\n    \"countyId\": \"number\",\r\n    \"offshoreBlockId\": \"number\",\r\n    \"meteorologicalId\": \"number\",\r\n    \"businessEntityId\": \"number\",\r\n    \"businessUnitId\": \"number\",\r\n    \"alternateName\": \"string\",\r\n    \"purchaseDate\": \"2023-06-25T04:00:00Z\",\r\n    \"previousOwnerId\": \"number\",\r\n    \"soldDate\": \"2023-06-25T04:00:00Z\",\r\n    \"soldToId\": \"number\",\r\n    \"activeDate\": \"2023-06-25T04:00:00Z\",\r\n    \"inactiveDate\": \"2023-06-25T04:00:00Z\",\r\n    \"dataLockTypeId\": \"number\",\r\n  \"externalIdentifier\": \"string\",\r\n    \"comments\": \"string\"\r\n  }]", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    [
      {
        "facilityId": "number",
        "facilityName": "string",
        "areaId": "number",
        "facilityTypeId": "number",
        "facilityStatusId": "number",
        "sortOrder": "number",
        "facilityOwnershipId": "number",
        "facilityOwnerId": "number",
        "landOwnershipId": "number",
        "landOwnerId": "number",
        "operatorId": "number",
        "countryId": "number",
        "countyId": "number",
        "offshoreBlockId": "number",
        "meteorologicalId": "number",
        "businessEntityId": "number",
        "businessUnitId": "number",
        "alternateName": "string",
        "purchaseDate": "2023-06-25T04:00:00Z",
        "previousOwnerId": "number",
        "soldDate": "2023-06-25T04:00:00Z",
        "soldToId": "number",
        "activeDate": "2023-06-25T04:00:00Z",
        "inactiveDate": "2023-06-25T04:00:00Z",
        "dataLockTypeId": "number",
        "externalIdentifier": "string",
        "comments": "string"
      } 
    ]
    

    Example Response

    {
        "insertedRowCount" : 2 , 
        "updatedRowCount" : 3 ,
        "failureCount" : 0 ,
        "errorMessage" : []
    
    }
    
    

    Example Output For When Data Get’s Failed To Insert or Update

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 1 ,
        "failureCount" : 1 ,
        "errorMessage" : [
         "Facility ID : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
        ]
    }
    
    

    10. Facility Attribute Table

    This section outlines the process of adding new entries or modifying existing records within the Facility Attribute table using the dedicated API endpoint.

    Facility Attribute POST Endpoint

    POST /actsapi/v1/facilityattribute

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'POST',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/facilityattribute',
      headers: { 'content-type': 'application/json' },
      body:
       [
      { "facilityAttributeId": "number",
        "facilityId": "number",
        "attributeTypeId": "number",
        "facilityAttribute":"string",
        "dataLockTypeId": "number",
        "externalIdentifier": "string",
        "comments":"string"
      }
    ],
          json: true };
    
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/facilityattribute");
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "[\r\n  { \r\n"facilityAttributeId\": \"number\",\r\n    \"facilityId\": \"number\",\r\n    \"attributeTypeId\": \"number\",\r\n    \"facilityAttribute\":\"string\",\r\n    \"dataLockTypeId\": \"number\",\r\n   \"externalIdentifier\": \"string\",\r\n    \"comments\":\"string\"\r\n  }\r\n]", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    [
      { 
        "facilityAttributeId": "number",
        "facilityId": "number",
        "attributeTypeId": "number",
        "facilityAttribute":"string",
        "dataLockTypeId": "number",
        "externalIdentifier": "string",
        "comments":"string"
      }
    ]
    

    Example Response

    {
        "insertedRowCount" : 2 , 
        "updatedRowCount" : 3 ,
        "failureCount" : 0 ,
        "errorMessage" : []
    
    }
    
    

    Example Output For When Data Get’s Failed To Insert or Update

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 1 ,
        "failureCount" : 1 ,
        "errorMessage" : [
         "FacilityAttribute ID : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
        ]
    }
    
    

    11. Operation Table

    This section outlines the process of adding new entries or modifying existing records within the Operation table using the dedicated API endpoint.

    Operation POST Endpoint

    POST /actsapi/v1/operation

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'POST',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/operation',
      headers: { 'content-type': 'application/json' },
      body:
     [
      {
        "operationId": "number",
        "equipmentId": "number",
        "emissionTypeId": "number",
        "emissionCategoryId": "number",
        "operationTypeId": "number",
        "activeDate": "2023-06-25T04:00:00Z",
        "unitId": "number",
        "controlledInd": "string",
        "estimatedInd": "string",
        "invalidInd": "string",
        "calculateEmissionsInd": "string",
        "collectionDate": "2023-06-25T04:00:00Z",
        "fieldEventId": "number",
        "inactiveDate": "2023-06-25T04:00:00Z",
        "dataLockTypeId": "number",
        "externalIdentifier": "string",
        "comments": "string",
        "badDataFlag": "number(1,0)",
        "operationAmount": "number"
      } 
    ],
         json: true };
    
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/operation");
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "[\r\n  {\r\n    \"operationId\": \"number\",\r\n    \"equipmentId\": \"number\",\r\n    \"emissionTypeId\": \"number\",\r\n    \"emissionCategoryId\": \"number\",\r\n    \"operationTypeId\": \"number\",\r\n    \"activeDate\": \"2023-06-25T04:00:00Z\",\r\n    \"unitId\": \"number\",\r\n    \"controlledInd\": \"string\",\r\n    \"estimatedInd\": \"string\",\r\n    \"invalidInd\": \"string\",\r\n    \"calculateEmissionsInd\": \"string\",\r\n    \"collectionDate\": \"2023-06-25T04:00:00Z\",\r\n    \"fieldEventId\": \"number\",\r\n    \"inactiveDate\": \"2023-06-25T04:00:00Z\",\r\n    \"dataLockTypeId\": \"number\",\r\n   \"externalIdentifier\": \"string\",\r\n    \"comments\": \"string\",\r\n    \"badDataFlag\": \"number(1,0)\",\r\n    \"operationAmount\": \"number\"\r\n  } \r\n]", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    [
      {
        "operationId": "number",
        "equipmentId": "number",
        "emissionTypeId": "number",
        "emissionCategoryId": "number",
        "operationTypeId": "number",
        "activeDate": "2023-06-25T04:00:00Z",
        "unitId": "number",
        "controlledInd": "string",
        "estimatedInd": "string",
        "invalidInd": "string",
        "calculateEmissionsInd": "string",
        "collectionDate": "2023-06-25T04:00:00Z",
        "fieldEventId": "number",
        "inactiveDate": "2023-06-25T04:00:00Z",
        "dataLockTypeId": "number",
        "externalIdentifier": "string",
        "comments": "string",
        "badDataFlag": "number(1,0)",
        "operationAmount": "number"
      } 
    ]
    
    

    Example Response

    {
        "insertedRowCount" : 2 , 
        "updatedRowCount" : 3 ,
        "failureCount" : 0 ,
        "errorMessage" : []
    
    }
    
    

    Example Output For When Data Get’s Failed To Insert or Update

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 1 ,
        "failureCount" : 1 ,
        "errorMessage" : [
         "Operation ID : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
        ]
    }
    
    

    12. Workflow Table

    This section outlines the process of adding new entries or modifying existing records within the Workflow table using the dedicated API endpoint.

    Workflow POST Endpoint

    POST /actsapi/v1/workflow

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'POST',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/workflow',
      headers: { 'content-type': 'application/json' },
      body:
          [
      {
            "workflowId": "number",
            "workflowTypeId": "number",
            "workflowDate": "2024-01-03T08:16:24.155Z",
            "dataLockTypeId": "number",
            "externalIdentifier": "string",
            "comments": "string"
      }
    ],
      json: true };
    
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/workflow");
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", " [\r\n  {\r\n        \"workflowId\": \"number\",\r\n        \"workflowTypeId\": \"number\",\r\n        \"workflowDate\": \"2024-01-03T08:16:24.155Z\",\r\n        \"dataLockTypeId\": \"number\",\r\n   \"externalIdentifier\": \"string\",\r\n        \"comments\": \"string\"\r\n  }\r\n]", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    [
      {
            "workflowId": "number",
            "workflowTypeId": "number",
            "workflowDate": "2024-01-03T08:16:24.155Z",
            "dataLockTypeId": "number",
            "externalIdentifier": "string",
            "comments": "string"
      }
    ]
    

    Example Response

    {
        "insertedRowCount" : 2 , 
        "updatedRowCount" : 3 ,
        "failureCount" : 0 ,
        "errorMessage" : []
    
    }
    
    

    Example Output For When Data Get’s Failed To Insert or Update

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 1 ,
        "failureCount" : 1 ,
        "errorMessage" : [
         "Workflow Id : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
        ]
    }
    
    

    13. Workflow Answer Table

    This section outlines the process of adding new entries or modifying existing records within the Workflow Answer table using the dedicated API endpoint.

    Workflow Answer POST Endpoint

    POST /actsapi/v1/workflowanswer

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'POST',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/workflowanswer',
      headers: { 'content-type': 'application/json' },
      body:
          [{
            "workflowAnswerId": "number",
            "workflowId": "number",
            "workflowQuestionId": "number",
            "categoryAnswerIndex": "number",
            "categoryRevisionIndex": "number",
            "questionAnswerIndex": "number",
            "questionRevisionIndex": "number",
            "workflowAnswer": "string",
            "dataLockTypeId": "number",
            "personId": "number",
            "externalIdentifier": "string",
            "comments": "string"
          }],
      json: true };
    
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/workflowanswer");
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "[{\r\n        \"workflowAnswerId\": \"number\",\r\n        \"workflowId\": \"number\",\r\n        \"workflowQuestionId\": \"number\",\r\n        \"categoryAnswerIndex\": \"number\",\r\n        \"categoryRevisionIndex\": \"number\",\r\n        \"questionAnswerIndex\": \"number\",\r\n        \"questionRevisionIndex\": \"number\",\r\n        \"workflowAnswer\": \"string\",\r\n        \"dataLockTypeId\": \"number\",\r\n        \"personId\": \"number\",\r\n    \"externalIdentifier\": \"string\",\r\n        \"comments\": \"string\"\r\n      }]", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    [{
            "workflowAnswerId": "number",
            "workflowId": "number",
            "workflowQuestionId": "number",
            "categoryAnswerIndex": "number",
            "categoryRevisionIndex": "number",
            "questionAnswerIndex": "number",
            "questionRevisionIndex": "number",
            "workflowAnswer": "string",
            "dataLockTypeId": "number",
            "personId": "number",
            "externalIdentifier": "string",
            "comments": "string"
          }]
    

    Example Response

    {
        "insertedRowCount" : 2 , 
        "updatedRowCount" : 3 ,
        "failureCount" : 0 ,
        "errorMessage" : []
    
    }
    
    

    Example Output For When Data Get’s Failed To Insert or Update

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 1 ,
        "failureCount" : 1 ,
        "errorMessage" : [
         "Workflow Answer Id : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
        ]
    }
    
    

    14. Workflow Equipment Table

    This section outlines the process of adding new entries or modifying existing records within the Workflow Equipment table using the dedicated API endpoint.

    Workflow Equipment POST Endpoint

    POST /actsapi/v1/workflowequipment

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'POST',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/workflowequipment',
      headers: { 'content-type': 'application/json' },
      body:
          [
      {
            "workflowEquipmentId": "number",
            "workflowId": "number",
            "equipmentId": "number",
            "workflowQuestionId": "number",
            "externalIdentifier": "string",
            "comments": "string"
      }
    ],
      json: true };
    
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/workflowequipment");
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "[\r\n  {\r\n        \"workflowEquipmentId\": \"number\",\r\n        \"workflowId\": \"number\",\r\n        \"equipmentId\": \"number\",\r\n        \"workflowQuestionId\": \"number\",\r\n     \"externalIdentifier\": \"string\",\r\n        \"comments\": \"string\"\r\n  }\r\n]", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    [
      {
            "workflowEquipmentId": "number",
            "workflowId": "number",
            "equipmentId": "number",
            "workflowQuestionId": "number",
            "externalIdentifier": "string",
            "comments": "string"
      }
    ]
    

    Example Response

    {
        "insertedRowCount" : 2 , 
        "updatedRowCount" : 3 ,
        "failureCount" : 0 ,
        "errorMessage" : []
    
    }
    
    

    Example Output For When Data Get’s Failed To Insert or Update

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 1 ,
        "failureCount" : 1 ,
        "errorMessage" : [
         "Workflow Equipment Id : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
        ]
    }
    
    

    15. Workflow Facility Table

    This section outlines the process of adding new entries or modifying existing records within the Workflow Facility table using the dedicated API endpoint.

    Workflow Facility POST Endpoint

    POST /actsapi/v1/workflowfacility

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'POST',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/workflowfacility',
      headers: { 'content-type': 'application/json' },
      body:
          [
      {
            "workflowFacilityId": "number",
            "workflowId": "number",
            "facilityId": "number",
            "workflowQuestionId": "number",
            "externalIdentifier": "string",
            "comments": "string"
      }
    ],
      json: true };
    
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/workflowfacility");
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "[\r\n  {\r\n        \"workflowFacilityId\": \"number\",\r\n        \"workflowId\": \"number\",\r\n        \"facilityId\": \"number\",\r\n        \"workflowQuestionId\": \"number\",\r\n       \"externalIdentifier\": \"string\",\r\n        \"comments\": \"string\"\r\n  }\r\n]", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    [
      {
            "workflowFacilityId": "number",
            "workflowId": "number",
            "facilityId": "number",
            "workflowQuestionId": "number",
            "externalIdentifier": "string",
            "comments": "string"
      }
    ]
    

    Example Response

    {
        "insertedRowCount" : 2 , 
        "updatedRowCount" : 3 ,
        "failureCount" : 0 ,
        "errorMessage" : []
    
    }
    
    

    Example Output For When Data Get’s Failed To Insert or Update

    
    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 1 ,
        "failureCount" : 1 ,
        "errorMessage" : [
         "Workflow Facility Id : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
        ]
    }
    
    

    16. Workflow Person Table

    This section outlines the process of adding new entries or modifying existing records within the Workflow Person table using the dedicated API endpoint.

    Workflow Person POST Endpoint

    POST /actsapi/v1/workflowperson

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'POST',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/workflowperson',
      headers: { 'content-type': 'application/json' },
      body:
          [
      {
            "workflowPersonId": "number",
            "workflowId": "number",
            "personId": "number",
            "workflowQuestionId": "number",
            "externalIdentifier": "string",
            "comments": "string"
      }
    ],
      json: true };
    
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/Workflowperson");
    var request = new RestRequest(Method.POST);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "[\r\n  {\r\n        \"workflowPersonId\": \"number\",\r\n        \"workflowId\": \"number\",\r\n        \"personId\": \"number\",\r\n        \"workflowQuestionId\": \"number\",\r\n        \"lastModifiedDate\": \"2024-01-03T08:16:24.155Z\",\r\n        \"externalIdentifier\": \"string\",\r\n        \"comments\": \"string\"\r\n  }\r\n]", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    [
      {
            "workflowPersonId": "number",
            "workflowId": "number",
            "personId": "number",
            "workflowQuestionId": "number",
            "externalIdentifier": "string",
            "comments": "string"
      }
    ]
    

    Example Response

    {
        "insertedRowCount" : 2 , 
        "updatedRowCount" : 3 ,
        "failureCount" : 0 ,
        "errorMessage" : []
    
    }
    
    

    Example Output For When Data Get’s Failed To Insert or Update

    
    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 1 ,
        "failureCount" : 1 ,
        "errorMessage" : [
         "Workflow Person Id : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
        ]
    }
    
    

    JSON body for both Insert & Update

    JSON Input body for Insert

    If the primary id is zero - “0” then the data we are passing is handled as an insert, shown in the example below, where “equipmentAttributeId” is passed as “0”.

    Parameter Description
    equipmentAttributeId equipmentAttributeId for insert we do pass the input as zero “0”
    equipmentId equipmentId accepts the numbers as input
    attributeTypeId attributeTypeId accepts the numbers as input
    equipmentAttribute equipmentAttribute accepts the string data as input
    dataLockTypeId dataLockTypeId accepts the numbers as input
    externalIdentifier externalIdentifier accepts the string data as input
    comments comments accepts the string data as input

    Example Input JSON Body For Insert

    [
        {
            "equipmentAttributeId": 0,
            "equipmentId": "number",
            "attributeTypeId": "number",
                "equipmentAttribute":"string",
            "dataLockTypeId": "number",
            "externalIdentifier": "string",
                "comments":"string"
        }
    ]
    

    Example Input JSON Body For Update

    JSON Input body for Update

    If the primary id is an existing ID - “#####” then the data we are passing is handled as an update, shown in the example below, where “equipmentAttributeId” is passed as “164”.

    Parameter Description
    equipmentAttributeId equipmentAttributeId for update we do pass the input as integer like “164”
    equipmentId equipmentId accepts the numbers as input
    attributeTypeId attributeTypeId accepts the numbers as input
    equipmentAttribute equipmentAttribute accepts the string data as input
    dataLockTypeId dataLockTypeId accepts the numbers as input
    externalIdentifier externalIdentifier accepts the string data as input
    comments comments accepts the string data as input
    [
        {
            "equipmentAttributeId": 164,
            "equipmentId": "number",
            "attributeTypeId": "number",
                "equipmentAttribute":"string",
            "dataLockTypeId": "number",
            "externalIdentifier": "string",
                "comments":"string"
        }
    ]
    

    Example Output For Both Update and Insert

    {
        "insertedRowCount" : 2 , 
        "updatedRowCount" : 3 ,
        "failureCount" : 0 ,
        "errorMessage" : []
    
    }
    
    

    Example Output For When Data Get’s Failed To Insert or Update

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 1 ,
        "failureCount" : 1 ,
        "errorMessage" : [
         "Operation ID : 0, Error: An error occurred while saving the entity changes. See the inner exception for details "
        ]
    }
    
    

    Remove or Delete data from Database Table

    This section outlines the available Delete APIs designed for modifying ACTS data by deleteing or removing the data. These APIs offer options for removing existing records from the mentioned tables.

    In the current release, one DELETE API End point is provided to remove or delete from the following table

    DELETE requests to these endpoints should be formatted in JSON.

    1. Analysis Table

    This section guides you through the process of removing/deleting the existing records from the Analysis table using the designated API endpoint.

    Analysis DELETE endpoint

    DELETE /actsapi/v1/analysis

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'DELETE',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/analysis',
      headers: { 'content-type': 'application/json' },
      body:
       { 
        [analysisId1, analysisId2, analysisId3....]
          },
      json: true };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/analysis");
    var request = new RestRequest(Method.DELETE);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "{\r\n    [operationId1, operationId2, operationId3....] \r\n}", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    
      {
        [analysisId1, analysisId2, analysisId3....]
      }
    
    

    Example Response

    {
      "deletedRowCount": 1,
      "notFoundCount": 0,
      "failureCount": 0,
      "errorMessage" : []
    }
    
    

    2. Analysis Compound Table

    This section guides you through the process of removing/deleting the existing records from the Analysis Compound table using the designated API endpoint.

    Analysis Compound DELETE endpoint

    DELETE /actsapi/v1/analysiscompound

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'DELETE',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/analysiscompound',
      headers: { 'content-type': 'application/json' },
      body:
       { 
        [analysisCompoundId1, analysisCompoundId2, analysisCompoundId3....]
          },
      json: true };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/analysiscompound");
    var request = new RestRequest(Method.DELETE);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "{\r\n    [analysisCompoundId1, analysisCompoundId2, analysisCompoundId3....] \r\n}", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    
      {
        [analysisCompoundId1, analysisCompoundId2, analysisCompoundId3....]
      }
    
    

    Example Response

    {
      "deletedRowCount": 1,
      "notFoundCount": 0,
      "failureCount": 0,
      "errorMessage" : []
    }
    
    

    3. Emission Factor Table

    This section guides you through the process of removing/deleting the existing records from the Emission Factor table using the designated API endpoint.

    Emission Factor DELETE endpoint

    DELETE /actsapi/v1/emissionfactor

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'DELETE',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/emissionfactor',
      headers: { 'content-type': 'application/json' },
      body:
       { 
        "emissionFactorId": "number"
          },
      json: true };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/emissionfactor");
    var request = new RestRequest(Method.DELETE);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "{\r\n    \"emissionFactorId\": \"number\"\r\n}", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    
      {
        "emissionFactorId": "number"
      }
    
    

    Example Response

    {
        "insertedRowCount" : 0 , 
        "updatedRowCount" : 0 ,
        "deletedRowCount" : 1 ,
        "failureCount" : 0 ,
        "errorMessage" : []
    }
    
    

    4. Equipment Analysis Table

    This section guides you through the process of removing/deleting the existing records from the Equipment Analysis table using the designated API endpoint.

    Equipment Analysis DELETE endpoint

    DELETE /actsapi/v1/equipmentanalysis

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'DELETE',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/equipmentanalysis',
      headers: { 'content-type': 'application/json' },
      body:
       { 
        [equipmentanalysisId1, equipmentanalysisId2, equipmentanalysisId3....]
          },
      json: true };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/equipmentanalysis");
    var request = new RestRequest(Method.DELETE);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "{\r\n    [equipmentanalysisId1, equipmentanalysisId2, equipmentanalysisId3....] \r\n}", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    
      {
        [equipmentanalysisId1, equipmentanalysisId2, equipmentanalysisId3....]
      }
    
    

    Example Response

    {
      "deletedRowCount": 1,
      "notFoundCount": 0,
      "failureCount": 0,
      "errorMessage" : []
    }
    
    

    5. Operation Table

    This section guides you through the process of removing/deleting the existing records from the Operation table using the designated API endpoint.

    Operation DELETE endpoint

    DELETE /actsapi/v1/operation

    Example Request & JSON Input Body

    var request = require("request");
    
    var options = { method: 'DELETE',
      url: 'https://[tenant].actsapi.intelex.com/actsapi/v1/operation',
      headers: { 'content-type': 'application/json' },
      body:
       { [operationId1, operationId2, operationId3....]
         },
      json: true };
    
    request(options, function (error, response, body) {
      if (error) throw new Error(error);
    
      console.log(body);
    });
    
    
    var client = new RestClient("https://[tenant].actsapi.intelex.com/actsapi/v1/operation");
    var request = new RestRequest(Method.DELETE);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", "{\r\n   [operationId1, operationId2, operationId3....]\r\n}", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    Input JSON Body

    
      {
        [operationId1, operationId2, operationId3....]
      }
    
    

    Example Response

    {
      "deletedRowCount": 1,
      "notFoundCount": 0,
      "failureCount": 0,
        "errorMessage" : []
    }
    
    

    Developer Support

    Join the Intelex Developer group on Community and: