Skip to main content

How to retrieve WFFM form data when Save Form Data to Storage is unchecked

Recently, we had situation where for one of our WFFM form (Contact Us form) Save Form Data To Storage was unchecked by mistake and published unknowingly by
one of our content admin. This we noticed after few days.
Between this period, data stopped storing into reporting database and reports were not showing data for the latest submissions in WFFM form reports.

Regarding the same, just wanted to document our options and approaches which we thought and recovered the data for this period.

In Sitecore 8.1, it is possible to configure WFFM data storage in different ways (using SQL or Mongo providers).
It is also possible to collect WFFM data with analytics disabled.

Querying Mongo DB:

Since the "Save Form Data To Storage" field has been unchecked, the data was not saved to reporting DB. However, it can still be found in analytics MongoDB,
in the "interactions" section. Unfortunately, writing these values to reporting table is a very nontrivial task and it would require lots of
customization in order to make this data appear in reports. But you still can obtain the data, and in order to get interactions with form submit,
you can use the following query against your Mongo instance:

db.getCollection('Interactions').find({'Pages.PageEvents.Name':'Submit Success Event', 'Pages.PageEvents.CustomValues':{$exists:true}})

The actual form values would be saved under "Pages.PageEvents.CustomValues._v" array: you would be able to find field names, IDs and values there.

Querying CRMs:

There is another way or you can call it as a workaround to retrieve the data if your application is connected to any CRM system like Salesforce etc.,

Here are the steps.

1. Using Salesforce for example, you can login to the account using your credentials
2. Navigate to Leads or Contacts based on the data of your target
3. Filter the data based on the dates or you can select all 
4. Choose the right-most icon to Export to excel
5. Now you filter the data based on different parameters.

Hope this was useful tip to get the Form data back. Let me know your comments.

Comments

Post a Comment

Popular posts from this blog

Steps to create a Sitecore JSS app and Deploy to Sitecore

If you are a beginner in Sitecore JSS and you are looking step-by-step by process to setup your first JSS App with Sitecore, please proceed further and setup up your first JSS App along with deploying it to Sitecore. Before we jump start creating JSS APP, let us start with a quick introduction to Sitecore JSS. What is Sitecore JSS?  Sitecore JavaScript Services (JSS) is a complete SDK for JavaScript developers that enables you to build full-fledged solutions using Sitecore and modern JavaScript UI libraries and frameworks. Build Headless JavaScript applications with the power of Sitecore. Use your favorite JavaScript framework powered by an enterprise experience platform like React, Angular or Vue.js. Prerequisites for Connected mode with Sitecore Required Installations node.js v6.9 or later npm v5.7 or later Sitecore 9 or later installation with JSS(For JSS component ref, https://dev.sitecore.net/Downloads/Sitecore_JavaScript_Services.aspx) Required Settings  Sitecore

Custom Fields in Sitecore (Custom DropLink, DropTree, MultiList, TreeList and Required Field Validator)

Custom Fields in Sitecore Just thought to share few of the custom Sitecore fields that I have created for one of the sample project. This may help the community memebers to easily incorporate them into their project if they need any of them. Here are few. 1. Custom DropLink using Sitecore.Data.Items; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Text; using System.Web; namespace SitecoreCustom.Web.Extensions.CustomFields { public class CustomDropLink : Sitecore.Shell.Applications.ContentEditor.LookupEx { protected override void DoRender(System.Web.UI.HtmlTextWriter output) { this.ExcludeItems(); base.DoRender(output); } private void ExcludeItems() { Item item = Sitecore.Context.ContentDatabase.GetItem(base.ItemID); var LinkedField= Sitecore.StringUtil.ExtractParamete

Sitecore JSS - Custom Rendering Content Resolvers

In Sitecore, while working for real-time projects, you may get scenarios where you would see a need to customize you rendering output to serialze. Sitecore provides three different ways of customizing your rendering output with Sitecore JSS. They are as below. • Use JSS GraphQL Support - Using Integrated GraphQL queries • Use Out-of-the-box Rendering Content Resolvers - Using Sitecore JSS built-in Rendering Content Resolvers • Implementing a Custom Rendering Content Resolvers by inheriting RenderingContentsResolver Why Customization? In Sitecore development, many times we encounter scenarios to deal with hierarchical item structures like multi-level menu, product category, product sub-category, product details, forms etc., and even, in case where there is a need to combine the Sitecore data with any non-Sitecore data. In these types, Sitecore JSS is not able to serialize item structures with sub-hierarchies into JSON. Sitecore Jss allow us custiomize in