Sitecore Forms Extension Pack

Created: 4 May 2018, last update: 14 Oct 2018

Stockpick Sitecore Forms Extension Pack

When I start exploring Sitecore Forms a few months ago, I noticed I miss fields and save actions and validations. The current available are not extensive enough.
Therefore, I started an open source project called Sitecore Forms Extension Pack.  I found out it was easy to extend Sitecore Forms and there was great documentation. Nice that is something else that dotPeek. The current project status is I have not done much about it yet. In addition, some things need to be done by Sitecore, I think about upload or adding items to the master.

At SUGCON I was very interested in the talk from Kamruz Jaman and Mike Reynolds the held a presentation about Forms. About the same findings and thoughts. The also show a save action to Slack. At SUGCON there was also a presentation from Alexander Doroshenko
about Using Sitecore Flow to empower Marketers, and he makes an save event to Microsoft flow.

Connect with CMS
First, there is now no interaction with the master database, CMS in WFFM there was in the beginning a webservices and later the event queue from the core database was used. See WFFM and Secure Data But using this queue makes it more difficult to scale the core database, multi region. If you want to use the event queue you can check this: http://blog.martinmiles.net/post/editing-content-on-a-cd-server-part-2-event-queue-to-sync-data-with-master
But today in a cloud first world we need other solution than before. Micro services. Serverless. Perhaps maybe there is lesser need to store something in the master database. An solution to communicate from CD to cms is using an Azure queue. This save action is available in the Stockpick Sitecore Forms Extension Pack and can be used as starting point to process your Sitecore form.

Sensitive data.
In the current Sitecore forms 9.0 update-1 the solution to handle secure data is not storing it, See the password field. Well I remember a lot of issues with WFFM about secure data see wffm and secure fields  For Sitecore 9 see:
https://joaoneto.blog/2018/01/21/make-sitecore-forms-more-secure/
https://sitecorejunkie.com/2018/05/03/encrypt-sitecore-experience-forms-data-in-powerful-ways

Sitecore Forms Projects:

The Stockpick Sitecore Forms Extention Pack with this extension pack you get extra validations, save actions and advanced fields. Including the Azure Storage Queue save action
https://github.com/jbluemink/Sitecore-Forms-Extension-Pack

A Send E-mail Action to Sitecore 9 Forms
http://www.nishtechinc.com/Blog/2018/April/Send-E-mail-Action-to-Sitecore-9-Forms

The Save Action to Microsoft Flow
https://github.com/adoprog/Sitecore-Flow

RegEx validation
https://ggullentops.blogspot.nl/2017/10/sitecore-9-forms-custom-validation.html

Save Actions
This is an example of the date you have in a Save Action, see the AllowSave propertie handle this on a proper way.

 

{
	"FormId": "de772a1c-d44d-4823-b9ba-eb5f42947102",
	"Fields": [{
		"MinLength": 0,
		"MaxLength": 255,
		"PlaceholderText": "",
		"Value": "testdata",
		"ValidationDataModels": [{
			"ItemId": "{43EBBBE5-F256-4ABE-8F5C-022F5AB7ED74}",
			"Name": "Name Validation",
			"DisplayName": "Name Validation",
			"ModelType": "Stockpick.Forms.Feature.ExperienceForms.Validation.NameValidation, Stockpick.Forms.Feature.ExperienceForms",
			"Message": "{0} contains an invalid name.",
			"Parameters": ""
		}],
		"IsTrackingEnabled": true,
		"Required": false,
		"AllowSave": true,
		"Title": "Name",
		"LabelCssClass": "",
		"CssClass": "",
		"ItemId": "85a5746c-0076-42d8-8714-78b2e0dc0b67",
		"Name": "Single-Line Text",
		"TemplateId": "{0908030B-4564-42EA-A6FA-C7A5A2D921A8}",
		"FieldTypeItemId": "{4EE89EA7-CEFE-4C8E-8532-467EF64591FC}"
	}, {
		"MinLength": 6,
		"MaxLength": 255,
		"PlaceholderText": "",
		"Value": "securepassword",
		"ValidationDataModels": [{
			"ItemId": "{83E96D09-11C8-4132-8A8A-76D8DB8208D6}",
			"Name": "String Length Validator",
			"DisplayName": "String Length Validator",
			"ModelType": "Sitecore.ExperienceForms.Mvc.Models.Validation.StringLengthValidation,Sitecore.ExperienceForms.Mvc",
			"Message": "{0} must have at least {1} and no more than {2} characters.",
			"Parameters": ""
		}],
		"IsTrackingEnabled": true,
		"Required": true,
		"AllowSave": false,
		"Title": "Password",
		"LabelCssClass": "",
		"CssClass": "",
		"ItemId": "7f796e5d-d794-40fc-99d5-2a626df3a860",
		"Name": "Password",
		"TemplateId": "{05D71800-56BE-4A53-AFAB-3819DA817A4A}",
		"FieldTypeItemId": "{668A1C37-9D6B-483B-B7C1-340C92D04BA4}"
	}]
}