How to implement a new feedback form using Formstack

Overview

This document describes how to implement a new feedback form using Formstack.

To do this, you'll need reasonably informed answers to the following questions (some guidance below):

  • What question(s) will you ask?

  • How much data do you expect?

  • How will you preserve data?

  • Are you collecting any private information?

  • How do you want to access the data?

  • Do you have direct access to the site's code, or at least to someone else who does?

  • Where do you want the form to appear?

The actual steps you'll need to take will differ depending on your answers to these questions, but in general they look thusly:

  1. Set up the form in Formstack

  2. Embed or get the form embedded in the site's code

  3. Set up data storage, e.g. with a Google Sheet integration, add to the ETL process, set up a webhook and store in S3, etc.

  4. Set up data cleanup, e.g. you plan to log in to Formstack and manually clear the data, add it to the ETL process, etc.

Decisions you need to make

Apologies for this section's informality. At the time of writing, it's really just an idea dump of what we've learned based on prior experience.

What questions will you ask?

Unless you have a good reason to do otherwise, we recommend using one of the following questions that are already in use on a mass.gov subdomain:

  • Did you find what you're looking for on this webpage? (Answers: yes/no)

  • Overall, how easy or hard did you find it to complete the steps you needed on [this website]? (Answers: Likert scale very easy to very hard.)

We recommend the user survey follow the existing patterns of asking about the respondent to label their response with something quantifiable (yes or no, easy or hard), and then providing an additional free text box for explaining your answer. This makes it possible to treat the data both quantitatively and qualitatively.

How much data do you expect?

The answer to this question has implications for data persistence and data reporting. If you are expecting tens of thousands of responses per week, you probably do not want to manage your data via a Google Sheets integration, as the spreadsheet may become unmanageable and Formstack may frequently overflow (i.e. go over the limit of 250,000 submissions).

If you expect thousands of responses a week, you should consider requesting that your data be added to the analytics and feedback platform. However, this may also have consequences for reporting, as the data will live in a database, and not in a Google Sheet. (You'll need to then request that the analytics platform team make that data available to you via report.)

How will you preserve the data?

One reason Formstack is not the ideal location to store data because of its 250,000 form limit. Spreadsheets do OK up to triple that number (though they begin to slow down).

However, spreadsheets may not be ideal if you are concerned about data privacy. In that case, you might consider storing it in the ETL database, an S3 bucket, or OneDrive. You'll also need to determine how you want to get the data to your secure location. (It may be easiest to ask the web analytics team to add it to our routine ETL process.)

Are you collecting any private information?

If so, you'll want to password protect the Formstack form, store the data somewhere secure, and log who has access to it and when they access it.

How do you want to access the data?

At some point, you will need to get data so that you can report on it. If you are sending your data to a Google Sheet, this will be fairly easy. If you are sending it to a database, you may need an additional job set up to run queries and make that data accessible.

You might also consider if the data you need is just the raw feedback, or if it needs to be paired with other data (such as the total number of users to the site). If that's the case, you may prefer an automated job that does a calculation and deposits results in a CSV.

Do you have direct access to the site's code, or at least to someone else who does?

Adding a Formstack form requires that you get a form embedded using JavaScript, or that you can include a link to the form in the site's content. You'll want to make sure the site's developers/authors can collaborate with you.

Where do you want the form to appear?

If you choose to embed the form, it will change the appearance of the website (i.e. there's a form there when previously there was not). You may need to consult a designer or developer to make sure that the form's style matches the site's, that it is located in a user-friendly place. You don't, for instance, want to ruin the experience of mobile users.

Form installation/setup

Build your form using Formstack's form builder.

If you're unsure how to do this or what your options are, consult the well-maintained and extensive Formstack documentation.

Get your form added to the website

You have a few options here:

  • You can add it to Mass.gov form content type, and then link to the Mass.gov page from your website

  • You can embed it directly onto the website

  • You can treat it as a standalone form and link directly to it

For all of these, you'll click on the "share" button to get either an embed code or a link or both:

If you are adding the form to a Mass.gov form page, you'll copy the embed code and follow the instructions in the CMS. Then, you'll link to your form page from your websites.

If you are embedding the form directly, you'll use the embed code and add it to the site's markup. (You could also use Tag Manager, but we do not recommend this.)

Set up data storage

The most common ways to automate data storage are

Set up data cleanup

Formstack has a 250,000 submission storage limit. You'll need to plan for what to do when it approaches this limit. The most common plans are to:

  • Download data as a CSV and store in an S3 bucket

  • Request that the web analytics team add it to the ETL process

Last updated