Add a custom widget to an issue layout

You can add a custom or system widget to a custom issue layout by uploading an auto script and using it in a General Purpose Dynamic Section in your layout.

The following example shows how to add an Indicator Widget Bar. This custom widget script shows the severity of indicators in an issue, as a bar chart.

  1. Add the Indicator Widget Bar script to Cortex XSIAM.

    1. Go to Investigation & ResponseAutomationScripts and upload the following script:
    commonfields:
      id: ee3b9604-324b-4ab5-8164-15ddf6e428ab
      version: 49
    name: IndicatorWidgetBar
    script: |-
      # Constants
      HIGH = 3
      SUSPICIOUS = 2
      LOW = 1
      NONE = 0
    
      indicators = []
      scores = {HIGH: 0, SUSPICIOUS: 0, LOW: 0, NONE: 0}
      incident_id = demisto.incidents()[0].get('id')
    
      foundIndicators = demisto.executeCommand("findIndicators", {"query":'investigationIDs:{}'.format(incident_id), 'size':999999})[0]['Contents']
    
      for indicator in foundIndicators:
          scores[indicator['score']] += 1
    
      data = {
        "Type": 17,
        "ContentsFormat": "bar",
        "Contents": {
          "stats": [
            {
              "data": [
                scores[HIGH]
              ],
              "groups": None,
              "name": "high",
              "label": "incident.severity.high",
              "color": "rgb(255, 23, 68)"
            },
            {
              "data": [
                scores[SUSPICIOUS]
              ],
              "groups": None,
              "name": "medium",
              "label": "incident.severity.medium",
              "color": "rgb(255, 144, 0)"
            },
            {
              "data": [
                scores[LOW]
              ],
              "groups": None,
              "name": "low",
              "label": "incident.severity.low",
              "color": "rgb(0, 205, 51)"
            },
            {
              "data": [
                scores[NONE]
              ],
              "groups": None,
              "name": "unknown",
              "label": "incident.severity.unknown",
              "color": "rgb(197, 197, 197)"
            }
          ],
          "params": {
              "layout": "horizontal"
          }
        }
      }
    
      demisto.results(data)
    type: python
    tags:
    - dynamic-section
    enabled: true
    scripttarget: 0
    subtype: python3
    runonce: false
    dockerimage: demisto/python3:3.7.3.286
    runas: DBotWeakRole
        				
    
    1. Click Save
  2. Go to Settings → Configurations → Object Setup → Issues → Layout Rules → New Rule.
  3. Enter a rule name, select the layout to use if the rule is met, and provide a description.
  4. Search for issues that match the criteria you want to use for the layout rule. For example, you can search for issues from a specific issue source.
  5. Click Create.
  6. Repeat as needed to create multiple rules.
  7. Click Save.