Given: Campaign data can be complex and result in lengthy and complex forms, while ideally it should be as consise as possible for optimal UX.
Given: Admins want to be able to conditionally include (show) or exclude based on custom rules and conditions.
When:
Admins Set up a Launcher Form & Marketers Fill a Campaign Form.
Then:
Administrators must have the ability to configure Conditional Logics in Launcher forms.
These logics must apply as marketers are filling campaign forms.
The following logics should be available:
Conditional display: For field(s) or a group of fields to be shown or hidden based on values in one or in a combination of another field. Conditional logics check if the particular answer(s) is selected and applies the visibility rule (display or hide other questions). This will allow to shorten the campaign creation questionnaire by hiding unnecessary fields and showing fields only when applicable.Acceptance Criteria
Form Conditional Display: New Section of the form that will host the visibility rules applied to your form.
Rule: Defines the desired Conditions and Outcomes.
Filter Condition: Logical expression that defines each criteria for validation. There can be multiple filter conditions in one Rule
Ruling Field Identifies the field (key) from upon which the operator is applied.
Field Type: property of the field (integer, numeric, string, date, etc) that determines the operators that can be used to restrict in filters
Operator: Depending on the type of filter, the operators that are available for filtering your audience. (Contains, Equals, is Greater than, Not Equal, etc.). Operators are dependant of the Attribute. For example, only data and numeric can have “Between” operator - strint text cannot.
Value: The value you want to use to filter your audience. Depending on the type of operator or filter value (for example, string, integer, date), either enter the value directly in the box or select it from a list.
Outcome: desired action to show \ hide elements
Dependent Field(s) or Field Groups: Identifies the field upon which the Outcome is applied
Display rule: visibility attribute to apply (show or hide)
1- Supported field types include text, rich text, multi and single select, date, time, number fields (exclude Time image and files and Layout fields)
2- Admin can select a field or a group and to which the Logic will apply.
3- A field can have no logic, a single logic or multiple logics applied .
4- For each Logic Admin can select between a “Conditional Display” (future state: will show 2nd option: “Conditional Value”)
5- If a field or group is hidden following conditional display, then validation will not be performed on these fields (required, format, etc).
6- Field types to be used as Filter conditions will be the same as the one used for Dynamic Destination folder. Single Line Text, Single Select, Multi-Select, Email are supported. Excludes Image, Date, File, Number and Time
7- If rules are conflicting the last rule in the list will apply.
0- Each fields now have a property of initial display and can be set to show\hide (default to show) which defined their original state (current state)
1- Each Conditional Display Logic can be defined with one or multiple rules to apply to the selected field or group.
2- Each Rule contains a field, and a condition and a value
3- Rules can be combined with AND (all rules) OR (any rule) statements to be combined together
4- Applicable Conditions will Follow industry standard operators that are available according to the field data type.
5- Admin can add any of these outcomes
show or hide field X
show or hide a group of fields
6-Admin can combine as many as needed ex:
From the Launcher Form Editor Page, on the side panel “Form fields” Section, user can select from a new menu beside the existing “Form Fields”: “Conditional Logics”:
New Sub Menu to navigate between “Form Items” and “Conditional Logics”
Under conditional logics user can create a new rule
User can name the rule
In each rule, User can add one or multiple filer conditions
In each rule, User can add (show or hide as the outcome)
User can save the rule
Repeat (add as many rules as needed) - typically no more than 10 rules….
Ex:
If…field “Product” equals “Jeto”
OR
If value from field “Region” contains “EMEA”
Then
Show Field EMEA Subject Line AND
Show Field EMEA Body AND
Show Field EMEA CTA button AND
Hide Field D AND
Show Field Group F AND
User must have the ability can add a new field and immediate use it in conditional logic (without requiring a Launcher Save)
Dependent fields will be shown or hidden at the time of user exiting the editable field - at which pount the Condition Logic Rules will be computed and validation will run for the rule condition to be is met (similar to current field validation). If a user never exit a field (cursor still editable area) and hits submit (before the rule is applied)… TBD
Campaign Clone: All Conditional Logics Rules are cloned and applied to the new Launcher upon cloning a Launcher that contains CL.
If a field is used as a Ruling fields or a Dependent field in a CL,
the delete action is disabled - tooltip displays on hover with adapted message (common to using field in naming convention or Automated Launch: “This field cannot be edited because it is used in Automated Launch, Naming Convention or Conditional Logic”.
editing the Token name is disabled and hover displays tooltip - same message as delete above.
Given we use the Marketo Token Name as field key, only fields that contain a Token Name will be available in CL. (Ex: newly created fields with missing Token Name will not show (DO ER REALLY NEED THIS SINCE WE HAV VALIDATION ON SAVE???)
The option to delete a field is moved from the side bar to the field itself. UX TO BE COMPLETED
UX Must align with the revised version of the Dynamic Destination folder (move rules, delete rules etc) TO BE COMPLETED
View Mockups (Public Link)
Edit Mockups Internal Link
If a field is hidden, do we still submit the field value (e.g. prefilled value)
Should we set a limit the number of rules on each form?
Include Assets\Modules Logics (delete modules) actions in form logics (OOS)
Set value as Calculated Fields
Admin can create field groups that can be referenced in a Conditional Logic, so that the logic will apply to the entire group of fields
Formly conditional rendering: https://formly.dev/docs/guide/expression-properties/
Development work has started. on the Conditional Logic feature. Please review the functional requirement for this MVP version where will all conditional display rules (to show or hide fields based on custom logics. It's still time to add your feedback!
@david - I see 2 sides to this: visibility rules (show/don't show based on values of another field) but also make the fields mandatory if they are displayed but not mandatory if they are hidden. I'm thinking specifically of something along the lines of "how many emails will you be sending?" Based on the answer, we only display the fields pertaining to email 1, 2, 3 and/or 4 etc. We still need flexibility to delete modules of course so the "mandatory" fields would no longer be mandatory if the module is deleted in the preview. Furthermore, if possible, we would hide the "unused" emails from the preview. Thanks!