How can the Robust Transformer be forced to use the IRE while importing CIs?

OliverTim
Tera Contributor

Dear all

 

We import CIs in various ways (due to our history). We use transform maps, the Integration Hub, and the Integration Hub ETL. Unfortunately, the IRE is only used by default with the Integration Hub ETL.

 

For transform maps, a script should be able to launch the IRE.

 

How can I use the IRE with an Integration Hub integration?

 

Thank you in advance for your feedback.

 

Best regards, Oliver

8 REPLIES 8

Hello @OliverTim 

 

Thank you for your reply.

I'm sorry, but I don't know of any other method than running IRE again with a script.

 

In that case, it would be necessary to check each time, so I don't think that's the method you're looking for.

AJ-TechTrek
Giga Sage
Giga Sage

Hi @OliverTim ,

 

Integration Type IRE Enabled by Default? How to Invoke IRE
IntegrationHub ETL  Yes Auto-handled
Transform Map  No Use GlideIdentificationEngineScriptable()
IntegrationHub Flow  No Use IRECIUtils().createOrUpdateCI()

 

Solution Overview as per my understanding -


While IntegrationHub ETL uses IRE automatically, other data import methods (e.g., Transform Maps, IntegrationHub custom Flows) do not invoke IRE unless done manually.

 

How to Use IRE in IntegrationHub (Non-ETL)
There are two main ways to invoke the IRE:

 

1. Using IRECIUtils.createOrUpdateCI() in a Script Step
Inside a Script step in your Flow or Action, use the IRECIUtils API.

 

Sample Script (inside a Script step):


var ciPayload = {
className: "cmdb_ci_server",
values: {
name: "myserver01",
ip_address: "192.168.1.100",
serial_number: "SN123456",
install_status: 1
}
};

var response = new IRECIUtils().createOrUpdateCI(ciPayload);
gs.info("IRE Response: " + JSON.stringify(response));

 

2. Use IdentificationEngineScriptable in Transform Map (Advanced)
If you're using a Transform Map or Scripted Flow Action, you can do:


var payload = {
className: 'cmdb_ci_server',
values: {
name: source.u_name,
ip_address: source.u_ip_address,
serial_number: source.u_serial_number
}
};

var engine = new GlideIdentificationEngineScriptable();
var result = engine.processCI(payload);
gs.info("CI processed via IRE. Sys ID: " + result);


Use this method inside the onBefore or onAfter script of a Transform Map or Script step in a Flow.

 

Important Notes
* The className must be the CMDB table name (like cmdb_ci_computer, cmdb_ci_server, etc.)
* The values object must include identification attributes as defined in the CI Identification Rules
* Ensure the CI Class has an active Identification Rule with properly defined Identifiers
The IRE will:
* Match using identifiers
* Update the record if matched
* Create a new CI if no match

 

Benefits of This Approach:
* Ensures consistency across CI data inputs
* Prevents duplicates
* Leverages identification and reconciliation rules
* Avoids bypassing the CMDB Data Manager

 

Please appreciate the efforts of community contributors by marking appropriate response as Mark my Answer Helpful or Accept Solution this may help other community users to follow correct solution in future.
 

Thank You
AJ - TechTrek with AJ - ITOM Trainer
LinkedIn:- https://www.linkedin.com/in/ajay-kumar-66a91385/
YouTube:- https://www.youtube.com/@learnitomwithaj
Topmate:- https://topmate.io/aj_techtrekwithaj (Connect for 1-1 Session)
ServiceNow Community MVP 2025

Hi @AJ-TechTrek 

 

Thanks a lot for your input. I will check it after my holidays 🙂

 

Kind Regards
Oliver

Hi @AJ-TechTrek 

Thanks a lot for your input. Unfortunately we do not use a flow.  We use the plain integration Hub (https://instancename/now/integrationhub).
There I can not find any point, where to enter a script which is used for each record (record by record). 
In the Robust Transforer ETL Definition I can only set a script for "Execute on before script" or "Execute on after script". Which I assume gets trigger before or after the whole import.

The "on before" trigger does not make sense because there is no data available nor the "on after" because the data is already in the CMDB.

 

Do you have any idea, how we may trigger the IRE?
Or probably it is not possible because the basic Integration Hub is not intended to do so.

Thanks in advance for your feedback.

Kind Regards
Oliver

PS: Here some screen shots.

Integertion Hub

OliverTim_0-1756107941753.pngOliverTim_1-1756107964562.png

 


Robust Transformer ETL Definition

OliverTim_2-1756108015944.png

OliverTim_3-1756108058280.png