{"id":1932,"date":"2026-01-21T07:01:20","date_gmt":"2026-01-21T07:01:20","guid":{"rendered":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/?p=1932"},"modified":"2026-04-21T10:03:58","modified_gmt":"2026-04-21T10:03:58","slug":"custom-form-settings","status":"publish","type":"post","link":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/kivicare-pro\/documentation\/configuration-kivi-pro\/custom-form-settings\/","title":{"rendered":"Custom Form Settings"},"content":{"rendered":"<div class=\"nolwrap\">\n<h2 class=\"wp-block-heading\">1. Overview<\/h2>\n\n\n\n<p>The <strong>Custom Form Settings<\/strong> feature in KiviCare allows administrators to create and manage dynamic forms for collecting additional information across different system modules.<\/p>\n\n\n\n<p>Custom forms help clinics extend default data collection without modifying core system functionality. These forms can be attached to various workflows and records to capture clinic-specific information.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Supported Modules<\/h3>\n\n\n\n<p>Custom forms can be created for the following modules:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Appointments<\/strong> \u2013 Collect extra booking details<\/li>\n\n\n\n<li><strong>Encounters<\/strong> \u2013 Capture clinical or visit-specific data<\/li>\n\n\n\n<li><strong>Patients<\/strong> \u2013 Store additional patient information<\/li>\n\n\n\n<li><strong>Doctors<\/strong> \u2013 Maintain extended doctor profiles<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Custom Form List<\/h2>\n\n\n\n<p>The <strong>Custom Form List<\/strong> page displays all created forms and allows administrators to manage them efficiently.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Search<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use the <strong>Search<\/strong> field to quickly find forms by name or module type.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">List Columns<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ID<\/strong><br>Unique identifier for the custom form.<\/li>\n\n\n\n<li><strong>Name<\/strong><br>Name assigned to the form.<\/li>\n\n\n\n<li><strong>Type<\/strong><br>Module associated with the form (Appointment, Encounter, Patient, Doctor).<\/li>\n\n\n\n<li><strong>Status<\/strong><br>Indicates whether the form is <strong>Active<\/strong> or <strong>Inactive<\/strong>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Actions<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Toggle Status (Active \/ Inactive)<\/strong><br>Enable or disable the form without deleting it.<\/li>\n\n\n\n<li><strong>View (Preview Form)<\/strong><br>View how the form will appear to users.<\/li>\n\n\n\n<li><strong>Edit Form<\/strong><br>Modify form settings and fields.<\/li>\n\n\n\n<li><strong>Delete Form<\/strong><br>Permanently remove the form and its configuration.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Creating &amp; Editing Forms (Form Builder)<\/h2>\n\n\n\n<p>When creating or editing a form, KiviCare provides a <strong>drag-and-drop form builder<\/strong> to define structure, fields, and visibility rules.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">3.1 Form Settings<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Basic Settings<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Form Name<\/strong><br>Internal name used to identify the form.<\/li>\n\n\n\n<li><strong>Module Type<\/strong><br>Select where the form will be used:\n<ul class=\"wp-block-list\">\n<li>Appointment<\/li>\n\n\n\n<li>Encounter<\/li>\n\n\n\n<li>Patient<\/li>\n\n\n\n<li>Doctor<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Status<\/strong><br>Set the form as <strong>Active<\/strong> or <strong>Inactive<\/strong>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Visibility Rules<\/h3>\n\n\n\n<p>Control when and where the form appears.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Module Visibility<\/strong>\n<ul class=\"wp-block-list\">\n<li>Show form in Appointment or Encounter sections<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Clinic Restrictions<\/strong>\n<ul class=\"wp-block-list\">\n<li>Restrict visibility to Admin users only (if enabled)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Role-Based Access<\/strong>\n<ul class=\"wp-block-list\">\n<li>Define which user roles can view or fill out the form<br>(e.g., Administrator, Doctor, Receptionist)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">3.2 Form Fields<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Available Field Types<\/h4>\n\n\n\n<p>You can add the following field types to your form:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Text<\/li>\n\n\n\n<li>Text Area<\/li>\n\n\n\n<li>Number<\/li>\n\n\n\n<li>Email<\/li>\n\n\n\n<li>Dropdown<\/li>\n\n\n\n<li>Radio Buttons<\/li>\n\n\n\n<li>Checkbox<\/li>\n\n\n\n<li>File Upload<\/li>\n\n\n\n<li>Date<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Adding Fields<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use the <strong>drag-and-drop interface<\/strong> to add fields to the form layout.<\/li>\n\n\n\n<li>Reorder fields easily by dragging them into position.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Field Configuration Options<\/h3>\n\n\n\n<p>Each field includes configurable options:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Label<\/strong><br>Display name for the field (supports HTML formatting).<\/li>\n\n\n\n<li><strong>Placeholder<\/strong><br>Helper text shown inside the input field.<\/li>\n\n\n\n<li><strong>Required Field<\/strong><br>Toggle to make the field mandatory.<\/li>\n\n\n\n<li><strong>CSS Class<\/strong><br>Add custom CSS classes for styling or layout control.<\/li>\n\n\n\n<li><strong>Column Width<\/strong><br>Responsive layout options (e.g., 12, 6, 4 columns).<\/li>\n\n\n\n<li><strong>Options<\/strong> <em>(Dropdown \/ Radio Buttons)<\/em><br>Define selectable options manually.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Form Conditions<\/h2>\n\n\n\n<p>The <strong>Form Conditions<\/strong> feature allows you to dynamically control the behaviour of form fields based on user input. You can show or hide fields, enable or disable them, and make them required or optional depending on specific conditions. This helps create a more intelligent and user-friendly form by displaying only relevant fields and reducing unnecessary input.<br><br>The <strong>Form Conditions<\/strong> section enables you to define rules that control how form fields behave dynamically.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Accessing Form Conditions<\/h3>\n\n\n\n<p>To configure Form Conditions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Navigate to: <br><strong>Settings \u2192 Advanced \u2192 Custom Forms<\/strong> Create a new form or edit an existing form.<\/li>\n\n\n\n<li> Inside the form builder, click on the <strong>&#8220;Form Conditions&#8221;<\/strong> button. <\/li>\n\n\n\n<li>The Form Conditions panel will open.<\/li>\n<\/ul>\n\n\n\n<p>Refer to the screenshot below.<\/p>\n\n\n\n<div class=\"wp-block-stackable-image stk-block-image stk-block stk-77d54cb\" data-block-id=\"77d54cb\"><figure><span class=\"stk-img-wrapper stk-image--shape-stretch stk--has-lightbox\"><img loading=\"lazy\" decoding=\"async\" class=\"stk-img wp-image-3224\" src=\"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_1-4.png\" width=\"1534\" height=\"797\" srcset=\"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_1-4.png 1534w, https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_1-4-300x156.png 300w, https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_1-4-1024x532.png 1024w, https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_1-4-768x399.png 768w\" sizes=\"auto, (max-width: 1534px) 100vw, 1534px\" \/><\/span><\/figure><\/div>\n\n\n\n<div class=\"wp-block-stackable-image stk-block-image stk-block stk-240af01\" data-block-id=\"240af01\"><figure><span class=\"stk-img-wrapper stk-image--shape-stretch stk--has-lightbox\"><img loading=\"lazy\" decoding=\"async\" class=\"stk-img wp-image-3225\" src=\"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_2-3.png\" width=\"1257\" height=\"862\" srcset=\"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_2-3.png 1257w, https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_2-3-300x206.png 300w, https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_2-3-1024x702.png 1024w, https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_2-3-768x527.png 768w\" sizes=\"auto, (max-width: 1257px) 100vw, 1257px\" \/><\/span><\/figure><\/div>\n\n\n\n<div class=\"wp-block-stackable-image stk-block-image has-text-align-left stk-block stk-d7c94a7\" data-block-id=\"d7c94a7\"><style>.stk-d7c94a7 .stk-img-wrapper{width:555px !important;height:772px !important;}.stk-d7c94a7 .stk-img-wrapper img{object-position:57.99999999999999% 63% !important;}<\/style><figure><span class=\"stk-img-wrapper stk-image--shape-stretch stk--has-lightbox\"><img loading=\"lazy\" decoding=\"async\" class=\"stk-img wp-image-3226\" src=\"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_3-6.png\" width=\"557\" height=\"773\" srcset=\"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_3-6.png 557w, https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_3-6-216x300.png 216w\" sizes=\"auto, (max-width: 557px) 100vw, 557px\" \/><\/span><\/figure><\/div>\n\n\n\n<div class=\"wp-block-stackable-image stk-block-image stk-block stk-d8aefa1\" data-block-id=\"d8aefa1\"><figure><span class=\"stk-img-wrapper stk-image--shape-stretch stk--has-lightbox\"><img loading=\"lazy\" decoding=\"async\" class=\"stk-img wp-image-3227\" src=\"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_4-1.png\" width=\"1258\" height=\"852\" srcset=\"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_4-1.png 1258w, https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_4-1-300x203.png 300w, https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_4-1-1024x694.png 1024w, https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-content\/uploads\/sites\/18\/2026\/01\/custom_form_conditions_4-1-768x520.png 768w\" sizes=\"auto, (max-width: 1258px) 100vw, 1258px\" \/><\/span><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Understanding IF (Conditions) and DO (Actions)<\/h3>\n\n\n\n<p>Each condition is divided into two parts:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">CONDITIONS (IF)<\/h4>\n\n\n\n<p>Defines when the rule should be triggered.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Select a <strong>Field<\/strong><\/li>\n\n\n\n<li>Choose an <strong>Operator<\/strong><\/li>\n\n\n\n<li>Set a <strong>Value<\/strong><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">ACTION (DO)<\/h4>\n\n\n\n<p>Defines what should happen when the condition is met.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Select an <strong>Action<\/strong><\/li>\n\n\n\n<li>Choose a <strong>Target Field<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Adding a Condition<\/h3>\n\n\n\n<p>To create a condition:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Click on <strong>+ Add Condition<\/strong> under the CONDITIONS (IF) section<\/li>\n\n\n\n<li>Select:<br>&#8211; Field<br>&#8211; Operator<br>&#8211; Value<\/li>\n\n\n\n<li>In the ACTION (DO) section:<br>&#8211; Choose an action<br>&#8211; Select the target field<\/li>\n<\/ul>\n\n\n\n<p>You can add multiple actions for a single condition.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Adding Multiple Conditions and Groups<\/h3>\n\n\n\n<p>You can create advanced conditional logic by combining multiple conditions and groups.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Multiple Conditions within the Same Group<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Click <strong>+ Add Condition<\/strong> to add multiple conditions within a single group<\/li>\n\n\n\n<li>Each condition can be connected using <strong>AND<\/strong> or <strong>OR<\/strong> logic<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>AND Logic:<\/strong><\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li>All conditions must be true<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>OR Logic:<\/strong><\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Any one condition can be true<\/li>\n<\/ul>\n\n\n\n<p>You can switch between <strong>AND \/ OR<\/strong> using the toggle button available between conditions.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Multiple Condition Groups<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use the <strong>+ (Plus Icon)<\/strong> at the top to create a new condition group<\/li>\n\n\n\n<li>Each group works independently<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Available Operators<\/h3>\n\n\n\n<p>The following operators are available based on field type:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>= (Equals)<\/li>\n\n\n\n<li>!= (Not Equals)<\/li>\n\n\n\n<li>&gt; (Greater Than)<\/li>\n\n\n\n<li>&lt; (Less Than)<\/li>\n\n\n\n<li>&gt;= (Greater Than or Equal)<\/li>\n\n\n\n<li>&lt;= (Less Than or Equal)<\/li>\n\n\n\n<li>Contains<\/li>\n\n\n\n<li>Is Empty<\/li>\n\n\n\n<li>Is Not Empty<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Available Actions<\/h3>\n\n\n\n<p>You can configure the following actions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Show Field<\/strong> \u2013 Displays the field<\/li>\n\n\n\n<li><strong>Hide Field<\/strong> \u2013 Hides the field<\/li>\n\n\n\n<li><strong>Make Required<\/strong> \u2013 Marks the field as mandatory<\/li>\n\n\n\n<li><strong>Make Optional<\/strong> \u2013 Removes required validation<\/li>\n\n\n\n<li><strong>Enable Field<\/strong> \u2013 Enables the field for input<\/li>\n\n\n\n<li><strong>Disable Field<\/strong> \u2013 Disables the field<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Logic Conflict Detection<\/h3>\n\n\n\n<p>The system automatically detects conflicting rules to help prevent unexpected behaviour in form logic.<\/p>\n\n\n\n<p>When a conflict is detected:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A <strong>\u201cLogic Conflict Detected\u201d<\/strong> warning message is displayed<\/li>\n\n\n\n<li>The warning highlights that the same field is used in multiple conflicting conditions<\/li>\n\n\n\n<li>Users can review and adjust the logic if needed<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Advanced Features<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Import &amp; Export Custom Forms<\/h3>\n\n\n\n<p>KiviCare allows you to migrate custom forms between environments.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Export<\/strong><\/li>\n\n\n\n<li>Download form configurations as JSON files.<\/li>\n\n\n\n<li><strong>Import<\/strong><\/li>\n\n\n\n<li>Upload JSON files to recreate forms in another system.<\/li>\n<\/ul>\n\n\n\n<p>This feature is useful for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Migrating forms between staging and production<\/li>\n\n\n\n<li>Sharing standardized forms across clinics<\/li>\n\n\n\n<li>Backing up complex form configurations<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Best Practices<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use clear and descriptive field labels for better user understanding<\/li>\n\n\n\n<li>Limit required fields to avoid form fatigue<\/li>\n\n\n\n<li>Test forms using Preview before activating<\/li>\n\n\n\n<li>Export forms regularly as backups<\/li>\n<\/ul>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>1. Overview The Custom Form Settings feature in KiviCare allows administrators to create and manage dynamic forms for collecting additional information across different system modules. Custom forms help clinics extend default data collection without modifying core system functionality. These forms can be attached to various workflows and records to capture clinic-specific information. Supported Modules Custom [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"parent":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[50],"tags":[],"class_list":["post-1932","post","type-post","status-publish","format-standard","hentry","category-configuration-kivi-pro"],"featured_image_src":null,"author_info":{"display_name":"wordpressadminiq","author_link":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/author\/wordpressadminiq\/"},"_links":{"self":[{"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/posts\/1932","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/comments?post=1932"}],"version-history":[{"count":15,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/posts\/1932\/revisions"}],"predecessor-version":[{"id":3230,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/posts\/1932\/revisions\/3230"}],"wp:attachment":[{"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/media?parent=1932"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/categories?post=1932"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/tags?post=1932"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}