Is Drupal Entityforms a Good Alternative to Webform?
Last month, we ran a webinar called 45 Modules in 45 Minutes.
In the webinar we listed 45 of the best Drupal modules in 45 minutes.
One of the modules we mentioned was Webform, which is a module we use in every beginner class.
In the comments on that webinar, someone mentioned Entityforms as a better option than Webform and one that is more tightly integrated to Drupal.
I decided to take Entityforms for a test drive …
Step #1. Install Entityforms
You need to install at least 6 modules to make Entityforms work:
- Entityform: https://drupal.org/project/entityform
- Entity: https://drupal.org/project/entity
- Views: https://drupal.org/project/views
- Entity Rules: https://drupal.org/project/entity_rules
- Entity To Text: https://drupal.org/project/entity2text
- Rules: https://drupal.org/project/rules
Step #2. Set up Entityforms
- Go to Structure > Entityform Types
- Click Add entityform type
- Enter the Name for your form:
- Choose which Roles are allowed to use this form:
- Click Save Entityform type.
Step #3. Add fields
One of the big advantages of Entityforms over Webforms is that it used all of the normal Drupal field system.
- Go ahead and add all of the fields you would like on your form:
Step #4. Set up the emails
Entityforms uses the Rules module to send emails:
- Click the Rules tab
- Make sure that “Entityform Notification Email Admin” is selected. Click Add.
- Enter the Subject for the emails you will receive.
- Check the box Show submission.
- Enter the To Email address when you want to receive results.
- Click Save Changes.
Step #5. Use the form
You form will now be ready to use:
Entityform or Webform?
It’s unlikely that we’ll replace Webform in our beginner class any time soon. Webform is just really, really easy to use.
However, for more experienced users, Entityform is a really good option. It relies far more on the Drupal core and on key Drupal modules, whereas many features in Webform are not seen anywhere else.
One example sums up both of the points I just made. Webform has it’s own CSV export feature which is easy to use. Entityform needs Views data export, which reqiures more experience to use, but is undoubtedly more powerful.
Do you know of any well-supported, out of the box way to implement a contact-us-type form that ONLY submits the data to an email address, and does NOT save it to the DB? There seems to be some discussion of hacking webform, but I didn’t know if Entityform or something else already does this theoretically simple task…
Hi Dave. The default Contact module, perhaps?
At least in Drupal 8 yes, where you can now also add fields to contact forms!
Yes. There is a webform add-on module which deletes submissions after they’ve been sent.
Is there any way to use webform where it is referenced or linked to a specific node? Say, a job listing that has an “apply now” button that links to an application form.
End goal would be to set up a hidden view for someone to see how many applications a specific listing has had, which is why I want to reference it. It seems entityform can do that via entityreference, but the form i am needing to create is very long, so creating it using webform will be much easier.
Good question, Paul. I’d need to test with Entityform specifically (I haven’t yet), but one of these or a similar module, perhaps:
[url=https://drupal.org/project/inline_entity_form]https://drupal.org/project/…[/url]
[url=https://drupal.org/project/entityconnect]https://drupal.org/project/…[/url]
thanks steve for a detailed intro for entityform.
The another disadvantage can be that it has dependencies on other modules such as views, where as webform doesn’t has any dependency which I think can be ignored, because normally we use these modules.
Over this the modules allows lots of features and control as compared to webform, such as:
Add all fields defined by core/contributed modules
Uses Views to display submissions.
Submission page title.
And many other.
In addition to above details, attached screenshot shows how we can open form page to submit the entity form. Because I was unable to find the link for the same quickly.
“has it’s own”. Remember, no apostrophe in “its”.
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
Why not use any of the existing CRM modules (i.e. RedHen)? Or, alternatively, a CRM system like Salesforce with Drupal integration.
Thank you for your reply. I will try the existing modules.
hi sir
Let us say that in case we decided not using an existing CRM module and we decided to go with building custom form or module for people’s personal info’s and data management , as “Bosve Svensson”what is the best option between Webform, Entityform Content type ?
Thanks. I guess I’m just obtuse – this looked easier to me than a Webform.
Thanks for the write up of Entityforms!
RE: You need to install at least 6 modules to make Entityforms work.
This only true if you want use the submodule Entityform Notifications to send emails.
If don’t need emails to be sent or you want to you use another way to send them you only need Views and the Entity API.
I extracted out the Rules logic to Entity Rules so that you wouldn’t need to install Rules to use Entityforms.
Thanks again for the write up!
You’re welcome, Ted. Thanks for writing the module.
I see more and more use-cases for Entityform now that I know more about it.
Is there a way to prevent publication of Entityform submission until it is approved by the moderator?
With Webform it is really easy. But what about Entityform?
The main question I have regarding webforms is will it be ported to Drupal 8? I hear different things, but don’t know. I heard that the author of webforms is working on Backdrop. Any information on this?