LISTSERV Maestro 11.1-2 Help Table Of Contents

Target Group Definition - Send to Recipients in the Subscriber Warehouse

To create a new target group, select New Recipient Target Group... from the menu (or go via the right-click menu of the Target Groups node or a target group folder in the subscriber warehouse).
Note: If the new target group has not the desired type "Send to Recipients in the Subscriber Warehouse", you can change the target group type on the source page.

This Target Group Definition wizard lets you define a target group of the "Send to Recipients in the Subscriber Warehouse" type that can be used in the recipients wizard to define the recipients of a job.

The wizard for a target group of the "Send to Recipients in the Subscriber Warehouse" type has multiple pages:
General, Source, Source Details, Parameters, Input Layout, Input Preview, and Summary.

The top row of the wizard displays links to each of these pages. The page that is currently open is marked with a highlighted background color. Depending on the choices made on some of the wizard pages, other pages may become disabled or may be shown in different versions. If a wizard page is disabled, then it means that this page is not necessary with the current choices and can safely be ignored.


Source Details Page: Define Subscriber Subset

A filtering condition is entirely optional. If no condition is supplied, then the target group always addresses all current subscribers of the dataset or list.

The following sections describe the available variants of filtering conditions.

Post as Standard Message: Only for Hybrid Subscriber Lists

This special subscriber subset variant is only available if the selected list is an Hybrid Subscriber List. Important: Choosing this variant not only means that LISTSERV Maestro sends to all subscribers of the selected list, but that a different method of delivery is used. Only use this option if you know what you are doing and if you explicitly wish to employ LISTSERV's web archival and indexing capabilities.

Viewing Subscriber Data And Setting Filters

The majority of filtering conditions can be written as "Send to all subscribers who have a certain value in FIELD1 and a certain other value in FIELD2", e.g. "Send to all male subscribers in the eastern sales region". For such cases, the filtering condition of the target group can be defined visually in a manner similar to how a mail job owner would define the recipients:

Selected Segments: Define if the subscriber subset shall be constrained via a subscriber segment selection. Clicking Select Segments opens a dialog listing all available segments of the selected subscriber dataset or list. Pick any number of segments from the list and decide if you wish Maestro to consider subscribers in any, all or none of the segments. (Use the usual keyboard commands to perform multiple-entry selection.) Click the OK button to apply your segment choice. (See here for an explanation of what the choices "any", "all" and "none" mean for a segment condition.)

Additional Search: Clicking the Edit Search Condition link opens a special variant of the list subscribers pane. See the List Subscribers help for details on how to define a suitable filter and how to apply it to the target group.

Custom Condition Nodes on Fields

This advanced method of supplying the filtering condition gives you full control on the actual logic of the condition, including the ability to freely define combination logic using the known boolean operators AND, OR and NOT, each operating on a list of nested conditions which you can define freely using tree operations, all detailed below.

As an aid for constructing the filtering condition, all profile fields available in the dataset or subscriber list are displayed in the upper part of the screen. Each profile field is listed with its name and data type. Any mandatory fields are rendered in bold. Use this list as a reference when deciding on which fields to define conditions.

The condition itself is based on Boolean logic. When the condition is applied to a certain subscriber, the result of the condition is always either "true", in which case the subscriber becomes a recipient of the job in question or "false", in which case the subscriber is not a recipient of the job.

The condition is defined visually in the form of a "condition tree", which is displayed in the lower part of the screen.

The condition tree consists of hierarchically ordered nodes of various types. Each of the nodes has, for a given subscriber, a certain Boolean "true" or "false" state. For nodes that have sub nodes, the Boolean state of the node itself is derived by combining the Boolean states of all sub nodes in a certain manner (how they are combined depends on the type of the node itself). The root-node of the whole tree is equivalent to the whole condition. The Boolean result of the condition is determined by looking at the Boolean state of the root node, which in turn derives its state by looking at its sub nodes and combining them accordingly, and so on.

Nodes in the condition tree can be of one of two main types:

  • Combination Operator Nodes: This type of node does not have a Boolean state. Instead, it derives its Boolean state by combining the states of all its sub nodes. A combination operator node is never useful without any sub nodes.
     
  • Condition Nodes: This type of node derives its Boolean state from the condition that is defined for it. The condition is applied to a given subscriber, which results either in "true" or "false", and thus defines the Boolean state of the node. Condition nodes never have sub nodes.
    Condition nodes come in two varieties, normal conditions and job-based conditions. See below for details.

The following sections describe different aspects of editing the condition tree.

Editing the Condition Tree

This section describes general concepts about how the condition tree is edited.

The area in which the condition tree is edited is separated into a left and a right section. The tree with all its nodes is shown in the left, while a description of the currently selected node, together with an Actions on Selected Node link, is displayed in the right. Below the two sections, a textual representation of the condition is displayed at all times. It mirrors the condition that is currently defined in a textual form, using pseudo syntax with commonly used elements. With this representation, the condition defined by the tree can be verified as the intended condition.

The tree itself always consists of various elements. The top element, the root, is labeled with "Subscribers of XYZ" (for a subscriber list or dataset), where "XYZ" is the name of the dataset or list the target group is based on.
For a target group based on a subscriber list, the root always contains one single child node that is always a combination operator node. This is the "top level operator" for target groups based on a subscriber list.

For a target group based on a dataset, the root always contains a single AND-combination operator node that can not be changed or deleted. This node in turn always contains two sub nodes (which are combined via "AND"): A special ActivelySubscribedToAnyList node (which can not be deleted or changed) and another combination operator node. This second combination operator node is the "top level operator" for target groups based on a dataset. The top level operator described above can not be deleted, but its type can be changed (see Combination Operator Nodes for details about changing the type of a combination operator node).

Initially, the top level operator is empty, meaning that it does not contain any sub nodes. For a target group based on a subscriber list, this is equivalent to an empty condition that is "true" for all subscribers of the list.

For a target group that is based on a dataset, things are a bit more complex: The top level operator is always AND-combined with a special "ActivelySubscribedToAnyList" node. The logic of this node is as follows: It is "true" for all dataset subscribers which currently are also subscribed to at least one list in the dataset, and this subscription must be an "active" subscription (i.e. not "suspended"). Therefore, whatever condition is defined below the top level operator, is always AND-combined with this special node, which means that the whole condition tree is true only for subscribers which are currently "actively" subscribed to at least one list in the dataset and which fulfill the condition below the top level operator. While the top level operator is empty, this is equivalent to a condition that is "true" for all subscribers of the dataset which are currently "actively" subscribed to any list.

If a node in the tree has sub nodes, then the node itself can be closed (hiding the sub nodes) or open (displaying the sub nodes). In this case, the node is shown with a little icon (if the node is closed) or icon (if the node is open). Click on the icon to close or respectively open a node (double-clicking the node name does not work).

If a node is selected by clicking on it, a detailed description of the node is displayed to the right. In addition, an Actions on Selected Node link is displayed. Clicking on the link opens a popup menu containing all currently possible actions that can be executed on the selected node. Which actions these are depends on the node type and possibly its state, and are described in detail below:

Root Node Actions

For the root node, only one action is available:

  • Remove Unnecessary Nodes: This action "prunes" the tree and remove any unnecessary nodes from it in a way that the Boolean logic of the tree is not changed, but that any superfluous nodes are removed. For example, any empty combination operator nodes are removed. If there are currently no unnecessary nodes, executing this command does not have any effect. See Combination Operator Nodes for details.

Combination Node Actions

For combination type nodes, the following actions may be available (depending on the current state):

  • Change Operator Type: Opens a screen that allows the operator type of the node to be changed. Four different types are available: AND, OR, NOT AND, and NOT OR. See Combination Operator Nodes for details.
     
  • Add Condition: Adds a new normal condition type node to the selected combination node, as a new child node. See Normal Condition Nodes for details.
     
  • Add Job-Based Condition: Adds a new job-based condition type node to the selected combination node, as a new child node. See Job-Based Condition Nodes for details.
     
  • Add Combination Operator: Adds a new combination operator node to the selected combination node, as a new child node. See Combination Operator Nodes for details.
     
  • Cut: Marks the selected combination operator node for Cut & Paste. Once marked, the node is displayed with a "grayed" name to denote that it has been designated for Cut & Paste. The node is, however, not actually cut (removed from its current location) until the Paste command is selected at a different location. The "grayed" state is only a visual reminder of the fact that the node has been marked for Cut.

    Note: The Cut command is not available for the top level combination node, since this node cannot be deleted.
     
  • Copy: Marks the selected combination operator node for Copy & Paste. The node is, however, not actually copied until the Paste command is selected at a different location.
     
  • Paste: Completes an ongoing Copy & Paste or Cut & Paste operation that was previously started with either the Cut or the Copy command of a different node. Through this initial command, a node had been marked for cut or copy, and executing the paste command now completes this operation by actually moving the node from its old location to the currently selected combination node (for Cut) or by creating a copy of the node in the currently selected combination node (for Copy).

    The Paste command itself is therefore only available if a node has been marked for Cut & Paste or Copy & Paste earlier, and only if the marked node can actually be pasted into the currently selected location.
     
  • Clear Cut/Copy State: Aborts any ongoing Cut & Paste or Copy & Paste operation that was started with the command Cut or Copy. Any previously marked node again becomes "unmarked" and the Paste command is longer available.
     
  • Delete: Deletes the selected combination node and all its sub nodes (after confirmation). This is not recoverable!

    Note: The Delete command is not available for the top level combination node, since this node can not be deleted.

Condition Node Actions

For condition type nodes (both for normal and job-based conditions), the following actions may be available (depending on the current state):

  • Edit: Allows you to edit the settings for the condition.
     
  • Insert Combination Operator: Creates a new combination operator node and inserts it as the new parent node of the currently selected condition node. The selected condition node is initially the only child of the freshly created combination node and the new combination node is placed in the same parent node as the condition node was before.
     
  • Cut: Marks the selected condition node for Cut & Paste. From now on the node is displayed with a "grayed" name to visualize that it has been designated for Cut & Paste. The node is however not actually cut (removed from its current location) until the "Paste" command is selected at a different location, i.e. the "grayed" state is only a visual reminder of the fact that the node has been marked for Cut.
     
  • Copy: Marks the selected condition node for Copy & Paste. The node is however not actually copied until the Paste command is selected at a different location.
     
  • Clear Cut/Copy State: Aborts any ongoing Cut & Paste or Copy & Paste operation which has been started with either of the commands Cut or Copy. Any previously marked node again becomes "unmarked" and the Paste command is longer available.
     
  • Delete: Deletes the selected condition node (after confirmation). This is not recoverable!

Combination Operator Nodes

Combination operator nodes derive their Boolean state by examining the Boolean state of all sub nodes and combining these states using a Boolean operator depending on the node's type. The following operator node types are available:

  • Combine conditions with AND: Combines the Boolean states of all sub nodes using the Boolean "AND" operator. The combination is "true" only if all sub nodes are also "true". If even a single sub node is "false", the combination is also "false".
    The AND-combination is represented in the tree with the symbol and the textual representation "(... AND ...)".
     
  • Combine conditions with OR: Combines the Boolean states of all sub nodes using the Boolean "OR" operator, The combination is "true" if at least one sub node is "true", not matter if all others are "false". If all sub nodes are "false", the combination is also "false".
    The OR-combination is represented in the tree with the symbol and the textual representation "(... OR ...)".
     
  • Combine conditions with AND, then negate the result: The negated version of the "AND" combination described above. If the normal "AND" results in "true", this negated version results in "false". As a result, the combination is "true" if at least one sub node is "false", no matter if all others are "true". If all sub nodes are "true", the combination is then "false".
    The negated AND-combination is represented in the tree with the symbol and the textual representation "NOT (... AND ...)".
     
  • Combine conditions with OR: The negated version of the "OR" combination described above. If the normal "OR" results in "true", this negated version results in "false". As a result, the combination is "true" only if all sub nodes are "false". If even a single sub node is "true", the combination is then "false".
    The negated OR-combination is represented in the tree with the symbol and the textual representation "NOT (... OR ...)".

The type of a combination operator node can be changed at at any time using the Change Operator Type command from the Actions on Selected Node menu.

When doing a copy & paste of a combination node, the node and its whole subtree (including all sub nodes and their sub nodes) is copied. Similarly, when doing a cut & paste, the node and its whole subtree is removed from the original location and added at the paste location.

Note: Certain variants of nesting operator nodes are superfluous and is therefore removed ("pruned") if the Remove Unnecessary Nodes command from the Actions menu is selected on the root node.

  • Empty combination nodes: Combination nodes without any sub nodes are always superfluous and are always removed.
  • Combination nodes with one sub node: Combination nodes with only a single sub node are superfluous only if the combination node is of the non-negated sort (a simple "AND" or "OR" combination). In that case, the combination node is removed and its only sub node takes the combination node's place directly in the parent node.
  • Combination nodes with several sub nodes: Combination nodes with several sub nodes are superfluous only if the combination node is of the non-negated sort (a simple "AND" or "OR" combination) and if the parent node of the combination node is of the same combination type. In that case, the combination node is removed and all its sub nodes take the combination node's place directly in the parent node.

Normal Condition Nodes

Normal condition nodes derive their Boolean state by examining a condition that is defined explicitly for the given node. The condition is defined in a dialog box when the node is first created and can later be edited at any time in the same dialog box by selecting the Edit command from the node's Actions on Selected Node menu.
The condition node is represented in the tree with the symbol and a textual representation which displays the condition in short form.

The Edit Condition dialog box shows several drop-down lists and possibly edit fields or selection boxes, which allow the defining of the condition for the node. In the dialog box, the selection controls are organized in a hierarchical order from top to bottom, where choices in the upper controls directly influence the available choices in the lower controls. As a result, define a condition in a top-to-bottom manner, first making selections in the upper controls, then proceeding to the next control, and so on, until the bottom of the dialog box has been reached and the whole condition has been filled out.

Generally, each condition consists of three parts: a left operand, an operator and a right operand. The operator is always a Boolean operator, meaning that it compares the left and right operands in a certain fashion and the result is a Boolean value of "true" or "false". This operator result is then used as the Boolean state of the condition node.

These three parts are represented by (usually) five controls, situated above each other. The first two controls define the left operand, the third control defines the operator and the last two controls define the right operand.

Which operators are available in the third control, and which kinds of right operands can be defined using the last two controls depends on the selections in the first two controls (what left operand is currently selected).

Below follows a detailed description of the possible choices for:

Left Operand

For the left operand, the following choices are available:

  • Subscription Address: The left operand is the subscription address of the dataset subscriber. (This operand is not available for target groups of type "subscriber list")
     
  • Field: The left operand is one of the profile fields available in the dataset or list the target group is based on. To define an operand of this type, select the field from the first drop-down menu. The second control then becomes a drop-down menu, too, where the field to use is selected.
     
  • Number: The left operand is a constant number. To define an operand of this type, select the number from the first drop-down menu. The second control then becomes an edit field, where the number value to use is entered.
     
  • Text: The left operand is a constant text string. To define an operand of this type, select the text from the first drop-down menu. The second control then becomes an edit field, where the text string to use is entered.
     
  • Boolean: The left operand is a constant Boolean value of "true" or "false". To define an operand of this type, select the Boolean value from the first drop-down menu. The second control then becomes a drop-down menu, too, where the Boolean value to use is selected.
     
  • Formula: The left operand is a formula. When the condition is evaluated, the formula is evaluated first and its result is used as the left operand of the condition. To define an operand of this type, select the value of the formula from the first drop-down menu. The second control then becomes a multi-line edit field, where you now enter the formula to use. See below for details about formulas.

Operator

The available operators are shown in the third control, which is always a drop-down menu. The operators that are available depends on the type of the left operand, for example there are different operators for numbers than for text strings.

  • Number Operators: Available either if the left operand is of the Number type or of the Field type where the field in turn has the Number data type. The number operators are:
    • = (Equal) The condition is true if the two numbers are equal.
    • <> (Not equal) The condition is true if the two numbers are not equal.
    • < (Less than) The condition is true if the left number is less than the right number.
    • <= (Less than or equal) The condition is true if the left number is less than or equal to the right number.
    • > (Greater than) The condition is true if the left number is greater than the right number.
    • >= (Greater than or equal) The condition is true if the left number is greater than or equal to the right number.

  • Text Operators: Available if the left operand is of the Text type or of the Field type, where the field in turn has the Text data type. The text operators are:
    • = (Equal) The condition is true if the two texts are equal.
    • <> (Not equal) The condition is true if the two texts are not equal.
    • < (Less than) The condition is true if the left text is less than the right text (lexicographic comparison).
    • <= (Less than or equal) The condition is true if the left text is less than or equal to the right text (lexicographic comparison).
    • > (Greater than) The condition is true if the left text is greater than the right text (lexicographic comparison).
    • >= (Greater than or equal) The condition is true if the left text is greater than or equal to the right text (lexicographic comparison).
    • begins with The condition is true if the left text begins with the text string given as the right operand text.
    • ends with The condition is true if the left text ends with the text string given as the right operand text.
    • contains The condition is true if the left text somewhere contains the text string given as the right operand text.

  • Boolean Operators: Available if the left operand is of the Boolean type or of the Field type, where the field in turn has the Boolean data type. The Boolean operators are:
    • = (Equal) The condition is true if the two operands have the same Boolean value.
    • <> (Not equal) The condition is true if the two operands have different Boolean values.

  • Element Operators: Available if the left operand is of the Field type where the field has the Single Select data type. The element operators are:
    • = (Equal) The condition is true if the value selected in the field defined as the left operand is equal to the right operand.
    • <> (Not equal) The condition is true if the value selected in the field defined as the left operand is not equal to the right operand.
    • in The condition is true if the value selected in the field defined as the left operand appears in the elements of the set defined as the right operand.
    • not in The condition is true if the value selected in the field defined as the left operand does not appear in the elements of the set defined as the right operand.

  • Set Operators: Available if the left operand is of the Field type, where the field has the Multiple Select data type. The set operators are:
    • is the same set as [equals "="] The condition is true if the value-set selected in the field defined as the left operand is equal to the set defined by the right operand.
    • contains only values of [subset "<="] The condition is true if the value-set selected in the field defined as the left operand contains only values of the set defined by the right operand. (Or: If the left operand set is a subset of the right operand set.)
    • contains all values of [superset ">="] The condition is true if the value-set selected in the field defined as the left operand contains all values of the set defined by the right operand. (Or: If the left operand set is a superset of the right operand set.)
    • contains some values of [intersects "&"] The condition is true if the value-set selected in the field defined as the left operand contains some values of the set defined by the right operand. (Or: If the intersection of the left operand set and the right operand set is not empty.)
    • NOT (is the same set as) [not equals "="] The condition is true if the value-set selected in the field defined as the left operand is not equal to the set defined by the right operand.
    • NOT (contains only values of) [not subset "<="] The condition is true if the value-set selected in the field defined as the left operand contains some values that do not appear in the set defined by the right operand. (Or, if the left operand set is not a subset of the right operand set.)
    • NOT (contains all values of) [not superset ">="] The condition is true if the value-set selected in the field defined as the left operand does not contain all values of the set defined by the right operand. (Or, if the left operand set is not a superset of the right operand set.)
    • NOT (contains some values of) [not intersects "&"] The condition is true if the value-set selected in the field defined as the left operand does not contain any of the values of the set defined by the right operand. (Or, if the intersection of the left operand set and the right operand set is empty.)
    Note about the set-operators: The "subset" and "superset" operators described above (and their negated counterparts) do not adhere strictly to the mathematical definition of a subset or superset: In mathematics, the empty set is always a subset of any other set, and consequently any non-empty set is always a superset of the empty set. In regard to the empty set, however, the operators listed above behave differently. For these operators, the empty set is never a subset of any other set, and similarly no set can be a superset of the empty set.
     
  • Formula Operators: Formulas as the operands are a special case when it comes to the operator. Normally, the left operand defines the data type and thus the available operators (see above). For formulas however, the data type is not known until the formula is actually calculated. With the data type not known, the available operators cannot be adjusted accordingly. Therefore, if the left operand is a formula, the available operators are the same as for Text (see Text Operators above) and the actual data type is determined at run time, after the following rules:

    If either the left or right operand is of Text type, then the operator is also a text operator and the other operand is converted to text if necessary.

    If both operands are of the Number type and the selected operator is one that is available for numbers, (one of the normal comparison operators =, <>, <, <=, >, >=) then two operands are compared as numbers.

    If both operands are of the Number type, but the selected operator is not available for numbers, ("begins with", "ends with", or "contains"), then both operands are converted to text so that the operator can be applied.
     
  • Subscription State Operators: Available if the left operand is Subscription Address. The subscription state operators are:
    • is subscribed to the list (with status "active"): The condition is true if the subscriber of the selected dataset is subscribed to the list defined by the right operand and if the subscriber's subscription state for the selected list is set to "actively subscribed".
    • is not subscribed to the list: The condition is true if the subscriber of the selected dataset is not subscribed to the list defined by the right operand.
    Note: Both subscription state operators yield the condition value "false" if the dataset subscriber is subscribed to the list but has suspended email delivery for this list temporarily.
     

Right Operand

For the right operand, the available choices depend on which left operand has been selected. The following choices may be available:

  • Field: Available if applicable. The right operand is one of the profile fields available in the dataset or list the target group is based on. To define an operand of this type, select "the field" from the drop-down menu at the fourth position. The last control then becomes a drop-down menu too, where the field to use can be selected. This second menu automatically only contains fields of a type that is compatible to the left operand (and thus the operator). If there are no compatible fields that match the data type, or if the left operand is also a field but is the only field of that data type (because comparisons with the same field used both for the left and right operand are not allowed), the Field type is not available as the right operand.
     
  • Number: Only available if the left operand is of the Field type and the corresponding field is of the Number type. The right operand is a constant number. To define an operand of this type, select "the number" from the drop-down menu at the fourth position. The last control then becomes an edit field where the number value to use is entered.
     
  • Text: Only available if the left operand is of the Field type and the corresponding field is of the Text type. The right operand is a constant text string. To define an operand of this type, select "the text" from the drop-down menu at the fourth position. The last control then becomes an edit field where the text string to use is entered.
     
  • Boolean: Only available if the left operand is of the Field and the corresponding field is of the Boolean. The right operand is a constant Boolean value of either "true" or "false". To define an operand of this type, select "the Boolean value" from the drop-down menu at the fourth position. The last control then becomes a drop-down menu, too, where the Boolean value to use is selected.
     
  • Formula: Only available if the left operand is of the Number, Text, Boolean, Formula, or Field type (where, in turn, the corresponding field must be of the Number, Text or Boolean type). The right operand is a formula. When the condition is evaluated, the formula is evaluated first and its result is used as the right operand of the condition. To define an operand of this type, select "the value of the formula" from the drop-down menu at the fourth position. The last control then becomes a multi-line edit field where the formula to be used is entered. See below for details about formulas.
     
  • Parameter: Only available if the left operand is of the Field type (any kind of field). The right operand is a parameter whose content is not already defined during the condition definition, but which is supplied later by the end user when the target group the condition belongs to is used in the recipient wizard. See below for details about parameters.
     
  • Check for "empty": Only available if the left operand is of the Field type and the corresponding field is an optional field. The right operand is the "empty" value, meaning that the condition compares the given left operand field against the empty value, using the given operator. Since only optional fields can actually be empty, this type is not available if the left operand field is a mandatory or Boolean field. To define an operand of this type, select "empty" or "the empty set" (whichever is available) from the drop-down menu at the fourth position. The last control then becomes invisible because there is no more information required about the right operand.
     
  • Check for certain lookup table entry: Only available if the left operand is of the Field and the corresponding field is of the Single Select type. The right operand is a fixed selected entry from the lookup table that the left operand field is associated with. To define an operand of this type, select "the list entry" from the drop-down menu at the fourth position. The last control then becomes a drop-down menu, containing all values from the lookup table that is associated with the left operand field. Select one of the values to use from the drop-down menu.
     
  • Check for certain lookup table entry set: Only available if the left operand is of the Field type and the corresponding field is of the Multiple Select type. The right operand is a fixed selected entry set from the lookup table that the left operand field is associated with. To define an operand of this type, select "the set of entries selected below" from the drop-down menu at the fourth position. The last control then becomes a multiple selection list box, containing all values from the lookup table that is associated with the left operand field. Select one or more of the values to use from the drop-down menu (hold down CTRL or SHIFT to select multiple entries or to deselect already selected entries).
     
  • Subscriber List in Dataset: Only available if the left operand is of the Subscription Address type. The right operand is a drop-down menu which lists the Subscriber Lists that are present in the selected dataset.
     

Formulas in Conditions

Formulas can be used in conditions to calculate the left and/or right operand value at "run time" (the moment the condition is actually applied to a given subscriber) to determine if the subscriber shall become one of the recipients of a job or not.

Such a formula is typed directly into the multi-line edit field provided by the condition definition dialog box (any line breaks in the formula code do not have any effect on the result of the formula but can instead be freely used to enhance readability).

The syntax follows general mathematical formula rules, with operators like "+" and "-", parenthesis nesting and so on. There are also a number of predefined "functions" that can be used in formulas.

Examples of formulas:

15 + 4
27 * Max(17, 4, 24/8) / (19 + 22)
&NAME; + "@lsoft.com"
(ToNum(&AGE;) - 2004) * 10
ToDate(CurrentMillis, "MM/dd/yyyy HH:mm")

See here for a detailed description of formulas and functions.

Note: Formulas may contain parameter placeholders. Parameter placeholders allow you to define conditions with formulas, where one or several values in the formula are not already known at the time you write the formula (and condition), but are instead supplied later by the end user who uses this target group in the recipients wizard. (See here for details about how to include parameters in formulas and read the following subsection about condition parameters in general).

Parameters in Conditions

Parameters can be used in conditions as the right operand in situations where the value of the operand is not yet known at the time the condition is defined, or is not fixed by the condition definition. The value is supplied later by the end user when the target group is used in the recipients wizard.

This way, conditions can be created that are parameterized to allow for greater flexibility for the end user (see example below).

To define a right operand of this type, select the the TYPE_VALUE supplied for the parameter entry from the drop-down menu at the fourth position, where "TYPE_VALUE" is filled out according to the type of the left operand field selected. This, therefore, already defines the type of the parameter. The entry in the drop-down menu is one of the following:

  • the text supplied for the parameter
  • the numeric value supplied for the parameter
  • the Boolean value supplied for the parameter
  • the list entry supplied for the parameter
  • the set supplied for the parameter

When this selection has been made, the last control becomes an edit field where the name of the parameter to define is entered. Enter only the name, without any enclosing tags (this is different than when using a parameter in a formula, a SQL statement, or LISTSERV condition, where the parameter needs to be enclosed in tags to set if off from the rest of the formula/statement/condition).

Note: If the same parameter name is specified in different condition nodes, it is interpreted as one parameter that simply appears several times in the condition tree. All appearances will have the same content value and so must also all appear in the same type context (Number, Text, and so on). This means that if in one condition node the selection is the text supplied for the parameter, and the parameter name specified is mytext, and then if the same parameter name is specified again in a different condition node, then in that place the selection must also be the text supplied for the parameter (but not, for example, the numeric value supplied for the parameter).

Similarly, if a parameter is used with the same name in a formula (see above) somewhere else in the condition tree, then all these appearances, too, reference the same parameter. All of them are replaced with the same final content during usage in the recipients wizard and must therefore have the same type.

Example: Assume that the subscriber list has a field called AGE and a target group must be defined that selects all subscribers who are of a certain age or older; for example, test for the age of 21. Specify this as a condition node as follows:

the field AGE >= the number 21

However, what if for the next mailing a different age should be used, say "18" or "40"? A new target group could be created for that purpose, with a new condition. But this will soon become tedious, so instead, a parameter could be used for the age and leave it to the end user to supply the actual age to check for. The condition node would then look like this:

the field AGE >= the numeric value of the parameter age_param

Where "age_param" is the name given to this parameter. The resulting target group could then be used to select recipients of any age or older, just by supplying the desired threshold age in an edit field, as a value for the parameter "age_param".

Job-Based Condition Nodes

Job-based condition nodes derive their Boolean state by examining the delivery of an earlier mail job, the so called "source job", and optionally also the tracking events collected for that job.
The condition node is represented in the tree with the symbol and a textual representation that displays the condition in short form.

Which source job it is that shall be examined is specified by the end user who uses the target group in the recipients wizard. Here in the condition definition, it is simply enough to know that whatever source job is selected, is in fact a job that was in turn delivered to the same dataset or list as the one one that this target group is based on (or more precisely, the source job used a target group that was based on the same dataset or list as this target group).

The Edit Job-Based Condition dialog allows the defining of how the source job is examined. There are the following options:

  • All current subscribers who were recipients of the original source job: If selected, the condition node evaluates to "true" for all subscribers of the dataset or list who have also already been recipients of the source job that is selected in the recipients wizard. For any subscribers who were not recipients of the source job because they did not fulfill the source job's condition or because they joined/subscribed after the source job was delivered, the condition evaluates to "false".
    If this choice is selected, examining of the tracking events of the source job may also be optionally specified, to further filter the recipients. See below for details.
     
  • All current subscribers who were NOT recipients of the original source job: The negated version of the above condition. If selected, the condition node evaluates to "true" for all subscribers of the dataset or list who were not recipients of the source job that is selected in the recipients wizard, either because they did not fulfill the source job's condition, or they joined/subscribed after the source job was delivered. For any subscribers which were recipients of the source job, the condition evaluates to "false".

Examining Tracking Events of the Source Job

If the first of the two choices above is selected (that is, to filter for all subscribers who were recipients of the source job) then the tracking events that were collected for the source job may also be optionally chosen to be examined, to further filter the recipients. (Note that if this option of examining the tracking events is used, additional issues need to be considered, see below).
To enable the option, check the With the following tracked behavior option and select one of the available behavior types from the drop-down menu:

  • At least one HTML view event: The condition is "true" only for subscribers who generated at least one HTML view event for the source-job.
     
  • At least one click event for any selected URL: The condition is "true" only for subscribers who generated at least one click event for any of the selected URLs (see below on how to select the URLs).
     
  • At least one click event for each selected URL: The condition is "true" only for subscribers who generated at least one click event for each of the selected URLs (see below on how to select the URLs).
     
  • At least one event for any selected tracked action: The condition is "true" only for subscribers who generated at least one tracking event for any of the selected tracked actions (see below on how to select the tracked actions).
     
  • At least one event for each selected tracked action: The condition is "true" only for subscribers who generated at least tracking click event for each of the selected tracked actions (see below on how to select the tracked actions).
     
  • NOT (At least one HTML view event): The negated version of the first behavior type as described above. The condition is "true" only for subscribers who did not generate any HTML view events for the source job.
     
  • NOT (At least one click event for any selected URL): The negated version of the second behavior type as described above. The condition is "true" only for subscribers who did not generate any click events for any of the selected URLs (see below on how to select the URLs).
     
  • NOT (At least one click event for each selected URL): The negated version of the third behavior type as described above. The condition is "true" only for subscribers who did not generate any click events for at least one of the selected URLs (see below on how to select the URLs).
     
  • NOT (At least one tracking event for any selected tracked action): The negated version of the fourth behavior type as described above. The condition is "true" only for subscribers who did not generate any tracking events for any of the selected tracked actions (see below on how to select the tracked actions).
     
  • NOT (At least one tracking event for each selected tracked action): The negated version of the fifth behavior type as described above. The condition is "true" only for subscribers who did not generate any tracking events for at least one of the selected tracked actions (see below on how to select the tracked actions).

If from the above behavior types one of the four that deal with click events is selected, the URLs to look at must be specified. This is done with the options below the drop-down menu, which only become visible if such a behavior type is chosen. In this case, the following choices are available:

  • Fixed list of all tracked links of the "source job": If selected, then the click events of all tracked links in the selected source job is examined to determine the condition state. With this choice, the end user who employs this target group in the recipients wizard will not have the choice to define which links to examine because it will always be all links of the source job that are examined.
     
  • User-defined list stored in parameter: If selected, then only the click events of a certain list of links in the source job are examined to determine the condition state. Which links appear in this list is not defined here, at the time the condition is specified, but is instead defined by the end user who employs this target group in the recipients wizard by filling out a parameter. The parameter's name needs to be specified here, together with the selected option. Later, in the recipients wizard, the selection of links is made in a multiple selection box, and the result (the list of links to examine), is stored in the parameter with the name specified here. The condition then looks at the list in this parameter to determine its Boolean state.
    If the same parameter name is specified in different job-based condition nodes, it is interpreted as one parameter that appears several times in the condition tree. All appearances is filled out with the same list of selected links, depending on the end user's choices. In addition, a parameter with the same name may not be used in a normal condition node or a condition formula.

If from the above behavior types one of the four that deal with action tracking events is selected, the tracked actions to look at must be specified. This is done with the options below the drop-down menu, which only become visible if such a behavior type is chosen. In this case, the following choices are available:

  • Fixed list of all tracked actions: If selected, then the action tracking events of all tracked actions known to the system is examined to determine the condition state. With this choice, the end user who employs this target group in the recipients wizard does not have the choice to define which tracked actions to examine because it will always be all tracked actions that are examined.
     
  • User-defined list stored in parameter: If selected, then only the action tracking events of a certain list of tracked actions is examined to determine the condition state. Which tracked actions appear in this list is not defined here, at the time the condition is specified, but is instead defined by the end user who employs this target group in the recipients wizard by filling out a parameter. The parameter's name needs to be specified here, together with the selected option. Later, in the recipients wizard, the selection of tracked actions is made in a multiple selection box, and the result (the list of tracked actions to examine), is stored in the parameter with the name specified here. The condition looks at the list in this parameter to determine its Boolean state.
    If the same parameter name is specified in different job-based condition nodes, it is interpreted as one parameter that appears several times in the condition tree. All appearances is filled out with the same list of selected tracked actions, depending on the end user's choices. In addition, a parameter with the same name may not be used in a normal condition node or a condition formula.

Additional Issues with Job-Based Conditions and Tracking Events

If the option of examining the tracking events of the source job is selected, (see above) the following additional issues must be considered.

With this option enabled, the choice for the "source job" becomes more limited. Normally, for job-based conditions, a possible source job is one that has been delivered to the same subscriber dataset or list as the one the target group is based on.
When using the examine tracking events option, the choice for the source job is narrowed to all the above jobs that also had personal tracking enabled at the time of delivery. Because only the information collected with personal tracking is sufficient for the job-based condition node to determine if the condition is "true" or "false".

© 2002-2023 L-Soft Sweden AB. All rights reserved.