Ok, I'm not trying to ruffle any feathers here. Just after honest opinions.
I have a requirement for what will essentially be a survey platform where users can submit survey responses, in return for credits. A logged in MemberID will need to be stored against each submission so that the correct amount of credits can be credited to the users account.
We're looking at 100+ surveys.
Whilst Umbraco Forms seemed like a good solution at first due to the ability to allow the client to quickly create new surveys as required, I'm starting to see a few cracks in the solution.
Firstly, Json, Json everywhere! Ok, I get it. Having form and workflow data stored on disk makes for less db calls. But this is a horrendous mess. Not only is it un-reliable (Json files not being updated/removed, weird behaviour with duplicates http://issues.umbraco.org/issue/CON-1231 http://issues.umbraco.org/issue/CON-1051) but I can not find any sensible way to essentially clear the Json files and rebuild like you can do with the XML cache. In addition, workflows are totally unreliable for exactly the same reasons.
Next, weird behaviour/un-pretty error handling. Create a form, workflow, and add created form to page template, next delete form and BOOM! error. Seems to be linked to this (http://issues.umbraco.org/issue/CON-1034)
I'm really struggling to get a stable environment and am tempted to start looking for alternatives to recommend to the client.
Open to suggestions, even tempted to build a custom form/survey generator from scratch.
I'm running a site where I use a multipageform to with 16 pages with different questions. On the result page I do a calculation with the result to show what pet suits you the best.
This site currently has 141k entries and still running super smooth. Even the export function isn't takes no more than a couple of seconds.
So forms is super stable.
How do you add the form to the template? I always use a formpicker or I check if the form exists otherwise it could go wrong indeed.
Thanks for the reply.
Form picker is being used to add to the template.
Our setup is slightly different to yours. I'm assuming it's the 1 form to multiple pages?
We need multiple forms (currently around 100) within different pages and categories. Are you using a custom Workflow? I've been finding it incredibly flakey at the best of times.
Also, exporting is a chore with multiple forms so I've written a custom back office export tool to download all entries within a given date range. Even then I had to do some modifications to store the entry data in a separate table as by default, form data such as the fields are stored in Json format, whereas the actual submission data is stored in the DB. So that was never going to scale gracefully.
I'm talking through a rebuild with the client and currently Forms is not going to be on the cards.
In one case we have multiple event subscriptions in one form and a custom export able to filter on formfields without any need of a custom table.
I dont never see the json when exporting. '
When I use the following I get keyvaluepairs that are easy to work with.
FormStorage formStorage = new FormStorage();
RecordStorage recordStorage = new RecordStorage();
if (formGuid != null)
{
List<Record> exportRecords = new List<Record>();
Form form = formStorage.GetForm((Guid)formGuid);
if (form != null)
{
List<Record> recordList = recordStorage.GetAllRecords(form);
foreach (Record record in recordList)
{
KeyValuePair<Guid, RecordField> recordEventField = record.RecordFields.FirstOrDefault(x => x.Value.Field.Alias == "key");
}
}
}
We also use custom workflows a lot without any problems.
Yes I've seen the recordStorage.GetAllRecords() method in the docs.
You won't see Json in the export. What I meant was that how the form is configure, fields, layout etc is stored in a Json file in UmbracoForms/Data/forms .The file is saved with the Guid that you are querying.
On a side note, what version of Umbraco + forms are you using? I've gone between 4.2 and 4.3. I see 6 is available but only compatible with 7.6
I see what you mean about the json in that folder. There should be a entry in the database to restore the file when it's missing. In practice I only had the problem once when I forgot to delete a reference to a test form.
There should be a entry in the database to restore the file when it's missing
That would be incredibly useful!
I could not find anything in the documentation and there are plenty of occasions where I've needed to republish all of the forms. For instance when moving from a pre-live to live environment where the db is in-sync but the files are not. Similar to refreshing the XML cache
I agree, I dont like the fact that Umbraco Forms (UF) relies heavily on keeping things in memory, and writing files as JSON. I've had numerous UF fails, whereby I've had to obtain the JSON from a backup. It's also difficult to keep in synch when you have different environments where fields/workflows get changed.
Having said that, if you have a site which requires the end user to put quite a lot of custom forms on pages, then UF can be very useful.
I have a site using Umbraco Forms as "weekly competition" submissions. With 5K+ entries per week. I did think I'd see some perf inssues, but UF seems to be standing up.
Evaluate the pros-cons for your site, and go with it. End of the day, you're being paid to make a descision - be bold and give it a whirl :-)
You're right, it's a difficult trade off. Especially as the client would like to customise and add new forms on a regular basis. Which UF is incredibly good at.
I just wish all form data was stored in the DB along with the responses.
The volumes you are seeing are inline with the clients expectations so I suppose I shouldn't have problems with performance.
One thing that is a "major stinger", is that UF dosent allow you to edit the form data (easily). And it's very clumbersome to generate reports if you are using SQL. You'll end up with pieces of paper of GUID's stuck to your screen :-)
You could have a "workflow" which stores the data as umbraco nodes - but then you will see perf issues.
How reliable are Umbraco Forms?
Ok, I'm not trying to ruffle any feathers here. Just after honest opinions.
I have a requirement for what will essentially be a survey platform where users can submit survey responses, in return for credits. A logged in MemberID will need to be stored against each submission so that the correct amount of credits can be credited to the users account.
We're looking at 100+ surveys.
Whilst Umbraco Forms seemed like a good solution at first due to the ability to allow the client to quickly create new surveys as required, I'm starting to see a few cracks in the solution.
Firstly, Json, Json everywhere! Ok, I get it. Having form and workflow data stored on disk makes for less db calls. But this is a horrendous mess. Not only is it un-reliable (Json files not being updated/removed, weird behaviour with duplicates http://issues.umbraco.org/issue/CON-1231 http://issues.umbraco.org/issue/CON-1051) but I can not find any sensible way to essentially clear the Json files and rebuild like you can do with the XML cache. In addition, workflows are totally unreliable for exactly the same reasons.
Next, weird behaviour/un-pretty error handling. Create a form, workflow, and add created form to page template, next delete form and BOOM! error. Seems to be linked to this (http://issues.umbraco.org/issue/CON-1034)
I'm really struggling to get a stable environment and am tempted to start looking for alternatives to recommend to the client.
Open to suggestions, even tempted to build a custom form/survey generator from scratch.
The silence speaks volumes...
I'm running a site where I use a multipageform to with 16 pages with different questions. On the result page I do a calculation with the result to show what pet suits you the best.
This site currently has 141k entries and still running super smooth. Even the export function isn't takes no more than a couple of seconds. So forms is super stable.
How do you add the form to the template? I always use a formpicker or I check if the form exists otherwise it could go wrong indeed.
Thanks for the reply. Form picker is being used to add to the template.
Our setup is slightly different to yours. I'm assuming it's the 1 form to multiple pages?
We need multiple forms (currently around 100) within different pages and categories. Are you using a custom Workflow? I've been finding it incredibly flakey at the best of times.
Also, exporting is a chore with multiple forms so I've written a custom back office export tool to download all entries within a given date range. Even then I had to do some modifications to store the entry data in a separate table as by default, form data such as the fields are stored in Json format, whereas the actual submission data is stored in the DB. So that was never going to scale gracefully.
I'm talking through a rebuild with the client and currently Forms is not going to be on the cards.
We have multiple sites running multiple setups.
In one case we have multiple event subscriptions in one form and a custom export able to filter on formfields without any need of a custom table. I dont never see the json when exporting. '
When I use the following I get keyvaluepairs that are easy to work with.
We also use custom workflows a lot without any problems.
Yes I've seen the recordStorage.GetAllRecords() method in the docs.
You won't see Json in the export. What I meant was that how the form is configure, fields, layout etc is stored in a Json file in UmbracoForms/Data/forms .The file is saved with the Guid that you are querying.
On a side note, what version of Umbraco + forms are you using? I've gone between 4.2 and 4.3. I see 6 is available but only compatible with 7.6
I've used them all since its called Forms.
I see what you mean about the json in that folder. There should be a entry in the database to restore the file when it's missing. In practice I only had the problem once when I forgot to delete a reference to a test form.
That would be incredibly useful!
I could not find anything in the documentation and there are plenty of occasions where I've needed to republish all of the forms. For instance when moving from a pre-live to live environment where the db is in-sync but the files are not. Similar to refreshing the XML cache
I agree, I dont like the fact that Umbraco Forms (UF) relies heavily on keeping things in memory, and writing files as JSON. I've had numerous UF fails, whereby I've had to obtain the JSON from a backup. It's also difficult to keep in synch when you have different environments where fields/workflows get changed.
Having said that, if you have a site which requires the end user to put quite a lot of custom forms on pages, then UF can be very useful.
I have a site using Umbraco Forms as "weekly competition" submissions. With 5K+ entries per week. I did think I'd see some perf inssues, but UF seems to be standing up.
Evaluate the pros-cons for your site, and go with it. End of the day, you're being paid to make a descision - be bold and give it a whirl :-)
Thanks for some additional insight.
You're right, it's a difficult trade off. Especially as the client would like to customise and add new forms on a regular basis. Which UF is incredibly good at.
I just wish all form data was stored in the DB along with the responses.
The volumes you are seeing are inline with the clients expectations so I suppose I shouldn't have problems with performance.
Thanks, once again
One thing that is a "major stinger", is that UF dosent allow you to edit the form data (easily). And it's very clumbersome to generate reports if you are using SQL. You'll end up with pieces of paper of GUID's stuck to your screen :-)
You could have a "workflow" which stores the data as umbraco nodes - but then you will see perf issues.
is working on a reply...