TIM - Process Domain Age With Whois

This playbook compares the domain creation time against a provided time value such as one month ago. The period can be configured within the playbook inputs MinimumAgeOfDomainMonths or MinimumAgeOfDomainHours. The playbook calculates the timestamp for the relevant period and compares it to the domain creation time value provided by Whois. The domains are outputted accordingly if they were created before or after the compared time, respectively.

Whois · 22 tasks · 4 inputs · 4 outputs

Details

IDTIM - Process Domain Age With Whois
From Version5.5.0
Tasks22

README

This playbook compares the domain creation time against a provided time value such as one month ago. The period can be configured within the playbook inputs MinimumAgeOfDomainMonths or MinimumAgeOfDomainHours. The playbook calculates the timestamp for the relevant period and compares it to the domain creation time value provided by Whois. The domains are outputted accordingly if they were created before or after the compared time, respectively.

Dependencies

This playbook uses the following sub-playbooks, integrations, and scripts.

Sub-playbooks

This playbook does not use any sub-playbooks.

Integrations

This playbook does not use any integrations.

Scripts

  • TimeStampCompare
  • Set
  • GetTime

Commands

  • appendIndicatorField

Playbook Inputs


Name Description Default Value Required
MinimumAgeMonthValue The number of months that a domain must exist for it to be considered not new. For example, specifying the value 1 means that if the tested domain was registered less than a month ago, it will be considered a new domain.   Optional
MinimumAgeDayValue The number of days that a domain must exist for it to be considered not new. Specifying the value 1 will mean that if the tested domain was registered less than one day ago, it will be considered a new domain.   Optional
MinimumAgeYearValue The number of years that a domain must exist for it to be considered not new. Specifying the value 1 will mean that if the tested domain was registered less than one year ago, it will be considered a new domain.   Optional
WhoisResults This input receives the Whois results from the parent playbook.   Optional

Playbook Outputs


Path Description Type
NewDomains Domains whose create value is after the tested date. string
NotNewDomains Domains whose create value is before the tested date. string
DomainsNotResolvedByWhois Domains that could not be resolved by Whois. string
DomainsNotProcessed In case no time value to compare was provided, all domains will be outputted here. string

Playbook Image


TIM - Process Domain Age With Whois

Inputs

  • MinimumAgeMonthValue — The number of months that a domain must exist for it to be considered not new. For example, specifying the value 1 means that if the tested domain was registered less than a month ago, it will be considered a new domain.
  • MinimumAgeDayValue — The number of days that a domain must exist for it to be considered not new. Specifying the value 1 will mean that if the tested domain was registered less than one day ago, it will be considered a new domain.
  • MinimumAgeYearValue — The number of years that a domain must exist for it to be considered not new. Specifying the value 1 will mean that if the tested domain was registered less than one year ago, it will be considered a new domain.
  • WhoisResults — This input receives the Whois results from the parent playbook.

Outputs

  • NewDomains — Domains whose create value is after the tested date.
  • NotNewDomains — Domains whose create value is before the tested date.
  • DomainsNotResolvedByWhois — Domains that could not be resolved by Whois.
  • DomainsNotProcessed — In case no time value to compare was provided, all domains will be outputted here.

Commands used

appendIndicatorField

Flowchart

yes yes yes yes yes Start Start Done Done Calculate timestamp to compare - GetTime Calculate timestamp to co... GetTime Was a domain value provided? Was a domain value provided? Compare domain creation time to input - TimeStampCompare Compare domain creation t... TimeStampCompare Are there domains that were created after the tested time? Are there domains that we... Set new times - Set Set new times Set Set new domains - Set Set new domains Set Set Results - Set Set Results Set Set not new times - Set Set not new times Set Are there domains that were created before the tested time? Are there domains that we... Set non new domains - Set Set non new domains Set New domains New domains Non new domains Non new domains Domain not resolved by Whois Domain not resolved by Whois Are there domains without Whois query results? Are there domains without... Tag domain with no Whois resolution - appendIndicatorField Tag domain with no Whois ... appendIndicatorField Tag domain as new - appendIndicatorField Tag domain as new appendIndicatorField Set domains without Whois results - Set Set domains without Whois... Set Was a time to compare value provided? Was a time to compare val... No compare time was provided No compare time was provided Set domains that couldnt be processed - Set Set domains that couldnt ... Set
id: TIM - Process Domain Age With Whois
version: -1
fromversion: 5.5.0
name: TIM - Process Domain Age With Whois
description: This playbook compares the domain creation time against a provided time
  value such as one month ago. The period can be configured within the playbook inputs
  MinimumAgeOfDomainMonths or MinimumAgeOfDomainHours. The playbook calculates the
  timestamp for the relevant period and compares it to the domain creation time value
  provided by Whois. The domains are outputted accordingly if they were created before
  or after the compared time, respectively.
starttaskid: "0"
tasks:
  "0":
    id: "0"
    taskid: b5dcd092-6098-4462-8098-93767c879127
    type: start
    task:
      id: b5dcd092-6098-4462-8098-93767c879127
      version: -1
      name: ""
      iscommand: false
      brand: ""
      description: ''
    nexttasks:
      '#none#':
      - "23"
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 820,
          "y": -950
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "5":
    id: "5"
    taskid: 57efd3b2-b4d3-4d10-8cba-f34a35a35ea9
    type: title
    task:
      id: 57efd3b2-b4d3-4d10-8cba-f34a35a35ea9
      version: -1
      name: Done
      type: title
      iscommand: false
      brand: ""
      description: ''
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 820,
          "y": 1160
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "7":
    id: "7"
    taskid: 855b93ac-bf59-4e64-869d-2a10ee19b6eb
    type: regular
    task:
      id: 855b93ac-bf59-4e64-869d-2a10ee19b6eb
      version: -1
      name: Calculate timestamp to compare
      description: |
        Retrieves the current date and time.
      scriptName: GetTime
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "24"
    scriptarguments:
      contextKey: {}
      date: {}
      dateFormat:
        simple: Date
      daysAgo:
        simple: ${inputs.MinimumAgeDayValue}
      hoursAgo: {}
      minutesAgo: {}
      monthsAgo:
        simple: ${inputs.MinimumAgeMonthValue}
      yearsAgo:
        simple: ${inputs.MinimumAgeYearValue}
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 230,
          "y": -240
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "23":
    id: "23"
    taskid: f17738b2-b782-483d-8408-251a67da11be
    type: condition
    task:
      id: f17738b2-b782-483d-8408-251a67da11be
      version: -1
      name: Was a domain value provided?
      type: condition
      iscommand: false
      brand: ""
      description: ''
    nexttasks:
      '#default#':
      - "5"
      "yes":
      - "28"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isNotEmpty
          left:
            value:
              simple: inputs.WhoisResults
            iscontext: true
    view: |-
      {
        "position": {
          "x": 820,
          "y": -830
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "24":
    id: "24"
    taskid: 91fe3ce8-5148-4d26-8aab-a816ab33124f
    type: regular
    task:
      id: 91fe3ce8-5148-4d26-8aab-a816ab33124f
      version: -1
      name: Compare domain creation time to input
      description: Compare a single timestamp to a list of timestamps;
      scriptName: TimeStampCompare
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "32"
      - "33"
      - "34"
    scriptarguments:
      tested_time:
        simple: ${TimeNow}
      time_format: {}
      values_to_compare:
        simple: ${Results.WHOIS.CreationDate}
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 230,
          "y": -40
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "25":
    id: "25"
    taskid: 5f8abed8-9254-4f70-82ab-04a8afd3394a
    type: condition
    task:
      id: 5f8abed8-9254-4f70-82ab-04a8afd3394a
      version: -1
      name: Are there domains that were created after the tested time?
      type: condition
      iscommand: false
      brand: ""
      description: ''
    nexttasks:
      '#default#':
      - "5"
      "yes":
      - "26"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isEqualString
          left:
            value:
              simple: TimeStampCompare.Result
            iscontext: true
          right:
            value:
              simple: after
    view: |-
      {
        "position": {
          "x": 560,
          "y": 300
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "26":
    id: "26"
    taskid: 3b540998-d0db-4efe-8eb1-932288102468
    type: regular
    task:
      id: 3b540998-d0db-4efe-8eb1-932288102468
      version: -1
      name: Set new times
      description: Sets a value into the context with the given context key
      scriptName: Set
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "27"
    scriptarguments:
      append:
        simple: "true"
      key:
        simple: NewTimes
      stringify: {}
      value:
        complex:
          root: TimeStampCompare
          filters:
          - - operator: isEqualString
              left:
                value:
                  simple: TimeStampCompare.Result
                iscontext: true
              right:
                value:
                  simple: after
          accessor: ComparedTime
          transformers:
          - operator: uniq
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 560,
          "y": 645
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "27":
    id: "27"
    taskid: 2f57103b-e23c-4c72-8df1-f3fbfb4f570f
    type: regular
    task:
      id: 2f57103b-e23c-4c72-8df1-f3fbfb4f570f
      version: -1
      name: Set new domains
      description: Sets a value into the context with the given context key
      scriptName: Set
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "37"
    scriptarguments:
      append:
        simple: "true"
      key:
        simple: NewDomains
      stringify: {}
      value:
        complex:
          root: Results
          filters:
          - - operator: inList
              left:
                value:
                  simple: Results.CreationDate
                iscontext: true
              right:
                value:
                  simple: NewTimes
                iscontext: true
          accessor: Whois.QueryValue
          transformers:
          - operator: uniq
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 560,
          "y": 780
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "28":
    id: "28"
    taskid: 08d2ef21-b0b5-4283-8ef3-4063e69eaea8
    type: regular
    task:
      id: 08d2ef21-b0b5-4283-8ef3-4063e69eaea8
      version: -1
      name: Set Results
      description: Sets a value into the context with the given context key
      scriptName: Set
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "39"
    scriptarguments:
      append:
        simple: "true"
      key:
        simple: Results
      stringify: {}
      value:
        simple: ${inputs.WhoisResults}
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 230,
          "y": -660
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "29":
    id: "29"
    taskid: 3d41f234-7930-4f05-802a-0f16e181ec7a
    type: regular
    task:
      id: 3d41f234-7930-4f05-802a-0f16e181ec7a
      version: -1
      name: Set not new times
      description: Sets a value into the context with the given context key
      scriptName: Set
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "31"
    scriptarguments:
      append:
        simple: "true"
      key:
        simple: NotNewTimes
      stringify: {}
      value:
        complex:
          root: TimeStampCompare
          filters:
          - - operator: isEqualString
              left:
                value:
                  simple: TimeStampCompare.Result
                iscontext: true
              right:
                value:
                  simple: before
            - operator: isEqualString
              left:
                value:
                  simple: TimeStampCompare.Result
                iscontext: true
              right:
                value:
                  simple: equal
          accessor: ComparedTime
          transformers:
          - operator: uniq
    separatecontext: false
    view: |-
      {
        "position": {
          "x": -290,
          "y": 730
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "30":
    id: "30"
    taskid: 9e3cae13-9835-4e9b-800c-22f26e4a9808
    type: condition
    task:
      id: 9e3cae13-9835-4e9b-800c-22f26e4a9808
      version: -1
      name: Are there domains that were created before the tested time?
      type: condition
      iscommand: false
      brand: ""
      description: ''
    nexttasks:
      '#default#':
      - "5"
      "yes":
      - "29"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isEqualString
          left:
            value:
              simple: TimeStampCompare.Result
            iscontext: true
          right:
            value:
              simple: before
        - operator: isEqualString
          left:
            value:
              simple: TimeStampCompare.Result
            iscontext: true
          right:
            value:
              simple: equal
    view: |-
      {
        "position": {
          "x": -290,
          "y": 300
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "31":
    id: "31"
    taskid: 5f3d2d17-849a-479a-8a67-c6a6acf578e0
    type: regular
    task:
      id: 5f3d2d17-849a-479a-8a67-c6a6acf578e0
      version: -1
      name: Set non new domains
      description: Sets a value into the context with the given context key
      scriptName: Set
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "5"
    scriptarguments:
      append:
        simple: "true"
      key:
        simple: NotNewDomains
      stringify: {}
      value:
        complex:
          root: Results
          filters:
          - - operator: inList
              left:
                value:
                  simple: Results.CreationDate
                iscontext: true
              right:
                value:
                  simple: NotNewTimes
                iscontext: true
          accessor: Whois.QueryValue
          transformers:
          - operator: uniq
    separatecontext: false
    view: |-
      {
        "position": {
          "x": -290,
          "y": 935
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "32":
    id: "32"
    taskid: 9097f11d-3b16-4cc5-8ff2-4b9fc8270915
    type: title
    task:
      id: 9097f11d-3b16-4cc5-8ff2-4b9fc8270915
      version: -1
      name: New domains
      type: title
      iscommand: false
      brand: ""
      description: ''
    nexttasks:
      '#none#':
      - "25"
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 560,
          "y": 165
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "33":
    id: "33"
    taskid: c7c9f728-62d4-4025-8af8-4616331dbaaf
    type: title
    task:
      id: c7c9f728-62d4-4025-8af8-4616331dbaaf
      version: -1
      name: Non new domains
      type: title
      iscommand: false
      brand: ""
      description: ''
    nexttasks:
      '#none#':
      - "30"
    separatecontext: false
    view: |-
      {
        "position": {
          "x": -290,
          "y": 165
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "34":
    id: "34"
    taskid: 6933c0d3-3a96-4d85-8428-2ac937274f06
    type: title
    task:
      id: 6933c0d3-3a96-4d85-8428-2ac937274f06
      version: -1
      name: Domain not resolved by Whois
      type: title
      iscommand: false
      brand: ""
      description: ''
    nexttasks:
      '#none#':
      - "35"
    separatecontext: false
    view: |-
      {
        "position": {
          "x": -1090,
          "y": 165
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "35":
    id: "35"
    taskid: 644f08f8-d551-46e2-8407-4f7166cbef3c
    type: condition
    task:
      id: 644f08f8-d551-46e2-8407-4f7166cbef3c
      version: -1
      name: Are there domains without Whois query results?
      type: condition
      iscommand: false
      brand: ""
      description: ''
    nexttasks:
      '#default#':
      - "5"
      "yes":
      - "38"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isNotEqualString
          left:
            value:
              simple: Results.Whois.QueryResult
            iscontext: true
          right:
            value:
              simple: "true"
    view: |-
      {
        "position": {
          "x": -1090,
          "y": 310
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "36":
    id: "36"
    taskid: 35ee6a01-47a6-45e6-80df-d32a91a8c5f8
    type: regular
    task:
      id: 35ee6a01-47a6-45e6-80df-d32a91a8c5f8
      version: -1
      name: Tag domain with no Whois resolution
      description: Tag domains with no Whois result.
      script: Builtin|||appendIndicatorField
      type: regular
      iscommand: true
      brand: Builtin
    nexttasks:
      '#none#':
      - "5"
    scriptarguments:
      field:
        simple: tags
      fieldValue:
        simple: no_whois_resolution
      indicatorsValues:
        simple: ${DomainsNotResolvedByWhois}
    separatecontext: false
    view: |-
      {
        "position": {
          "x": -1090,
          "y": 935
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "37":
    id: "37"
    taskid: e5feb9c4-141d-4674-8206-b4c7bf72895d
    type: regular
    task:
      id: e5feb9c4-141d-4674-8206-b4c7bf72895d
      version: -1
      name: Tag domain as new
      description: Tag domain as new.
      script: Builtin|||appendIndicatorField
      type: regular
      iscommand: true
      brand: Builtin
    nexttasks:
      '#none#':
      - "5"
    scriptarguments:
      field:
        simple: tags
      fieldValue:
        simple: new_domain
      indicatorsValues:
        simple: ${NewDomains}
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 560,
          "y": 935
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "38":
    id: "38"
    taskid: 58ae4e3b-0ca4-4d7f-85ea-eafe95629a21
    type: regular
    task:
      id: 58ae4e3b-0ca4-4d7f-85ea-eafe95629a21
      version: -1
      name: Set domains without Whois results
      description: Sets a value into the context with the given context key
      scriptName: Set
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "36"
    scriptarguments:
      append:
        simple: "true"
      key:
        simple: DomainsNotResolvedByWhois
      stringify: {}
      value:
        complex:
          root: Results
          filters:
          - - operator: isNotEqualString
              left:
                value:
                  simple: Results.Whois.QueryResult
                iscontext: true
              right:
                value:
                  simple: "true"
          accessor: Whois.QueryValue
          transformers:
          - operator: uniq
    separatecontext: false
    view: |-
      {
        "position": {
          "x": -1090,
          "y": 730
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "39":
    id: "39"
    taskid: 0742873b-a508-4dc3-8f95-ca6a3214a257
    type: condition
    task:
      id: 0742873b-a508-4dc3-8f95-ca6a3214a257
      version: -1
      name: Was a time to compare value provided?
      type: condition
      iscommand: false
      brand: ""
      description: ''
    nexttasks:
      '#default#':
      - "40"
      "yes":
      - "7"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isNotEmpty
          left:
            value:
              simple: inputs.MinimumAgeMonthValue
            iscontext: true
        - operator: isNotEmpty
          left:
            value:
              simple: inputs.MinimumAgeDayValue
            iscontext: true
        - operator: isNotEmpty
          left:
            value:
              simple: inputs.MinimumAgeYearValue
            iscontext: true
    view: |-
      {
        "position": {
          "x": 230,
          "y": -490
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "40":
    id: "40"
    taskid: 32b1cba2-a442-487d-8769-c5085340763a
    type: title
    task:
      id: 32b1cba2-a442-487d-8769-c5085340763a
      version: -1
      name: No compare time was provided
      type: title
      iscommand: false
      brand: ""
      description: ''
    nexttasks:
      '#none#':
      - "41"
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 1110,
          "y": -290
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "41":
    id: "41"
    taskid: c5039e71-fa41-43d1-8cc6-7dfd43ec42ca
    type: regular
    task:
      id: c5039e71-fa41-43d1-8cc6-7dfd43ec42ca
      version: -1
      name: Set domains that couldnt be processed
      description: Sets a value into the context with the given context key
      scriptName: Set
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "5"
    scriptarguments:
      append:
        simple: "true"
      key:
        simple: DomainsNotProcessed
      stringify: {}
      value:
        complex:
          root: Results
          accessor: Whois.QueryValue
          transformers:
          - operator: uniq
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 1110,
          "y": -115
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
view: |-
  {
    "linkLabelsPosition": {},
    "paper": {
      "dimensions": {
        "height": 2175,
        "width": 2580,
        "x": -1090,
        "y": -950
      }
    }
  }
inputs:
- key: MinimumAgeMonthValue
  value: {}
  required: false
  description: The number of months that a domain must exist for it to be considered
    not new. For example, specifying the value 1 means that if the tested domain was
    registered less than a month ago, it will be considered a new domain.
  playbookInputQuery: null
- key: MinimumAgeDayValue
  value: {}
  required: false
  description: The number of days that a domain must exist for it to be considered
    not new. Specifying the value 1 will mean that if the tested domain was registered
    less than one day ago, it will be considered a new domain.
  playbookInputQuery: null
- key: MinimumAgeYearValue
  value: {}
  required: false
  description: The number of years that a domain must exist for it to be considered
    not new. Specifying the value 1 will mean that if the tested domain was registered
    less than one year ago, it will be considered a new domain.
  playbookInputQuery: null
- key: WhoisResults
  value: {}
  required: false
  description: This input receives the Whois results from the parent playbook.
  playbookInputQuery: null
outputs:
- contextPath: NewDomains
  description: Domains whose create value is after the tested date.
  type: string
- contextPath: NotNewDomains
  description: Domains whose create value is before the tested date.
  type: string
- contextPath: DomainsNotResolvedByWhois
  description: Domains that could not be resolved by Whois.
  type: string
- contextPath: DomainsNotProcessed
  description: In case no time value to compare was provided, all domains will be
    outputted here.
  type: string
quiet: true
tests:
- No test