create contact form block with prepopulated entity references and send email to content author I am trying to create 3 forms, 2 of them should be made into blocks to show on specific content types. One for anon users and another for logged in users. The other is just a site wide contact form replacement for core Contact.

Anonymous Contact Form: Name, Email, Entity Reference to Content, Message

Logged In Contact Form: Entity Reference to Content, Message (Pull username and email from account)

Site Wide Contact: Name, Email, Message, Term Reference to Category

The Entity reference is important since I will be pulling data from it to populate the email message (like nid, author, etc...)

When a user submits the non-site wide contact forms, Rules should be able to pull the data from the form and send an email to the node author.

Views Contact Form/Core Contact: Can't add entity reference fields (or any fields) to it to link form submissions to content.

EntityForms: Creating forms is easy, but the notification part is convoluted at best with complex but somehow simple data selectors (raw output?) for Rules. Also, the token support is spotty at best (or so I have come across). The prepopulate part worked perfectly, but can't seem to figure out if it is possible to send email based on an Email field or get entity reference tokens like [entityform:field_reference:author:mail]. Doesn't seem to work in Eforms.

Webform: Can't get fields to prepopulate and hide/disable.

Custom: Thinking about just doing this. But I am unsure as to how I can add a entity reference field to a custom (non UI) created form and hide the form. 

Can anyone recommend the best solution or at least which module is capable of what I need?

Thank you.
Consider looking at the Bean module. Here is a quote about its project page:


  Think of a Bean as a method to provide new types (compared to node this would be a content type) which then provides an add content interface to create as many blocks as you require (see screenshot below). The bean content can then be placed around the site just like any other block.


As a bonus, the Bean module also works great in combination with the UUID and UUID Features Integration modules.

On top of that, after you become familiar with the Bean module, you might find other cases in your site where you also want to use the Bean module.