I have up until now been confounded by attempts to clone content with attached webforms associated with the Webform CiviCRM Integration module. Webform CiviCRM Integration is a great module and I really have great respect for Coleman Watts for writing and supporting the module so well. I don't think I could use my Drupal sites without it.
The big problem I have is that I have some enormous forms associated with class registrations. Well, they seem enormous to me whenever I have to edit or recreate them. I have never found a satisfactory and easy way to clone the forms that I use over and over again. The biggest problem I have is that the Webform portion of the form gets cloned, but the CiviCRM Integration portion in the cloned node copies over with "Enable CiviCRM Processing" off, the number of contacts set to zero, and all the settings at default. I then had to spend seemingly endless hours recreating all of the integration information for the new Webform to work properly. I have, however, discovered a work-around that makes things much faster and eases the process. I use Lastpass to enhance my online password security by creating different random passwords for every login I use. This browser adding also has an interesting and effective tool that allows entered data in web site forms to be saved and then automagically filled in on new forms. My technique is to clone a Webform, go to the CiviCRM integration settings tab, then - Hey Presto! - use Lastpass to fill in all of the settings from a previously saved form.
Here's how I do it step by step. I'm using Commerce Kickstart for these examples so the admin menu will differ from a plain vanilla Drupal install.
Creating Default Webforms for New Content.
I have the greatest difficulty with Webforms attached to content with field collections and entity references. Using Node Clone I found that the cloned Webform data was often connected to incorrect references. I finally settled for using Webform Default Fields, as it did not suffer from this issue, but the resulting Webforms are no longer set for CiviCRM Processing. Webform Default Fields allows a Webform-enabled content type to be created with specific field settings.
Install and activate the Webform Default Fields Module.
Go to content types (www.mysite.com/admin/commerce/manage-content/settings/content-types).
Select + add content type
Fill in the fields appropriately for your content.
From the left menu select Webform, check the Enable webform functionality box, and save.
You should see a new tab with the title of your new content followed by ":Default Webform Fields". You can use this to create the Webform components that you want included each time new content is created from that content type. If you select this tab, the form components will appear, but there will be no tab for CiviCRM.
So how do you set up Webform components integrated with CiviCRM? Go back to manage content from the admin menu (or www.mysite.com/admin/content). You will see that there is a "Webform Default Fields Master Node" just created for the content type you set above. Select "edit" next to this content item and you will then be taken to an edit view with Webform and CiviCRM tabs.
From the CiviCRM tab CiviCRM Processing can be enabled and various options set.
Lastpass Installation and Use to Replicate CiviCRM Processing