All Forms allow Users to edit their details in the CRM. This includes all standard fields like "name" and Custom Field Sets.
All Forms allow Users to edit their details in the CRM.
This includes:
Standard Form Fields are stored against the Case only and are not stored against the CRM record.
This Article will:
The flowchart diagram below demonstrates an abbreviated summary of what happens when a Form is submitted on Siteglide:
The most important points to draw from this are:
See here for a more detailed explanation of Adding Custom Field Set Fields to a Form
In summary, to add Custom Field Set fields to a Form, you'll need to:
If you use a default Form Layout, then attaching the Custom Field Set to the Form will automatically add the fields to the Layout. If using a Custom Layout, we recommend you copy and paste the code to a new Layout before editing it.
Here is an example of a Custom Field Set field added to the Layout:
Note the data-cfs attribute which gives you a clue this is a Custom Field Set Field and will therefore submit to the CRM record.
It's extremely useful to display the current values in the fields on Page load. This shows the User the data that is already stored and allows them to make a decision about whether the data needs to be changed.
In Order to fetch the existing Custom Field Set data for the current User, they'll need to be logged in. This means they'll need to have already completed a Sign-Up Form to any Secure Zone and set up a password. You may find it helpful to build an onboarding flow with two separate.
To achieve this, you'll need to combine two Siteglide Features by nesting a Siteglide Form inside a User Details Layout. Step 1) User Details Contain the existing CFS Data To fetch the existing CFS data for the Current User, you'll need a User Details Layout. {% include 'user_details', layout: 'user_details_edit_form_container' %}
Parameters:
Step 2) Place the Form inside User Details The User Details Layout has direct access to Custom Field Set data, but normally the Form does not. In order to achieve this, we place the Form inside the user_details Layout. Due to Liquid inheritance, the Custom Field Set data will then be available inside the Form. Output your Form by writing the code for the Form inside this user_details Layout instead of directly in the Page e.g. {% include 'form', id: '10', layout: 'custom' %}
Step 3) Use Liquid to prefill the HTML values This will allow you to access the existing User data and their related Custom Field Sets within the Form.
In this example, we have a Custom Field Set "Checkout Address" with a "Profile Picture", a Favourite Colour and a Country field:
As the value attribute in HTML determines the pre-filled value of a field, we can use Liquid to add it. In most cases, there is an <input> element which can be given a value, eg. in the "Favourite Colour" field:
Values can also be added to <select> elements:
File and Image fields are more complex, each has two elements- a type="file" and a type="hidden" field. If you wish the File upload to have validation, both the value attribute and .required class should be added to the type="hidden" input. This is because this is the field that actually has a name attribute and sends to the database.
This adds the value to the field, but for the Profile Picture, I may also want to show a larger preview of the image outside the field. You can use the same Liquid to display the image, using the asset_url filter to complete the path:
Attributes:
You may wish to split your fields into multiple "User Profile" sections where the User can enter a set of fields, save and then move to another section. To keep the Cases tidy for multiple Forms and be most efficient with Database Usage, you can optionally use:
This will mean that Cases for each part of the Form will still be collected in the same location in Admin, but you can use the Form Layouts to control which fields are displayed in each view.
All Forms must include the user_id and email fields, but if you want to hide these from the sections which are not visible, you can give these type="hidden" so that they are not seen in the Sections which do not require them. You can auto-fill their values using the steps in the previous section.