Fluent CRM has a cool structural format for generating form fields. Using this structural format anyone can make a form without writing any HTML or JavaScript. The form fields will depend on the structural format.
There are several types of form fields in Fluent CRM and all those have almost the same structural format. There are 26 types of form fields in fluent CRM. There are also some common and optional fields in every form block. Let’s look at first the common/optional fields
Key | Description |
---|---|
label | Label title of your form field |
inline_help | Help message below your form input |
placeholder | Placeholder of the selector |
help | Description about selector |
wrapper_class | (Optional) With this property, someone can customize the form block design. |
readonly | (Optional) If this property is true, then the field will be read-only |
dependency |
- Option selectors
- Single or multi-select
- Radio
- Number input
- Text input
- Text input popper
- Yes & no check
- Grouped select
- Multi text options
- Email campaign composer
- Reload field selection
- Form group mapper
- Form many dropdown mappers
- Html
- Url selector
- Date time
- Condition groups
- Input values pair properties
- Text values multi properties
- Html editor
- Rest selector
- Condition block groups
- Custom sender config
- Radio buttons
- Checkboxes
- Time Selector
Option selectors
'subscription_status' => [
'type' => 'option_selectors',
'option_key' => 'editable_statuses',
'is_multiple' => false,
'label' => 'Subscription Status',
'placeholder' => 'Select Status'
]
This is a simple option_selectors type field component, you can find this structure in every integration. The option_key is used to get the correct options from WordPress. The is_multiple defines whether the option selector is multiple or not.
Key | Description |
---|---|
creatable | Can the user create a new tag/list |
size | (Optional) Size of the field |
option_key | Dynamic Data Sets: Possible Values – See bellow |
is_multiple | If the selector is multiple or not |
Option Key possible sets.
Key | Description |
---|---|
tags | Tags are like Lists but more ways to filter your contacts inside a list. |
lists | List are categories of your contacts. |
editable_statuses | All editable statuses of a user |
woo_products | All woo-commerce products |
email_sequences | All sequences of Fluent-CRM |
campaigns | All campaigns of Fluent-CRM |
product_selector_tutorlms | All courses of TutorLMS |
edd_coupons | All coupons of Easy Digital Download |
product_selector_learndash | All options of Learndash courses |
product_selector_learndash_groups | All options of Learndash groups |
product_selector_lifterlms | All options of LifterLMS courses |
product_selector_lifterlms_groups | All options of LifterLMS memberships |
product_selector_pmpro | All memberships of Paid Membership Pro |
product_selector_rcp | All memberships of Restrict Content Pro |
product_selector_wishlist | All memberships of Wishlist Member |
woo_coupons | All Woo-commerce coupons |
woo_order_statuses | All Woo-commerce order statuses |
woo_categories | All Woo-commerce categories |
product_selector_woo | All Woo-commerce products |
product_selector_woo_order | All Woo-commerce products |
edd_products | All Easy Digital Download products |
product_selector_edd | All Easy Digital Download products |
The preview of the example block.

Single or multi-select
'product_ids' => [
'type' => 'multi-select',
'label' => 'Target Products',
'help' => 'Select for which products this goal will run',
'options' => [
[
'id' => '2',
'title' => 'First Product'
]
],
'inline_help' => 'Keep it blank to run to any product purchase',
],
This is an example multi-select type field component, you can find this structure in every integration. The options property contains the options of the select field. The structure of single select and multi-select is the same. Every option has two properties, id & title.
The preview of the example block.

Options possible sets:
Key | Description |
---|---|
id | set selector id |
title | set selector title |
Radio
'purchase_type' => [
'type' => 'radio',
'label' => 'Purchase Type'
'help' => 'Select the purchase type',
'options' => [
[
'id' => 'all',
'title' => 'Any type of purchase'
]
],
'inline_help' => 'For what type of purchase you want to run this goal'
],
This is an example radio type field component, you can find this structure in every integration. The options property contains the values of the radio fields. Every option has two properties, id & title.
Options Key possible sets:
Key | Description |
---|---|
id | Set selector id |
title | Set selector title |
The preview of the example block.

Number input
'wait_time_amount' => [
'label' => 'Wait Time',
'type' => 'input-number',
'wrapper_class' => 'fc_2col_inline pad-r-20'
],
This is an example input-number type field component, you can find this structure in every integration. There are also some optional properties.
The preview of the example block.

Text input
'send_email_custom' => [
'wrapper_class' => 'fc_half_field',
'type' => 'input-text',
'label' => 'Send To Email Addresses (If Custom)',
'placeholder' => 'Custom Email Addresses',
'inline_help' => 'Use comma separated values for multiple'
]
This is an example input-text type field component, you can find this structure in every integration.
The preview of the example block.

Text input popper
'note' => [
'type' => 'input-text-popper',
'field_type' => 'textarea',
'label' => 'Order Note',
'help' => 'Type the note that you want to add to the reference order. You can also use smart tags'
]
This is an example input-text-popper type field component, you can find this structure in every integration. The possible value of the field_type property is text or textarea.
The preview of the example block.

Yes & no check
'run_multiple' => [
'type' => 'yes_no_check',
'label' => '',
'check_label' => 'Restart the Automation Multiple times for a contact for this event. (Only enable if you want to restart automation for the same contact)',
'inline_help' => 'If you enable, then it will restart the automation for a contact if the contact already in the automation. Otherwise, It will just skip if already exist',
]
This is an example yes_no_check type field component, you can find this structure in every integration.
The preview of the example block:

Grouped select
'lesson_ids' => [
'type' => 'grouped-select',
'label' => 'Target Lessons',
'help' => 'Select for which Lessons this automation will run',
'options' => [
[
'title' => 'First Course',
'slug' => 'first_course',
'options' => [
[
'id' => '1'
'title' => 'First Lesson'
]
]
]
],
'is_multiple' => true,
'inline_help' => 'Keep it blank to run to any Lesson',
],
This is an example grouped-select type field component, you can find this structure in every integration. The options property contains a list. Every option has three properties title, slug & options(Every options of this property contains two fields named id & title).
Options possible sets:
key | Description |
---|---|
title | set course title |
slug | set course slug |
options | Dynamic Data sets: Possible Values – See below |
Options -> Options possible sets:
Key | Description |
---|---|
id | set selector id |
title | set selector title |
The preview of the example block.

Multi text options
'target_lesson' => [
'type' => 'multi_text_options',
'label' => 'Target lessons',
'help' => 'Select target lessons',
'input_type' => 'text',
'placeholder' => 'Target lessons',
'inline_help' => 'Keep it blank to run all lessons'
]
This is an example multi_text_options type field component, you can find this structure in every integration.
The preview of the example block.

Email campaign composer
'campaign' => [
'label' => '',
'type' => 'email_campaign_composer'
],
This is an example email_campaign_composer type field component, you can find this structure in every integration.
The preview of the example block.

Reload field selection
'course_id' => [
'type' => 'reload_field_selection',
'label' => 'Target Course',
'help' => 'Select Course to find out Lesson',
'options' => [
[
'id' => '1',
'title' => 'First Course'
]
],
'inline_help' => 'You must select a course'
],
This is an example reload_field_selection type field component, you can find this structure in every integration. The options property contains a list. Every option has two properties named id & title.
The preview of the example block.
Key | Description |
---|---|
id | set selector id |
title | set selector title |
The preview of the example block.

Form group mapper
'primary_fields' => [
'label' => 'Map Primary Data',,
'type' => 'form-group-mapper',
'value_options'. => [
[
'id' => '',
'title' => ''
]
],
'local_label' => 'Contact Field (CRM)',
'remote_label' => 'Form Field',
'fields' => [
'first_name' => [
'type' => 'value_options',
'label' => 'First Name'
],
'last_name' => [
'type' => 'value_options',
'label' => 'Last Name'
],
'email' => [
'type' => 'value_options',
'label' => 'Email'
]
]
]
This is an example form-group-mapper type field component, you can find this structure in every integration. The value_options property contains a list of options of Fluent Form. Every option has two properties named id & title.
There is also a property named fields which contains a list of input fields.
The preview of the example block.

Form many dropdown mappers
'other_fields' => [
'label' => 'Map Other Data',
'type' => 'form-many-drop-down-mapper',
'value_options' => [
[
'id' => '',
'title' => ''
]
],
'local_label' => 'Select Contact Property',
'remote_label' => 'Select Form Field',
'local_placeholder' => 'Select Contact Property',
'remote_placeholder' => 'Select Form Property',
'fields' => [
'prefix' => [
'type' => 'value_options',
'label' => 'Name Prefix'
],
'address_line_1' => [
'type' => 'value_options',
'label' => 'Address Line 1'
],
'address_line_2' => [
'type' => 'value_options',
'label' => 'Address Line 2'
],
]
]
This is an example form-many-drop-down-mapper type field component, you can find this structure in every integration. The value_options property contains a list of options of Fluent Form. Every option has two properties named id & title.
There is also a property named fields which contains a list of input fields.
The preview of the example block.

Html
'subscription_status_info' => [
'type' => 'html',
'info' => 'An Automated double-optin email will be sent for new subscribers',
]
This is an example html type field component, you can find this structure in every integration. The info property is required.
Url selector
'redirect_to' => [
'type' => 'url_selector',
'label' => 'Redirect To',
'placeholder' => 'Your Target URL',
'help' => 'Contacts will be redirected to this link.',
'inline_help' => 'Please provide the url to where the contact will be redirected'
],
This is an example url_selector type field component, you can find this structure in every integration.
The preview of the example block:

Input value pair properties
'contact_properties' => [
'type' => 'input_value_pair_properties',
'support_operations' => 'yes',
'label' => 'Setup contact properties that you want to update',
'data_key_label' => 'Contact Property',
'data_value_label' => 'Property Value',
'property_options' => [
'contact_type' => [
'label' => 'Contact Type',
'type' => 'select',
'options' => [
[
'id' => 'lead',
'slug' => 'lead',
'title' => 'Lead'
]
]
],
]
]
This is an example input_value_pair_properties type field component, you can find this structure in every integration. The property_options property contains a list of other different types of field components.
property_options possible sets:
key | Description |
---|---|
label | set selector label |
type | set selector type |
options | Dynamic Data Sets: Possible Values – See below |
property_options -> options possible sets:
key | Description |
---|---|
id | set selector id |
slug | set selector slug |
title | set selector title |
The preview of the example block.

Text value multi properties
'meta_properties' => [
'label' => 'User Meta Mapping',
'type' => 'text-value-multi-properties',
'data_key_label' => 'User Meta Key',
'data_value_label' => 'User Meta Value',
'data_value_placeholder' => 'Meta Value',
'data_key_placeholder' => 'Meta key',
'help' => 'If you want to map user meta properties you can add that here. This is totally optional',
'value_input_type' => 'text-popper'
],
This is an example text-value-multi-properties type field component, you can find this structure in every integration.

Html editor
'description' => [
'type' => 'html_editor',
'label' => 'Description'
]
This is an example html_editor type field component, you can find this structure in every integration.
The preview of the example block.

Rest selector
'course_id' => [
'type' => 'rest_selector',
'option_key' => 'product_selector_learndash',
'is_multiple' => false,
'clearable' => true,
'label' => 'Select Course to Enroll',
'placeholder' => 'Select Course',
]
This is an example rest_selector type field component, you can find this structure in every integration. The option_key is a required property.

Condition block groups
'conditions' => [
'type' => 'condition_block_groups',
'label' => 'Specify Matching Conditions',
'inline_help' => 'Specify which contact properties need to matched. Based on the conditions it will run yes blocks or no blocks',
'labels' => [
'match_type_all_label' => 'True if all conditions match',
'match_type_any_label' => 'True if any of the conditions match',
'data_key_label' => 'Contact Data',
'condition_label' => 'Condition',
'data_value_label' => 'Match Value'
],
'groups' => [
'subscriber' => [
'label' => 'Contact',
'value' => 'subscriber',
'children' => [
[
'label' => 'First Name',
'value' => 'first_name',
'type' => 'nullable_text'
],
]
]
],
'add_label' => 'Add Condition to check your contact\'s properties',
]
This is an example condition_block_groups type field component, you can find this structure in every integration. The labels are a required property. The groups field contains the condition groups of a specific condition_block_groups type field component.
The preview of this condition block groups


Custom sender config
'mailer_settings' => [
'type' => 'custom_sender_config',
'check_label' => 'Set Custom From Name and Email',
]
This is an example custom_sender_config type field component, you can find this structure in every integration. The check_label property is the title of the block
The preview of this example block

Radio buttons
'wait_type' => [
'type' => 'radio_buttons',
'label' => 'Waiting Type',
'options' => [
[
'id' => 'unit_wait',
'title' => 'Wait for a specific period'
],
[
'id' => 'timestamp_wait',
'title' => 'Wait until a specific date-time'
],
[
'id' => 'to_day',
'title' => 'To a day of the week'
]
]
],
This is an example radio_buttons type field component, you can find this structure in every integration. The options property is a list.
options possible sets:
key | Description |
---|---|
id | set selector id |
title | set selector title |
The preview of this example block.

Checkboxes
'to_day' => [
'type' => 'checkboxes',
'label' => 'Wait until next day(s) of the week',
'wrapper_class' => 'fc_2col_inline pad-r-20',
'options' => [
[
'id' => 'Mon',
'title' => 'Mon'
]
],
],
This is an example checkboxes type field component, you can find this structure in every integration. The options property is a list containing days info of a week. This example block depends on a wait_type field. If the wait_type value is to_day, then this block will show.
options possible sets:
key | Description |
---|---|
id | set selector id |
title | set selector title |
The preview of this example block.

Time selector
'to_day_time' => [
'label' => 'Time of the day',
'type' => 'time_selector',
'placeholder' => 'Select Time',
'wrapper_class' => 'fc_2col_inline',
'picker_options' => [
'start' => '00:00',
'step' => '00:10',
'end' => '23:59'
]
]
This is an example time_selector type field component, you can find this structure in every integration. The picker_options property contains three properties named start, step & end. This example block depends on a wait_type field. If the wait_type value is to_day, then this block will show.
options possible sets:
key | Description |
---|---|
id | set selector id |
title | set selector title |
The preview of this example block.

Add your first comment to this post