Introduction

Answer Piping is a feature available on Pro and Agency plans that allows you to "pipe" or display an answer to a question, a score, or a payment total into just about any other part of the form in real-time.

For example, if someone has answered the question "Your Name", you can then add their answer (like "Mark") to any other part of the form. This is great for making your forms feel more personal.

An image showing the field "Your Name" with the answer "Mark", and a subsequent question with a title of "Okay Mark, what's your email?".

In this guide, we'll cover:

  • Where you can use Answer Piping
  • Where you can't use Answer Piping
  • How to set up Answer Piping
  • Setting a Default Answer using Answer Piping
  • Supported Question Types
  • Answer Piping Transformations

Where can I use Answer Piping on my form?

Answer Piping can be used to insert answers into:

  • Question Titles
  • Question Descriptions
  • Appointment Event Configuration Text
  • General (body/ content) Text
  • Custom Success Pages
  • Custom Emails
  • Custom PDFs
  • Integration Actions

Where *can't* I use Answer Piping?

Although Answer Piping is widely supported throughout Paperform, here are some areas where you can't directly use this feature.

  • Question Custom Pre-fill Keys
  • Multiple Choice/ Dropdown Options
  • Calculation Fields within other Calculation Fields

Calculation Fields cannot be Answer Piped into other Calculation Fields, but the value of Calculation Fields can be used as normal with any other supported area on your form.

How do I set up Answer Piping?

The Fast Method


  1. Navigate to the area you'd like to add Answer Piping to.
  2. Begin by typing two forward-facing curly brackets ({{) and then type the title of the question you're trying to use in answer piping.
  3. A dropdown list will appear for you to select the question you're trying to use. Clicking on the desired option will then complete the Answer Piping for you. e.g. Your Name

A view of the form editor showing a field using answer piping. A dropdown menu appears above the question title which contains a list of possible fields to pipe into the question title.

If the question being piped is the first one in the list, you can press "Enter" on your keyboard to complete the Answer Piping text.


The Long Method

  1. Navigate to your form editor and locate the question you want to pipe the answer from.

  2. Hover over the question and click on the "Configure" (Cog) icon appearing on the right.

    An image showing the options available when hovering over a field in the form editor. Among these options are the "Drag" handle, "Duplicate", "Settings" cogwheel, and "Delete" cross icons.

  3. Scroll to the bottom of the configuration window and locate the field titled "Pre-fill Key".

    An input field titled "Pre-fill Key", with the value "e7jcq" beside it. Below, the input field itself contains the text "Custom Pre-fill Key" in semi-transparent lettering.

  4. Copy the key next to the title "Pre-fill Key". It should look like an assortment of letters and numbers e.g. e7jcq.

    If you'd like to use a Custom Pre-fill Key for your Answer Piping, simply enter the key you'd like to use in the field marked "Custom Pre-fill Key". Ensure your key doesn't contain any spaces or special characters e.g. @!"£$%^&()*

  5. Now that you have the Pre-fill Key copied, navigate to where you'd like the Answer Piping to appear.

  6. Begin typing two forward-facing curly brackets ({{) and then paste the key we copied earlier. Now add a further two curly brackets, but this time facing backward (}}).

    A field in the form editor with the title "Okay {{ e7jcq }}, what's your email?" demonstrates how answer piping may be applied to a question title.

The final result should look like this:

e.g. Pre-fill Key: e7jcq.

{{ e7jcq }}

You'll know whether Answer Piping is working by clicking outside of the area you're editing. You should see a bubble appear in the area your Answer Piping code was added instead of the code itself. The bubble will also contain the Question Title to determine which question is being piped in.

A field in the form editor showing text in the question title, containing a dark-colored bubble indicating Answer Piping is present. The bubble contains the question title of the field being piped into this text.

If the Answer Piping bubble does not appear, this generally means that the Answer Piping for this field isn't working. Be sure to check that the Pre-fill Key is correct (either custom or default), and that you're not attempting to use a calculation field within another calculation field.

Default Answer Piping Keys

Some default Answer Piping keys exist for use on your form, and they can be found listed below.

  • total - The Total Price for your form ({{ total }})
  • score - The Total Score for your form ({{ score }})

Setting a Default Answer using Answer Piping

Due to the fact that Answer Piping updates in real-time, your form content can look a little strange when using answers from fields the respondent hasn't answered yet.

For example, if you want to insert the answer for "Your Name" into the following question to say "Hey {{ dlpfbin }}, what’s your email?”, then the email field might look a bit weird before the person has entered their name into the "Your Name" field.

An image showing how answer piping may look when no answer is provided for the piped field, and no default answer is set. The answer piping shows up as blank whitespace which can cause confusion for form respondents.

You can set a default answer to appear before the customer has given an answer to make forms read better. This is especially good if you are piping answers that are not required and may not be answered. For example, you may want the email question in the last example to say "Hey there, what’s your email?" and then change to "Hey David, what’s your email?" when the name field is answered. Here's how to do this:

When piping an answer, follow the format {{ key | default }}.

For example, the key dlpfbin the example above with a default value of "there", it will look like this:

{{ dlpfb | there }}

When the question is using the default answer as shown above, then the text on your form will output the following:

An image showing how a form field may look when using answer piping with a default value. This means that when no value is entered for the piped question, it will revert back to the default value set on the form.

Once the field contains an answer, this will be shown in place of the default value defined above like so:

An image showing how a form field may look when using answer piping from a field that contains an answer provided by a respondent.

Answer Piping Question Types

Most question types will permit the use of regular Answer Piping (e.g. {{ key }}), however, sometimes you may need finer control over answers being inserted from complex fields.

The question types listed below support more advanced answer piping features that allow you to access additional properties. These additional properties can be particularly helpful in calculations and are accessed via "dot notation" on the answer piping key.

For example, {{ a3fda.selectedProducts }} will return a list of all the selected product SKUs.

In the examples below, key is a placeholder for the Pre-fill Key and sku is the placeholder for a product's SKU. Make sure that key is replaced with your actual Question Pre-fill Key or they may not work as intended.

Question types

Address

  • key.street — The street field
  • key.suburb — The suburb field
  • key.state — The state field
  • key.postcode — The postcode/ zip field
  • key.country — The country field

Appointment

  • key.start — Datetime and timezone for the appointment start
  • key.stop — Datetime and timezone for the appointment end
  • key.start_date — Start date of the appointment
  • key.start_time — Start time of the appointment if it is in minutes
  • key.stop_date — End date of the appointment
  • key.stop_time — End time of the appointment if it is in minutes
  • key.appointment_title — Title of the appointment
  • key.appointment_location — Location of the appointment
  • key.appointment_description — Description of the appointment
  • key.minuteLength — Length of the appointment in minutes
  • key.hourLength — Length of the appointment in hours
  • key.dayLength — Length of the appointment in days
  • key.timezone — Timezone of the appointment

Color Picker

  • key — The selected color's hex code (e.g. Black is #000000)

Country

  • key.code — The two-letter country code
  • key.name — The full country name

Date

  • key.year — The selected year
  • key.month — The selected month
  • key.day — The selected day

Matrix

  • key — A list of the selected options, labeled by row
  • key.rows.row — A comma-separated string of the selected options for that row number, labelled by column (e.g. key.rows.1 is the first row)
  • key.cells.cell — Whether a cell is selected or not using Excel-style coordinates, labelled as true or false (e.g. key.cells.A1 is the first column in the first row)

*Does not work for questions that allow more than one answer

Price

  • key — Total price for a price question (will keep the price even if not visible)
  • key.total — Total price for a price question (will be 0 if question is not visible)

Products

  • key.quantity — Total quantity selected for the question
  • key.selectedProducts — Array of selected product SKUs
  • key.quantities.sku — Selected quantity for a product SKU
  • key.names.sku — Name of a product
  • key.prices.sku — Price of a product
  • key.total — Total price for a product question (will be 0 if question is not visible)

Rank

  • key — An ordered list of the ranked options selected.
  • key.array — An ordered array of the ranked options selected.
  • key.commaSeparated — An ordered comma-separated list of the ranked options selected.

Rating

  • key — The number correlating to the rating selected (e.g. a rating of five symbols is equal to 5)

Time

  • key.hour or key.hour12 — The hour in 12 hour format
  • key.hour24 — The hour in 24 hour format
  • key.minute — The minute
  • key.ampm — The time period

Transformations

There is one more set of answer piping features that can come in handy. Transformations allow you to modify an answer piping value using the following formats.

With a default value {{ key | default_value | transformation }}

Without a default value {{ key || transformation }}

Remember to replace key with the Pre-fill Key of your field. Without this, the Answer Piping Transformation will not work.

Available transformations include:

  • uppercase - {{ key | "default" | uppercase }}
    Transforms "default" or the value of key to "DEFAULT"
  • lowercase - {{ key | "DEFAULT" | lowercase }}
    Transforms "DEFAULT" or the value of key to "default"
  • capitalize - {{ key | "default" | capitalize }}
    Transforms "default" or the value of key to "Default"
  • encoded - {{ key | "support@paperform.co" | encoded }}
    Transforms "support@paperform.co" or the value of key to "support%40paperform.co"
  • date - {{ key | "2019-12-31" | date d/m/y }}
    Transforms "2019-12-31" or the value of key to "31/12/19"

Gotchas

  • Answer Piping cannot be used within a Calculation field if the answer being piped is from another Calculation field.
  • The answers provided on the Form Editor using Answer Piping rely on data from your latest form submission. If you're Answer Piping properties from questions that haven't been answered yet, you may see some unexpected results. To resolve most issues related to this, simply answer the relevant question in a new submission on your form.