Pack Contributors:
- Samuel Kamar
- Masahiko Inoue
- Jaden Evanger
- Mandar Naik
- Ryan McVicar
Contributions are welcome and appreciated. For more info, visit our Contribution Guide.
Frequently used filters and transformers pack.
Contributions are welcome and appreciated. For more info, visit our Contribution Guide.
Contributions are welcome and appreciated. For more info, visit our Contribution Guide.
| Name | Description |
|---|---|
| URLEncode | Encodes a URL string by replacing special characters in the string using the %xx escape. For example: https://example.com converts to https:%2F%2Fexample.com. |
| ConvertAllExcept | Convert all chosen values but exceptions. |
| StringifyArray | Return the string encoded with JSON from the whole array |
| If-Then-Else | A transformer for simple if-then-else logic. |
| ArrayAnyMatch | Returns true if an element is shared between two lists. |
| StringToArray | Converts string to array. |
| RegexExpand | Extract the strings matched to the patterns by doing backslash substitution on the template string. |
| IsInCidrRanges | Determines whether an IPv4 or IPv6 address is contained in at least one of the comma-delimited CIDR ranges. Multiple IPv4/IPv6 addresses can be passed comma-delimited and each will be tested. A mix of IPv4 and IPv6 addresses will always return false. |
| TimeStampToDate | Converts UNIX Epoch time stamp to a simplified extended ISO format string. Use it to convert time stamp to Demisto date field e.g. 1525006939 will return '2018-04-29T13:02:19.000Z' |
| ConcatFormat | Returns a string concatenated with given a prefix and suffix which supports DT expressions. |
| URLDecode | Converts |
| DT | This automation allows the usage of DT scripts within playbooks transformers. |
| IPv4Whitelist | Transformer that returns a filtered list of IPv4 addresses, based on whether they match a comma-separated list of IPv4 ranges. Useful for filtering in internal IP address space. |
| RemoveNullBytes | Removes null bytes from string. |
| MapRangeValues | This script converts an input value into another value using two lists. The input value or range is searched in the first list (map_from). Example 1: map_from = "1,2,3,4" Output is "2" Example 2: map_from = "1-3,4" Output is "5". |
| ProductJoin | Returns the product of two lists, joined by a separator, as a list of strings. |
| IPv4Blacklist | Transformer that returns a filtered list of IPv4 addresses, based on whether they do not match a comma-separated list of IPv4 ranges. Useful for filtering out internal IP address space. |
| SortBy | This transformer will sort an array of dictionary values by keys in ascending or descending order. |
| CheckIfSubdomain | Checks whether a given domain is a subdomain of one of the listed domains. |
| FormatTemplate | Build text from a template that can include DT expressions. |
| LowerCidrNumAddresses | Check if number of availble addresses in IPv4 CIDR is lower than given number. |
| ParseHTMLTables | Find tables inside HTML and extract the contents into objects using the following logic:
|
| JsonToTable | Accepts a json object and returns a markdown. Supports clickable links. |
| ModifyDateTime | Takes a date or time input and adds or subtracts a determined amount of time. Returns a string in date or time in ISO Format. |
| BetweenDates | Whether value is within a date range. |
| RemoveEmpty | Remove empty items, entries or nodes from the array. |
| If-Elif | A transformer for if-elif-else logic. |
| WhereFieldEquals | Return all items from the list where their given 'field' attribute is equal to 'equalTo' argument E.g. !WhereFieldEquals with the following arguments:
Will return all items names where field 'type' equals 'IP' - ['192.1,0.82', '172.0.0.2']. |
| MapPattern | This transformer will take in a value and transform it based on multiple condition expressions (wildcard, regex, etc) defined in a JSON dictionary structure. The key:value pair of the JSON dictionary should be: "condition expression": "desired outcome" For example: { The transformer will return the value matched to a pattern following to the priority. |
| IgnoreFieldsFromJson | Removed selected fields from the JSON object. |
| GetListContent | Returns the content of the List with the given Name as a string or JSON object, depending on the selected |
| RegexExtractAll | Extraction of all matches from a specified regular expression pattern from a provided string. Returns an array of results. This differs from RegexGroups in several ways:
|
| MakePair | This transformer will create a list of dictionary by aggregating elements from two arrays. |
| SetIfEmpty | Checks an object for an empty value and returns a pre-set default value. |
| BeforeRelativeDate | Checks the given datetime has occured before the provided relative time. |
| AfterRelativeDate | Checks the given datetime has occured after the provided relative time. |
| LastArrayElement | Returns the last element of an array. If the value passed is not an array, it returns the original value that was passed. |
RegexGroups | Extraction of elements which are contained in all the subgroups of the match to the pattern. |
| RegexReplace | Format patterns matched with regex. If the regex does not match any pattern, the original value is returned. Example 1: Example 2: |
| DateStringToISOFormat | This is a thin wrapper around the |
| AppendIfNotEmpty | Append item(s) to the end of the list if they are not empty. |
| InRange | checks if left side is in range of right side (from,to anotation) |
| JoinIfSingleElementOnly | Return the single element in case the array has only 1 element in it, otherwise return the whole array. |
| jmespath | Performs a JMESPath search on an input JSON format, when using a transformer. |
| CIDRBiggerThanPrefix | Checks whether a given CIDR prefix is bigger than the defined maximum prefix. |
| EmailDomainBlacklist | Accepts an array of domains as a block list, and a list of email addresses. The script then filters out any email address whose domain is in the block list. The filtered list will be returned as an array. |
| ExtractEmailTransformer | Extracts email addresses from the given value. |
| GetRange | Gets specified indexes of a list. |
| StringContainsArray | Checks whether a substring or an array of substrings is within a string array(each item will be checked). Supports single strings as well. For example, for substrings ['a','b','c'] in a string 'a' the script will return true. |
| RemoveMatches | Removes items from the given list of values if they match any of the patterns in the provided |
| EmailDomainWhitelist | Accepts an array of domains as an allow list, and a list of email addresses. The script then filters out any email address whose domain is not in the allow list. The filtered list will be returned as an array. |
| BetweenHours | Checks whether the given value is within the specified time (hour) range. |
| TimeComponents | Takes a date or time input and get time components in a specific time zone.
|
| DedupBy | This transformer will remove elements of the array that contain an identical combination of values for the keys given. |
| StripChars | Strip set of characters from prefix and/or suffix |
| GetValuesOfMultipleFields | The script receives a list of fields and a context key base path. For example, Key=Test.result List=username,user gets all of the values from Test.result.username and Test.result.user. |
| MergeDictArray | Each entry in an array is merged into the existing array if the keyed-value matches. |
| Base64Decode | Decodes an input in Base64 format. |
| FormattedDateToEpoch | Converts a custom-formatted timestamp to UNIX epoch time. Use it to convert custom time stamps to a XSOAR date field. If you pass formatter argument, we will use it to transform. If not, we will use dateparser.parse for transforming. For more info, see: https://docs.python.org/3.7/library/datetime.html#strftime-and-strptime-behavior |
| GreaterCidrNumAddresses | Check if number of availble addresses in IPv4 or IPv6 CIDR is greater than given number. |
| IsRFC1918Address | A filter that receives a single IPv4 address string as an input and determines whether it is in the private RFC-1918 address space (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). For more information, see https://en.wikipedia.org/wiki/Private_network |
| ConvertKeysToTableFieldFormat | Convert object keys to match table keys. |
| SumList | Sums a List This is an example for number transformer. |
| ExtractInbetween | Extract a string from an existing string. |
| AnyMatch | Returns all elements from the left side that have a substring that is equal to an element from the right side. Note: This filter is case-insensitive. |
| Cut | Cut a string by delimiter and return specific fields. Exampleinput: "A-B-C-D-E" return: "A-E". |
| ParseJSON | Parse a given JSON string "value" to a representative object. Example: '{"a": "value"}' => {"a": "value"}. |
| IsNotInCidrRanges | Checks whether an IPv4 or IPv6 address is not contained in one or more comma-delimited CIDR ranges. |
| ReverseList | Reverse a list This is an example for entire-list transformer - it operates the argument as a list (note the "entirelist" tag). |
| ConvertToSingleElementArray | Converts a single string to an array of that string. |
| FirstArrayElement | Returns the first element of an array. If the value passed is not an array, it returns the original value that was passed. |
| PadZeros | Adds zeros (0) to the beginning of the string, until the string reaches the specified length. |
| MapValuesTransformer | This script converts the input value into another value using two lists. The input value is searched in the first list (input_values). Example 1: input_values = "1,2,3,4" Output would be "2" Example 2: input_values ="firstkey: datahere,secondkey: datathere" Output would be: The reason for matching the key AND value pair in a dictionary is to allow the mappig of values that have a specific key name. In most cases, dictionaries will continan key-value pairs in which the values are the same. You might want to change the value of KeyA, but not the value of KeyB. This method gives control over which key is changed. When the input is a dict, str , int, or list, the output is ALWAYS returned as a string. |
| Name | Description |
|---|---|
| RegexReplace | Format patterns matched with regex. If the regex does not match any pattern, the original value is returned. Example 1: Example 2: |
| BeforeRelativeDate | Checks the given datetime has occured before the provided relative time. |
| LastArrayElement | Returns the last element of an array. If the value passed is not an array, it returns the original value that was passed. |
| ConvertAllExcept | Convert all chosen values but exceptions. |
| Base64Decode | Decodes an input in Base64 format. |
| ArrayAnyMatch | Returns true if an element is shared between two lists. |
| SetIfEmpty | Checks an object for an empty value and returns a pre-set default value. |
| IPv4Blacklist | Transformer that returns a filtered list of IPv4 addresses, based on whether they do not match a comma-separated list of IPv4 ranges. Useful for filtering out internal IP address space. |
| ModifyDateTime | Takes a date or time input and adds or subtracts a determined amount of time. Returns a string in date or time in ISO Format. |
| EmailDomainBlacklist | Accepts an array of domains as a block list, and a list of email addresses. The script then filters out any email address whose domain is in the block list. The filtered list will be returned as an array. |
| ProductJoin | Returns the product of two lists, joined by a separator, as a list of strings. |
| MapPattern | This transformer will take in a value and transform it based on multiple condition expressions (wildcard, regex, etc) defined in a JSON dictionary structure. The key:value pair of the JSON dictionary should be: "condition expression": "desired outcome" For example: { The transformer will return the value matched to a pattern following to the priority. |
| FormattedDateToEpoch | Converts a custom-formatted timestamp to UNIX epoch time. Use it to convert custom time stamps to a XSOAR date field. If you pass formatter argument, we will use it to transform. If not, we will use dateparser.parse for transforming. For more info, see: https://docs.python.org/3.7/library/datetime.html#strftime-and-strptime-behavior |
| MapValuesTransformer | This script converts the input value into another value using two lists. The input value is searched in the first list (input_values). Example 1: input_values = "1,2,3,4" Output would be "2" Example 2: input_values ="firstkey: datahere,secondkey: datathere" Output would be: The reason for matching the key AND value pair in a dictionary is to allow the mappig of values that have a specific key name. In most cases, dictionaries will continan key-value pairs in which the values are the same. You might want to change the value of KeyA, but not the value of KeyB. This method gives control over which key is changed. When the input is a dict, str , int, or list, the output is ALWAYS returned as a string. |
| IsRFC1918Address | A filter that receives a single IPv4 address string as an input and determines whether it is in the private RFC-1918 address space (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). For more information, see https://en.wikipedia.org/wiki/Private_network |
| StringifyArray | Return the string encoded with JSON from the whole array |
| RemoveEmpty | Remove empty items, entries or nodes from the array. |
| WhereFieldEquals | Return all items from the list where their given 'field' attribute is equal to 'equalTo' argument E.g. !WhereFieldEquals with the following arguments:
Will return all items names where field 'type' equals 'IP' - ['192.1,0.82', '172.0.0.2']. |
| BetweenHours | Checks whether the given value is within the specified time (hour) range. |
| DedupBy | This transformer will remove elements of the array that contain an identical combination of values for the keys given. |
| StringContainsArray | Checks whether a substring or an array of substrings is within a string array(each item will be checked). Supports single strings as well. For example, for substrings ['a','b','c'] in a string 'a' the script will return true. |
| RemoveMatches | Removes items from the given list of values if they match any of the patterns in the provided |
| RegexExpand | Extract the strings matched to the patterns by doing backslash substitution on the template string. |
| JoinIfSingleElementOnly | Return the single element in case the array has only 1 element in it, otherwise return the whole array. |
| GetListContent | Returns the content of the List with the given Name as a string or JSON object, depending on the selected |
| IPv4Whitelist | Transformer that returns a filtered list of IPv4 addresses, based on whether they match a comma-separated list of IPv4 ranges. Useful for filtering in internal IP address space. |
| IsInCidrRanges | Determines whether an IPv4 or IPv6 address is contained in at least one of the comma-delimited CIDR ranges. Multiple IPv4/IPv6 addresses can be passed comma-delimited and each will be tested. A mix of IPv4 and IPv6 addresses will always return false. |
| GreaterCidrNumAddresses | Check if number of availble addresses in IPv4 or IPv6 CIDR is greater than given number. |
| StringToArray | Converts string to array. |
| ParseHTMLTables | Find tables inside HTML and extract the contents into objects using the following logic:
|
| ParseJSON | Parse a given JSON string "value" to a representative object. Example: '{"a": "value"}' => {"a": "value"}. |
| CIDRBiggerThanPrefix | Checks whether a given CIDR prefix is bigger than the defined maximum prefix. |
| MergeDictArray | Each entry in an array is merged into the existing array if the keyed-value matches. |
| GetValuesOfMultipleFields | The script receives a list of fields and a context key base path. For example, Key=Test.result List=username,user gets all of the values from Test.result.username and Test.result.user. |
| RemoveNullBytes | Removes null bytes from string. |
| SortBy | This transformer will sort an array of dictionary values by keys in ascending or descending order. |
| ExtractInbetween | Extract a string from an existing string. |
| CheckIfSubdomain | Checks whether a given domain is a subdomain of one of the listed domains. |
| AnyMatch | Returns all elements from the left side that have a substring that is equal to an element from the right side. Note: This filter is case-insensitive. |
| StripChars | Strip set of characters from prefix and/or suffix |
| SumList | Sums a List This is an example for number transformer. |
| InRange | checks if left side is in range of right side (from,to anotation) |
| TimeComponents | Takes a date or time input and get time components in a specific time zone.
|
| JsonToTable | Accepts a json object and returns a markdown. Supports clickable links. |
| URLEncode | Encodes a URL string by replacing special characters in the string using the %xx escape. For example: https://example.com converts to https:%2F%2Fexample.com. |
| TimeStampToDate | Converts UNIX Epoch time stamp to a simplified extended ISO format string. Use it to convert time stamp to Demisto date field e.g. 1525006939 will return '2018-04-29T13:02:19.000Z' |
| IgnoreFieldsFromJson | Removed selected fields from the JSON object. |
| FirstArrayElement | Returns the first element of an array. If the value passed is not an array, it returns the original value that was passed. |
| ConcatFormat | Returns a string concatenated with given a prefix and suffix which supports DT expressions. |
| ReverseList | Reverse a list This is an example for entire-list transformer - it operates the argument as a list (note the "entirelist" tag). |
| MapRangeValues | This script converts an input value into another value using two lists. The input value or range is searched in the first list (map_from). Example 1: map_from = "1,2,3,4" Output is "2" Example 2: map_from = "1-3,4" Output is "5". |
| DT | This automation allows the usage of DT scripts within playbooks transformers. |
| FormatTemplate | Build text from a template that can include DT expressions. |
| RegexExtractAll | Extraction of all matches from a specified regular expression pattern from a provided string. Returns an array of results. This differs from RegexGroups in several ways:
|
| AppendIfNotEmpty | Append item(s) to the end of the list if they are not empty. |
| ConvertToSingleElementArray | Converts a single string to an array of that string. |
| If-Then-Else | A transformer for simple if-then-else logic. |
| DateStringToISOFormat | This is a thin wrapper around the |
| If-Elif | A transformer for if-elif-else logic. |
| jmespath | Performs a JMESPath search on an input JSON format, when using a transformer. |
| LowerCidrNumAddresses | Check if number of availble addresses in IPv4 CIDR is lower than given number. |
| ExtractEmailTransformer | Extracts email addresses from the given value. |
| GetRange | Gets specified indexes of a list. |
| EmailDomainWhitelist | Accepts an array of domains as an allow list, and a list of email addresses. The script then filters out any email address whose domain is not in the allow list. The filtered list will be returned as an array. |
| PadZeros | Adds zeros (0) to the beginning of the string, until the string reaches the specified length. |
| BetweenDates | Whether value is within a date range. |
| ConvertKeysToTableFieldFormat | Convert object keys to match table keys. |
RegexGroups | Extraction of elements which are contained in all the subgroups of the match to the pattern. |
| MakePair | This transformer will create a list of dictionary by aggregating elements from two arrays. |
| URLDecode | Converts |
| IsNotInCidrRanges | Checks whether an IPv4 or IPv6 address is not contained in one or more comma-delimited CIDR ranges. |
| AfterRelativeDate | Checks the given datetime has occured after the provided relative time. |
| Cut | Cut a string by delimiter and return specific fields. Exampleinput: "A-B-C-D-E" return: "A-E". |
| Pack Name | Pack By |
|---|---|
| Base | By: Cortex XSOAR |
| Pack Name | Pack By |
|---|
| Pack Name | Pack By |
|---|---|
| Aggregated Scripts | By: Cortex XSOAR |
| Base | By: Cortex XSOAR |
| Certification | Certified | Read more |
| Supported By | Cortex | |
| Created | January 4, 2022 | |
| Last Release | May 14, 2026 |