Fast Forms
Details
Oh gee I was so excited about this product - a proper form building tool inside of Salesforce. It has been quite a while since I looked at this product, so I am looking at it again with fresh eyes because they have done many updates, and I have a new project that I could use Form Assembly for, but I still would like my forms closer to Salesforce.
Although the issues list has gotten way smaller and the good things list has gotten way bigger, I still can't recommend this app for anything more than the simplest of forms. It is such a shame. It is really getting some great new features. But just the inability to see the field API name after you re-label the field just makes it almost impossible to use.
Setup
There is no setup after installing - just go to the Fast Forms Tab in the Fast Forms app.
You have to grant access to a number of third party services, and your data is (temporarily) stored on FF Servers, so beware of this - it might be a huge No No for you!
Documentation
http://visualantidote.com/sitepages/ffsfusermanual.aspx
http://www.visualantidote.com/fastforms/help.aspx
The documentation is not linked to from the website (or I can't find it), only from the appexchange or from within the product.
Note this app is NOT lightning ready and you can not even use it in Lightning!
Issues
- GRR, just like FormAssembly the links to the help document inside the app are not target="_blank" so they take you away from where you are! Not cool. This is such an easy usability thing to fix!
- There can only be one primary object. This means:
- No chatter posts - chatter is a second primary object. See work-around below but overly clunky.
- No hierarchical structures - you can't do children of children. (You might be able to do that with a Next button and redirect to another form).
- There is no simple regex or similar data validation.
- No Dynamic redirect URLs. I want to redirect to a URL that is saved on my record (eg set by workflow on record create or formula that references another record).
- Since you are adding data directly into the object there is no intermediary steps, so you will have to create many fields on your objects and update your main fields via workflows. Sometimes this could mean duplicate fields for many of your fields.
- A few too many clicks to create the forms - unhiding and hiding sections. Still an issue.
- And what is with the advanced options checkbox just to show / hide one button - clunky.
- After you change the label of the field there is no way of know which Salesforce field it is linked to - this is BAD! How is this still an issue? This is outrageous and quite a deal breaker.
- The data is there in the XML - why can't it be simply shown on the UI?
- Can't preview rules - have to publish the form to test the rules.
- They make a big thing about being able to publish files to chatter, but there is no way to just add a simple chatter post!
- OK, so you add a custom field to the object, make it a hidden field on the form, add a default value, create a Process Builder workflow to add a chatter post to that record when a record has been created with that default value. A work around, but clunky.
- There seems to be no way to add attachments to non primary objects - this is almost a deal-breaker. Still an issue.
- There is not even any way to comment on any parts of the form (yes, I know Form Assembly doesn't do that either!) -eg to say - don't change this default value it triggers process XYZ to add the opportunity.
- Why oh why can I not set a default required label? I'm just going to get very inconsistent forms.
- You can do formulas now, which is great!, but you would probably need to use Javascript to do something other than basic. Really takes away from their catch phrase of "No technical expertise required".
- I tried to create a total of the fields submitted on my form but since I have to know the API name of the field, and I CAN NOT SEE THAT once I have changed the field label I found it almost impossible to work out which field it was.
- AND you need a salesforce field to show the formula - you just can't have a text field on the form to show the formula.
- No related lists - eg have the user enter one or more child records by clicking a plus button on the form.
- No Dynamic branding - I don't want to have 3 forms for 3 different brands - it's a nightmare to maintain.
- I might be able to apply some CSS on the website where it is embedded but that is still an issue to maintain and needs a web dev.
- Oh, I might be able to add 3 different static images and use Rules to control them - yes that is what I have to do with Form Assembly too, which is just such an absolute pain!
- Oh the Lookup records are styled atrociously - so much so that I don't even know if you could style them appropriately - they use a standard view - you would have to limit that view to two fields max. See the help notes on this.
- I tried, I really tried. I could not work out a way to make the child object the primary object and set the lookup object as the default lookup (I would like to pre-fill it). The lookup field on the child object was not even on the fields pallet - so weird. It JUST CREATED A NEW RECORD in the object I was trying to lookup to - that is just NOT COOL! Look, there must be a way to do this and if I spent another 6 hours on it I could probably make it work, but nope.
Publishing
- You can only send by email if you have an email address on the primary object. So make Contact your Primary Object and make Account a Secondary object.
- The sample lead form had the submit button way over to the right. The form I built did not. Weird. (and that was with no custom styling).
Styling
- The styling of the forms is not bad, but wow, no option to style them at all?
Native?
- It says it's native to Salesforce but it does not create a link using your own sites URL - so therefore it's not creating a sites form - what is it doing?
- Ah, I suppose it says "the first 100% native form builder for Salesforce". It's just the form builder that's native - the form submission is not.
- I don't trust apps that link to third party APIs without any explanation of why and what data is going to and coming from third party sites - this app links to three third party sites. It at least needs to be documented in the knowledge base as to what these sites are and what they do.
Data
- One record I created stated the record created was a Contact, the next one was an Account. I would have to work with it a bit more to work out what it does here. (I had changed the form a bit, but my primary object was still Accounts).
- Error logging is all or nothing - an annoying email on every form created with an error or the form submission record just gets created.
- Who are the records owned by? (see below) (of course - write a workflow).
- OMG! Validation rules just prevent the record from being created! WTAF?!?!? No details back to the user, no ability for the user to correct the value, NOTHING!
- So, if you had some validation rules you would have to NOT use those fields, create new fields that don't have the validation rules, and then use workflows to update those fields with valid data.
- PLUS the submission just goes away - you can't see the data that is submitted at all. This is just scary. I can NOT use this product! Why isn't the XML of the form submission at least added as an attachment to the Form Submission record?
- Add the Record owner to the form and set the default record owner.
Notes
- Lookup values can be accessed on the forms, but they will publish ALL your Salesforce data in the view that is set for that Lookup record so BEWARE! AND the lookup styling is very bad bad bad. They at least address this in the help, a bit.
- You have to be VERY careful you are not exposing confidential information in picklist values via the forms. Do really good testing!
- Watch for duplicates - a record will NOT be created if the form is an upsert and there are two matching records. What happens to all that data? (There is a note on the help doc that says it's stored on FastForms server, but how do you get to it?)
Changing the Objects
As Fast Forms is just an XML layer on top of your salesforce fields, it can't and won't know if you change or delete fields in your object. You will have to keep a good amount of documentation to ensure that people know which fields are used by FastForms - I would suggest at least stick a FF or FF-MyForm in the description field to alert people that this field is also used by Fast Forms!
Good Things
- It's now somewhat mobile responsive! NEW! This is good.
- Upserting!
- 14 related objects now! but still no children of children!
- Yay! You can custom name your file uploads now - and with Formulas! NEW!
- The colour coding of objects - that would be so handy if you could add multiple objects.
- Very Nice rules engine
- You can do headings and sections.
- It creates the data quickly and easily
- You can display text fields as Net Promoter scores or Star Ratings
- Searchable picklists - NICE! Very NICE!
- Turn picklists into radio buttons - NICE!
- Oh Picklists have almost been fixed - NEW! This is great.
- You can add the same field to the form twice. NEW! This is great with rules.
- You can default a lookup value - NICE!
- You can do Javascript on your website, where the form is embedded.
- Can add Javascript code to the form - http://www.visualantidote.com/fastforms/help.aspx#Fast-Forms-Javascript-API.
- Save PDF Submission to Salesforce - Form Assembly can't do that OOTB.
- You can create Form Submission records or just create/update the record itself. NEW! This is nice.
- You can validate the form on submission of each page - important.
- Save for later. NEW!
- Autosave of forms during creation.
- It's got some nice messages that tell you you are publishing your Salesforce data.
- Can rename the back button and next button.
- Nice page menu at the top of the form, which is optional
Beware
- Let's say for example that you could create a complex form using Fast Forms. You probably could, with a lot of stuffing around. Here's what you could end up with:
- A few FF forms - one for each page, or one for each primary object.
- A page on your website for each FF form (or some fancy javascript to render each form page on the same website page)
- A custom CSS file hosted on your website
- Some custom Javascript files hosted on your website.
- A number of additional fields made just for these forms - especially picklist fields and fields that don't require validation rules.
- A number of process builder processes, workflows, or even flows to handle the updating of all the values that can't be updated in the form.
- A custom email template to respond to the user with a receipt for what they submitted (and adding attachments to that is going to be a difficult pain).
- And NO WAY to link any of this together to say that there is a dependency between this form and the processes and workflows or fields that the form relies on.
- So, is all of this worth it? No. I just don't think so. Reasons:
- The reason you want a form product inside of Salesforce is for security - so that the data does NOT go anywhere outside of Salesforce - this data is being captured outside of Salesforce.
- This data has no guarantee of even getting into Salesforce - a user creates a simple validation rule on a field, and voila no leads coming into Salesforce for about a week before you realise!
- You are going to need a web developer anyway, to do the CSS and possibly Javascript, so there is no advantage there.
- So, since you need a web developer anyway, why would you pay for this for around US$900 per year when you can pay once for Gravity Forms and keep using it?
- If your Salesforce admin can build a form in this tool, they can log into the website and build a form in Gravity Forms.
- So, for a simple form you may as well just use Gravity Forms using the Salesforce API. For more complex forms, even though Form Assembly is soo annyoing, there does not seem to be much that is even remotely as good for the price.
- With Form Assembly (and even Gravity forms, probably), you can do all of validation needed on the forms or within the connector and just send the right data through to Salesforce - no necessity for processes and workflows in Salesforce just to process the form data.
Questions
- How would you do different custom CSS for different forms? (Eg I have a client that has 3 separate brands).
- I wonder how it works with State and Country picklists?
- Do Global Picklists and the new locked picklists work?
- What about multi-lingual forms (I now have this requirement - even if I had to do two separate forms, that is OK, but can it do a Chinese form with Chinese Picklist values and then save the picklists back to English? - see Multilingual Form Assembly Forms with Prefill for a case study).