Over the last couple of weeks, I’ve been working with a client and a couple of people from WeMakeWebsites (their development agency) to find (and validate) a solution to a requirement for advanced forms. The requirements for the forms are:
- The form must be in-line on the page to allow for email validation and address lookup (via Loqate)
- The form submissions must be stored somewhere safe and secure
- The form submissions must be accessible via API and, ideally, you’d be able to export via CSV also
There are some other desirable requirements, but these are the critical ones. The use case is for catalogue requests – which are extremely important to this business – but I’ve since also had a similar use case with another client for post-purchase product registration.
The routes / solutions we considered for implementing the form in Shopify (Plus) included:
- Use the native Shopify forms
- Develop a custom app (had spoken to a couple of back end developers about taking the project on)
- Use one of the Shopify form apps (such as Form Builder or Advanced Form Builder)
- Use a third party, such as FormStack, TypeForm or Wufoo
- We did also loosely look at hosting the form on a sub-domain on a custom page (e.g. cat-req.client.com), but this goes against the objectives for the move to Shopify
After we’d reviewed all of the individual options, we ended up needing to go with FormStack, due to the following reasons:
- Shopify native forms don’t allow for submissions to be accessed via an API or CSV, they’re simply sent to the email address against the Shopify account
- FormStack appears to be the only one that can be implemented via the API, on the page.
So, the main reason we’ve gone with FormStack is that you have the option to use a JS form or an HTML form (fields are in-line in the page) and they have an API to access submissions. This isn’t the cheapest route, but it is robust and FormStack also integrates directly with a number of ESPs and other solutions to allow for additional features.
This was actually quite a tricky requirement, so I thought I’d write a blog post to help others find a solution and also reduce unnecessary spend on the custom app option. It’s worth noting that this same principle applies with other platforms (such as Magento) too, you’d just have more freedom for custom development, which is unlikely to be the best long-term option.
If you have any questions about this or if you know of any good routes, please feel free to add them in the comments.