How Tag Based Service Maps basically work.Summary<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } One of the main things I hear about Tag Based Service Maps is that they are a flat map and the customers do no understand how to extend the maps to different sub levels. Example: When the Node for the Service Map Starts at an application service, and then the next node is a Windows Server, and then the windows Server goes to a database instance. I think they are just seeing flat maps because the Tags they have are just for the application service, and then every other node is just one level down. I will illustrate an example with tags on how to use the relationships to have more than a flat map. Keep in mind that it is a very basic example And we will use some basic CIs with relationships that may not be exactly standard. You should look at this example and then apply it to your existing CIs/Relationships. You need an Tag Based application service, a CI, and a few tags for that CI, and then any other CIs that you want in the map will need a traversal rule defined to create a link between the lower level node in the map and the next node down the chain. As far as I can see there is no need for a tag to that 3rd level CI or any after that. Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Any and all Instructions<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 1. Start By having some tag categories. In this case I have created 2 Tag Categories, Each having a Tag Key: Category:Application Tag Key: installed_app Category: Environment Tag Key: prod 2. Next we want to add a Tag Based Family Navigate to Tag-based service family and create a new record. We will create a Tag Based Family Called General Services and It will consume Tag Categories Application and Environment Click Save and keep the screen Open 2. The next step is to have a couple of CIs: A windows Computer(cmdb_ci_computer), a Microsoft SQL Server Instance (cmdb_ci_db_mssql_instance), and in my example I have a owns:owned by relationship defined between the two where the Parent is the Computer and the Child is the DB Instance. We will now attempt to map these two CIs into the service in a hierarchical fashion so that the DB Instance is below the computer in the map 3. We want to add the tags. These will only be for the Computer. The DB should map via the relationships(these should already be added via a pattern or other method but to illustrate the example we will add them manually) In the cmdb_key value table add the following records: A. Configuration Item : the computer CI, Key: installed_app, Value: TestApplication B. Configuration Item : the computer CI, Key: environment, Value: prod This should be enough to add our first CI to the map. Keep in mind that without the traversal rule for the relationship, we will not get the DB Instance in the map. 4. Go back to the Tag-based service family window. In the lower portion you will see a button to "View service candidates", as well as a Link to "Manually update candidates". Click on the link to "Manually update candidates" first and then Click "View service candidates" You should see a window pop up identifying the service that is consumed by our tags as a candidate. In this case it is called testapplication::prod (based on our tags). Select the checkbox next to the record and then click on the button Map Selected. (it will be added under Mapped Services on the Tag-based service families screen) Open up the record in a new window (service configuration screen)and click on the related link "Recalculate Service" Now go back to the Tag-based service families screen and click on "View Map" in the record in the mapped services portion at the bottom. You will note that now the map has the service connecting to the computer, but no DB Instance. 5. Traversal Rules Traversal rules determine which relationships will map. They are based on records in the cmdb_rel_type_rule_definitions table. You must a record there first and then add a Traversal Rule that references that record. Again in my example I have a relationship that may or may not be conventional. I would suggest leveraging the existing relationships in when creating the rules. In cmdb_rel_type_rule_definitions, create a record with the following: Parent Type: Computer Relationship Type: Owns::Owned By Child Type: MSFT SQL Instance Save the record and Go to the traversal rules and add a record for: Rule Definition: (browse to the record in the cmdb_rel_type_rule_definitions table that we just created and save the record) Now go back to the service configuration screen with the related links, and click on "Recalculate Service" When we reload the service we now see the DB Instance. Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } In summary it seems that if you have a tag for a CI - it will put it right under the map, and then you will have to have relationships defined in the Traversal Rules based on current relationships in order to get below those levels. These relationships should be analyzed and you should look for commonalities among the services to create the Traversal Rules. For example: A (Computer)Server will have a relationship with a Web Server and a Web Server will have a relationship with an Application Server and an Application Server will have a relationship with a Database Server If you have a several services that follow this hierarchical layout you should be able to add the appropriate Traversal Rules, add the Key/Values for the Servers and they should map