Field definition and automated value population
If you often organize the same type of events with the same kind of forms, an easy way to avoid reconfiguring the entire event every time is to use the duplicate event feature. Thanks to the advanced registration form settings, you can now define what your default registration forms will look like, the default fields, make them mandatory or not, and populate multi-choice field values.
At a glance
Let’s start by a simple example. I’d like to automatically display and make mandatory first and last name and want to create a new free field for “student id”. Here is the JSON file to load in the form definition field:
{ "fields": [ { "name": "firstname", "type": "text", "is_visible": true, "is_mandatory": true }, { "name": "lastname", "type": "text", "is_visible": true, "is_mandatory": true }, { "name": "free_field1", "type": "text", "label": "Student id", "placeholder": "Enter your student id, also printed on your Student ID Card", "is_visible": true, "is_mandatory": true } ] }
Place this JSON at a profile or account level depending if you want to enable this feature for a specific profile or for your entire account.
Type of fields you can create or manage
You can create or manage the following field types and handle these properties:
'checkbox' => [ 'is_visible' => true, 'is_mandatory' => false, 'is_hidden_from_email' => false, ], 'country' => [ 'is_visible' => true, 'is_mandatory' => false, 'is_hidden_from_email' => false, 'placeholder' => '', 'help' => '', ], 'email' => [ 'is_visible' => true, 'is_mandatory' => false, 'is_hidden_from_email' => false, 'placeholder' => '', 'help' => '', 'allowed_domains' => '', 'ask_confirmation' => false, ], 'file' => [ 'is_visible' => true, 'is_mandatory' => false, 'is_hidden_from_email' => false, 'help' => '', ], 'header' => [ ], 'select' => [ 'is_visible' => true, 'is_mandatory' => false, 'is_hidden_from_email' => false, 'placeholder' => '', 'help' => '', 'is_multiselect' => false, 'has_other_option' => false, ], 'text' => [ 'is_visible' => true, 'is_mandatory' => false, 'is_hidden_from_email' => false, 'placeholder' => '', 'help' => '', 'is_multiline' => false, 'ask_confirmation' => false, ], 'vat' => [ 'is_visible' => true, 'is_mandatory' => false, 'is_hidden_from_email' => false, 'placeholder' => '', 'help' => '', 'ask_confirmation' => false, ]
Translate fields' content for multilingual registration forms
You’re working with multilingual events? You can pre-define your field labels translations. When creating a new language / translation, the fields will be automatically created and translated accordingly.
{ "fields": [ { "name": "firstname", "is_visible": true, "is_mandatory": true }, { "name": "lastname", "is_visible": true, "is_mandatory": true }, { "name": "free_field1", "type": "text", "label": { "en": "Student id", "fr": "Numéro d'étudiant", "es": "Identificación del Estudiante" }, "placeholder": { "en": "Enter your student id, also printed on your Student ID Card", "fr": "Entrez votre numéro d'étudiant, également imprimé sur votre carte d'étudiant", "es": "Ingrese su identificación de estudiante, también impresa en su tarjeta de identificación de estudiante" }, "is_visible": true, "is_mandatory": true } ] }
In this example, when creating the Spanish or French translation of your event, idloom-events will automatically translate First name and Last name labels from its own lexicon and will get the student id translations from your JSON config file.
Dynamically populate drop-down list and toggle content depending of another select
First of all, thanks to the advanced settings, it is possible to work with the value / label pair, which could be interesting when working with multilingual events or when synchronizing data with another software through the APIs.
{ "fields": [ { "name": "free_field2", "label": { "en": "Type of registration", "fr": "Type d'inscription", "es": "Tipo de registro" }, "type": "select", "list_items": [ { "value": "P", "label": { "en": "Press", "fr": "Presse", "es": "Prensa" } }, { "value": "E", "label": { "en": "Exhibitor", "fr": "Exposant", "es": "Expositor" } }, { "value": "B", "label": { "en": "Buyer", "fr": "Acheteur", "es": "Comprador" } } ], "is_visible": true, "is_mandatory": true } ] }
In addition, you can link two drop-down lists and change the content of the second depending of the value selected in the first one.
{ "fields": [ { "name": "free_field2", "label": "Type of registration", "type": "select", "list_items": [ { "value": "P", "label": "Press" }, { "value": "E", "label": "Exhibitor" }, { "value": "B", "label": "Buyer" } ], "is_visible": true, "is_mandatory": true }, { "name": "free_field3", "label": "Details", "type": "select", "linked_to": "free_field2", "list_items": [ { "value": "Techno", "label": "Technology", "link_value": "P" }, { "value": "Daily", "label": "Daily Press", "link_value": "P" }, { "value": "SO", "label": "Stand owner", "link_value": "E" }, { "value": "WP", "label": "Workshop", "link_value": "E" }, { "value": "Std", "label": "Standard", "link_value": ["B","E"] }, { "value": "Hst", "label": "Hosted buyer", "link_value": "B" }, { "value": "Other", "label": "Other", "link_value": "" } ], "is_visible": true, "is_mandatory": true } ] }
Leave link_value empty ("link_value":"") to always display that list item.
You can link one list item to several value by using an array of link_value (["A","B","C"])
Build your forms and define fields order
By default, the advanced form setting feature will activate pre-existing fields in their default order and will add new custom fields at the end, up to you to re-order them to finalize your registration from.
The "insert_after" parameter will help you building ready-to-use forms by offering you the opportunity of arranging fields on the fly.
Automate default field mapping definition
You can automate the field mapping definition by defining the "fields_mapping" values using a json-escaped string.
{ "fields": [...], "fields_mapping": "[\n\t{\n\t\t\"name\": \"campaign_id\",\n\t\t\"value\": \"1-2345\"\n\t},\n\t{\n\t\t\"name\": \"campaign_name\",\n\t\t\"value\": \"test\"\n\t}\n]" }
This tool may be useful to encode the field mapping definition: https://codebeautify.org/json-escape-unescape
Advanced registration form settings is the ultimate form automation system
Thanks to this powerful feature, you can automate your registration forms’ look and feel, content and behavior, as well as control and optimize translations. If you often organize the same kind of events, this feature will help you save time and money.
Not feeling comfortable with coding in JSON or want to be sure you don’t make any mistake, contact idloom-events support team. We will be pleased to guide you through this process or configure your account for you.