When I was first researching Entityform and other survey form modules, I had four basic questions I was trying to resolve.

  1. I don't want to create a survey form, so why would I want to use a survey form module?
  2. How does Entityform help solve my problem?
  3. When should I use it
  4. How is it different from other solutions?

After doing some research and talking with Tedbow, this modules author, I think I can start to answer these questions.

I don't want to create a survey form, so why would I want to use a survey form module?

I just had this same discussion with a friend of mine the other day. She wanted to include a signup form at the bottom of an event content type node. This sign up form would allow people to register for the event. (Yes, I know she could’ve used the signup module. However she needed more functionality than the signup module offered.) I suggested she use either Entityform or Webform. Her immediate response was "I want to create a signup form, not a survey form". And therein lies the confusion of “survey” form modules.

Survey forms modules are the name given to the class / category of modules that enable you to create a form that will capture the additional information that is NOT designed to be content on your website. What do I mean by this?

System content is information that is meant to be displayed on the home page or subsequent page and is meant to be read by most, if not all, of the site’s users. Survey information, on the other hand, is not supposed to be available to the general user community. It is meant to be read by the person submitting the information and the person(s) responsible for processing that information.

Entityform (and other survey modules) can be used to create any form where you need to gather additional "private" information. Some examples of the types of forms you can create:

  • Surveys
  • Contact forms
  • Event registration (see also Entity Registration)
  • "Was this article helpful?" questions that appear at the end of articles.
  • Application forms such as
    • Apartment
    • Club Enrollment
    • Employment
    • Scholarship
    • Volunteers

You can argue that surveys are not private information as the results are often published. Notice, I said the results are published, not the individual survey forms. The information on the individual survey forms are private.

How does Entityform help me solve my problem?

Entityform helps to solve your problem by enabling forms to be attached to menus or content types. You can configure each form to be:

  1. Draftable – That is, the user does not have to complete the entire form in one sitting. Rather, the user can complete pieces of the form over time. When they’ve entered all the required information, they can then submit the completed form.
  2. Single or multiple responses - You can configure the form to allow the user to submit either a single response or multiple responses per form.
  3. Email the response – Using the Rules module, you can specify to whom the response should be emailed.

The responses to this form are stored as nodes with an entity type of “Entityform Submission”. You can access the responses using the Views module or manipulate the data using any entity aware module.

When should I use Entityform?

This is a somewhat difficult question to answer at this point as we need to understand the differences between Entityform and the other survey type solutions. So please let me address this question at the end of this article.

How does Entityform differ from other solutions?

Although Entityform is powerful tool, it is not always the best solution. There are many ways to create survey type forms. Unfortunately, I do not have time to compare Entityform to all of the different methods. Therefore, I will compare Entityform to Content Type and the Webform module. Webform is one of the other big players in the survey arena.

While these "survey" forms enable you to capture important information from your site's visitors, this information would normally not be your "site content". For example, let's assume you are developing a web site for a company that owns apartment complexes. The site content, which is view-able by all visitors, would contain articles about the different complexes and their amenities, locations, and nearby attractions. The main goal of the site would be to entice the viewer to submit an application to rent an apartment. However, this application would never become "site content". That is, the application information would not be published on the web site for all visitors to view.

That, in a nutshell, is the difference between survey / application information and site content! Site content is meant to be viewed by most, if not all, of your site visitors. Surveys or application type forms are not meant to be viewed by the general public. Rather, they are normally viewed by the person who completes the form and the person(s) who processes the form.

This basic difference is critical to understanding when to use survey modules such as Entityform and Webform and when to use Content Types such as articles or basic page.

Below is list of advantages and disadvantages that Entityform have over other methods of creating user submit-able forms.

Entityform and Content Types Pro & Cons

Entityform has two major advantages over adding a new content type.

  1. Entityform allows users to have the ability to create new forms without requiring them to have permission to create any and all Content Types.
  2. Entityform also allows the creation of a large number of forms without "cluttering" the Permission form. This is because the role permissions for each form are specified in the Access Settings vertical tab of the Edit Entityform form. Creating many different Content Types may create administrative complications on a site.

  3. Nodes are usually used for user generated and user viewable site content. Entityform modules does not produce nodes. Therefore, some advantages of Content type are:

  4. More modules that integrate with node permission regarding who can view nodes
  5. More modules that help with how and where you can view nodes.

If I fill out a survey or apartment application, I would not expect to have everyone see that information. However, if I post a blog, then I would expect everyone to see it.

Entityform and Webform Pros & Cons

Entityform Advantages

  1. Entityform submissions are regular Drupal entities(most other advantages result from this)
  2. Uses Drupal Fields - can make use of countless contributed modules
  3. Rules Integration - provides very flexible notifications system
  4. Views Integration - just works and submission View screens for admin and users can be customized.
  5. Rules can determine all values of submission via Fields tokens
  6. Because individual modules provide different fields, each field generally has more options than Webform
  7. Many of the field modules you have installed already can be re-used for surveys

Webform Advantages

  1. Adding Webform components may be easier than creating Fields,
  2. Webform stores values more efficiently, making it faster for forms that have a large number of fields (50, 100, 200+),
  3. Built-in support for types like markup, time, dates, and grids (likerts) without additional modules.
  4. Built-in analysis tools.
  5. Built-in conditional field support (show field A when field B is X)
  6. Built-in multiple page support.
  7. Also has hundreds of add-on modules, but they only work specifically with the Webform module and not other field-based modules.

When should I use Entityform?

Now that we understand all of the differences, my recommendation would be to use this module when you need to create a survey or application type form that integrates with other existing field or entity aware modules such as date, email, links, views, display suite, panels, rules, calendar, features.

Comments

jasom’s picture

I have classifieds site. I want to create "contact-classifieds-author form" displayed under every classified node type. There should be name, email and text fields. I need email notification to form submitter, node author and site admin.

Is this possible to do with entityform?

amjad1233’s picture

I know I am being a little problem. But is it okay if I use it over 100 fields ?

Or is it going to be future ???

Thanks a lot.

Regards,
Amjad
Web Developer,
Emerging Stars.

gatman’s picture

Should I use Entityforms?
Posted by jasom on April 10, 2013 at 4:36pm

I have classifieds site. I want to create "contact-classifieds-author form" displayed under every classified node type. There should be name, email and text fields. I need email notification to form submitter, node author and site admin.

Interested if you have a solution / answer this

Thanks

jasom’s picture

I found out that Webform 7.4 can do it. Use token current-page-title and set up Webform block display correctly.
But I'm using author contact module right now.

Update: I don't use "Author contact" anymore. See this tutorial how to set similar functionality using Webform.

dunecat’s picture

Hi,
we a currently building a pretty complex forms, with contain more than 80 fields, different email notification messages depending on some criteria (that should be coded, my wild guess for now). I started to explore Webforms-7.4 module. What would be your recommendations regarding long forms ? what module is better ? and what it depends on?
Thank you

tedbow’s picture

I am not sure about the size limits on Entityforms but 80 might be pushing it. Here is related issue #2091819: Form creation is very slow on 100+ field forms.

I hope to get more info from the submitter

jcisio’s picture

It also depends on how many submissions do you have. If you have 10,000 submissions, then you have 10,000 entities, each have fields stored across 80 tables (so when you load a submission, you have to join across 80 tables, too). Also, load 10,000 will take a lot of times, because there are a lots of hook to invoke for each entities.

tedbow’s picture

I think all that is true expect

so when you load a submission, you have to join across 80 tables, to

Entities aren't actually loaded this way. Field values are loaded separately I think. But still a lot of queries.

bopra’s picture

Hi

I am building an application that people in marketing are going to be using it as a CSM(Customer Management System).
Additionally they want to be able to visualise data in form of charts and these charts would be sent daily to management.

Which of these would you use and why?

1. Webform
2. Entityform
3. Content type

delacosta456’s picture

Hi
Please let us know if finally somebody told you which on you used finally and why..!
it may be useful to help other people decide quickly with the best solution in this "your kind of situation"./

Also , as now the webform module 7.4 is a complete rewrite and can be extended to entity with webform entity module what is the best solution between Webform Entityform and Content type when building and an employment application : like payroll system, preparing employee salary according to his status : Director, Accountant etc

pulsar007’s picture

Hi

I don't know if there is a difference between Webform and EntityForm for this issue but how can you make one form field filled with a value taken from a site content field ?

One example is the event registration: you see the event content with all the fields describing the event and below a registration form.

In this registration form we have a hidden field that gets the title of the current content (the event) so that the web master will be able to easily see to which event this registration is for.

Can EntityForm do this please ?

thanks

cyril

deanflory’s picture

Quickly scanning-by your comment/question, you might want to look at Entity Reference and drop one of those fields into the form.

piyushpoddar’s picture

Another noteworthy benefit to add to "Webform Advantages" could be the default feature of data export to CSV etc..

tedbow’s picture

It's not quite the same but Entityform will export via Views Data Export if you turn on that module. There are Views for it but they aren't turned on without the module.