Many common enhancements to Entityform can be achieved by combining it with other modules that add Field functionality.
Below are examples of ways to add functionality through the use of other Entity or Field related modules.
Entityform supports basic field validation such a required field but for advanced field validation the Field Validation module can be used.
The Conditional Fields module can be used to make fields in an EntityForm conditional. For example, if you have a feedback form with a feedback type field with two options, Problem, Suggestion, you could make a field "What was the problem?" and a field "What is your suggestion?" which appear depending on the state of the feedback type field.
Creating Multi-page forms with Field Group
The Field Group's "Multi-page" feature will allow you to create Entityforms that span multiple pages. View this screencast Multipage feature in field_group. Although it doesn't deal directly with Entityform the process is the same.
Reacting to Entityform submissions with Rules
The Rules module allows site administrators to define conditionally executed actions based on occurring event conditions ("Event-Condition-Action", see: ECA-rules).
Rules can be used to make custom reactions to events such as submitting Entityforms. It could be used for example to add a Role to a user depending on the value they submitted in an Entityform.
Completeness of Entityform using Field Complete
In some situations you want to mark an entity field to indicate it should be completed but not enforce its completion at that time. This module extends the choice between Required and Not required to "desirable" completion.
The Field Complete module can provide a display of how complete an entityform is by marking fields as "should be completed". There is rules and views integration.
Embedding Entityforms on Nodes using Entity Reference
Entityforms can be embedded on Nodes(and other entities) using the Entity reference module. The Entityform will be embedded as a field in the node.
Customizing forms for different user roles using Field Permissions
The Field Permissions module allows site administrators to set field-level permissions to edit, view and create fields on any entity.
The Field Permissions can be used to expose different fields to different users based on their roles.
Field Permissions can also control which Roles can view different fields in Entityform submissions. This can useful if sensitive information is submitted in a Entityform.
Prepopulating form fields from the URL
Ajax Form Submission
The Ajax form entity module allows you to enable ajax submission of your Entityform. This can help, for instance, if you need an Entityform to load and handle submission all within a modal window.