NERM Consolidation API Usage

Consolidation is a legacy sub-product of NERM that is used by few tenants - however, I wanted to ensure there was a spot to display and talk about the API endpoints and usage for those features. This will cover the basic usages of the endpoints; not the configuration of the product itself.

Importing and Retrieving Identity Data.

Import Request

POST https://tenant.nonemployee.com/api/idproxy/imports/<IMPORT_ENDPOINT_UID>

Imports data from a data source. In the JSON body, pass an array of objects to import.

Parameter Required Description
IMPORT_ENDPOINT_UID Yes The import endpoint of set for the data source.

Import Response

Success: You should receive a JSON object containing the job_id for the import.
Failure: You should receive a JSON object containing an error message.

Example

The supplied JSON should look something like this. The fields will vary by data source.

[
  { "id": 0, "lastname": "Aufderhar", "email": "[email protected]", "firstname": "Domenic" },
  { "id": 1, "lastname": "Smith", "email": "[email protected]", "firstname": "Kim" },
  { "id": 2, "lastname": "Monahan", "email": "[email protected]", "firstname": "Mervin" },
  { "id": 3, "lastname": "Hodkiewicz", "email": "[email protected]", "firstname": "Gerda" },
  { "id": 4, "lastname": "Ankunding", "email": "[email protected]", "firstname": "Lura" }
]

A successful call will return something like this:

{
  "info": "job successfully created",
  "job_status": {
    "job_id": "3ce88e47ad6dba2ddf349d21",
    "status": "queued"
  }
}

An unsuccessful call will return something like this:

{
  "error": "Data source not found"
}

Identity Request

Retrieve some or all identities from Consolidation.

By default, all identities are returned. If a query string is passed in, only identities matching the query string will be returned.

Partial identity matches are accepted (e.g., lastname=Smith will return all identities with the last name Smith). Wildcards are not accepted.

GET https://tenant.nonemployee.com/api/idproxy/identities?PARAM=VALUE&PARAM=VALUE
Parameter Description
identity attributes Master Record Identity attributes may be passed in to filter results. Data Source Record attribute data can not be used in searches.

Identity Response

Key Description
identity attributes identity attributes as key-value pairs (multi-value attributes appear as arrays of values)
matches Raw data records matched to this identity, identified by import endpoint

Success: You should receive a JSON object containing the requested identity data.
Failure: You should receive a JSON object containing an error message.

Example

A successful call will return something like this:

GET https://tenant.nonemployee.com/api/idproxy/identities?LastName=Smith
{
  "master_records": [
    {
      "id": "5c9a67a64dfd6d03d4f2dcc7",
      "status": "active",
      "created_at": "2019-03-26 13:55:50 -0400",
      "updated_at": "2019-03-26 13:57:37 -0400",
      "identity_data": {
        "LastName": "Smith",
        "FirstName": "Kim"
      },
      "matches": [
        {
          "id": "1351ag38ags3138138asg",
          "data_source_uid": "applicants_data_source",
          "status": "active",
          "created_at": "02/22/2019 13:55:50 -0400",
          "updated_at": "02/22/2019 13:55:50 -0400",
          "record": {
            "lastname": "Smith",
            "email": "[email protected]",
            "firstname": "Kim",
            "department": "accounts payable",
            "status": "active"
          }
        },
        {
          "id": "5c9a8998ba473d5ddcaa924b",
          "data_source_uid": "archived_data_source",
          "status": "active",
          "created_at": "02/22/2019 13:55:50 -0400",
          "updated_at": "02/22/2019 13:55:50 -0400",
          "record": {
            "lname": "Smith",
            "email": "[email protected]",
            "fname": "Kim",
            "dept": "accounts receivable",
            "status": "inactive"
          }
        }
      ]
    }
  ]
}

An unsuccessful call will return something like this:

{
  "error": "No identities"
}

Deleting Data Records

After an Import that may have included bad data or for any other reason, you may want to delete an individual data record from a Master Identity.

Note: If a Master Identity only have 1 Data Record, deleting that Data Record will remove the entire Identity from NERM Consolidation.

DEL https://tenant.nonemployee.com/api/idproxy/data_records/<data-record-id>

Using this endpoint requires to pass in the specific Data Record’s ID value. From the API (Like the GET response above), you can see this under Master Records > Matches > ID.

That ID value can be pulled from the UI in browser as well, but it is hidden by CSS. The easiest method to retrieve it would be to use some JavaScript in the browser’s console.

  1. Find the Identity for which you want to delete a Data Record from by navigating to Dashboard > Consolidation > Identities > Search for and Select the Identity.
  2. Press the F12 key (or equivalent) to pull up the Developer Tools
  3. Select the “Console” tab in Dev Tools
  4. In the console, type or paste in the following command:
  • $(document).find('.data-record')[0].getAttribute('data-record-id');

  • This will print the Data Record ID to the console like so:
    image-20230720-152442

  • If there are multiple Data Records, you can change the Element select. For example, to pull the second record, you could use:
    $(document).find('.data-record')[1].getAttribute('data-record-id');

  • OR, to just pull all Data Record IDs, you can use a loop:

for (let index = 0; index < $(document).find('.data-record').length; index++) {
    console.log($(document).find('.data-record')[index].getAttribute('data-record-id'))
}
1 Like