Under the hood, when you place a webform field under a Node (or any entity really) and make a submission through that entity, the entity is recorded in the submission. If you look at the webform_submission
table, two columns are used to track this: entity_type
and entity_id
. These two columns are available as relationship points in Views, tying Webform <- Webform Submission -> Node
. The webform field is also a special extension of the entity reference field, allowing an entity to reference a webform - also available as a relationship in Views.
With this setup, you can make complex relationship chains in Views that allow you to list and filter down forms/submissions in various ways:
- Filter submissions by Node.
- A-B test which page made the form more effective.
- Filter Forms by Node.
- If a user has "preferred topics", and Form Nodes have said topics, you can create a list of Forms based on those topics.
Webform <- Submission -> Node -> Taxonomy Terms <- User
- Filter Forms/Submissions by another entity related to a Node.
- Only allow access to forms that are assigned to a Group.
Webform <- Submission -> Node <- Group Content -> Group
If I want people to use the node, but someone finds the direct form, then that can be confusing for people needing to review all submissions.
You can disable direct form access in the webform config. I typically disable direct form access if I place forms on entities.