I'm currently using amforms from a&m impact on a couple of sites. However, it looks like this plugin won't get a craftcms version 3 update. In addition, my requirements for a form plugin have expanded considerably since my clients want more advanced functionality. Therefore, I am now searching for a good alternative.

My requirements are as follows:

  1. It should be possible to prepopulate fields with existing data
  2. Duplicating forms should be possible
  3. Templating completely customizable
  4. Ability to dynamically add more rows of fields (like in a reservation for a hotel where you can add more rooms or persons)
  5. Validation for at least the basic field types
  6. File uploads should be possible
  7. Custom conditions for custom fields (like a checkbox only checkable after checking another one before)
  8. Custom email template
  9. Translatable
  10. Good documentation
  11. Active development

Right now Solspace's Freeform looks most promising and I already know their calendar plugin. However, Sprout Forms also looks quite capable.

Does anyone of you has experience with one of these plugins or can recommend another plugin that meets all or most of the criteria?

Thank you so much for your help!

I work with Sprout and can answer your questions with regards to Sprout Forms.

1. It should be possible to prepopulate fields with existing data

This will happen by default in a lot of standard use cases when you are using Form Templates and when validation fails, for example. It's also possible to populate a Form Entry dynamically using the setEntry variable.

2. Duplicating forms should be possible

You can duplicate a form by selecting Save->Save as New Form

3. Templating completely customizable

Sprout Forms templates are 100% customizable down to the individual field type. See:

  • Template Overrides - allow you to override form templates with your own custom HTML right within your Craft templates/ folder. You get full access to the form templates being output and can customize them however you'd like.
  • Form Templates API - allows you to manage Template Overrides as custom, reusable Form Templates in a plugin or module
  • Rendering Options - allow you to dynamically override certain characteristics in existing Form Templates

4. Ability to dynamically add more rows of fields (like in a reservation for a hotel where you can add more rooms or persons)

Sprout Forms avoids supporting fields that may require javascript and interactivity on the front-end by default (as we can't predict all the potential use cases of how this type of interactivity should be implemented), however, we do support custom Form Fields and Template Overrides which should give you all the control you need to create the advanced field types you need on the front-end and style and script them however you need.

5. Validation for at least the basic field types

All Form Fields provide validation. Custom Form Fields can be created to support additional validation requirements.

6. File uploads should be possible

File Uploads are supported via the File Upload Form Field.

7. Custom conditions for custom fields (like a checkbox only checkable after checking another one before)

Currently, conditional logic must be handled via your templates and CSS and Javascript. Form Fields support adding custom CSS Classes, Template Overrides allow you to customize any details about how your Form and Field HTML is output so you can interact with it how you need, and while it's currently undocumented, you can also add pre-defined CSS Classes as a dropdown option if you create custom Form Templates via the API.

8. Custom email template

Sprout Forms Notifications are powered by an integration with Sprout Email so you have the full feature set of Sprout Email Notification Emails in Sprout Forms.

Similar to Form Templates, Email Notifications allow you to control every detail of the HTML and Text versions of your emails via Email Template Overrides

Reporting is handled in a similar way and is powered by Sprout Reports.

9. Translatable

Translating forms is tricky business. This is because the problem is the reverse of the problem Craft is solving by default. Craft Elements support translations of the content being submitted to custom fields where Form Elements need to support translations of the Labels and Descriptions of the fields being submitted, and the user adds the content afterward in whatever language they are given the option to submit it.

Sprout Forms supports translating a form by duplicating a form. Outside of that, Sprout Forms ensures the plugin itself is translatable however the translation itself would have to happen outside of the plugin.

10. Good documentation

We think we have decent docs and we're always looking to improve, so please drop us a note if you feel we could add a useful example:

Sprout Forms Documentation

If you ever feel stuck or are curious about how to tackle a hard problem using Sprout Plugins, we also offer a free half-hour coaching session

11. Active development

Sprout Forms is built by Barrel Strength Design who is has been involved in the Craft CMS community since it was called Blocks CMS. All of our commercial plugins are actively developed and supported and Sprout Forms will continue to benefit from new features we are developing in our other plugins as well (Email, Reporting, Imports, Fields).

  • Thank you very much for your detailed answer! I will definitely take a look at Sprout forms, and I am still waiting for some answers with regard to Solspace Forms. Thank you, once again, so much for all the effort you put into this! – Luke Nov 9 at 17:05

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.