Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


This app collects feedback from users via contact forms rendered on GOV.UK. This data is then sent to the support app or support-api app to be dealt with.

Contact Page on GOV.UK

Contact Page on GOV.UK

Contact Form on GOV.UK

Contact Form on GOV.UK


  • Feedback: All the data received from contact forms is considered to be "feedback" of some form or other and relates to pages published on GOV.UK.
  • Anonymous Contact: Part of the feedback collected by this app is anonymous, when it's submitted via an anonymous contact form in the [feedback app][feedback].
  • Named Contact: In contrast with the Anonymous Contact feedback, this is submitted via a form that will require you to identify yourself. This data is sent directly to the support app.

Pages rendered by the application

Note that this list may not be complete.

Technical documentation

This is a public facing Ruby on Rails application that collects feedback from users in multiple ways:

  1. Renders a contact page on GOV.UK:
  2. Collects feedback from other contact forms. Pages using the static app will have a link at the bottom of the page asking: Is there anything wrong with this page?. Clicking this link will show you a form. The data from the form will be submitted to the feedback app.
  3. Sends feedback either to the support app or the support-api app. If the feedback is sent to the support app, it will in turn create a ticket in Zendesk. If it's sent to the support-api app then it will either be stored in a database or a Zendesk ticket will be created.
  4. A certain subset of tickets ('assisted digital') have a special workflow: they're sent once to a Google spreadsheet via the Google API, and then a subset of the data is sent to support-api which will save them in its database. More documentation about that here: docs/
  5. Handles email survey signups. A banner that shows up on will ask you to provide an email to signup to a survey. feedback will then email you a link to the survey. However, it does not collect the answers. More documentation about that here: docs/


  • support-api - provides an API for storing and fetching anonymous feedback about pages on GOV.UK. Data comes in from the [feedback app][feedback] on the public-facing frontend and is read by [the support app][support] on the admin-facing backend.
  • support - receives feedback from the feedback app and creates Zendesk tickets from it.
  • static - renders contact forms that will collect information that will be sent to the feedback app.

Running the application

To start the app using bowler:

bowl feedback

To start the app directly:


This will start the app on port 3028.

Running the test suite

To run unit tests, execute the following:

bundle exec rake

Manual testing with a mock signon strategy

Launch using bowl from the development directory:

development> bowl feedback

Manual testing with real authorisation

For the feedback that is sent to the support app the feedback app needs a bearer token for authorization because support is a backend app protected by signon. The same is not true for the feedback that is sent to support-api because it's not protected by signon.

You can read more about how to obtain authorization in the docs: docs/testing_with_real_authorization.

Assisted Digital Feedback

Assisted Digital feedback is stored twice. The standard service feedback component is sent to support-api like other tickets, but the rest of the feedback specifically about assisted digital support is stored in a google spreadsheet.

A more thorough explanation about how assisted digital feedback works can be found in the docs: docs/

Email Survey Signups

This type of feedback is not actually feedback, it's a response from a banner displayed by static asking users to provide an email address where we can send them a link to a survey. The survey will then be emailed to them via the feedback app. Please be aware that the answers we get back on the survey will NOT be stored in feedback.

A more thorough explanation of how email surveys work can be found in the docs: docs/

You can’t perform that action at this time.