Thomson Reuters CLEAR API connectors
Thomson Reuters (TR) CLEAR provides search, reporting, and analytics capabilities against public records data and external live gateway data sources. The instruction describes how to install and configure the Thomson Reuters Clear - Adverse Media Search Connector for the Evan and Evelyn AI Agents to work with TR CLEAR as a data provider.
You must have credentials to access TR CLEAR resources:
Installation
To obtain an Asset Bundle (zip archive) containing the required version of the TR CLEAR connector, contact your account manager or the Support team. Once you have the Asset Bundle, import it to Control Tower following the instructions provided in the guide.
Once the import is completed successfully, you should see the installed connector variation in Control Tower in Digital Workers (Work.AI up to v10.2.9) or AI Agents (Work.AI v10.3+) listed under Thomson Reuters Clear - Adverse Media Search Connector.

Configuration
To configure the TR CLEAR connector as a data provider, follow the steps for your platform version:
For Work.AI versions up to v10.2.9: go to the Digital Workers page, open the Actions menu next to the connector variation, and select Settings.
For Work.AI v10.3+: go to the AI Agents page, open the Actions menu next to the connector variation, and select Settings.
In the configuration form, set the following parameters as needed:

API URL. Enter the base URL for the TR CLEAR API endpoint provided by Thomson Reuters.
Credentials location. Specify the authentication alias stored in Secrets Vault.
Credentials keystore. Enter the keystore details associated with the credentials for the provider license.
Proxy authentication host. Provide the hostname of your proxy server if your environment requires outbound API calls to be routed through a proxy.
Proxy authentication port. Specify the port number used by your proxy server.
Proxy authentication protocol schema. Specify the protocol used by the proxy.
Proxy credentials. Enter the username and password for proxy access.
Search Type. Select Evelyn NSS for Evelyn or Evan AMM for Evan, depending on which AI Agent will use the connector.
Gramm-Leach-Bliley Act. Select the intended permissible purpose to comply with the privacy provisions of the GLB Act. Misrepresenting your purpose is a violation of the subscriber agreement and applicable laws. Any misuse of West (Thomson Reuters) data may result in account termination and referral to the appropriate authorities.
Driver's Privacy Protection Act. Select the intended permissible use while acknowledging the DPPA requirements. The Act restricts disclosure of personal information contained in motor vehicle records. It does not apply to accident reports, violations (MVRs), or driver status.
Voter Permissible Purpose. Select the intended permissible use when accessing voter registration records. State laws require that each search, including its purpose and details, be stored for at least five years. Not all permissible uses apply to every state.
Minimum relevance score. Enter a number from 0 to 100. Any results with a relevance score below this threshold are excluded.
Category Tags. Provide one or more category tags to include in the search. Tags help refine the scope of adverse media results.
Use country in the search. Select the checkbox to include the country field in subject requests.
Use state in the search (for Evelyn only). Select the checkbox to include the state field in subject requests.
Use city in the search (for Evelyn only). Select the checkbox to include the city field in subject requests.
Use date of birth in the search (for Evelyn only). Select the checkbox to include the date of birth field in subject requests.
S3 bucket name. Enter the name of the S3 bucket.
S3 folder name. Enter the name of the folder in the S3 bucket.
Enrichment Polling Interval (Hours). Specify the number of hours between each run of the TR Clear Manage Monitor Alert Enrichment Business Process (BP) to check for missing subject IDs. The minimum value is 1 hour.
Set up SSL certificate
In addition to the user ID and password needed for basic authentication, the TR CLEAR API requires an SSL client certificate to authenticate API calls. Once installed in the environment, the certificate can be used by any number of clients.
To install the client certificate, complete the following steps:
Create a keystore file using the client certificate and password provided by Thomson Reuters, for example:
keytool -importkeystore -v -srckeystore clientcert.pfx -srcstoretype pkcs12 -keystore newstore.ksUpload the keystore file to the WorkFusion environment on the Agent virtual machines. The path is
/opt/workfusion/vds-data/connectors/tr-clear.Create a secret entry with the
tr.clear.api.keystorealias containing the following values:- Key: the path to the
keystorefile on the Agent machine, for instance,/opt/workfusion/vds-data/connectors/tr-clear/newstore.ks - Value: the
keystorepassword
- Key: the path to the
Agent node IP addresses must also be added to the whitelist on the Thomson Reuters side. Otherwise, API calls from the TR CLEAR connector will fail.
Configure rate limiting
The TR CLEAR system enforces a limit of 25 concurrent open connections per CLEAR API user. To prevent HTTP 429 errors, set the following ZooKeeper property that limits the maximum number of workers to 25 when a single BP uses a single CLEAR API user. Adjust the number of workers accordingly if multiple BPs use the same TR CLEAR credentials.
TR Clear Adverse Media Monitor Adhoc Search BP:
/config/worker-management-service/bep.worker.pool.com.workfusion.connectors:tr-clear-adverse-media-adhoc-search:<version>.max-worker-count-pool-limitTR Clear Adverse Media Manage Monitor:
/config/worker-management-service/bep.worker.pool.com.workfusion.connectors:tr-clear-adverse-media-manage-monitor:<version>.max-worker-count-pool-limitTR Clear Adverse Media Monitor Results Poller:
/config/worker-management-service/bep.worker.pool.com.workfusion.connectors:tr-clear-adverse-media-monitor-results:<version>.max-worker-count-pool-limit
Once the ZooKeeper property is updated, restart the Worker Management Service for the changes to take effect.
Set error retry
By default, HTTP 5xx error codes and any other exceptions are retried twice, starting with a one-second delay and using exponential backoff with a 2x multiplier. This results in retry delays of 1 second and then 2 seconds, for a maximum processing time of approximately 4 seconds. If all retries are exhausted or a non-retryable HTTP error occurs (typically 4xx), the error is caught and returned in the error response.
You can modify the default configuration in ZooKeeper. Note that the node path differs for each BP:
TR Clear Adverse Media Monitor Adhoc Search:
/config/application,tr-clear-adhoc-search/<property_to_override>TR Clear Adverse Media Manage Monitor:
/config/application,tr-clear-manage-monitor/<property_to_override>TR Clear Adverse Media Monitor Results Poller:
/config/application,tr-clear-monitor-results/<property_to_override>
TR Clear Adverse Media Monitor Adhoc Search
The TR CLEAR connector integrates with TR CLEAR APIs to support adverse media searches for the Evan and Evelyn AI Agents in the TR Clear Adverse Media Monitor Adhoc Search BP.

API endpoints
The connector integrates the following TR CLEAR API endpoints:
{{baseUrl}}/v2/adversemedia/searchResultssubmits the search criteria and returns a result URL that containsSearchIdandGroupCount(total number of results).{{baseUrl}}/v2/adversemedia/searchResults/<SearchID>?startGroup=<Start Index of the Group; 1 based>&maxGroups=<Number of Groups to fetch in one call>. ThemaxGroups(pageSize) parameter defaults to 50. To change its value, create and update the following ZooKeeper node with the desired number:/config/tr-clear-api/<userId>/maxRecordsPerPage.
Configuration parameters
The following configuration parameters are available for the connector:
| Property | Default value | Description | ZooKeeper node to override property value |
|---|---|---|---|
camel.error-handler.custom-enabled | true | Enables or disables the custom error handler. | /config/application,tr-clear-adhoc-search/camel.error-handler.custom-enabled |
camel.error-handler.maximum-redeliveries | 2 | Maximum number of retry attempts after the initial failure. When the value is set to 2, the message is attempted three times in total (1 initial attempt and 2 retries). | /config/application,tr-clear-adhoc-search/camel.error-handler.maximum-redeliveries |
camel.error-handler.redelivery-delay | 1000 | Initial delay in milliseconds before the first retry attempt. Default is 1000 ms (1 second). | /config/application,tr-clear-adhoc-search/camel.error-handler.redelivery-delay |
camel.error-handler.back-off-multiplier | 2 | Multiplier that increases the delay between retries. When the value is set to 2, retries follow an exponential backoff: 1s → 2s → 4s. | /config/application,tr-clear-adhoc-search/camel.error-handler.back-off-multiplier |
camel.error-handler.retryable-status-codes | 500-599 | HTTP status codes that trigger retries. The 500-599 range retries all server-side errors (5xx), while client-side errors (4xx) are not retried. | /config/application,tr-clear-adhoc-search/camel.error-handler.retryable-status-codes |
Connector input
{
"searchRequest" : string,
"searchPeriod": int //optional, only used by Evan
"entityId": string //optional
"location": [ //optional
{
"country": string,
"state": string,
"city": string
}
],
"dates": [ //optional, only used by Evelyn
string
],
"addToOngoingMonitor" : boolean // optional, true to add the monitor via the TR Clear Adverse Media Manage Monitor BP
"inputData": string // optional. If 'addToOngoingMonitor'=true, its content is sent to the TR Clear Adverse Media Manage Monitor BP as 'subjectDetails'
}
}
You can enable or disable processing of "country", "state", "city", and "dates" fields in the connector configuration.
When addToOngoingMonitor is set to true, the monitor is forwarded to the TR Clear Adverse Media Manage Monitor BP.
The rest_request field is populated with the JSON shown below, using values extracted from connector_input.
{
"action": "addSubject",
"userReference": string // entityId (Evan) or inputData.id (Evelyn)
"subjectDetails" string // inputData
}
Connector output
Below are the connector response and mapping details.
Evan
{
searchUrl - String (<Uri> field from the first response),
articles: [
{
fullText - String,
originalLink - String (<URL> response field),
title - String (<Title> response field),
summary - String (<Snippet> response field),
publicationDate - LocalDate (<Date> response field).
wordCount - Integer (should be calculated from the <FullText>. Null if content was not returned)
language - String (<Language> response field)
relevanceScore - double
},
...
]
}
Evelyn
{
// AdverseMediaResultsPage.RecordId
search_id: String
hits: [{
// AdverseMediaResultsPage.ResultGroup.RecordDetails.RecordId
id: String
AdverseMediaResultsPage.ResultGroup.RecordDetails.Relevance
relevance_score: double
// AdverseMediaResultsPage.ResultGroup.RecordDetails.FirstName
first_name: String
// AdverseMediaResultsPage.ResultGroup.RecordDetails.LastName
last_name: String
// AdverseMediaSanctionsResults.MatchedEntry
matched_name: String
// AdverseMediaSanctionsResults.MatchedEntryType
entity_type: {"INDIVIDUAL", "ENTITY", null}
// AdverseMediaSanctionsResults.SanctionAdditionalInfo.Alias
// AdverseMediaSoeResults.AdditionalInfo.Aka
alias_name: [String]
// AdverseMediaSanctionsResults.AdverseMediaSoeResults.Gender
gender: {"Male", "Female", "Other", null}
// AdverseMediaSanctionsResults.AdditionalInfo.Citizenship = country, type = 'Citizenship'
// AdverseMediaSanctionsResults.AdditionalInfo.BirthPlace = address
// AdverseMediaSanctionsResults.AdditionalInfo.Country = country
// AdverseMediaSanctionsResults.AdditionalInfo.Address = address
// AdverseMediaSanctionsResults.AdditionalInfo.AddressCountry = country
//
address: [{
type: String
country: String
state: String
city: String
address: String
}]
// AdverseMediaSanctionsResults.AdditionalInfo.DateOfBirth
// AdverseMediaSanctionsResults.AdditionalInfo.BirthDate
// AdverseMediaSanctionsResults.AdditionalInfo.Date
dates: [{
type: "String"
date: "mm/dd/yyyy"
}] or an empty array
}]
}
If a failure occurs, the connector returns the following exception in its response:
{
errorMessage: "<error message>"
}
For retry behavior, see Set error retry.
TR Clear Adverse Media Manage Monitor
TR Clear Adverse Media Manage Monitor provides an interface for invoking the TR CLEAR APIs to create, update, and delete monitor subjects within a monitor list. It also handles the creation of monitor lists and ensures that no list exceeds 500,000 subjects in accordance with TR CLEAR limits.

The Add subject, Update subject, and Delete subject operations allow you to add, update, or remove a subject in the TR CLEAR system for monitoring. Subjects are added to a monitor list identified by an auto-generated list name. If the same subject is added more than once, it is updated based on the newly provided information.
The createMonitor and addMonitorSubjects endpoints are invoked asynchronously, and their results are processed by a separate BP.
API endpoints
The connector integrates the following TR CLEAR API endpoints:
/v2/adversemedia/createMonitorcreates a named adverse media monitor list containing one or more subjects, with theasyncflag set totrue./v2/adversemedia/createMonitor/:idretrieves the status of the asynchronous request to create a monitor list./v2/adversemedia/addMonitorSubjectsadds subjects to an existing adverse media monitor list, with theasyncflag set totrue./v2/adversemedia/addMonitorSubjects/:idretrieves the status of the asynchronous request to add subjects./v2/adversemedia/deleteMonitorSubjectsdeletes a subject from a monitor list./v2/adversemedia/monitorListDetailreturns details of a specific monitor list.
Configuration parameters
The following configuration parameters are available for the connector:
| Property | Default value | Description | ZooKeeper node to override property value |
|---|---|---|---|
camel.error-handler.custom-enabled | true | Enables or disables the custom error handler. | /config/application,tr-clear-manage-monitor/camel.error-handler.custom-enabled |
camel.error-handler.maximum-redeliveries | 2 | Maximum number of retry attempts after the initial failure. When the value is set to 2, the message is attempted three times in total (1 initial attempt and 2 retries). | /config/application,tr-clear-manage-monitor/camel.error-handler.maximum-redeliveries |
camel.error-handler.redelivery-delay | 1000 | Initial delay in milliseconds before the first retry attempt. Default is 1000 ms (1 second). | /config/application,tr-clear-manage-monitor/camel.error-handler.redelivery-delay |
camel.error-handler.back-off-multiplier | 2 | Multiplier that increases the delay between retries. When the value is set to 2, retries follow an exponential backoff: 1s → 2s → 4s. | /config/application,tr-clear-manage-monitor/camel.error-handler.back-off-multiplier |
camel.error-handler.retryable-status-codes | 500-599 | HTTP status codes that trigger retries. The 500-599 range retries all server-side errors (5xx), while client-side errors (4xx) are not retried. | /config/application,tr-clear-manage-monitor/camel.error-handler.retryable-status-codes |
Operations
The connector exposes the operations below. You can invoke them using the following URL for subject management: <environment>/input-connector-rest/execute-record-json/tr-manage-monitor.
Add subject
The payload for adding a subject for monitoring is shown below. The additional fields in subjectDetails are used to build the keywords associated with the subject. Both subjectDetails and the derived keywords are stored in the Data Store:
{
"action": string, // always "addSubject"
"userReference": string,
"subjectDetails": { // JSON object representing subject details - required
"search_request": string, // name to monitor
// Any additional fields needed to build the keywords for the subject to monitor
}
}
Evan
{
"action": "addSubject",
"userReference": "112233-3",
"subjectDetails": {
"search_request": "Osama Bin Laden III",
"entity_type": "INDIVIDUAL",
"residence_country": "US",
"citizenship_country": "GB",
"subdivision": "US-NY",
"city": "New York",
"year_of_birth": 1951,
"date_of_birth": "1951-05-30",
"external_id": "tusk_external_id",
"additional_information": "some additional information"
}
}
The subject name is extracted from subjectDetails.search_request. You can enable or disable processing of the "residence_country", "citizenship_country", "monitor_country", and "dates" fields in the configuration.
Evelyn
{
"action": "addSubject",
"userReference": "ABC123456789",
"subjectDetails": {
"addToOngoingMonitor": true,
"clientId": "1",
"gender": "MALE",
"entityType": "INDIVIDUAL",
"dates": [
{
"original": {
"month": null,
"year": "1985",
"type": "DOB",
"day": null,
"full": null
},
"source": null,
"derived": null
}
],
"uuid": "46c7865b-7382-4077-8a2f-88abe71d9791",
"goldDecision": null,
"name": {
"firstName": "Robert",
"lastName": "Everest",
"fullName": null,
"middleName": "Landon",
"source": null,
"derived": null
},
"locations": [],
"id": "ABC123456789",
"additionalData": {},
"category": null
}
}
The subject name is extracted from name.fullNameor or from the concatenation of name.firstName, name.middleName, and name.lastName.
Update subject
The payload for updating a subject is identical to the Add subject payload, except for the action value. If location information (country, city, state) or date of birth in subjectDetails changes, an update call is sent to TR CLEAR; otherwise, only the Data Store is updated with subjectDetails.
{
"action": string, // always "updateSubject"
"userReference": string,
"subjectDetails": { // JSON object representing subject details - required
"search_request": string, // name to monitor
// Any additional fields needed to build the keywords for the subject to monitor
}
}
See an example
{
"action": "updateSubject",
"userReference": "112233-3",
"subjectDetails": {
"search_request": "Osama Bin Laden III",
"entity_type": "INDIVIDUAL",
"residence_country": "US",
"citizenship_country": "GB",
"subdivision": "US-NY",
"city": "New York",
"year_of_birth": 1951,
"date_of_birth": "1951-05-30",
"external_id": "tusk_external_id",
"additional_information": "some additional information"
}
}
Delete subject
The payload for deleting a subject is similar to the add and update operations. subjectDetails is optional for this operation.
{
"action": string, // always "updateSubject"
"userReference": string,
"subjectDetails": { // JSON object representing subject details - optional
"search_request": string, // name to monitor
// Any additional fields needed to build the keywords for the subject to monitor
}
}
See an example
{
"action": "deleteSubject",
"userReference": "testUserReference"
}
Response
All operations return a response structured as follows:
{
"processing": string // "success" or "failed"
"details": string // response details from TR CLEAR system.
}
For retry behavior, see Set error retry.
TR Clear Adverse Media Monitor Results Poller
TR Clear Adverse Media Monitor Results Poller connects to the TR CLEAR API and polls monitor lists for new results. You can configure the connector to work with Evan or Evelyn, depending on the sync event step defined in the BP.

The BP is designed to run once per execution. Use the platform scheduler to schedule it to run every X days.
Several poller BPs are available:
TR Clear Adverse Media Monitor Results Poller calls the AI Agent asynchronously.
TR Clear - Adverse Media Search Connector before v3.9.0 TR Clear - Adverse Media Search Connector v3.9.0+ 

TR Clear Adverse Media Monitor Results Poller Batch (from version 3.9.0 onward) calls the AI Agent synchronously and saves the responses to the S3 location defined in the configuration.

Configure the Decision Rule step as shown below:
| Work.AI up to v10.2.9 | Work.AI v10.3+ |
|---|---|
![]() | ![]() |
API endpoints
The connector integrates the following TR CLEAR API endpoints:
{{baseUrl}}/v2/adversemedia/monitorResultssubmits the search criteria and returns a result URL that containsSearchIdandGroupCount(total number of results).{{baseUrl}}/v2/adversemedia/monitorResults/<SearchID>?startGroup=<Start Index of the Group; 1 based>&maxGroups=<Number of Groups to fetch in one call>. ThemaxGroups(pageSize) parameter defaults to 50. To change the value, create and update the following ZooKeeper node with the desired number:/config/tr-clear-api/<userId>/maxRecordsPerPage.
Do not set the value too low as this increases API call volume and may cause TR CLEAR to enforce rate limits.
Configuration parameters
The following configuration parameters are available for the connector:
| Property | Default value | Description | ZooKeeper node to override property value |
|---|---|---|---|
camel.error-handler.custom-enabled | true | Enables or disables the custom error handler. | /config/application,tr-clear-monitor-results/camel.error-handler.custom-enabled |
camel.error-handler.maximum-redeliveries | 2 | Maximum number of retry attempts after the initial failure. When the value is set to 2, the message is attempted three times in total (1 initial attempt and 2 retries). | /config/application,tr-clear-monitor-results/camel.error-handler.maximum-redeliveries |
camel.error-handler.redelivery-delay | 1000 | Initial delay in milliseconds before the first retry attempt. Default is 1000 ms (1 second). | /config/application,tr-clear-monitor-results/camel.error-handler.redelivery-delay |
camel.error-handler.back-off-multiplier | 2 | Multiplier that increases the delay between retries. When the value is set to 2, retries follow an exponential backoff: 1s → 2s → 4s. | /config/application,tr-clear-monitor-results/camel.error-handler.back-off-multiplier |
camel.error-handler.retryable-status-codes | 500-599 | HTTP status codes that trigger retries. The 500–599 range retries all server-side errors (5xx), while client-side errors (4xx) are not retried. | /config/application,tr-clear-monitor-results/camel.error-handler.retryable-status-codes |
Trigger usage
From version 3.9.0 onward, the Trigger connector is used to communicate with Thomson Reuters using the CLEAR APIs. The logic is as follows:
For the configured user and AI Agent combination, retrieve all list names and related properties from the uc_trclearmanagemonitor_monitorlistname_v1 Data Store.
For each returned
list_name, create a record in the uc_trclearmanagemonitor_monitorresults_processing_v1 Data Store, submit the search criteria, and receive the resulting URL containingSearchIdandGroupCount(the number of results).Generate the pagination list based on the
maxRecordsPerPageZooKeeper property associated with the user ID.For each page, retrieve the results and create a map of
<subjectName, Map<subjectUserReference, MonitorResult>>.Once all the maps associated with a specific
subjectNameare collected, the corresponding records for each unique subject reference with the same name are sent to processing.
Connector input
No input is required for the connector as it generates its own input based on the configuration parameters. Additionally, it generates a default date range covering the previous day. The last successful search date is stored in the following ZooKeeper location:
TR Clear - Adverse Media Search Connector before v3.9.0:
Evan:
/config/tr-clear-api/<userId>/monitorResults/adverse_media/lastSearchDateEvelyn
/config/tr-clear-api/<userId>/monitorResults/sanctions/lastSearchDate
TR Clear - Adverse Media Search Connector v3.9.0+: the uc_trclearmanagemonitor_monitorlistname_v1 Data Store > the last_search_date column
Subsequent runs check this stored value, if present, and use it as the From date. This ensures that if the TR Clear Adverse Media Monitor Results Poller BP does not run for several days (due to errors or an intentional stop), the lookback period starts from the last successful run, preventing gaps in result retrieval. If necessary, you can manually set a custom start date for the next run.
Connector output
Below are the connector response and mapping details.
Evan
{
listName: String (Monitor list name),
searchSubject: String,
subjectId: String (TR CLEAR-generated ID),
userReference: String (WorkFusion supplied reference for search subject),
searchUrl - String (<Uri> field from the first response),
articles: [
{
fullText - String,
originalLink - String (<URL> response field),
title - String (<Title> response field),
summary - String (<Snippet> response field),
publicationDate - LocalDate (<Date> response field),
wordCount - Integer (should be calculated from the <FullText>. Null if content was not returned),
language - String (<Language> response field)
relevanceScore - double
},
...
]
}
Evelyn
{
listName: String (Monitor list name),
searchSubject: String,
subjectId: String (TR CLEAR-generated ID),
userReference: String (WorkFusion supplied reference for search subject),
// AdverseMediaResultsPage.RecordId
search_id: String
hits: [{
// AdverseMediaResultsPage.ResultGroup.RecordDetails.RecordId
id: String
AdverseMediaResultsPage.ResultGroup.RecordDetails.Relevance
relevance_score: double
// AdverseMediaResultsPage.ResultGroup.RecordDetails.FirstName
first_name: String
// AdverseMediaResultsPage.ResultGroup.RecordDetails.LastName
last_name: String
// AdverseMediaSanctionsResults.MatchedEntry
matched_name: String
// AdverseMediaSanctionsResults.MatchedEntryType
entity_type: {"INDIVIDUAL", "ENTITY", null}
// AdverseMediaSanctionsResults.SanctionAdditionalInfo.Alias
// AdverseMediaSoeResults.AdditionalInfo.Aka
alias_name: [String]
// AdverseMediaSanctionsResults.AdverseMediaSoeResults.Gender
gender: {"Male", "Female", "Other", null}
// AdverseMediaSanctionsResults.AdditionalInfo.Citizenship = country, type = 'Citizenship'
// AdverseMediaSanctionsResults.AdditionalInfo.BirthPlace = address
// AdverseMediaSanctionsResults.AdditionalInfo.Country = country
// AdverseMediaSanctionsResults.AdditionalInfo.Address = address
// AdverseMediaSanctionsResults.AdditionalInfo.AddressCountry = country
//
address: [{
type: String
country: String
state: String
city: String
address: String
}]
// AdverseMediaSanctionsResults.AdditionalInfo.DateOfBirth
// AdverseMediaSanctionsResults.AdditionalInfo.BirthDate
// AdverseMediaSanctionsResults.AdditionalInfo.Date
dates: [{
type: "String"
date: "mm/dd/yyyy"
}] or an empty array
}]
}
If a failure occurs, the connector returns the following exception in the response. In this case, the BP is not triggered.
{
errorMessage: "<error message>"
}
For retry behavior, see Set error retry.
TR Clear Manage Monitor Alert Enrichment
TR monitor subjects stored in the Data Store can sometimes fall out of sync with the TR system due to communication issues or other errors. When this occurs, the Subject ID column in the Data Store can be blank. This indicates either that the entity was never registered in the TR system, or that the entity was registered but no confirmation was received from the TR API.
The TR Clear Manage Monitor Alert Enrichment BP reconciles the two systems to ensure all monitoring processes function as expected.

The workflow consists of the following steps:
Monitor Subject Enrichment Trigger loads monitor alert subjects with missing subject IDs from the database in batches of 50,000, filtered by the search type and user ID. It then groups the subjects by monitor list name and forwards them to the next step. You can configure the search type and specify how often this step runs.
Alert Enrichment receives alert subjects for a specific monitor list. It calls the TR CLEAR API to retrieve monitor list details, matches subjects using the
userReferencefield, and updates the subject ID in the database.If any alerts are not found in the TR CLEAR response, they are sent to the TR Clear Adverse Media Manage Monitor BP for creation. The step also prepares the input request for that BP.
Decision Rule checks whether any alert subjects were not found in TR CLEAR. If so, they are sent to the TR Clear Adverse Media Manage Monitor BP. Alerts are formatted using the
rest_requestparameter.Async subprocess points to the signal ID of the TR Clear Adverse Media Manage Monitor BP.
Configuration
In the configuration form configuration form, under Enrichment Polling Interval (Hours), specify the number of hours between runs to check for missing subject IDs.

You can change the default batch size (50,000) in the following ZooKeeper node:
/config/application,tr-clear-monitor-results-trigger/tr.clear.adverse-media.monitor-enrichment.batch-size


