Client Filter Condition - Variables Form Property
Overviewβ
The variables_form is an input property of the Client Filter Condition that is used to define forms that the package can retrieve values from during package executions.

With this property specified, you can access the form output using the form output property during package executions.

Property Behaviorβ
You can add the static name of a form (which you can create using the form editor) as an input value to the variables_form property. This form will then be used to allow per-client configuration via the Client Configuration screen in the Pia Partner Portal.
The form defined in the variables_form property can refer to the global configuration form values so that when the package runs, it will retrieve the value that has been set in the global form. An example of this behavior has been shown further below in this article.
Once a configuration form is specified, it will now be available in the client dashboard screen as shown below:

When you click 'configuration' in the above image, the form you have configured as the package configuration form (variables_form) for the package will be displayed. From here, you can modify and save the configuration for the package that is specific to the client.
Examplesβ
Below is an example of a basic package that uses the variables_form property to retrieve a value from the form:
# Orchestrator package
conditions: 
- name: 'client_filter' 
  optMode: 'OptOut'
  category: 'Testing'
  variables_form: 'example_form'
- name: 'chat'
  option_button: 'Test Package'
  option_text: 'This is a Test Package'
  option_category: 'Test Category'
steps:
- task: chat_interaction
  inputs:
    text: =client_filter.form.example_values
For the above package, a form has been created with a text field as shown below:
Since the form has been defined in the variables_form property, you can now view and edit the values of the form in the client configuration screen as below:

When the package runs in Pia chatbot, it will display the value set in the form as chat output:

- Retrieving Global values
 
For the package config form to refer back to global config values , simply change the default value of the field in your configuration form to refer to the global form field as below:
Now when the package runs, the value displayed in the chatbot will refer to the Global form value for All Staff Group:

Global Config Form Referencesβ
Here are all the fields in the global configuration form that you can reference using the package configuration form:
| Field Name | Reference | 
|---|---|
| Mode | |
| Cloud Hybrid | =global.cloud_hybrid | 
| Cloud Only | =global.cloud_only | 
| On-Prem Only | =global.on_prem_only | 
| Semi-Hybrid | =global.semi_hybrid | 
| Config | |
| All Staff Group | =global.allStaffGroup | 
| Azure All Staff Group | =global.cloud_all_staff_group | 
| Primary Domain Controller | =global.primaryDC | 
| Azure AD Connect Server | =global.azureADConnectServer | 
| Exchange Server | =global.exchange_server | 
| UPN of Admin Account | =global.adminUpn | 
| Password Options | |
| Minimum Length | =global.minLength | 
| Password Options | =global.passwordOptions | 
| Extra Settings | |
| Extra Settings | =global.extra_settings | 
| Remote Desktop Setup | |
| Remote Desktop Type | =global.remoteDesktopType | 
| URL/Server Address | =global.remotedesktop_url | 
| Profile Name | =global.remotedesktop_profileName | 
| Security Group | =global.remotedesktop_securityGroup | 
| Properties | =global.remotedesktop_properties | 
| VPN Setup | |
| VPN Provider | =global.vpn_provider | 
| Profile Name | =global.vpn_profile_name | 
| VPN Server Hostname/IP | =global.vpn_server | 
| VPN Domain | =global.vpn_domain | 
| Properties | =global.vpn_properties | 
| VPN Access Group Name | =global.vpn_group | 
| VPN Type | =global.vpn_type | 
| Certificate Download (URL) | =global.vpn_certificate_download_link | 
| Certificate Password | =global.vpn_certificate_password | 
| Pre-Shared Key | =global.vpn_pre_shared_key | 
| Authentication Method | =global.vpn_authentication_method | 
| VPN Encryption Level | =global.vpn_encryption_level | 
| OpenVPN Config | =global.openvpn_config | 
For more information on each of these fields, refer to this article.